7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
1/96
TESIS PUCP
Esta obra ha sido publicada bajo la licencia Creative Commons
Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Per.
Para ver una copia de dicha licencia, visite
http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
2/96
PONTIFICIA UNIVERSIDAD CATLICA DEL PER
FACULTAD DE CIENCIAS E INGENIERA
ANLISIS COMPARATIVO ENTRE EL ALGORITMOCUNTICO DE GROVER Y UN ALGORITMO GRASP,
APLICADOS A LA BSQUEDA DE INDIVIDUOS PTIMOS ENLA POBLACIN INICIAL DE UN ALGORITMO GENTICO.
Tesis para optar por el Ttulo de Ingeniero Informtico, que presenta el bachiller:
Jos Enrique Rivera Alejo
ASESOR: Mg. Martin Richard Kong Moreno
Lima, agosto del 2010
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
3/96
Resumen
Este trabajo trata sobre la aplicacin de dos algoritmos de bsqueda a la
seleccin de individuos ptimos en la poblacin inicial de un algoritmo
gentico, y la consiguiente comparacin entre ambos.
El primero de ellos es el algoritmo meta-heurstico GRASP, y el segundo es el
algoritmo cuntico de Grover.
El algoritmo cuntico de Grover forma parte de una nueva generacin en las
ciencias de la computacin: la computacin cuntica. Y por tanto hace uso deconceptos matemticos y fsicos completamente distintos a los usados en la
programacin clsica.
En esta tesis se presenta un anlisis general de ambos algoritmos, siendo de
especial mencin el anlisis del algoritmo cuntico de Grover, ya que incluye
un modelo matemtico del funcionamiento del mismo. Este modelo ser de
suma importancia para simular la ejecucin del algoritmo de Grover en una
computadora clsica, dada la carencia de una computadora cuntica sobre lacual realizar esto.
Luego, se preparan dos procesos experimentales, los cuales se usarn para
realizar la comparacin de eficacia y eficiencia entre las ejecuciones de los
dos algoritmos.
Posteriormente, se presenta el diseo e implementacin de los algoritmos,
ambos aplicados a la seleccin de individuos de un algoritmo gentico
genrico. Una vez ambos algoritmos se encuentren correctamente
implementados y funcionales, se ejecutarn las pruebas experimentales que
permitan realizar la comparacin entre ellos.
Finalmente se realizan las conclusiones y observaciones del caso en base a
los resultados numricos obtenidos en la fase experimental.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
4/96
Dedicado a:
Mis padres.
Los lectores de este trabajo.
Agradecimientos a:
Dios, porque gracias a l todo es posible.
Mi padre, mi madre y mi hermano, quienes me han apoyado en cada
momento de mi vida.
Mi asesor por su apoyo durante el desarrollo de esta tesis.
Mis profesores por sus importantes enseanzas a lo largo de mi vida
acadmica.
Mis amigos por su ayuda, apoyo, nimo y compaa, y especialmente a quien
siempre me dese suerte en todo y a quien me hizo abrir los ojos nuevamente
a la investigacin.
A todos ustedes, muchas gracias.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
5/96
Tabla de Contenido
Introduccin.......................................................................................................1
1.
Captulo I: Generalidades...........................................................................4
1.1 Definicin del Problema......................................................................4
1.2 Marco Conceptual del Problema ........................................................ 6
1.3
Estado del Arte .................................................................................12
1.3.1
Investigaciones realizadas............................................................13
1.4 Descripcin y Sustentacin de la Solucin.......................................18
2 Captulo II: Aporte de la Investigacin......................................................21
2.1
Aportes especficos ..........................................................................21
2.2
Desarrollo de la Metodologa............................................................23
2.2.1
Observacin..................................................................................23
2.2.2 Planteamiento de Hiptesis: .........................................................24
2.2.3 Experimentacin ...........................................................................24
2.2.4
Conclusin ....................................................................................25
2.3
Lista de Resultados Esperados........................................................ 26
2.4 Planteamiento de hiptesis...............................................................27
3
Captulo III: Implementacin del Aporte....................................................32
3.1
Definicin de los Experimentos ........................................................ 32
3.1.1
Seleccin de Individuos ptimos (Experimento-1) ........................33
3.1.2 Experimentacin Numrica........................................................... 35
3.2 Definicin de los Algoritmos .............................................................36
3.2.1
Definicin del Algoritmo Gentico.................................................36
3.2.2
Definicin del Algoritmo GRASP...................................................41
3.2.3
Definicin del Algoritmo Cuntico de Grover ................................42
3.3
Diseo de los Algoritmos..................................................................48
3.3.1 Diseo del Algoritmo GRASP ....................................................... 48
3.3.2
Diseo del Algoritmo Cuntico de Grover.....................................50
3.4 Implementacin de los Algoritmos....................................................57
4 Experimentacin Numrica.......................................................................59
4.1
Ejecucin de la Experimentacin Numrica .....................................60
4.1.1
Antes de la ejecucin de la Experimentacin Numrica...............61
4.1.2 Prueba T-Student para dos muestras relacionadas...................... 64
4.2
Resultados........................................................................................64
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
6/96
5 Observaciones, conclusiones y recomendaciones...................................78
5.1 Contraste de Hiptesis .....................................................................78
5.2
Conclusiones ....................................................................................80
5.3 Observaciones..................................................................................82
5.4
Recomendaciones y trabajos futuros ...............................................84
6 Referencias ..............................................................................................86
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
7/96
ndice de Figuras
Figura 4.1: Grfica: Factor de Relajacin (alfa) vs Valor de Bondad 62
Figura 4.2: Grfica: Cantidad de Iteraciones vs Valor de Bondad 62
Figura 4.3: Anlisis de Eficacia 73
Figura 4.4: Anlisis de Eficiencia 74
Figura 4.5: Anlisis de Bondad 75
Figura 4.6: Anlisis de Bondad tras ajustes en Ponderacin 77
Figura 5.1: Grfica Valores de Bondad Promedio vs Razn Eficacia-
Eficiencia/Complejidad
83
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
8/96
ndice de Tablas
Tabla 1.1: Cuadro Comparativo de las Investigaciones Encontradas 17
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
9/96
1
Introduccin
La computacin cuntica aparece como una nueva rama de las Ciencias de la
Computacin, la cual promete la posibilidad de realizar el procesamiento de
inmensas cantidades de informacin en tiempos millones de veces menores
de lo que son capaces las computadoras clsicas hoy en da.
La computacin cuntica est atravesando una etapa de intensa investigacin
alrededor del todo el mundo, por ejemplo, en los laboratorios de entidades
como IBM, Microsoft, Google y el Instituto Tecnolgico de Massachusetts. Se
perfila como la tecnologa que reemplazar eventualmente a la computacin
clsica tal cual la conocemos hoy en da, gracias a los mltiples beneficios
que supone.
La investigacin en el campo de la computacin cuntica es solo parte de un
campo mucho ms amplio conocido como informacin cuntica. En lo que
respecta a su rama ms cercana a las Ciencias de la Computacin, se puede
afirmar que en la actualidad ya han sido propuestos varios algoritmos de
naturaleza cuntica, los cuales garantizan podrn realizarse operaciones que
hoy en da tomaran miles o millones de aos, en tan solo segundos. Uno de
estos algoritmos, es el algoritmo cuntico de Grover, un algoritmo cuntico de
bsqueda, especialmente til en grandes universos de elementos sin ningn
tipo de ordenamiento a priori.
El algoritmo cuntico de Grover es capaz de resolver bsquedas con una
velocidad mucho mayor que los algoritmos clsicos con los que contamos
hoy. La razn entre ambas velocidades demuestra que la velocidad del
algoritmo de Grover es aproximadamente el cuadrado de la velocidad del
mejor algoritmo clsico de bsqueda en un universo grande de elementos sin
ordenar.
Lo que se plantea en esta tesis es recoger el conocimiento y fundamento
fsico-matemtico del algoritmo de Grover, a fin de poder simular suimplementacin en un entorno clsico, analizar su eficiencia aplicada a un
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
10/96
2
caso en particular y compararla con un algoritmo de bsqueda clsico
aplicado al mismo caso.
El caso que se ha decidido tomar como base para la aplicacin (y posterior
comparacin) de ambos algoritmos, es la seleccin de individuos ptimos en
la poblacin inicial de un algoritmo gentico.
Los algoritmos genticos son una clase de algoritmo de la rama de la
computacin evolutiva, los cuales a travs de la simulacin de ciertos
fenmenos de la naturaleza, buscan dar como respuesta final la solucin
ptima (o la ms cercana a la ptima) de un problema. Los problemas que se
tratan de resolver con los algoritmos genticos, son en la mayora de casos
aquellos que son conocidos como problemas NP. Estos problemas se
caracterizan por no tener una solucin exacta, o, en todo caso, porque el
clculo de la solucin exacta requiere un cmputo exhaustivo, el cual tomara
una cantidad excesiva de tiempo en finalizar (desde das hasta incluso miles
de aos).
Una de las fases caractersticas de un algoritmo gentico es la seleccin de
los mejores individuos de su poblacin. Para resumir, un algoritmo gentico
cuenta con un conjunto de posibles soluciones al problema que busca
resolver, este conjunto se conoce como su poblacin, y cada posible
solucin se conoce como individuo. El algoritmo gentico generalmente se
apoya en otros algoritmos de bsqueda y optimizacin para seleccionar los
mejores individuos de un universo y formar una poblacin inicial, la cual ir
mejorando progresivamente y, por tanto, ir acercndose a la mejor solucin.
Uno de los mejores algoritmos clsicos que se usan hoy en da para esta
labor es el que se conoce como algoritmo GRASP (Greedy RandomizedAdaptive Search Procedure o Procedimiento de Bsqueda Adaptativa
Aleatoria y Golosa).
Tanto el algoritmo cuntico de Grover como el algoritmo GRASP sern
aplicados a la seleccin de la poblacin inicial de un algoritmo gentico
genrico. No se definir una aplicacin particular al algoritmo gentico, pues
no es parte del objetivo de la presente tesis.
Se usarn los conceptos fundamentales de los algoritmos genticos demanera genrica a fin de que los resultados obtenidos de la comparacin
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
11/96
3
entre el algoritmo de Grover y el algoritmo GRASP sean vlidos en cualquier
aplicacin concreta del algoritmo gentico.
Por ltimo, esta tesis busca fomentar el deseo de investigacin en la rama de
la computacin cuntica, dentro del pas, demostrando que existe un campo
muy amplio para la aplicacin de los algoritmos cunticos en la resolucin
ms eficiente de problemas ya presentes hoy en da.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
12/96
4
1. Captulo I: Generalidades
1.1 Definicin del Problema
En este apartado, primero se presentar el campo de la computacin
cuntica, posteriormente se explicar brevemente qu es un algoritmo
gentico y cul es la fase que se plantea optimizar.
La computacin cuntica es un campo emergente y nuevo en las Ciencias de
la Computacin, el cual hace uso directo de los principios fsicos y
matemticos que rigen la mecnica cuntica para poder lograr procesamiento
de la informacin con mucha mayor eficiencia que la computacin clsica.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
13/96
5
La programacin cuntica difiere de la clsica pues usa conceptos inherentes
a la matemtica y fsica de la mecnica cuntica, tales como amplitudes de
probabilidad y superposicin de elementos [1]. Cada uno de estos conceptos
est fuertemente relacionado con la computacin cuntica, desde sus
elementos tangibles como las computadoras cunticas hasta sus elementos
intangibles como los algoritmos cunticos.
El tratamiento de los elementos probabilsticos propios de la mecnica
cuntica est siempre presente en el manejo de algoritmos y programacin
cuntica. Puede tomarse por ejemplo, que en todo momento al trabajar con
qubits (equivalente cuntico de los bits), hay una probabilidad que determina
el estado en el cual se encuentren (si en cero, en uno, o en superposicin).
Otro elemento propio de la computacin cuntica es precisamente la
superposicin de estados (un qubit puede estar en 0 y 1 a la vez) lo cual crea
un paralelismo completamente distinto del manejado por la programacin
clsica [2].
Un algoritmo gentico es un tipo de algoritmo de la familia de la computacin
evolutiva. Su lgica y funcionamiento estn inspirados en la teora de la
seleccin natural, herencia y la evolucin. Los algoritmos genticos son
ampliamente usados en problemas de optimizacin y para buscar soluciones
aproximadas a los problemas del tipo NP, los cuales no cuentan con una
solucin exacta, o, si en caso la tengan, resulta computacionalmente
exhaustivo encontrarla, pues el tiempo necesario est en el orden de hasta
cientos, miles o millones de aos, de acuerdo a la magnitud del problema.
Un elemento propio de los algoritmos genticos es su poblacin de individuos.
En el contexto de un algoritmo gentico, los individuos que conforman supoblacin son posibles soluciones al problema planteado y en las
consiguientes iteraciones se simular una progresiva evolucin de esta
poblacin: los individuos malos (soluciones no-ptimas) son eliminados y los
individuos buenos (soluciones cercanas a las ptimas) generan nuevos
individuos los cuales heredan lo mejor de sus padres, es decir, se vuelven
mejores candidatos de la solucin general.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
14/96
6
Una de las fases cruciales del algoritmo gentico es la seleccin de la
poblacin inicial, es decir, la seleccin de los individuos buenos
discriminando los individuos malos de todo el universo de candidatos. Este
proceso es crtico pues los algoritmos genticos no trabajan directamente con
todo el universo de posibles soluciones, sino que necesitan un subconjunto d
dicho universo, el cual permita que la labor sea menos exhaustiva. Los
algoritmos genticos utilizan en la mayora de casos un algoritmo adicional
para realizar esta seleccin. Uno de los algoritmos que se usan por
excelencia en este tipo de casos, es el algoritmo GRASP, un algoritmo meta-
heurstico.
Sin bien el algoritmo GRASP resulta efectivo al seleccionar una poblacin
inicial de individuos buenos, para que funcione correctamente se requiere
una gran cantidad de iteraciones del mismo. Adems, para que el algoritmo
gentico funcione mejor, lo recomendado es trabajar con grandes
poblaciones. Siendo este el caso nos encontramos con una gran cantidad de
bsquedas en un gran universo de elementos. Esto se traduce en un gran
tiempo computacional, que si bien no demora aos, ni siglos, puede tomar
largas horas y das. Es precisamente esta fase de seleccin la cual se plantea
optimizar a fin de poder conseguir mejores resultados con una mayor
eficiencia. Usando los nuevos conceptos emergentes de computacin
cuntica y algoritmos cunticos ya descritos lneas arriba, se plantear el uso
del algoritmo cuntico de Grover para la seleccin de los mejores individuos
de un universo, los cuales conformarn la poblacin inicial de un algoritmo
gentico genrico. Posteriormente, se compararn estos resultados con los
que se hubieran obtenido si se usara el algoritmo GRASP.
1.2 Marco Conceptual del Problema
Se explicarn las nociones bsicas de la computacin cuntica, enfatizando
en aquellas caractersticas que permitan comprender el funcionamiento del
algoritmo de Grover. Adems se explicar el funcionamiento del algoritmo
gentico y el algoritmo GRASP.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
15/96
7
La Computacin Cuntica
La computacin cuntica es una nueva rama tecnolgica y cientfica que
aparece como una poderosa alternativa para realizar procesamiento masivo
de datos en menor tiempo de lo que se consigue con las computadoras que
se usan en la actualidad. El comportamiento de una computadora cuntica
est gobernado por las leyes de la mecnica cuntica [1]
En general, se usa la frase computacin cuntica para describir procesos
computacionales cuya eficiencia depende de las propiedades de la mecnica
cuntica en el manejo de la informacin. [8]
Cmo aparece la computacin cuntica?
La ley de Moore establece que el nmero de transistores presentes en un
microprocesador va duplicndose cada 18 meses. Esto presupone que entre
los aos 2020 y 2030, los circuitos de procesamiento habrn llegado a una
escala atmica. Es aqu donde se plantea la aparicin de computadoras
cunticas, las cuales usarn el potencial de tomos y molculas para realizar
tareas de memoria y procesamiento [7].
Por qu la computacin cuntica es un tema relevante?
Los mecanismos de procesamiento de informacin que se usan en la
computacin cuntica son notablemente ms eficientes que los usados en la
computacin clsica. La capacidad de procesamiento de una computadora
cuntica resulta ser exponencialmente mayor que la de una computadora
clsica. Como se ver ms adelante, el fenmeno de superposicin en lamecnica cuntica permite que las unidades de informacin de la
computacin cuntica (qubits) aumenten exponencialmente la capacidad
presente en las unidades de informacin actuales (bits).
Se puede considerar el siguiente ejemplo: la tarea de factorizar un nmero de
5000 dgitos es una tarea computacionalmente exhaustiva, irrealizable para
una computadora clsica. Usando el mejor algoritmo clsico con el que se
cuenta hasta la fecha, el tiempo de ejecucin estimado es de 5 trillones de
aos. Este tiempo de ejecucin sobrepasa incluso la edad del universo. Sin
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
16/96
8
embargo, si la misma tarea fuera realizada por el algoritmo cuntico de Shor,
una computadora cuntica se demorara tan solo dos minutos.
El ahorro exponencial de recursos provisto por la computacin cuntica lo
hace un tema sumamente atractivo en la comunidad cientfica mundial y est
siendo investigado activamente por entidades tales como el Massachussets
Institute of Technology (MIT) o IBM Research entre muchas otras.[1]
Conceptos bsicos de Computacin Cuntica
Como ya se mencion antes, la computacin cuntica tiene principios
basados en las leyes de la mecnica cuntica. Algunos conceptos
importantes son:
1. Las probabilidades:
En la computacin cuntica las probabilidades de un hecho deben ser
siempre consideradas, aun si el hecho en cuestin nunca sucede [1].
Tanto una computadora cuntica como un algoritmo cuntico son sistemas
probabilsticos, esto quiere decir que por su propia naturaleza nunca se puede
saber con seguridad cul es el estado del sistema. Sin embargo s se puede
saber la distribucin de probabilidad de dichos estados. Los clculos que se
realizan en la computacin cuntica son probabilsticos. Es por ello que, al
igual que en la mecnica cuntica, nunca puede darse una respuesta cien por
ciento segura, sino una respuesta probabilsticamente aceptable.
El trmino asociado a la probabilidad en la mecnica cuntica (y por tanto en
la computacin cuntica) se denomina amplitud y puede incluir trminos
negativos e incluso imaginarios. [1]
2. La superposicin cuntica:
La mnima unidad de informacin en la computacin clsica es el bit. Un bit
tiene dos estados, puede estar en 0 (apagado) o 1 (prendido), siempre estar
nicamente en uno de estos dos estados.
Por su parte, la computacin cuntica tiene como mnima unidad de
informacin al qubit. Un qubit tambin puede existir en alguno de los dos
estados de la computacin clsica: 0 y 1, sin embargo, tambin puede existiren una superposicin de ambos. [3]
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
17/96
9
Esto puede explicarse de la siguiente forma:
Un bit tiene dos estados posibles asociados. Si el bit est prendido, la
probabilidad de que est prendido es evidentemente uno, y la probabilidad de
que est apagado es cero. Notamos que las probabilidades son absolutas.
Un qubit tambin tiene dos estados posibles asociados. Sin embargo, un
qubit tiene una probabilidad de estar prendido y otra probabilidad de estar
apagado. Estas probabilidades como se mencion anteriormente, en la
computacin cuntica estn asociadas a elementos denominados amplitudes
y son trminos imaginarios.
As como un qubit puede existir en superposicin de estados. El mismo
principio es aplicable a registros enteros de qubits. Si se tiene un registro de
n qubits, el principio de superposicin de la mecnica cuntica dice que se
podran tener hasta 2nestados a la vez. Dicho de otra forma, un registro de
n qubits es equivalente a 2n registros de n bits. En conclusin, un qubit
tiene una capacidad de procesamiento exponencialmente mayor a la de un bit
convencional gracias al principio de superposicin.
3. Sistemas cunticos:
Al considerar un sistema cuntico de dos qubits donde existen 4 posibles
estados superpuestos a la vez., la notacin cuntica es la siguiente: [1]
Esto quiere decir que el estado del sistema est determinado por la
superposicin de todos los estados posibles. Dos qubits determinan que los
cuatro posibles estados del sistema son: (00), (01), (10) y (11). Cada uno de
estos posibles estados tiene asociada una amplitud i, cuyo valor elevado al
cuadrado determina la probabilidad de que el sistema colapse a dicho estado.
Adems, la suma de las probabilidades de todos los casos posibles en un
sistema debe ser siempre uno. En el sistema cuntico mostrado, la
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
18/96
10
probabilidad efectiva de cada caso est dada por el cuadrado del mdulo de
la amplitud asociada. Entonces la suma de los cuadrados del mdulo de cada
amplitud, es uno.
Qu es el algoritmo de Grover?
El algoritmo de Grover es, como su creador, Lov Grover, lo defini: Un
algoritmo mecnico cuntico rpido para bsqueda en base de datos (A fast
quantum mechanical algorithm for database search) [11].
El algoritmo de Grover realiza bsquedas de elementos dentro de un universo
sin ordenar, con una velocidad pasmosa que supera de manera cuadrtica la
velocidad de un algoritmo clsico.
Clsicamente, si se tiene un universo con elementos sin ordenar, la opcin
ms segura que queda es revisar secuencialmente cada uno de los
elementos (podra ser en orden aleatorio) a fin de poder encontrar el elemento
deseado. Si el universo consta de N elementos, clsicamente, en promedio,
se necesitan N/2 intentos para encontrar el elemento deseado.
Sin embargo, el algoritmo de Grover puede realizar bsquedas en un universo
de elementos desordenados en la raz cuadrada de N iteraciones. Es decir,
si el universo es de 10000 elementos, clsicamente se necesitaran en
promedio 5000 iteraciones, sin embargo, usando el algoritmo de Grover solo
son necesarias 100 iteraciones. Y esta diferencia se hace ms evidente al
hacer N un nmero ms grande.
Cmo funciona un algoritmo gentico?
Un algoritmo gentico, como se mencion lneas arribas, est inspirado en los
fenmenos naturales de seleccin natural, herencia y evolucin. Dependiendodel problema que se est tratando de resolver, primero se establecer un
conjunto inicial de soluciones candidatas (individuos de la poblacin inicial).
Todas las soluciones son correctas, sin embargo, algunas son mejores que
otras, el objetivo es buscar la solucin ptima, es decir, el individuo ms
apto de toda la poblacin.
La funcin de fitness, es un indicador que permite distinguir si una solucin
candidata es mejor que otra. La funcin de fitness asigna a cada individuo un
valor numrico el cual determina cun ptimo es dicho individuo, es decir,cuan buena es la solucin. [18]
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
19/96
11
El algoritmo gentico simula la seleccin natural, discriminando los individuos
con menor valor de funcin de fitness y promoviendo que los individuos con
alto valor de funcin de fitness, tengan hijos, los cuales hereden lo mejor de
sus padres, es decir, se volvern soluciones mejores.
Los algoritmos genticos no trabajan con el universo entero de posibles
soluciones al problema, pues no es parte de sus caractersticas ser
exhaustivos, ya que tomara una mayor cantidad de tiempo computacional. Es
por ello que una fase muy importante en la ejecucin de un algoritmo
gentico, es seleccionar la poblacin inicial, la cual es un subconjunto del
universo total de soluciones. Es ventajoso que los individuos de la poblacin
inicial tengan un alto grado de bondad segn la funcin de fitness.
El objetivo de la fase de seleccin de la poblacin inicial es eminentemente
una bsqueda: El universo son todos los individuos de la poblacin, (los
cuales no se encuentran ordenados), y lo que se est buscando son los
individuos con mayor valor de funcin de fitness.
Es este proceso de seleccin el cual ser simulado utilizando primero un
algoritmo GRASP y luego el algoritmo cuntico de Grover. No es parte del
objetivo de esta tesis simular el proceso evolutivo de la poblacin inicial
seleccionada.
El algoritmo gentico tambin simula otros procesos propios de la naturaleza,
como la eventual aparicin de mutaciones y la eliminacin de aberraciones,
sin embargo la simulacin de estos procesos no forma parte del objetivo de
esta tesis y, por lo tanto, no sern considerados.
Qu es un algoritmo GRASP?
Es un algoritmo meta-heurstico usado generalmente para hallar un conjuntode soluciones candidatas en problemas de optimizacin combinatoria. El
algoritmo GRASP evita realizar una bsqueda exhaustiva de las
combinaciones de elementos que pueden considerarse solucin, y en lugar
de eso, aplica un criterio voraz a la par de un grado de variabilidad en la
seleccin. Esta variabilidad surge como resultado de seleccionar ciertos
elementos del universo de una forma aleatoria, estos elementos
seleccionados al azar son asignados como parte de una solucin.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
20/96
12
Es esta variabilidad la que relaja la voracidad natural del algoritmo a fin de
evitar las desventajas naturales de un algoritmo voraz heurstico, como la
seleccin de mximo locales en lugar del mximo global.
El algoritmo GRASP es ampliamente utilizado en problemas de tipo NP a fin
de obtener un conjunto de posibles soluciones. La eficacia del algoritmo
GRASP aumenta con la cantidad de iteraciones, sin embargo, a la par, el
tiempo de ejecucin tambin aumenta de manera considerable. Esta es una
de las razones por las cuales el algoritmo cuntico de Grover surge como una
alternativa muy atractiva para superar este inconveniente.
1.3 Estado del Arte
Actualmente existen numerosos estudios sobre computacin y algoritmos
cunticos, la mayor parte de ellos son realizados en Estados Unidos y parte
de Europa, si bien en Latinoamrica, Mxico sobresale como uno de los
pases con la mayor cantidad de investigaciones activas realizadas sobre el
tema.
Los estudios realizados sobre las aplicaciones al algoritmo de Grover son
muy variados y han servido de gran apoyo al desarrollo de la presente tesis.
En particular, hay un estudio de la Universidad Politcnica de Timisoara en
Rumania en el cual se propone el modelo de un algoritmo gentico
eminentemente cuntico. El funcionamiento de este algoritmo sigue estando
inspirado en los procesos de evolucin y seleccin natural, sin embargo con
ciertos cambios que lo permitan amoldarse ms a la lgica y principios de la
mecnica cuntica.
Este algoritmo gentico cuntico tiene como motor de bsqueda al algoritmode Grover, el cual sirve para realizar una veloz y eficiente seleccin de las
mejores soluciones en cada iteracin.
Respecto a los algoritmos genticos y a los algoritmos GRASP, las
investigaciones y estudios que se han realizado son bastante amplios y
diversos. Hay una gran cantidad de aplicaciones prcticas a los algoritmos
genticos, desde optimizacin de rutas hasta planeamiento de carteras de
proyectos de inversin.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
21/96
13
Las investigaciones que han sido de gran ayuda para la elaboracin de la
presente tesis son aquellos que tratan de computacin cuntica, algoritmos
cunticos, su formulacin, fundamento e implementacin. Fundamentalmente
aquellas que logran una cierta unin entre los algoritmos clsicos y cunticos
en lo que son conocidos como algoritmo hbridos. Dado que en esta tesis se
plantea la implementacin del algoritmo cuntico de Grover en un entorno
clsico, es de mucha ayuda conocer los resultados de investigaciones ya
realizadas, que han intentado y en muchos casos armonizar dos paradigmas
tan diferentes.
1.3.1 Investigaciones realizadas
Implementing Quantum Genetic Algorithms: a Solution based on Grover
Algorithm
Esta investigacin llevada a cabo en la Universidad Politcnica de Timisoara
en Rumania, plantea que es posible una conjuncin amistosa entre dos
ramas de las ciencias de la computacin altamente prometedoras: la
computacin cuntica y los algoritmos genticos. [5]
Para ello se apoyan en lo que se conoce como Programacin Cuntica
Evolutiva (Quantum Evolutionary Programming QEP), la cual viene a ser
una nueva rama en las ciencias de la computacin que engloba e incluye la
lgica y fundamento de los algoritmos genticos en conjunto con los principios
de la mecnica y computacin cuntica. Lo que la investigacin plantea es
que es posible realizar un algoritmo cuntico gentico (Quantum Genetic
Algorithm- QGA), si bien, tambin es descrita como una tarea ardua, pues en
la actualidad no existe ninguna base, ni idea coherente sobre la cual plantear
uno.
En la computacin clsica, la poblacin de individuos (soluciones candidatas)
que se selecciona inicialmente y la cual ir siendo mejorada
progresivamente a lo largo de las iteraciones, es solo una muestra del
universo total de posibles soluciones al problema. Esto es un prerrequisito
indispensable para todo algoritmo gentico ya que, una de los objetivos de
este algoritmo es evitar realizar clculos exhaustivos, por ejemplo, procesar
todas las posibles soluciones al problema. Esto tomara un tiempo
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
22/96
14
computacional excesivo y el algoritmo perdera su eficiencia que lo
caracteriza resolviendo problemas.
Sin embargo, esta investigacin plantea que un algoritmo gentico cuntico
debe incluir toda la poblacin para poder encontrar de forma efectiva y exacta
la mejor solucin de todas. En este caso, no existe el problema del excesivo
tiempo computacional requerido para seleccionar las mejores soluciones de
toda la poblacin, ya que la eficiencia del algoritmo de Grover logra que
incluso para grandes cantidades de individuos, el ahorro de tiempo
computacional sea notable. Esta diferencia en cuanto al tamao de la
poblacin inicial es una de las diferencias que presenta el algoritmo gentico
cuntico frente a su homlogo clsico [5]
Los objetivos principales de la investigacin fueron:
Plantear un modelo cuntico del algoritmo gentico clsico. [5]
Evaluar la reduccin del algoritmo gentico cuntico a una bsqueda
cuntica con el algoritmo cuntico de Grover. [5]
En el paper se describen principalmente:
Las fases de un algoritmo cuntico gentico cuntico en contraste al
algoritmo gentico clsico.
Pseudocdigo del algoritmo gentico cuntico.
Modelo matemtico del algoritmo gentico cuntico
Formulacin de la funcin orculo que se usar en el algoritmo
cuntico de Grover, el cual forma parte del algoritmo gentico
cuntico.
Finalmente las conclusiones de la investigacin fueron las siguientes:
Es posible reducir cualquier problema que se trate de resolver con el
algoritmo gentico clsico, a una bsqueda cuntica del individuo con
mayor funcin de fitness. Sin destruir la correlacin entre los valores
de fitness individuales [5]
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
23/96
15
El algoritmo de Grover resulta especialmente efectivo al resolver los
problemas a los cuales est dirigido el algoritmo gentico cuntico. Es
un buen ejemplo de una aplicacin efectiva de bsqueda usando
principios de computacin cuntica [5]
El mtodo cientfico usado por el equipo de la Universidad Politcnica de
Timisoara fue deductivo. En base al conocimiento general sobre el algoritmo
gentico clsico, se plante un nuevo modelo inspirado en el mismo, el cual,
sin embargo, tom principios de la computacin cuntica, a fin de lograr una
mayor eficiencia y mejores resultados a los problemas que se buscaban
solucionar con la aplicacin de los algoritmos genticos clsicos.
Hybrid Quantum-Classical Computing with Applications to Computer
Graphics
Otra investigacin que utiliz los conceptos de computacin cuntica y
computacin clsica de forma conjunta fue la que realizaron Marco
Lanzagorta y Jeffrey K. Uhmann en el Departamento de Ciencias de la
Computacin de la Universidad de Missouri-Columbia.
Esta investigacin plante que un algoritmo clsico poda ser aumentado
para explotar los beneficios de la computacin cuntica.
Particularmente se utiliz el algoritmo cuntico de Grover para incrementar la
funcionalidad de un algoritmo de bsqueda lineal, y luego se describieron las
consideraciones necesarias para aplicar el algoritmo hbrido resultante en
geometra computacional y grficos en computacin. [6]
En esta investigacin no se us un lenguaje de programacin en particular, el
anlisis de los algoritmos fue realizado a nivel abstracto sin llegar a suimplementacin explcita. El paper publicado con los resultados de la
investigacin, se llam Hybrid Quantum-Classical Computing with
Applications to Computer Graphics (Computacin Hbrida Cuntica-Clsica
con Aplicaciones para Grficos de Computadora)[6]
La investigacin de Lanzagorta y Uhmann es relevante en esta tesis pues se
hace uso del algoritmo de Grover para potenciar un algoritmo de bsqueda
clsico, es decir, se hace uso del algoritmo de Grover aplicado a un entornoclsico. Esto es precisamente, ser un aspecto fundamental en la
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
24/96
16
implementacin del algoritmo de Grover durante la fase de experimentacin
de esta tesis.
El mtodo cientfico utilizado por Lanzagorta y Uhmann fue deductivo. A partir
del conocimiento sobre computacin cuntica y clsica, particularizaron
algoritmos hbridos que contuvieran ciertas caractersticas particulares de
ambas.
Designing and Implementing Small Quantum Circuits and Algorithms
Este estudio realizado por Ben Travaglione del Laboratorio de Computadoras
del Centro para la Computacin Cuntica en la Universidad de Cambridge en
el Reino Unido provee conocimiento necesario para la formulacin de
sencillos algoritmos en pequeas computadoras cunticas que no necesiten
de ms que algunos pocos qubits. [4]
Travaglione public un paper donde expona los resultados del estudio que
realiz, el paper se llam Designing and Implementing Small Quantum
Circuits and Algorithms (Diseando e Implementando Pequeos Circuitos y
Algoritmos Cunticos). [4]
En la investigacin, se plantearon y definieron algunas estructuras de datos
matemticas que permitan guardar la informacin de un sistema cuntica y
cada uno de sus elementos. Los algoritmos que se plantean son realizados
bajo la transicin de los estados de qubits a travs de compuertas lgicas y
operaciones simples basadas directamente sobre las leyes de la mecnica
cuntica. [4]
El mtodo cientfico usado por Travaglione fue deductivo. Concentr parte delconocimiento general de las leyes de la mecnica cuntica y tom
formulaciones matemticas ya existentes para determinar que transiciones
seran las ms adecuadas para plantear un algoritmo sencillo.
En base a la informacin de las tres investigaciones presentadas, se elabor
el siguiente cuadro comparativo donde se resumen las caractersticas
principales de cada uno de los estudios.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
25/96
17
Implementing
Quantum Genetic
Algorithms: A
Solution based
on Grover
Algorithm
Hybrid Quantum-
Classical
Computing with
Applications to
Computer Graphics
Designing and
Implementing Small
Quantum Circuits
and Algorithms
Mtodo
Cientfico
Deductivo Deductivo Deductivo
Herramientasde
programacin
usadas
Pseudo cdigoPseudo cdigo
Pseudo cdigo
Relacin con
la tesis
Hace uso del
algoritmo
cuntico de
Grover para
formular un
algoritmo
gentico anlogo
a su contraparte
clsica, pero con
caractersticas
eminentemente
cunticas. Demanera similar,
en esta tesis se
usar el
algoritmo de
Grover, pero para
potenciar un
algoritmo
gentico clsico.
Plantea algoritmos
que contienen
caractersticas
tanto de la
computacin
clsica como de la
cuntica.
Precisamente
utiliza el algoritmo
de Grover para
potenciar un
algoritmo clsico.De manera similar,
en esta tesis ser
necesario
implementar el
algoritmo de
Grover en un
entorno clsico.
Presenta principios
bsicos en la
formulacin de
algoritmos
cunticos sencillos.
Este conocimiento
ser til, pues
brindar la
perspectiva
necesaria en la
formulacin del
algoritmo deGrover, as como su
implementacin.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
26/96
18
El
conocimiento
generado es
reutilizable?
S S S
Presenta
conceptos de
mecnica
cuntica?
S S S
Hace uso
del algoritmo
de Grover?
S S No
Combina el
entorno
clsico y
cuntico?
No S No
Tabla 1.1: Cuadro Comparativo de las Investigaciones Encontradas
1.4 Descripcin y Sustentacin de la Solucin
La solucin que se plantea para mejorar la eficiencia en la seleccin de
individuos ptimos en la poblacin inicial de un algoritmo gentico, es utilizar
el algoritmo cuntico de Grover y, posteriormente realizar una anlisis
comparativo respecto a un algoritmo clsico que se usa hoy en da para el
mismo propsito: el algoritmo GRASP.
Para el desarrollo de esta investigacin se llevarn a cabo los siguientes
pasos:
Se investigar y recopilar informacin sobre los conceptos fsicos y
matemticos propios de la mecnica cuntica que influyen
directamente en las caractersticas y el comportamiento de una
computadora cuntica. En particular, se investigar sobre el
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
27/96
19
fundamento fsico y matemtico del algoritmo de Grover a fin de poder
implementarlo en un entorno clsico.
Se plantear una hiptesis que relacione y compare las
implementaciones del algoritmo de Grover y el algoritmo GRASP,
ambas aplicadas a la seleccin de individuos ptimos en la poblacin
inicial del algoritmo gentico.
Se disear un experimento que permita la comparacin objetiva entre
ambas implementaciones de los algoritmos. El diseo de este
experimento incluye la determinacin de los factores que se usarn
para realizar el anlisis comparativo y la definicin de la funcin de
fitness del algoritmo gentico genrico.
Una vez se haya preparado la estructura del experimento a realizar, se
proceder a la implementacin de los algoritmos. Este proceso
presupone la definicin de las estructuras de datos necesarias y, en el
caso del algoritmo de Grover, el modelo matemtico del mismo. Antes
de realizar la implementacin se proceder al diseo en pseudocdigo
de ambos algoritmos. Cuando el diseo de los dos algoritmos hayaterminado, se proceder a la eleccin del lenguaje de programacin, y,
finalmente, se proceder a la implementacin propiamente dicha.
Tras culminar las implementaciones del algoritmo cuntico de Grover y
del algoritmo GRASP, se proceder a la ejecucin del experimento
diseado. A partir de los resultados obtenidos se realizar la
experimentacin numrica, el anlisis comparativo entre ambas
implementaciones y las conclusiones finales sobre las caractersticasde complejidad, eficacia y eficiencia de dichas implementaciones.
El desarrollo de esta investigacin permitir explicar de forma terica y
prctica, gracias al diseo e implementacin de un algoritmo cuntico en un
entorno clsico, cmo es el funcionamiento y cules son las caractersticas de
un algoritmo cuntico (en este caso el algoritmo de Grover), resaltando las
diferencias entre ste y un algoritmo clsico (en este caso, un algoritmoGRASP).
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
28/96
20
La comprensin de las leyes que rigen el funcionamiento de un algoritmo
cuntico servir de ayuda didctica a toda persona interesada en una
introduccin al campo de la computacin cuntica.
Finalmente, la aplicacin del algoritmo cuntico de Grover a un algoritmo
gentico genrico, deja la puerta abierta a futuras optimizaciones del propio
algoritmo gentico, o, ms all, tratar de replantear su fundamento, como por
ejemplo est haciendo la nueva rama de la Programacin Cuntica Evolutiva.
Permitir adems ampliar la perspectiva del lector y sugerir el posible diseo
de un modelo hbrido entre la programacin clsica y la programacin
cuntica a fin de resolver problemas que, hoy en da, solo son enfocados
desde el punto de vista clsico.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
29/96
21
2 Captulo II: Aporte de la Investigacin
2.1 Aportes especficos
El presente proyecto de tesis presenta los siguientes aportes especficos:
Recopila y explica de manera resumida y sucinta los conceptos fsicos
y matemticos que rigen el funcionamiento de una computadora
cuntica. Siendo la computacin cuntica una rama de las Ciencias de
la Computacin que se encuentra en pleno desarrollo, esta tesis se
presenta como un primer apoyo para toda persona que se encuentre
interesada en dedicarse a esta rea. Dado que los conceptos de la
mecnica cuntica son altamente complejos y abstractos, resultan dedifcil comprensin para un lector que est comenzando a adentrarse
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
30/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
31/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
32/96
24
2.2.2 Planteamiento de Hiptesis:
Segunda fase del proyecto de tesis. Una vez que se ha recopilado
conocimiento sobre computacin cuntica puede plantearse una hiptesis la
cual ser contrastada despus de realizar la experimentacin y a partir de la
verdad o falsedad de esta hiptesis generar nuevo conocimiento debidamente
sustentando. Consta del siguiente proceso:
Formulacin de la hiptesis:
En este proceso, se propondr una hiptesis o supuesto que responder
de forma parcial la interrogante propuesta. Ser despus en la fase de
conclusin cuando la hiptesis, si es aceptada, responder la interrogante
de forma total.
2.2.3 Experimentacin
Tercera fase del proyecto de tesis. Constituye a la vez la etapa de mayor
duracin y complejidad durante el desarrollo del proyecto. Es en esta etapa
donde se aplicar todo el conocimiento recogido en las dos etapas anteriores
para disear e implementar el algoritmo cuntico de Grover y el algoritmo
GRASP. Consta de los siguientes procesos:
Diseo del proceso Experimental
En este proceso se determinarn las caractersticas del experimento a
realizar que permitir obtener los datos necesarios para llevar a cabo la
experimentacin numrica. Este experimento est relacionado con el
proceso de seleccin de la poblacin inicial del algoritmo gentico.
Adems, se definir el mtodo estadstico adecuado que permita
contrastar los resultados obtenidos del experimento.
Tambin se definir la funcin de fitness del algoritmo gentico genrico al
cual se aplicarn el algoritmo de Grover y el algoritmo GRASP. Por ltimo,
en este proceso tambin se determina qu caractersticas de los
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
33/96
25
algoritmos (ya implementados) pueden ser usadas como factores de
comparacin.
Diseo e Implementacin de los Algoritmos
En este proceso se definen las estructuras de datos que se usarn en eldiseo e implementacin de los algoritmos. En el caso del algoritmo
cuntico de Grover se cuenta con un paso adicional: es necesario analizar
su modelo fsico-matemtico.
Luego se realizar el diseo de cada uno de los algoritmos usando
pseudocdigo, en el caso del algoritmo cuntico de Grover, este diseo
debe considerar su inclusin en un entorno clsico. Por ltimo, ambos
diseos sern implementados (codificados) utilizando un mismo lenguaje
de programacin.
Ejecucin de los Experimentos:
En este proceso, una vez que ya se tienen los algoritmos implementados,
se siguen los pasos definidos en el experimento principal. Tras la
ejecucin de este, se recopilarn y almacenarn los resultados exactos,
tal cual fueron obtenidos del experimento. Con estos datos se ejecuta la
experimentacin numrica.
2.2.4 Conclusin
ltima fase del proyecto de tesis. Es la etapa de mayor anlisis deductivo en
base a los resultados obtenidos de la experimentacin. Los resultados son
empleados como datos de entrada del experimento numrico que permitir
contrastar los datos reales con los datos supuestos de la hiptesis inicial.
Adems se realizar el anlisis comparativo de las implementaciones y se
determinarn las conclusiones finales del proyecto de tesis.
Consta de los siguientes procesos:
Anlisis de los resultados obtenidos de la experimentacin numrica:
Este proceso involucra un anlisis completo y exhaustivo de los resultados
que devuelva la experimentacin numrica
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
34/96
26
Anlisis comparativo de las Implementaciones:
Este proceso consta de un anlisis basado en las experiencias que hayan
sucedido durante el desarrollo de la investigacin, y los resultados
numricos obtenidos tanto del experimento principal como de la
experimentacin numrica. El anlisis comparativo tiene como objetivo
contrastar las implementaciones de los dos algoritmos.
Redaccin de las conclusiones de la investigacin:
Esto incluye los resultados del anlisis comparativo y la aceptacin o
rechazo de la hiptesis.
2.3 Lista de Resultados Esperados
Durante el progresivo avance del proyecto de tesis se obtendrn una serie de
resultados que en conjunto permitirn cumplir los objetivos propuestos
inicialmente. Cuando el proyecto de tesis haya finalizado, se espera haber
obtenido los siguientes resultados:
A. Definicin de la poblacin inicial del algoritmo gentico.
B. Definicin de la funcin de fitness del algoritmo gentico.
C. Diseo en pseudocdigo de un algoritmo GRASP aplicado a la
seleccin de individuos ptimos en la poblacin del algoritmo gentico.
D. Implementacin del algoritmo GRASP.
E. Modelo Matemtico del algoritmo cuntico de Grover aplicado a la
seleccin de individuos ptimos en la poblacin del algoritmo gentico.
F. Diseo en pseudocdigo del algoritmo cuntico de Grover en un
entorno clsico.
G. Implementacin del algoritmo cuntico de Grover en un entorno
clsico.
H. Definicin de factores de comparacin entre las implementaciones de
los dos algoritmos.
I. Resultados de la Experimentacin Numrica.
J. Conclusiones de la idoneidad del uso del algoritmo cuntico de Grover
en la seleccin de individuos ptimos de la poblacin de un algoritmo
gentico genrico.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
35/96
27
2.4 Planteamiento de hiptesis.
La computacin cuntica presenta una serie de novedosas caractersticas las
cuales la hacen una opcin sumamente atractiva en lo que respecta a
procesamiento de grandes cantidades de informacin y bsqueda de
soluciones a problemas altamente complejos.
Dada la notable eficiencia lograda por el algoritmo de Grover en bsquedas
dentro de un universo con una gran cantidad de elementos, surge la pregunta
Puede aplicarse el algoritmo cuntico de Grover para realizar bsquedas
que a travs de la computacin clsica toman un tiempo considerablemente
alto, el cual puede incluso considerarse absurdo? Puede el algoritmo
cuntico de Grover usarse en problemas clsicos?
Como respuesta para estas dos preguntas, se propone en esta tesis, aplicar
el algoritmo cuntico de Grover para realizar la seleccin de individuos
ptimos en la poblacin inicial de un algoritmo gentico. Este procedimiento,
al formar parte de un algoritmo gentico, tiene de forma inherente un contexto
clsico al cual debe adaptarse el algoritmo de Grover. Surge entonces unanueva duda, el algoritmo cuntico de Grover puede aplicarse de forma
efectiva en un entorno clsico como el de un algoritmo gentico?
Por ello plantearemos la siguiente hiptesis:
Hiptesis 1: Es posible la implementacin del algoritmo cuntico de Grover en
un entorno clsico, de tal forma que pueda aplicarse de forma efectiva en un
algoritmo clsico, como es un Algoritmo Gentico.
Asumimos esta hiptesis por verdadera, dado que existen investigaciones
realizadas anteriormente donde, en efecto, se pudo lograr el diseo de
modelos de programacin hbridos, los cuales usaban lo mejor tanto del
paradigma de programacin clsica, como del paradigma de programacin
cuntica. (Seccin 1.4 - Estado del Arte).
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
36/96
28
Dado que la hiptesis 1 es asumida como verdadera, surge la siguiente
pregunta: Si en realidad el algoritmo cuntico de Grover puede aplicarse en
un entorno clsico (en este caso, un algoritmo gentico), Es el algoritmo
cuntico de Grover ms eficiente que los algoritmos clsicos de
bsqueda usados por un algoritmo gentico? A raz de esta pregunta, es
necesario realizar una comparacin, y antes que eso, es necesario elegir el
algoritmo clsico contra el cual se realizara la comparacin.
Se eligi como candidato para la comparacin a un algoritmo GRASP. Esto
debido a que el algoritmo GRASP ha sido durante mucho tiempo (hasta la
fecha) uno de los que han dado resultados ms exitosos en lo que respecta a
su aplicacin en la seleccin de poblacin de un algoritmo gentico.
Por tanto, para poder realizar esta comparacin, es necesario definir las
caractersticas con las cuales sern comparados los dos algoritmos. Los
factores de comparacin generales que se proponen son los siguientes:
La eficaciadel algoritmo cuntico de Grover y del algoritmo de GRASP en la
seleccin de individuos ptimos de la poblacin del algoritmo gentico. La
funcin de fitness que se definir para el algoritmo gentico genrico nos
permitir cuantificar qu individuos seleccionados por los algoritmos son
efectivamente los mejores. Por lo tanto, el algoritmo que seleccione los
mejores individuos tendr el mayor grado de eficacia.
La eficiencia de los algoritmos tambin jugar un papel importante en la
comparacin. Si la eficacia de ambos algoritmos puede llegar a considerarse
equiparable, ser la eficiencia el factor decisivo en la comparacin de ambos.
Para la comparacin de la eficiencia de ambos algoritmos, se considerar la
cantidad de operaciones (clsicas para el algoritmo GRASP y cunticas parael algoritmo de Grover) necesarias para terminar la ejecucin efectiva de cada
uno de ellos. A fin de, evitar detalles innecesarios en cuanto el tiempo de
ejecucin de ambos algoritmos, se plantea la siguiente hiptesis:
Hiptesis 2: El tiempo de ejecucin de una operacin cuntica del algoritmo
de Grover es igual al tiempo de ejecucin de una operacin clsica del
algoritmo GRASP.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
37/96
29
Esta hiptesis es necesaria aceptarla como verdadera, debido a la carencia
de una computadora cuntica sobre la cual ejecutar el algoritmo de Grover.
La complejidad de la implementacin de los algoritmos, es decir, cun difcil
resulta ser la realizacin del proceso. Cada uno de los algoritmos tiene tras de
s una serie de fundamentos inherentes los cuales pueden hacer ms o
menos difcil su diseo e implementacin. De forma aparente, un algoritmo
GRASP es menos complejo de integrar en un algoritmo gentico, dada la
cantidad de veces que esta integracin ha resultado exitosa en numerosos
estudios y casos de aplicacin. De forma contraria, la integracin del
algoritmo de Grover y un algoritmo de Grover es compleja dado el escaso
estudio al respecto y la nulidad de casos prcticos del tema. Sin embargo, se
cuantificar la complejidad tanto del algoritmo GRASP como del algoritmo
cuntico de Grover, a fin de poder considerar este factor dentro del proceso
de comparacin. Esta cuantificacin estar basada fundamentalmente en la
experiencia de la implementacin que se seguir en esta tesis
Entonces cada uno de los tres criterios mencionados tendrn asociados un
factor por cada uno de los algoritmos, estos factores permitirn hacer la
comparacin entre los dos algoritmos a utilizar. Es decir, se definen:
Reficacia: Factor de eficacia de la aplicacin del algoritmo GRASP.
Reficiencia: Factor de eficiencia de la aplicacin del algoritmo GRASP.
Rcomplejidad: Factor de complejidad de la implementacin del algoritmo
GRASP.
Geficacia: Factor de eficacia de la aplicacin del algoritmo cuntico de Grover.
Geficiencia: Factor de eficiencia de la aplicacin del algoritmo cuntico de
Grover.
Gcomplejidad: Factor de complejidad de la implementacin del algoritmo
cuntico de Grover.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
38/96
30
Y se definen adems dos factores que representan en conjunto el grado de
bondad de cada una de las implementaciones de los algoritmos:
RB: Factor de bondad de la implementacin del algoritmo GRASP.
RB=Reficacia+ Reficiencia- Rcomplejidad
GB: Factor de bondad de la implementacin del algoritmo cuntico de Grover.
GB =Geficacia+ Geficiencia- Gcomplejidad
Por tanto, estos sern los factores que indicarn si un algoritmo (y por
extensin, su implementacin) es mejor que otra. Lo cual lleva al
planteamiento de la siguiente hiptesis:
Hiptesis 3: El grado de bondad de la aplicacin del algoritmo cuntico de
Grover es igual al grado de bondad de la aplicacin del algoritmo GRASP,
ambos aplicados a la seleccin de individuos ptimos de la poblacin inicial
de un algoritmo gentico.
RB = GB
Del planteamiento de esta hiptesis podra surgir la duda: Por qu asumir
que ambos algoritmos tendrn un igual grado de bondad? Esto tiene su
razn en que, a este punto, an no se han llevado a cabo las
implementaciones de los algoritmos, y tampoco se han aplicado ambos a la
seleccin de individuos de la poblacin de un algoritmo gentico. No se puede
asegurar, por tanto, precipitadamente que un algoritmo ser necesariamente
mejor que el otro. Por ello resulta ms sensato determinar que inicialmente
ambas implementaciones tienen igual grado de bondad, y, tras realizar la
experimentacin numrica, si esta hiptesis llega a ser descartada, se sabr
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
39/96
31
en efecto que una es mejor que otra, lo cual llevar a la formulacin de una
nueva hiptesis. Sin embargo es necesario recordar que podr plantearse esa
nueva hiptesis si y solo si en el caso la Hiptesis 3 es rechazada.
Las tres hiptesis planteadas en esta seccin sern asumidas por ciertas
hasta la fase de Conclusin. En esta fase, los resultados de la
experimentacin numrica permitirn corroborar la verdad de estas hiptesis
o la falsedad de las mismas.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
40/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
41/96
33
seleccin. La eficacia dada por el valor de la funcin de fitness de los
individuos seleccionados, y, la eficiencia hallada a partir de la cantidad de
operaciones que se necesitaron.
Posteriormente, se realizar la experimentacin numrica. Se usar una
prueba estadstica T-Student para contrastar los resultados numricos de las
ejecuciones del experimento, primero usando el algoritmo de Grover y luego
el algoritmo GRASP. El objetivo de la experimentacin numrica es
determinar qu algoritmo es el mejor de ambos. La experimentacin numrica
cuenta con dos fases:
En la primera fase, se plantea como hiptesis que el valor de bondad
de los individuos seleccionados por ambos algoritmos es el mismo. Es
decir que ningn algoritmo es mejor. Si se logra rechazar esta
hiptesis, se procede con la fase 2. Si no se logra rechazar la
hiptesis, se debe concluir que ningn algoritmo es mejor que el otro.
Se llega a la segunda fase de la experimentacin numrica, si es que
en la fase 1 se garantiz que efectivamente un algoritmo es mejor que
el otro. En este caso, se compararn las medias de los grados de
bondad obtenidos por cada algoritmo a fin de determinar cul es el
mejor.
A continuacin se detallar la estructura de cada uno de estos experimentos:
3.1.1 Seleccin de Individuos ptimos (Experimento-1)
Este ser el experimento principal de la investigacin. Este experimento ser
aplicado a la fase de seleccin de la poblacin inicial del algoritmo gentico.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
42/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
43/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
44/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
45/96
37
Seleccin de la poblacin inicial
Todo algoritmo gentico cuenta con una poblacin, es decir un conjunto de
individuos, siendo cada uno de estos una solucin potencial al problema que
se busca resolver.
Todo problema que busca resolver un algoritmo gentico tiene un universo
general de soluciones, las cuales son generalmente combinaciones de una
serie de elementos dados. La evaluacin de cada una de las posibles
combinaciones es una tarea excesiva que ocupara una cantidad de tiempo
irracional en la mayora de casos. Es por eso que los algoritmos genticos
cuentan con una poblacin inicial, es decir, un subconjunto del universo desoluciones, de preferencia, un subconjunto que incluya las mejores soluciones
candidatas. De ah la importancia en la fase de seleccin de la poblacin
inicial de un algoritmo gentico.
Esta fase de seleccin resulta ser un excelente caso en el cual aplicar el
algoritmo cuntico de Grover y el algoritmo GRASP, es por ello que el
experimento principal fue diseado con el objetivo de seleccionar la poblacin
inicial a partir del universo total de soluciones candidatas.
Ahora es necesario definir cada individuo para poder definir, eventualmente,
el universo total de soluciones candidatas.
Cada individuo del universo contiene lo que se conoce como un cromosoma,
y un cromosoma viene a ser un conjunto de genes. A su vez, cada gen
contiene parte de la informacin del individuo, informacin vital para
determinar si el individuo es en realidad una posible solucin al problema y si
es as, para determinar cun buena es su solucin. [13]
Para facilitar la formulacin del algoritmo gentico, se tratar de hacer de esta
tarea lo ms genrica posible.
Se define que un individuo cuenta con un cromosoma que incluye N genes y
tiene la siguiente estructura:
Gen1 Gen2 Gen3 Gen4 Gen5 Gen6 .., Gen N
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
46/96
38
Ahora toca decidir la estructura que tendr cada gen. La estructura inicial
propuesta por John Holland (conocido como el padre de los algoritmos
genticos) estaba dada por cadenas de bits [14]. Se usar una representacin
anloga, cada gen ser un bit, el cual podr tener el valor cero o uno. El valor
cero indica que el gen se encuentra apagado, es decir, no proporciona
informacin al cromosoma, por el contrario, si el valor es uno, el gen se
encuentra prendido y s contribuye a la informacin total del cromosoma.
Cada gen tambin tendr cierta informacin adicional, inherente a cada uno
de ellos. Se define lo siguiente:
Definicin 1:
Cada uno de los genes de un cromosoma tiene asociado una triada de
tres valores: un factor positivo, un factor negativo y un factor de
ponderacin.
Estos valores sern hallados de forma aleatoria pues no hay forma de
asignarles valores exactos sin el contexto de una aplicacin real. Adems la
naturaleza aleatoria de estos valores permitir obtener resultados ms
objetivos en el experimento. Cabe resaltar que tanto el factor positivo y el
factor negativo sern reales dentro de un rango especfico, mientras que el
factor de ponderacin ser siempre un nmero real entre cero y uno.
Tambin se define lo siguiente:
Definicin 2:
Existe una funcin matemtica F, la cual dado el valor de los genes de
un cromosoma, as como los factores positivos, negativos y de
ponderacin de cada gen, puede calcular el grado de bondad del
cromosoma. Esta funcin ser llamada: funcin de fitness
Adems, el grado de bondad de un cromosoma es un valor numrico exacto
que determina cun bueno es el individuo, es decir cun buena es susolucin.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
47/96
39
Ahora que ya se tienen definida la estructura de los cromosomas y genes, es
necesario resolver una pregunta de suma importancia que ha quedado
pendiente desde el principio: Cul es el problema que se est tratando de
resolver?
Como se ha venido mencionando, no existe un problema real al cual se est
aplicando el algoritmo gentico, de ah que se le agregue el adjetivo genrico.
Por tanto plantearemos el problema como: Cul es el cromosoma que
tiene el mayor grado de bondad?
Sin embargo se colocar una restriccin a todos los candidatos para ser una
solucin real. Si no existiera esta restriccin, sera fcil hallar la mejor
solucin, sera simplemente la suma de todos los genes con mayor factor
positivo. La restriccin que se colocara es: la suma de los factores de
ponderacin de los genes que tengan valor uno, no puede exceder el valor
promedio de factores de ponderacin de los N genes. El promedio de factores
de ponderacin se halla fcilmente, dado que el menor valor posible es que
todos los genes tengan factor de ponderacin igual a cero, y el mayor valor,
que todos los factores de ponderacin sean igual a uno, el valor promedio de
factores de ponderacin es el siguiente:
Valor promedio de factores de ponderacin= (1 x N + 0 x N) / 2 = N/2
En resumen, la restriccin a toda verdadera solucin del problema en
cuestin, es que la suma de todos los factores de ponderacin de los genes
prendidos (con valor en uno), no exceda en valor a la mitad de la cantidad
total de genes.
Como puede verse, el valor de N determina la cantidad de posibles
soluciones y por tanto el tamao del universo a considerar. Precisamente este
valor N es el parmetro que se defini en el experimento principal para
delimitar el tamao del universo sobre el cual trabajarn tanto el algoritmo
GRASP como el algoritmo de Grover.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
48/96
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
49/96
41
3.2.2 Definicin del Algoritmo GRASP
En este apartado se definirn las principales caractersticas del Algoritmo
GRASP que se utilizar para calcular la poblacin inicial del algoritmo
gentico. Tomando en cuenta las definiciones del algoritmo gentico, toca
establecer las estructuras de datos a utilizar en el diseo y posterior
implementacin del algoritmo GRASP.
En lo sucesivo el Algoritmo GRASP ser identificado con las siglas AGR.
El algoritmo GRASP consta de una serie continua de iteraciones, en las
cuales trata de seleccionar una buena solucin al problema. Para no dejarse
llevar por lo que se conoce criterio goloso y elegir equvocamente un
mximo local, el algoritmo GRASP crea una lista restringida de candidatos
usando un factor aleatorio. Es precisamente esta aleatoriedad la que hace del
algoritmo GRASP una alternativa con superior eficacia respecto a una gran
cantidad de algoritmos heursticos.
La cantidad de iteraciones n que se realizarn con el algoritmo GRASP ser
determinada antes de la ejecucin del experimento principal. Se realizar un
proceso de calibracin del algoritmo GRASP, esto supondr la ejecucin del
algoritmo GRASP varias veces, cada una con un diferente valor de n hasta
determinar en promedio, qu valor halla buenos resultados y en un tiempo
aceptable.
El algoritmo GRASP tambin hace uso de un parmetro importante en la
creacin de la lista restringida de candidatos. Este parmetro estsimbolizado por la letra griega y se le conoce como factor de relajacin.
El valor de este parmetro tambin ser hallado con un proceso de
calibracin previo al experimento principal de la investigacin, pero se tendr
en cuenta valores previos utilizados en aplicaciones similares a la presente.
Finalmente, es necesario determinar las estructuras de datos que se
necesitarn para la implementacin del algoritmo GRASP, estas estructuras
de datos podrn tambin ser utilizadas por el Algoritmo Cuntico de Grover.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
50/96
42
Definicin de las Estructuras de Datos
Para el correcto diseo e implementacin del algoritmo GRASP, es necesario
contar con las siguientes estructuras de datos:
a) Una estructura de Datos para representar los Genes. Esta es la
estructura de datos primaria y de ms bajo nivel. La entidad u objeto
Gen deber contar con los siguientes atributos: Nmero de Gen
(nmero entero), Valor (binario) y Grado de Bondad del Gen (un
nmero real).
b) Una estructura de Datos para representar los Cromosomas: Estaentidad representar cada individuo y simboliza una posible solucin.
La entidad u objeto Cromosoma deber contar con los siguientes
atributos: Una lista de Genes y el Grado de Bondad del Individuo (un
nmero real).
c) Una estructura de Datos para los datos de la triada de cada Gen: Esta
entidad tendr los valores de los factores de la triada para cada Gen.
Esta estructura ser constante por cada ejecucin completa del
algoritmo GRASP y ser generada cada vez que se forme un nuevo
universo de soluciones. Esta estructura de datos, ser una lista de N
(nmero de genes) objetos Triada. Cada objeto Triada tendr los
atributos: Factor positivo, Factor Negativo y Factor de Ponderacin,
siendo todos, valores reales.
Estos son los factores necesarios para la futura formulacin del diseo en
pseudocdigo del algoritmo GRASP.
3.2.3 Definicin del Algoritmo Cuntico de Grover
En este apartado se definirn las principales caractersticas del Algoritmo
Cuntico de Grover, el segundo algoritmo candidato a utilizar para la
seleccin del a poblacin inicial del algoritmo gentico. A partir de las
definiciones del algoritmo gentico establecidas en el apartado anterior, se
definir el modelo matemtico del algoritmo cuntico de Grover y las
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
51/96
43
estructuras de datos necesarias para su diseo e implementacin en un
entorno clsico.
En lo sucesivo el Algoritmo Cuntico de Grover ser identificado con las
siglas ACG.
El ACG tiene un fundamento completamente diferente al del Algoritmo
GRASP. En esta seccin se comprender los aspectos ms importantes que
se usarn en su diseo e implementacin.
Tanto en el AGR como en el ACG se parte de un universo total de posibles
soluciones. El objetivo es encontrar la mejor solucin, es decir realizar una
bsqueda en todo ese universo hasta encontrar un nico resultado. Para
llevar a cabo esto, el algoritmo de Grover usa lo que se conoce como el
orculo.
Por el momento, lo ms adecuado es considerar al orculo como una caja
negra, que de una forma u otra, es capaz de identificar la solucin ptima al
problema [15].
Se defini antes que se tendr una cantidad de N genes en el cromosoma de
cada individuo, y que cada uno de esos genes poda tomar el valor de cero o
uno, y, por ello, el universo total de posibles soluciones era de 2N elementos.
Utilizando algunos conceptos claves de computacin cuntica se puede
definir lo siguiente:
Definicin 4:
Si se tiene un universo de 2Nelementos, es posible formular un sistema
cuntico que lo represente. Este sistema cuenta con una superposicin
de N estados, cada uno de los cuales es un qubit.
Adems es necesario definir formalmente como se considerar un qubit. Se
tomar la definicin ms general, encontrada en el libro de Nielsen y Chuang
[15]
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
52/96
44
Definicin 5:
Un qubit es un estado cuntico que puede tomar el valor de cero o uno.
Usando la notacin de Dirac, un qubit puede estar en el estado |0> en
el estado |1>.
Entonces, si por ejemplo, N tuviera el valor de 2, se tendran 4 elementos,
representados de la siguiente forma:
|n0> = |0>|0>
|n1> = |0>|1>
|n2> = |1>|0>
|n3> = |1>|1>
Una representacin bastante similar a la que se hara con conceptos de
computacin clsica, la nica diferencia est en la concepcin de qubits como
estados, en vez de bits convencionales.
Usando las definiciones anteriores, ahora es posible describir mejor la
naturaleza del orculo:
Definicin 6:
Cada estado |ni> tiene asociado un orculo Oital que:
Oi|ni> = - |ni>
Oi|nj> = +|nj>, donde i j
Es decir, si se aplica el orculo a su estado correspondiente, el orculo
provoca un cambio de fase en dicho estado. Podemos considerar que este
cambio de fase se manifiesta como un cambio de signo.
Por otra parte, si se aplica el orculo a algn otro estado, el orculo no causa
ningn cambio.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
53/96
45
Con todos los conceptos mencionados anteriormente podemos establecer la
siguiente afirmacin:
Si se quiere buscar el estado |n i> y se conoce su funcin orculo Oi, es
posible encontrarlo aplicando dicho orculo en cada estado del universo total,
dado que solamente el estado |ni> presentar un cambio de fase.
En consecuencia, en el problema de bsqueda de individuos del algoritmo
gentico, si se conoce la funcin orculo del mejor individuo, es posible
determinar cul es el mejor individuo aplicando esa funcin orculo a cada
elemento del Universo.
Entonces, hasta ahora, surgen dos inconvenientes al seguir el camino
cuntico en la bsqueda de individuos, el primero, que es necesario calcular o
definir la funcin orculo del mejor individuo antes de proceder a buscarlo. Y
el segundo inconveniente radica en que no se est logrando ninguna ventaja
en comparacin con el camino clsico: an si se tiene definida la funcin
orculo del mejor individuo, es necesario aplicar dicha funcin orculo a
todos los elementos del universo hasta ver cul de ellos presenta un
cambio de fase.
Es aqu donde aparece el Algoritmo Cuntico de Grover para evitar aplicar la
funcin orculo a cada uno de los elementos del Universo, y, en cambio,
realizar una bsqueda sumamente ms eficiente. Grover plantea una serie de
pasos, a travs de los cuales, el nmero de iteraciones necesarias para hallar
la respuesta, es del orden de N .
Usando los conceptos descritos podemos enunciar el modelo matemtico delalgoritmo Grover en el cual se describen los elementos que usa y la relacin
entre estos:
Modelo Matemtico del Algoritmo de Grover:
Sea M la cantidad de elementos del universo, tal que:
xM x ,2
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
54/96
46
Sea N la cantidad de qubits necesarios para representar el universo, donde:
)(log2 MN
Sea | > el estado inicial del universo:
12
0
|2
1|
N
i
iNn
El sistema est en una superposicin con mxima probabilidad: puedecolapsar con igual probabilidad a cualquier estado.
Sea G, el operador de Grover:
kOIG )||2(
Donde I es la matriz identidad y Okla funcin orculo de elemento buscado.
Cada aplicacin de la funcin orculocrea un desfase en el estado |nk>. Por
tanto el estado del universo quedara como:
12
01 |
2
1|
2
12||
N
kii
kNiN
N
k nnO
El nuevo estado del universo est dado entonces por:
|)1||2(|| ' kOG
Reemplazando | 1>:
1' |)1||2(|
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
55/96
47
11' |||2|
Dado que el producto interno de es un escalar, sea:
1| C
Entonces:
1' ||2| C
)|2
1|
2
12(|
2
2|
12
0
12
0
'
NN
kii
kNiN
N
i
iNnnn
C
)|2
12(|
2
122|
12
0
'
kN
ki
i
iN
N
nC
nC
N
Como se puede apreciar, la amplitud de todos los estados distintos al
buscado ha disminuido. Por el contrario la amplitud del elemento buscado ha
aumentado.
Conclusin: Sucesivas aplicaciones del operador de Grover hacen que la
amplitud del estado buscado |nk> siga creciendo y que, por tanto, sea el valor
ms probable de obtener al hacer una medicin al sistema.
En cuanto a las estructuras de datos necesarias para la implementacin del
Algoritmo Cuntico de Grover, una estructura indispensable es la que
represente un estado cuntico (qubit). Una alternativa inicial ser usar valores
binarios (cero o uno), dado que es imposible representar superposicin real
en una computadora clsica, se tratar de simular este comportamiento
durante la implementacin del algoritmo.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
56/96
48
Queda pendiente tambin, la formulacin de la funcin orculo del mejor
individuo en el universo completo de soluciones candidatas.
3.3 Diseo de los Algoritmos
En este apartado, se proceder a realizar la formulacin en pseudocdigo del
Algoritmo GRASP y el Algoritmo Cuntico de Grover. En el caso del Algoritmo
Gentico, no es necesario realizar un diseo, dado que los conceptos que se
utilizarn del mismo ya han sido definidos en el apartado anterior.
En el caso del algoritmo GRASP, su diseo ser bastante directo al no existir
mayor complicacin. Sin embargo, en el caso del Algoritmo Cuntico de
Grover, ser necesario presentar primero una formulacin cuntica del
algoritmo, y, luego, analizar la forma correcta de realizar una simulacin
clsica.
3.3.1 Diseo del Algoritmo GRASP
En el caso del Algoritmo GRASP, no existe ninguna consideracin en
particular a la cual atenerse. Es posible realizar la formulacin en
pseudocdigo partiendo de la propia definicin del Algoritmo GRASP y losconceptos establecidos en la definicin del Algoritmo Gentico y del Algoritmo
GRASP de esta tesis.
La formulacin en pseudocdigo sera como sigue:
N: nmero de genes
ListaFactoresBondadxGen: Lista con el valor resultante del siguiente clculo:
(Fpositivo + Fnegativo)*Fponderacin, por cada gen. El tamao de esta listaes N.
Inicio Algoritmo GRASP
1. Inicializa_ListaFactoresBondadGen()
2. PoblacionInicial= Lista_Vacia_Cromosomas()
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
57/96
49
3. Para i=0 hasta i=NumTotalDeIteraciones
a. SumaFactorPonderacin=0
b. Inicializa_Nuevo_Cromosoma(cromosoma)
c. Mientras (SumaFactorPonderacion < N/2)
i. Ordenar_ListaFactoresBondadxGen()
ii. IndiceSuperior= N-1
iii. IndiceInferior= 0
iv. IndiceRCL= (Aleatorio() * ( IndiceInferior + Alfa *
(IndiceSuperior IndiceInferior) ) + IndiceInferior
v. ElementoSeleccionado=ListaFactoresBondadGen
[IndiceRCL]
vi. Cromosoma.ActivaGen(ElementoSeleccionado)
vii. SumaFactorPonderacion+=
ElementoSeleccionado.FactorPonderacion
viii. ListaFactoresBondadGen.Remover( IndiceRCL)
d. Fin Mientras
e. Si (SumaFactorPonderacion > N/2)
i. Cromosoma.ApagaGen( IndiceRCL)
f. Fin Si
g. PoblacionInicial.Agregar(Cromosoma)
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
58/96
50
4. Fin Para
5. EliminarRepetidos (PoblacionInicial)
Fin Algoritmo GRASP
3.3.2 Diseo del Algoritmo Cuntico de Grover
Ahora toca realizar el diseo del Algoritmo Cuntico de Grover. Esta es quiz
la parte ms compleja de esta investigacin pues comprende la simulacin de
un algoritmo eminentemente cuntico a un entorno clsico, en el cual podr
ser implementado.
Primero se describir el Algoritmo Cuntico de Grover desde la perspectiva
cuntica, y luego se plantear un enfoque clsico aceptable.
Formulacin Cuntica del Algoritmo de Grover
En el apartado de la definicin del Algoritmo Cuntico de Grover se
plantearon algunos conceptos bsicos del funcionamiento de una bsqueda
cuntica estndar. Se propuso representar el universo de soluciones como
una superposicin de distintos qubits. Cada una de estas posibles soluciones
tiene asociada una funcin orculo, y esta funcin orculo solo reacciona con
el estado al cual est asociada, esta reaccin, como se mencion antes, se
manifiesta en un cambio de fase, lo cual se visualiza en un cambio de signo
en el estado de dicha solucin candidata.
Sin embargo, hasta estos momentos, la bsqueda cuntica no representa
ninguna mejora respecto a un algoritmo clsico, dado que de todas formas es
necesario aplicar la funcin orculo del mejor individuo a todos los candidatos
del universo completo. El algoritmo de Grover proporciona una serie de
pasos, para realizar esta bsqueda en una cantidad mucho menor de
iteraciones.
Los pasos del algoritmo de Grover son los siguientes:
Sea |nk> el estado de la solucin con mayor valor de funcin de fitness
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
59/96
51
Inicio del Algoritmo de Grover
1. Inicializar un estado base como una superposicin de todas las posibles
soluciones:
12
0
|1
|
N
i
in
N
2. Repetir N veces
a. Se aplica el operador de Grover (G) al estado base:
kOIG )||2(
Donde I es la matriz Identidad y Okes el operador Orculo del estado que
se busca.
3. Realizar una medicin del sistema y se obtendr el estado |nk> buscado.
Fin Algoritmo Grover.
Sin embargo, aqu surge el problema de que no es posible formular la funcin
orculo de la mejor solucin candidata, porque simplemente no se conoce
este valor. Entonces, es necesario buscar una solucin alternativa para hallar
el mejor candidato a solucin ptima, utilizando el algoritmo de Grover.
Gracias a los estudios realizados en [16] y [17], podemos formular un
algoritmo ms completo, que presupone la ejecucin del algoritmo de Grover
una determinada cantidad de veces, lo cual reducir el grado de eficiencia,
pero, sin embargo, garantiza un alto nivel de eficacia.
Inicio Bsqueda Cuntica
1. Elegir de forma aleatoria un ndice m entre 0 y 2
N
-1. Este valor ser unndice tentativo del estado con mayor valor de funcin de fitness.
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
60/96
52
2. Repetir N veces
a. Ejecutar el algoritmo de Grover usando la siguiente funcin
orculo
-1, si f(i) > f(m)
Om(i) =
1, caso contrario
b. Reemplazar m con el ndice hallado por el algoritmo cuntico de
Grover en el paso a)
3. El ltimo valor de m tras las iteraciones del algoritmo de Grover es la
mejor solucin.
Fin Bsqueda Cuntica
Resumiendo, el funcionamiento del algoritmo de bsqueda cuntica
propuesto es como sigue: En cada iteracin se buscar usando el algoritmo
de Grover, un candidato a solucin mejor que el candidato anterior (el primer
candidato a solucin se selecciona de forma aleatoria). Finalmente, tras N
ejecuciones del algoritmo, se podr obtener la mejor solucin con una altsima
probabilidad (en mecnica cuntica no existen resultados cien por ciento
certeros, sino con altas probabilidades). Esto puede explicarse de la siguiente
forma:
Inicialmente todos los elementos del universo tienen asociada una misma
probabilidad, sin embargo al aplicar sucesivamente el operador de Grover, los
elementos ms cercanos en valor al elemento buscado adquieren un mayor
valor de probabilidad, y, en consecuencia, los elementos que se encuentran
lejos del valor buscado adquieren un valor de probabilidad menor (como se
dijo, la suma de probabilidades siempre debe mantenerse constante en 1).
7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp
61/96
53
Tras todas las iteraciones, el elemento buscado tiene el valor de probabilidad
ms alto en todo el sistema, de forma que al realizar una medicin cuntica,
este elemento sea muy probablemente el encontrado.
Como no se sabe con exactitud cul es el valor buscado, la funcin orculo
plantea que el valor que se busca es simplemente un valor mayor al de la
conjetura inicial. Una vez que se termina una ejecucin del algoritmo Grover,
el valor que se obtenga al medir el sistema pasa a ser la nueva conjetura y
as sucesivamente.
Con esto quedara terminada la formulacin del Algoritmo Cuntico de
Grover, t