Вы находитесь на странице: 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/

PONTIFICIA UNIVERSIDAD CATLICA DEL PER


FACULTAD DE CIENCIAS E INGENIERA

ANLISIS COMPARATIVO ENTRE EL ALGORITMO


CUNTICO DE GROVER Y UN ALGORITMO GRASP,
APLICADOS A LA BSQUEDA DE INDIVIDUOS PTIMOS EN
LA 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

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 de
conceptos 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 la
cual 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.

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.

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
2

Descripcin y Sustentacin de la Solucin.......................................18

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

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
4

Implementacin de los Algoritmos ....................................................57

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

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

Referencias ..............................................................................................86

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-

83

Eficiencia/Complejidad

ndice de Tablas

Tabla 1.1: Cuadro Comparativo de las Investigaciones Encontradas

17

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 su
implementacin en un entorno clsico, analizar su eficiencia aplicada a un
1

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 Randomized
Adaptive 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 de
manera genrica a fin de que los resultados obtenidos de la comparacin
2

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.

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.

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 su
poblacin 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.

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 metaheurstico.
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.

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 la
mecnica 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

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 existir
en una superposicin de ambos. [3]
8

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 2n estados 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
9

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. Dependiendo
del 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]
10

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 conjunto
de 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.

11

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 algoritmo
de 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.

12

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

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

13

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]

14

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 su
implementacin 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 entorno
clsico. Esto es precisamente, ser un aspecto fundamental en la
15

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 del
conocimiento 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.

16

Implementing

Hybrid

Quantum- Designing

Quantum Genetic Classical


Algorithms:
Solution

Implementing Small

A Computing

with Quantum

based Applications

on

and

Circuits

to and Algorithms

Grover Computer Graphics

Algorithm
Mtodo

Deductivo

Deductivo

Deductivo

Pseudo cdigo

Pseudo cdigo

Pseudo cdigo

Cientfico
Herramientas
de
programacin
usadas
Relacin con
la tesis

Hace

uso

del Plantea algoritmos Presenta principios

algoritmo

que

cuntico
Grover

contienen bsicos

de caractersticas
para tanto

formular

la

formulacin

de

de

la algoritmos

un computacin

algoritmo

en

cunticos sencillos.

clsica como de la Este

conocimiento

gentico anlogo cuntica.

ser

a su contraparte Precisamente

brindar

til,

pues
la

clsica, pero con utiliza el algoritmo perspectiva


caractersticas

de

eminentemente

potenciar

cunticas.
manera

Grover

De algoritmo

para necesaria

en

un formulacin
clsico. algoritmo

la
del
de

similar, De manera similar, Grover, as como su

en esta tesis se en esta tesis ser implementacin.


usar
algoritmo

el necesario
de implementar

Grover, pero para algoritmo


potenciar

un Grover

algoritmo

el
de

en

un

entorno clsico.

gentico clsico.

17

El

No

No

No

conocimiento
generado es
reutilizable?
Presenta
conceptos de
mecnica
cuntica?
Hace uso
del algoritmo
de Grover?
Combina el
entorno
clsico y
cuntico?

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

18

fundamento fsico y matemtico del algoritmo de Grover a fin de poder


implementarlo en un entorno clsico.

Se

plantear

una

hiptesis

que

relacione

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 haya
terminado, 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 caractersticas
de 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 algoritmo
GRASP).
19

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.

20

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 de
difcil comprensin para un lector que est comenzando a adentrarse
21

en el tema. Es por ello que esta tesis trata de presentar dichos


conceptos y trminos de una forma clara, que permita al lector
comprender a grandes rasgos las caractersticas ms importantes de
la computacin cuntica.

Define el modelo matemtico de un algoritmo cuntico usando


principios tanto matemticos como fsicos. El desarrollo de este
modelo es vital para el futuro diseo e implementacin del
mencionado algoritmo, el cual en este caso es el algoritmo cuntico de
Grover. Usando este modelo matemtico y el diseo del algoritmo, el
lector podra realizar la implementacin del mismo usando un lenguaje
diferente al que se utilizar en el desarrollo de la tesis o, incluso,
usando un diferente paradigma de programacin.

Presenta el funcionamiento de un algoritmo cuntico dentro de un


entorno clsico. La codificacin del algoritmo dejar entrever
claramente cul es el funcionamiento del mismo, cul es su utilidad y
por qu resulta ms natural su implementacin en una computadora
cuntica a diferencia de en una computadora clsica.

Establece

criterios

de

evaluacin

comparacin

entre

las

implementaciones de dos algoritmos que usan paradigmas muy


distintos: la programacin cuntica y la programacin clsica. Adems,
en este proyecto de tesis se han definido criterios que permitirn
comparar de forma objetiva cul es la implementacin ms eficaz y
eficiente. Estos criterios pueden ser reutilizados posteriormente para
cualquier otra comparacin de implementaciones algortmicas de
ndole similar a la presentada en esta tesis.

Constituye una investigacin pionera en el tema de computacin


cuntica dentro del mbito universitario y del pas en general. El nuevo
campo de la computacin cuntica, si bien cuenta con un gran nmero
de investigaciones en proceso en las grandes potencias del mundo,
carece de una lnea seria de dedicacin dentro de nuestro pas: Per.
Las investigaciones que se realizan aqu sobre computacin cuntica
son escasas. Se espera que este proyecto de tesis abra las puertas a
posteriores investigaciones que sigan la lnea de indagacin planteada
22

en informacin cuntica y generen nuevo conocimiento que ser til


en la nueva era de informacin cuntica que se encuentra por llegar.

2.2

Desarrollo de la Metodologa

Tal y como se mencion lneas arriba, la metodologa que se emplear para


la investigacin de este proyecto de tesis est basada en el mtodo cientfico.
A continuacin se realizar una descripcin de cada fase que forma parte de
esta metodologa, debidamente aplicada al presente proyecto en particular:
2.2.1

Observacin

Esta es la primera fase del proyecto de investigacin y consiste bsicamente


en revisar el conocimiento existente hasta la fecha sobre la computacin
cuntica que sea aplicable a la implementacin del algoritmo de Grover en un
entorno clsico, a fin de ser aplicado a la seleccin ptima de individuos.
Adems involucra investigar sobre los fundamentos del algoritmo gentico, a
fin de formular la estructura de los individuos de la poblacin y definir la
funcin de fitness. Finalmente, incluye la investigacin sobre el fundamento
del algoritmo GRASP a fin de realizar una implementacin correcta del
mismo.
La fase de Observacin consta del siguiente proceso:

Recopilacin de Informacin:
En este proceso se realizar la investigacin previa del tema para poder
realizar un planteamiento de hiptesis adecuado y una correcta
experimentacin. Particularmente los temas que se investigarn son los
principios de la mecnica cuntica,

su aplicacin en la computacin

cuntica, el algoritmo de Grover, los algoritmos genticos y el algoritmo


GRASP.

23

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
Adems,

poblacin inicial del algoritmo gentico.

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

24

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 el
diseo 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

25

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.

26

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 una
nueva 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).

27

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 eficacia del 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 para
el 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.

28

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.
29

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
30

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.

31

Captulo III: Implementacin del Aporte

3.1

Definicin de los Experimentos

En este apartado, se definir cada uno de los experimentos que se realizarn


en la fase de experimentacin de la tesis. Esto incluye la experimentacin
numrica. Cada uno de los experimentos presupone una serie de requisitos
como las implementaciones del algoritmo de Grover y del algoritmo GRASP.
Estas sern detalladas en el siguiente apartado.
A fin de poder realizar el anlisis comparativo entre el algoritmo GRASP y el
algoritmo cuntico de Grover,

primero se elaborar un experimento cuyo

objetivo ser aplicar ambos algoritmos a la seleccin de individuos ptimos en


la poblacin de un algoritmo gentico. El resultado final del experimento ser
el grado de eficacia y eficiencia con la cual cada algoritmo realiz su
32

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.

33

ENTRADAS
Las entradas que se necesitan para la ejecucin de este experimento son:
N

de Descripcin

Entrada
1

Algoritmos

GRASP

Grover

implementados:

Evidentemente se necesita que los dos algoritmos estn


implementados antes de ejecutarlos.
2

Tamao del Universo (N) : Esta cantidad permitir


determinar cun grande es el universo de posibles
soluciones

Cantidad de Iteraciones (X): Este valor determinar


cuantas veces se ejecutarn los algoritmos GRASP y
Grover para seleccionar los individuos ptimos de la
poblacin inicial. Este valor debe ser grande para poder
obtener resultados objetivos y consistentes.

PASOS DEL EXPERIMENTO


Los pasos que se siguen en el experimento son los siguientes:
Repetir X veces
a. Formar el universo de posibles soluciones a partir del parmetro N.
b. Aplicar el algoritmo GRASP y el algoritmo Grover al universo de
individuos generado en la parte a) para seleccionar los elementos
ptimos.
c. Guardar el valor de fitness de los individuos seleccionados por cada
algoritmo. (Este es el resultado en eficacia de una ejecucin de uno
de los dos algoritmos)

34

d. Guardar la cantidad de operaciones clsicas o cunticas que usaron


el algoritmo GRASP y Grover respectivamente en la parte a). (Con
este resultado se hallar el grado de eficiencia en una ejecucin de
uno de los dos algoritmos).
Fin de Repetir
Resultado Final:

Valores de eficacia y eficiencia de ambos algoritmos en

cada iteracin del experimento

3.1.2

Experimentacin Numrica

Este experimento jugar un papel muy importante al determinar qu algoritmo


es ms eficaz que el otro.
El nombre del experimento que se utilizar es: Prueba T-Student para Dos
Muestras relacionadas. Este experimento es muy usado para contrastar
resultados de diferentes procesos (por ejemplo un algoritmo) y determinar qu
proceso es mejor, siempre y cuando se trate de slo dos procesos. Si se
tratara de ms de dos, la alternativa es usar un experimento como el Anlisis
de Varianza (ANOVA). Como se van a comparar dos algoritmos, la prueba TStudent resulta apropiada [19]
ENTRADAS
Los datos necesarios para la ejecucin de la experimentacin numrica sern
obtenidos de la ejecucin del primer experimento.
PASOS DEL EXPERIMENTO
Los pasos del experimento son los siguientes:
1. Se plantea la hiptesis inicial de la experimentacin numrica: El
valor de bondad promedio obtenido de la seleccin del algoritmo
cuntico de Grover y el valor de bondad promedio obtenido de la
seleccin del algoritmo GRASP, son iguales
35

2. Se realiza la prueba de Contraste de Igualdad de Medias para


determinar si la hiptesis del paso 1 es cierta.
3. Si la prueba de Contraste de Igualdad de Medias da valor positivo:
a. Se concluye que los grados de bondad del algoritmo cuntico
de Grover y el algoritmo GRASP son equivalentes.
4. Si la prueba de Contraste de Igualdad de Medias da valor negativo:
a. Comparar los valores promedios de grado de bondad obtenido
de cada algoritmo a fin de determinar cul es el mejor.

3.2

Definicin de los Algoritmos

En este apartado se definirn los algoritmos que sern utilizados en el


proceso experimental. Se comienza con la definicin del algoritmo gentico
genrico, enfocndose en la descripcin del proceso de seleccin de su
poblacin inicial y la formulacin de la funcin de fitness a utilizar.
Luego se proceder a la definicin de las estructuras de datos y
consideraciones adicionales necesarias en el diseo del algoritmo GRASP.
Por ltimo se formular el modelo matemtico del algoritmo cuntico de
Grover y se detallarn las consideraciones necesarias para implementar este
algoritmo en un entorno clsico.
3.2.1

Definicin del Algoritmo Gentico

En este apartado se definir las principales caractersticas del Algoritmo


Gentico, las cuales sern de suma importancia para la ejecucin del
experimento.
En lo sucesivo el algoritmo gentico genrico ser identificado con las siglas
AGG.

36

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 de
soluciones, 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

37

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 su
solucin.
38

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.

39

Definicin de la funcin de Fitness


En el apartado anterior se defini la estructura de un individuo del algoritmo
gentico genrico. Tambin se mencion a la funcin de fitness en la
Definicin 2, se dijo que era una funcin matemtica que permitir calcular el
grado de bondad de un individuo, basndose en la informacin grabada en
su cromosoma y por tanto, sus genes.
Se haba dicho que cada gen tena asociada una triada de valores dada por:
{Factor positivo, factor negativo, factor de ponderacin}, adems, cada gen
deba tomar un valor binario: cero o uno.
Entonces se definir la funcin de fitness de la siguiente manera:
Sea F una funcin real que recibe como entrada los valores de cada uno de
los N genes en el cromosoma de un individuo, y, devuelve un nico valor
real, el cual se llamar grado de bondad de dicho individuo.

F (Cromosoma) ( FactorPositivoi FactorNegativoi ) * FactorPonderacini g i


i 1

Vale acotar que el factor positivo, factor negativo y factor de ponderacin de


cada gen, son constantes en cada iteracin del experimento. Son generados
de forma aleatoria al momento de generar el universo de posibles soluciones
(ver paso a del Experimento-1).
Puede deducirse de la frmula que:

Los genes que tengan el valor cero no contribuyen al valor final del
grado de bondad

Si el valor absoluto del factor negativo es mayor al valor absoluto del


factor positivo, el gen contribuye negativamente al grado de bondad
total.

Queda entonces definida la funcin de fitness del algoritmo gentico genrico


que se utilizar en el experimento principal.
40

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

est

simbolizado 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.

41

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: Esta


entidad 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
42

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 2N elementos, 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]

43

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 Oi tal 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.

44

Con todos los conceptos mencionados anteriormente podemos establecer la


siguiente afirmacin:
Si se quiere buscar el estado |ni> 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 del


algoritmo 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:

M 2x , x
45

Sea N la cantidad de qubits necesarios para representar el universo, donde:

N log 2 ( M )
Sea | > el estado inicial del universo:

2 N 1

1
2

| n
i 0

El sistema est en una superposicin con mxima probabilidad: puede


colapsar con igual probabilidad a cualquier estado.
Sea G, el operador de Grover:

G (2 | | I )Ok
Donde I es la matriz identidad y Ok la funcin orculo de elemento buscado.
Cada aplicacin de la funcin orculo crea un desfase en el estado |nk>. Por
tanto el estado del universo quedara como:

O k | | 1

2N 1
2

2 N 1

|n
i0
ik

1
2

| nk

El nuevo estado del universo est dado entonces por:

| ' G | (2 | | 1) O k |
Reemplazando | 1>:

| ' (2 | | 1) | 1
46

| ' 2 | | 1 | 1
Dado que el producto interno de < | y | 1> es un escalar, sea:

C | 1
Entonces:

| ' 2 C | | 1
|
'

|
'

2C
2N
2C

2 N 1

2N 1

i0

2N

| ni (
2N 1
2N

2 N 1

| ni (
i0
ik

2 N 1

| ni
i0
ik

2C 1
2N

1
2N

| nk )

| nk )

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.

47

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 los
conceptos 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 lista
es N.
Inicio Algoritmo GRASP
1.

Inicializa_ListaFactoresBondadGen()

2.

PoblacionInicial= Lista_Vacia_Cromosomas()

48

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)

49

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
50

Inicio del Algoritmo de Grover


1.

Inicializar un estado base como una superposicin de todas las posibles


soluciones:

2.

Repetir
a.

1
N

2 N 1

| n
i 0

N veces

Se aplica el operador de Grover (G) al estado base:

G (2 | | I )Ok
Donde I es la matriz Identidad y Ok es 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 2N-1. Este valor ser un


ndice tentativo del estado con mayor valor de funcin de fitness.
51

2.

Repetir
a.

N veces

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

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).
52

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, todo desde una perspectiva cuntica, el siguiente paso consiste en
plantear la simulacin del algoritmo de bsqueda cuntica para un entorno
clsico.
Formulacin Clsica del Algoritmo de Grover
Ya se ha definido de manera correcta el procedimiento necesario para
calcular los mejores individuos en un universo total de soluciones candidatas,
todo desde una perspectiva cuntica. El problema natural que surge es que
no se cuenta con una computadora cuntica en la cual realizar una
implementacin del pseudocdigo ya descrito. Entonces, es necesario
formular una simulacin clsica, si bien, no se podr emular la enorme
eficiencia del algoritmo, pues est exclusivamente ligada a la naturaleza
cuntica (superposicin de estados), inexistente en una computadora clsica.
Es precisamente la carencia de elementos claves en la computacin cuntica
como la posibilidad de realizar superposicin de estados, o el colapso nodeterminstico a un estado tras realizar una medicin [12], lo cual hace
sumamente difcil, sino imposible, emular dicho ambiente en un entorno que
por su propia naturaleza es distinto.
Por fortuna, cada elemento usado en mecnica cuntica, (y por consiguiente,
en computacin cuntica) puede ser representado como una matriz, o de
forma genrica, por un tensor (una matriz de n dimensiones). Una
superposicin de estados puede representarse como un vector de N-estados.
Y un operador cuntico puede representarse como una matriz de N filas por N
53

columnas. Aplicar un operador a una superposicin de estados se reduce al


producto de una matriz con un vector.
Naturalmente, el manejo de matrices y operaciones entre estas, es un
proceso computacionalmente costoso en una computadora clsica.
Razn por la cual la eficiencia no podr ser medida con el tiempo que
demora cada algoritmo dado que la simulacin de la bsqueda cuntica
en un entorno clsico, elimina de forma aparente la enorme rapidez del
algoritmo de Grover. Por ello, el tiempo no ser una unidad de medicin
de eficiencia vlida. En cambio se usar la unidad: cantidad de
operaciones necesarias por cada algoritmo. Es decir, una simple
operacin cuntica, podra demorar 5 segundos siendo simulada en una
computadora clsica (debido a las operaciones matriciales a realizar),
sin embargo esos 5 segundos contarn como una sola operacin.
Esto se ver a ms detalle en la ejecucin del experimento principal.
Para este caso necesitaremos una estructura de datos adicional para guardar
la informacin de un estado cuntico. La estructura se llamara:

EstadoCuntico, con los siguientes atributos: nmeroEstado (un


nmero entero), amplitudProbabilidad (un nmero real), valorFitness
(un nmero real), conDesfasePorOrculo (un valor booleano), existe
(un valor booleano) y valorMatriz (un nmero real).

Considerando la representacin vectorial y matricial de estados y operadores,


ahora si es posible definir el algoritmo de bsqueda cuntica simulado en un
entorno clsico. Este es:

Inicio Algoritmo Cuntico de Bsqueda


1.

Elegir de forma aleatoria un ndice m entre 0 y 2N-1. Este valor ser la


conjetura inicial del ndice del estado con mayor valor de funcin de
fitness.

54

2.

Repetir
a.

N veces

inicializarEstadoBase (vectorEstadosInicial,N):
Inicializar el estado base como una superposicin de todos los
posibles candidatos, vectorEstados es un vector unidimensional de N
elementos.

b.

Repetir
i.

N veces

inicializarEstadoBase (vectorEstadosActual):
Es necesario inicializar nuevamente un estado base en cada
iteracin del algoritmo Grover.

ii.

vectorEstadosOraculo = aplicarOraculo(vectorEstadosActual,m):
Este es el resultado de aplicar el operador cuntico representado
por el orculo a la superposicin de todas las soluciones
candidatas.

iii.

aplicarGrover
(vectorEstadosInicial,vectorEstadosActual,vectorEstadosOrculo) :
Esta funcin simula la aplicacin del operador cuntico de Grover
a una superposicin de estados.

c.

ndiceResultado= simularMedicion (vectorEstados):


Una medicin cuntica supone el colapso no-determinstico del
sistema a uno de los estados que lo componen. Cada uno de estos
estados tiene asociada una probabilidad de ser medido. El algoritmo
de Grover hace que el estado solucin tenga el mayor valor de
probabilidad (muy cercana a 1). Por tanto, la funcin simularMedicin
simplemente buscar el estado con el mayor valor de probabilidad.
En computacin cuntica, esta medicin equivale a una sola
operacin.

d.

m= ndiceResultado:
El ndice que se obtenga de la medicin pasa a ser la nueva
conjetura.
55

3.

El ltimo valor de ndiceResultado es el mejor individuo del Universo total


de soluciones candidatas.

Fin Algoritmo Cuntico de Bsqueda

An falta definir el pseudocdigo de las siguientes funciones usadas:


Inicio inicializarEstadoBase (vectorEstados,N)
1.

totalElementos=2^N

2.

probabilidad= 1/razCuadrada(totalElementos)

3.

Para i=0 hasta totalElementos

4.

a.

vectorEstados[i].amplitudProbabilidad=probabilidad

b.

vectorEstados[i].valorMatriz=probabilidad

Fin Para

Fin InicializarEstadoBase

Inicio aplicarGrover(vectorInicial,vectorActual,vectorOraculo)
1.

coeficiente=2*productoEscalar(vectorInicial,vectorOraculo)

2.

vectorActual= productoVectorConEscalar(coeficiente,vectorInicial)

3.

vectorActual=restaVectores(vectorActual,vectorOraculo)

Fin InicializarOperadorGrover

56

Inicio simularMedicion(vectorEstados,N)
1.

mayorProbabilidad=0

2.

Para i=0 hasta N


a.

Si ( vectorEstados[i].amplitudProbabilidad > mayorProbabilidad )


i.

mayorProbabilidad=vectorEstados[i]. amplitudProbabilidad

ii.

indiceMayorProbabilidad=i

b.

Fin Si

3.

Fin Para

4.

Devolver vectorEstados[indiceMayorProbabilidad]

Fin SimularMedicion

Y as quedan definidos tanto el algoritmo de bsqueda cuntica principal, as


como las funciones de las que hace uso. Otras funciones como
productoEscalar o restaVectores no han sido definidas pues se tratan de
operaciones matemticas conocidas.

3.4

Implementacin de los Algoritmos

En este apartado, se proceder a realizar la implementacin en cdigo del


Algoritmo GRASP y el Algoritmo Cuntico de Grover.
El lenguaje de programacin que se usar ser JAVA, dadas las siguientes
razones:
1.

Es un lenguaje de programacin conocido por el tesista y el cual ha


manejado durante ms de un ao tanto a nivel acadmico como laboral.

57

2.

Cuenta con funciones grficas sencillas las cuales sern de gran utilidad
al momento de implementar el experimento principal y visualizar los
resultados de la ejecucin de los algoritmos.

3.

Cuenta con una gran cantidad de libreras de apoyo para operaciones


matemticas, incluyendo operaciones entre matrices, las cuales sern
de ayuda al momento de implementar el algoritmo de Grover

4.

Tiene soporte natural para el paradigma de programacin orientado a


objetos. Dadas las definiciones de las estructuras necesarias para la
implementacin de los algoritmos, el uso de objetos es altamente
deseable.

El proyecto que incluye cdigo fuente de los algoritmos implementados se


encuentra en el anexo digital de esta tesis.

58

Experimentacin Numrica

En este apartado se describir la ejecucin de la experimentacin numrica.


Primero se explicarn los pasos que se deben seguir durante la ejecucin del
experimento y luego se analizarn los resultados finales obtenidos de esta
experimentacin numrica.
Como se mencion en el captulo dos, el nombre del experimento es Prueba
T-Student para Dos Muestras relacionadas.

59

4.1

Ejecucin de la Experimentacin Numrica

Una vez que el algoritmo GRASP y el algoritmo cuntico de Grover ya han


sido implementados, ya se puede comenzar a pensar en ejecutarlos y
compararlos a travs de los resultados que se obtengan. Es para ello que se
formula el experimento principal descrito en el captulo tres: para comparar la
eficacia de los algoritmos (quin hall las mejores soluciones) y su eficiencia
(quin lo hizo en la menor cantidad de operaciones).
Sin embargo, tras la ejecucin del experimento principal, solo se obtienen
resultados eminentemente numricos. El experimento principal no tiene una
forma de decir si el algoritmo GRASP o el algoritmo cuntico de Grover
result ser ms eficaz o ms eficiente que el otro. Solamente puede decir a
simple vista quin fue el mejor en una iteracin, mas no qu algoritmo es en
promedio el mejor. Es necesario concebir por ejemplo el caso que el algoritmo
de Grover haya sido mejor que el GRASP en las diez primeras iteraciones, sin
embargo en la iteracin nmero once, el algoritmo GRASP fue mejor por un
margen mucho mayor al que le sac el algoritmo de Grover en las diez
iteraciones pasadas. Este caso puede seguirse repitiendo a lo largo de cada
una de las iteraciones del experimento principal, lo cual solo genera mayor
incertidumbre respecto a cul es el mejor algoritmo.
Es por esto que es necesario utilizar un mtodo estadstico que tome como
datos de entrada estos resultados numricos, y que con sus datos de salida
sea sencillo discernir qu algoritmo es el ms eficiente, que algoritmo es ms
eficaz, y en general, que algoritmo es mejor.
Para realizar la experimentacin numrica se utilizar el paquete estadstico
SPSS, el cual cuenta con poderosas herramientas que permitirn realizar los
anlisis necesarios de una manera bastante rpida y sencilla. Solo habr que
ingresar los resultados del experimento principal, para que este software
realice su labor.
Sin embargo, hay algunas consideraciones que deben tratarse antes de la
ejecucin propiamente dicha de la ejecucin numrica con el uso del SPSS.

60

4.1.1

Antes de la ejecucin de la Experimentacin Numrica

Se deben tener las entradas listas, en este caso, sern los resultados
obtenidos de la ejecucin del experimento principal. Como el experimento
principal requiere dos parmetros de entrada, se seleccionaron los valores
tentativos de: N=10 (cantidad de genes por cromosoma) y cantidad de
Iteraciones= 1000.
Se decidi que cada cromosoma tenga 10 genes debido a que las
operaciones matriciales y vectoriales de las que hace uso la implementacin
del algoritmo Grover se vuelven excesivamente pesadas en una computadora
clsica para valores de N mayores.
Cabe resaltar que la cantidad de iteraciones dentro del experimento principal
es un valor tentativo, y podra incluso aumentarse si los resultados de la
experimentacin numrica no fueran del todo concluyentes.
Existan dos puntos pendientes en la implementacin del algoritmo GRASP,
los cuales eran: la calibracin del valor del factor de relajacin (alfa) y la
calibracin de la cantidad de iteraciones (no confundir con la cantidad de
iteraciones del experimento principal).
En primer lugar, para calibrar el valor del factor de relajacin (alfa), se gener
una triada y se ejecut el algoritmo GRASP sobre sta cada vez con
diferentes valores del factor. Los resultados pueden apreciarse en la siguiente
grfica:

61

Figura 4.1: Grfica: Factor de Relajacin (alfa) vs Valor de Bondad

Como se puede apreciar, el valor de bondad ms alto se obtuvo al usar el


valor de 0.35 como factor de relajacin. Por tanto este ser el valor que se
considerar en el algoritmo GRASP al ejecutar el experimento principal.
En segundo lugar, se realiz un proceso similar para calibrar la cantidad de
iteraciones del algoritmo GRASP. Se us una cantidad diferente de
iteraciones en cada ejecucin del algoritmo GRASP, los resultados son los
siguientes:

Figura 4.2: Grfica: Cantidad de Iteraciones vs Valor de Bondad

62

Como puede verse, los valores de bondad hallados no muestran variacin


alguna al incrementar la cantidad de iteraciones. Esto se debe a que el
universo no tiene un tamao muy grande y no son necesarias muchas
iteraciones para que el algoritmo GRASP llegue a una solucin definitiva. Por
tanto, se tomar el valor de 20 como la cantidad de iteraciones del algoritmo
GRASP, dado que no exhibe ninguna variacin frente a valores ms grandes,
y al ser el menor, permitir una mayor rapidez en la ejecucin del experimento
principal.
La hoja de clculo con

los datos y las grficas de las calibraciones se

encuentran en el anexo digital de la tesis.


Ahora, como los algoritmos se encuentran totalmente definidos

implementados, se puede pasar a la Experimentacin en s.


Como se haba descrito en el captulo 3, la experimentacin numrica cuenta
con dos fases principales: siendo el objetivo de la primera fase demostrar
empricamente que, en efecto, un algoritmo es realmente mejor que el otro.
Para ello, se plantea la siguiente hiptesis:
Sea Rpromedio el grado de bondad promedio obtenido por el algoritmo GRASP
en la ejecucin del experimento principal, y sea Gpromedio el grado de bondad
promedio obtenido por el algoritmo Grover en la ejecucin del experimento
principal. Se plantea la siguiente hiptesis:
H0 Rpromedio = Gpromedio

hiptesis nula

HA: H0 es falsa

hiptesis alternativa

Si se cumple la hiptesis nula, no habr necesidad de realizar ms pruebas,


dado que eso quiere decir que ambos algoritmo tiene un grado de bondad
equiparable, es decir, ninguno es significativamente mejor que el otro.
Para evaluar si la hiptesis nula planteada es correcta o no, se realizar la
Prueba T-Student de dos muestras relacionadas.

63

4.1.2

Prueba T-Student para dos muestras relacionadas

Esta prueba puede realizarse de una forma sencilla utilizando la herramienta


SPSS, las entradas de esta prueba son los valores de los grados de bondad
obtenidos en cada iteracin del experimento. Tanto los grados de bondad
obtenidos del algoritmo GRASP, como los grados de bondad obtenidos por el
algoritmo cuntico de Grover.
Lo que la prueba T-Student hace es evaluar en una distribucin de
probabilidad conocida, qu valores son los ms representativos respecto a la
media: si los valores obtenidos con la ejecucin del algoritmo GRASP o los
valores obtenidos bajo la ejecucin del algoritmo de Grover.
Como ya se ha mencionado, si la conclusin de la prueba es que los
resultados de cada algoritmo influyen de una forma igualmente significativa,
debe aceptarse la hiptesis nula y concluir que ninguno de los dos algoritmos
es superior al otro.
Cabe mencionar, que la prueba T-Student tiene un grado de confianza. En
este caso asumiremos un 95%, es decir, de darse el caso de rechazar la
hiptesis nula, se puede decir que existe un 95% de certeza de que un
algoritmo sea efectivamente mejor que el otro.
Si la prueba T-Student realizada en el SPSS da como resultado que la
hiptesis es falsa, quiere decir que en efecto, uno de los dos algoritmos
influye de forma ms significativa
Bajo la premisa anterior, es posible afirmar que el algoritmo cuyo valor de
bondad promedio sea mayor, tiene una ventaja significativa sobre el otro
algoritmo, y, puede ser considerado como el mejor de los dos.

4.2

Resultados

En esta seccin se presentan los resultados obtenidos del experimento


principal. Se determin que se realizaran 1000 iteraciones en el experimento

64

y que el universo estara determinado por una cantidad de diez genes por
cromosoma.
Durante cada iteracin del experimento principal se generarn los valores
aleatorios de las triadas correspondientes a cada uno de los genes. Es decir
los datos de entrada del algoritmo GRASP y el algoritmo de Grover van
cambiando durante cada iteracin del experimento principal. Si se pensara en
un contexto real, se podra decir que cada iteracin constituye un problema
distinto.
La aplicacin en la que se ha implementado el experimento principal cuenta
con una interfaz grfica en la cual se puede seleccionar la cantidad de
iteraciones con las que se desea trabajar, as como la cantidad de genes por
cromosoma. Esta aplicacin muestra una simulacin de la ejecucin de cada
algoritmo graficando qu algoritmo fue mejor en eficacia y eficiencia en cada
iteracin.
Sin embargo, adems, la aplicacin genera tres archivos de texto en los
cuales se encuentran los resultados del experimento realizado.
En el primer archivo se llama resultadosExperimento.txt y cuenta con un
resumen de los resultados obtenidos, indicando para cada iteracin: los
valores generados en las Triadas, el grado de bondad de los mejores
individuos seleccionados por cada uno de los algoritmos, la cantidad de
operaciones que se tom cada algoritmo y una breve descripcin de cul fue
el algoritmo ms eficaz.
En el segundo archivo se llama resultadosGrover.txt, es mucho ms simple
y slo imprime el grado de bondad del mejor individuo seleccionado por el
algoritmo de Grover y la cantidad de operaciones cunticas que se tom en
hallarlo.
El tercer archivo es similar al segundo, se llama resultadosGrasp.txt e
imprime el grado de bondad del mejor individuo seleccionado por el algoritmo
GRASP, as como la cantidad de operaciones clsicas necesarias para
hallarlo. Los datos de este archivo junto con los del segundo conforman las

65

entradas que recibe el programa SPSS para realizar la experimentacin


numrica.
A continuacin se muestra un ejemplo de los resultados obtenidos en cada
uno de los archivos descritos:

Archivo 1: resultadosExperimento.txt
Iteracin: 0 de 1000
Datos de Entrada:
Triada 0:
Factor Positivo: 55,225
Factor Negativo: -46,249
Factor Ponderacin: ,947
Triada 1:
Factor Positivo: 43,667
Factor Negativo: -32,427
Factor Ponderacin: ,995
Triada 2:
Factor Positivo: 76,130
Factor Negativo: -41,958
Factor Ponderacin: ,103
Triada 3:
Factor Positivo: 47,367
Factor Negativo: -44,115
Factor Ponderacin: ,969
Triada 4:
Factor Positivo: 92,646
Factor Negativo: -4,463
Factor Ponderacin: ,842

66

Triada 5:
Factor Positivo: 29,254
Factor Negativo: -10,351
Factor Ponderacin: ,021
Triada 6:
Factor Positivo: 47,167
Factor Negativo: -27,754
Factor Ponderacin: ,754
Triada 7:
Factor Positivo: 58,565
Factor Negativo: -3,602
Factor Ponderacin: ,125
Triada 8:
Factor Positivo: 70,066
Factor Negativo: -7,403
Factor Ponderacin: ,598
Triada 9:
Factor Positivo: 61,946
Factor Negativo: -4,689
Factor Ponderacin: ,185
Datos de Salida:
Grado de Bondad Mximo - Algoritmo GRASP: 161,605
Grado de Bondad Mximo - Algoritmo Grover: 42,926
Algoritmo GRASP demoro: 1361 operaciones
Algoritmo Grover demoro: 1387 operaciones
Algoritmo GRASP gan por: 118,679 unidades

67

Archivo 2: resultadosGrover.txt
Algoritmo Grover:
42.926

1387

93.847

1387

5.975

1387

111.446

1387

103.416

1387

116.299

1387

Donde la primera columna representa los grados de bondad en cada


iteracin y la segunda columna, la cantidad de operaciones cunticas
necesarias.

Archivo 3: resultadosGrasp.txt
Algoritmo Grasp:
161,605

1361

20,640

1501

192,633

1361

90,586

1501

45,878

1501

81,499

1501

Los archivos completos que contienen los datos que se usaron para la
experimentacin numrica forman parte del anexo A de la presente tesis.
Si bien es posible usar los valores de bondad mximos como grado de
eficacia de cada algoritmo, existe una consideracin a tomar en cuenta. El
algoritmo de Grover no da respuestas con un cien por ciento de certeza, sino
que da respuestas con cierto valor de probabilidad. Por tanto existe una
probabilidad de que se equivoque, y es necesario reflejar este hecho en la
eficacia de este algoritmo.

68

Una primera alternativa era multiplicar siempre el resultado obtenido por la


probabilidad de conseguirla, y que sea este valor el que represente la eficacia
del algoritmo de Grover. Sin embargo, existe un inconveniente con este
enfoque:
Asumiendo la cantidad de genes por cromosoma igual a 10, se tiene un
universo de 1024 elementos. Si aplicando el algoritmo de Grover se obtiene
un resultado con un 90% de seguridad, esto quiere decir que la suma de las
probabilidades de los 1023 elementos restantes debe sumar 0.10. Esto
significa que, en promedio, cada uno de esos 1023 elementos tiene una
probabilidad de:
(0.10 /1023)*100 = 0.009 %
Es claro que una probabilidad de 90% contra 0.009% es estadsticamente
aceptable para decir que el algoritmo de Grover prcticamente elegir la
respuesta correcta en una aplastante mayora de veces.
Sin embargo, de seguir este enfoque, el valor de bondad del individuo
seleccionado por Grover se reducira en un 10%. Como se puede notar, esta
reduccin en el valor de bondad obtenido por Grover no queda justificada,
pues an con 90%, es prcticamente seguro que este ser el resultado a
obtener.
Por tanto se plantea realizar una modificacin a este enfoque: multiplicar el
grado de bondad por la probabilidad, slo si la probabilidad asociada es
menor que el valor promedio de todas las probabilidades obtenidas.
En el Anexo B se puede apreciar la lista de las probabilidades asociadas a
cada iteracin del algoritmo de Grover durante la ejecucin del experimento
principal.
El valor promedio de todas las probabilidades obtenidas es aproximadamente
0.7.
Por tanto, el grado de eficacia del algoritmo de Grover estar dado por el
valor de bondad del individuo mximo que seleccione multiplicado por la
probabilidad de obtenerlo, slo si esta probabilidad es menor que 0.7.
69

En lo que respecta al grado de eficiencia de cada algoritmo en una iteracin,


ste ser calculado como el valor inverso de la cantidad de operaciones
utilizadas; dado que la cantidad de operaciones y la eficiencia estn en
relacin inversamente proporcional. Sin embargo para que los valores de
eficiencia no salgan muy pequeos se multiplicar ambos resultados por el
tamao del universo, es decir 2N.
Ya se tienen los datos necesarios respecto a la eficacia y eficiencia de las
ejecuciones de ambos algoritmos, sin embargo queda un ltimo factor por
considerar y es el de la complejidad de ambos.
Este factor se ha determinado a partir de los siguientes criterios adicionales:
Cantidad de lneas de cdigo empleadas:
Algoritmo GRASP: 193 lneas de cdigo del algoritmo
Algoritmo de Grover: 169 lneas de cdigo del algoritmo
Razn de lneas de cdigo: (GRASP/Grover) 193/169
Dificultades durante la implementacin:
El algoritmo GRASP no tuvo mayor dificultad en ser implementado. Una vez
se realiz su diseo en pseudocdigo, la implementacin fue un trabajo
directo.
Por su parte el algoritmo de Grover tuvo las siguientes dificultades durante su
implementacin:

Buscar una alternativa clsica con la cual representar sus operaciones


inherentemente cunticas: Esto se resolvi a travs del uso de
matrices y vectores

Una vez se determin el uso de matrices y vectores, el siguiente


problema fue garantizar un alto grado de eficiencia en las operaciones
70

que se realizaran dado que es conocido que las operaciones


matriciales son computacionalmente costosas.

Garantizar continuamente que el funcionamiento del algoritmo fuera


aceptable. Era necesario hacer un seguimiento correcto al algoritmo a
fin de asegurar que efectivamente cumpla su labor: aumentar la
amplitud de probabilidad de los mejores individuos y reduca la
amplitud de probabilidad de los dems.

Razn de dificultades: (GRASP/Grover) 1/2


Producto de las razones de ambos criterios: 193 / 169 * 1 / 2 = 193 / 338
Por lo tanto el grado de complejidad del algoritmo GRASP y el algoritmo de
Grover estn en una razn de 193 a 388
Para que los factores de eficacia, eficiencia y complejidad contribuyan de
forma equitativa al grado de bondad a calcular, se tomar una misma escala
para cada uno de estos tres criterios y se asignarn los factores
proporcionalmente de acuerdo a los valores hallados en el experimento
principal.
Se tomar 1000 como valor mximo de la escala (este valor podra cambiar
sin afectar el resultado, es una escala arbitraria), dado que es la base decimal
superior ms cercana a los valores de bondad calculados en el experimento.
Entonces se repartir proporcionalmente los valores hallados de la siguiente
forma, por ejemplo:
Valor de bondad hallado por el algoritmo Grover: 128,78
Valor de bondad hallado por el algoritmo GRASP: 110.98
Entonces:
128.78 K + 110.98 K = 1000, K = 4.17

71

Por tanto:
Factor de Eficacia del algoritmo Grover: 537.120
Factor de Eficacia del algoritmo GRASP: 462.880
Como se puede ver, la relacin inicial entre los valores no ha cambiado,
128.78 es a 110.98 como 537.120 es a 462.880.
Sin embargo, es necesario hacer una observacin: los valores de bondad de
cada algoritmo (eficacia) y la cantidad de operaciones de cada algoritmo
(eficiencia) resultan en su mayora de casos bastante cercanos, sin embargo,
la diferencia de los factores de complejidad es mucho ms pronunciada.
Por tanto para evitar que la diferencia entre complejidad influya de ms en el
factor de bondad, es necesario asignar un peso a cada uno de los factores.
Tanto la eficacia como la eficiencia son igualmente influyentes en el factor de
bondad que se desea obtener, por consiguiente deben tener el mismo peso, a
diferencia del factor de complejidad, el cual debe tener un peso
definitivamente menor. Bajo esta premisa se plantea reformular la definicin
del factor de bondad de la siguiente forma:
RB: Factor de bondad de la implementacin del algoritmo cuntico de Grover.

RB= 4 * (Reficacia + Reficiencia) - Rcomplejidad


GB: Factor de bondad de la implementacin del algoritmo cuntico de Grover.

GB = 4 * (Geficacia + Geficiencia)- Gcomplejidad


Entonces, ahora s ya quedan completamente definidos los factores que se
ingresarn al SPSS.
El archivo del programa SPSS con los datos de las 1000 iteraciones del
experimento principal se encuentran en el anexo digital de la presente tesis.

72

Tras ingresar los datos al programa SPSS, se ejecuta la prueba de T-Student


tres veces: una para comparar la eficacia de los algoritmos, otra para
comparar la eficiencia de los mismos y la ltima para comparar sus factores
de bondad total. Se obtienen los siguientes resultados:
Comparacin de factores de Eficacia:

Figura 4.3: Anlisis de Eficacia

En el primer cuadro se detallan las medias de los factores de eficacia, as


como su desviacin estndar y error estndar. En el segundo se muestra el
valor de la correlacin entre los datos. El tercer cuadro es el ms importante,
pues es el que indica si es posible rechazar o no la hiptesis nula. Es
necesario que el valor de significancia hallado por la prueba T-Student sea
73

menor que el valor de significancia elegido antes del experimento, para poder
rechazar la hiptesis nula. Como se dijo antes, el grado de confianza elegido
es de 95%, al cual le corresponde un valor de significancia de 0.05, y como se
puede ver en el grfico, el valor de significancia de la prueba es menor que
una diezmilsima. Luego, se rechaza la hiptesis nula y es posible concluir
que un algoritmo es significativamente ms eficaz que el otro. Comparando
los valores promedio del primer cuadro, es posible afirmar que el algoritmo de
Grover es ms eficiente que el algoritmo GRASP, dado que el factor de
eficacia promedio del primero (523,004) es mayor que el del segundo
(461,618).
Comparacin de factores de Eficiencia:

Figura 4.4: Anlisis de Eficiencia


74

El resultado de la prueba es bastante similar al anterior. En este caso, la


prueba tambin da como resultado que la hiptesis nula debe rechazarse y
efectivamente un algoritmo es ms eficiente que el otro. Los datos del primer
cuadro revelan que el algoritmo Grover es ms eficiente que el algoritmo
GRASP.
Comparacin de factores de Bondad:

Figura 4.5: Anlisis de Bondad


75

Esta es la prueba ms importante pues compara los factores de bondad, y es


la cual definitivamente permitir afirmar si uno de los dos algoritmos es mejor
que el otro.
Analizando los resultados del tercer cuadro se puede apreciar que el nivel de
significancia es de 0.3, el cual es mucho mayor que 0.05. En consecuencia,
NO es posible rechazar la hiptesis nula y se puede concluir que ningn
algoritmo es mejor que el otro.
Sin embargo, este resultado guarda poca coherencia con los dos resultados
anteriores. Por qu ningn algoritmo es mejor que el otro, si el algoritmo
Grover es mejor en eficacia y eficiencia? La respuesta es: porque el factor de
complejidad del algoritmo GRASP es mucho mayor que el del algoritmo de
Grover, y la diferencia entre ambos compensa la ventaja en eficacia y
eficiencia que ya tena el algoritmo de Grover.
Resulta evidente que si se asigna un peso mayor a los factores de eficacia y
eficiencia, el algoritmo de Grover eventualmente podra ser calificado como
mejor que el algoritmo GRASP.
Se realiz otra ejecucin de la prueba T-Student pero considerando el peso
del factor de complejidad como 0.5 en lugar de 1. Los resultados son los
siguientes:

76

Figura 4.6: Anlisis de Bondad tras ajuste en ponderacin

En este caso, la hiptesis nula si puede ser rechazada y es posible concluir


que el algoritmo de Grover tiene un mayor factor de bondad que el algoritmo
GRASP, y por lo tanto resulta ser el mejor de los dos de acuerdo al
experimento planteado.

77

Observaciones, conclusiones y recomendaciones

Este es el ltimo captulo de la tesis y su contenido trata exclusivamente de


analizar los resultados obtenidos en la experimentacin numrica y a lo largo
del desarrollo de toda la investigacin. Es parte tambin del anlisis formular
nuevas interrogantes que han surgido con esta tesis a fin de plantear una
serie de recomendaciones para posibles trabajos posteriores sobre este tema.

5.1

Contraste de Hiptesis

La primera parte de las conclusiones consiste en el contraste final entre los


resultados de la experimentacin numrica y toda la investigacin, y las
hiptesis planteadas inicialmente.

78

A continuacin se listan las hiptesis planteadas y el anlisis respectivo sobre


su verdad o falsedad.
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.

Anlisis:

El valor de esta hiptesis es verdadero. En efecto, uno de las

principales complicaciones durante la fase de diseo e implementacin fue la


formulacin del algoritmo cuntico de Grover en un entorno clsico. Al partir
de una formulacin eminentemente cuntica, pareca imposible realizar un
algoritmo clsico equivalente que pudiera simular estructuras como estados
cunticos superpuestos, aplicacin de operadores cunticos y mediciones.
No obstante, la solucin que se encontr a este problema fue representar
cada uno de los estados cunticos y operadores cunticos en su forma
matricial, un enfoque matemtico muy til en la mecnica cuntica.
La repercusin de este enfoque fue perder la increble ventaja en eficiencia
que presenta el algoritmo de Grover, ya que est ntimamente relacionada
con muchos aspectos inherentemente cunticos e imposible de recrear en
una naturaleza clsica. Sin embargo, el algoritmo cuntico de Grover
formulada matricialmente aun mantiene su lgica y eficacia, y por tanto sigue
siendo aplicable al problema de bsqueda de individuos en el algoritmo
gentico.
Hiptesis 2: El tiempo de ejecucin de una operacin cuntica del algoritmo
de Grover es igual al tiempo de ejecucin de una iteracin del algoritmo
GRASP.
Anlisis: Como se mencion en el captulo 2, esta hiptesis debe ser
considerada como verdadera. Y es vital al momento de comparar los factores
de eficiencia de ambos algoritmos. Como se mencion en el captulo 3, no es
posible simular la eficiencia natural del algoritmo de Grover en un entorno
clsico, pues esta eficiencia es eminentemente cuntica y requiere de
factores cunticos, los cuales no pueden ser simulados. Por tanto, se plantea
que una operacin cuntica del algoritmo de Grover es equivalente a una
operacin clsica del algoritmo GRASP, es gracias a esta condicin que la
79

cantidad de operaciones necesarias por cada uno de los algoritmos son


valores comparables.
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 de un
algoritmo gentico.
Anlisis: Observando los resultados obtenido durante la experimentacin
numrica, es posible concluir que esta hiptesis es falsa considerando el
peso de los factores de eficacia y eficiencia como 4 y el peso del factor de
complejidad como 0.5. Sin embargo, si se cambian estos valores de
ponderacin, la hiptesis 3 podra resultar ser verdadera. En definitiva, la
determinacin de que uno de los dos algoritmos sea mejor que el otro,
depende directamente del peso que se le otorgue a cada uno de los criterios
de eficacia, eficiencia y complejidad.

5.2
Las

Conclusiones
principales

conclusiones

de

esta

investigacin

son

listadas

continuacin:

El algoritmo de Grover, y en general todo algoritmo cuntico, puede


ser simulado en un entorno clsico gracias a la representacin
matricial que cada uno posee por naturaleza. Sin embargo, esto
conlleva a un decremento considerable en su eficiencia real. Siendo,
entonces, fcilmente superables por algn algoritmo clsico. Esto a
raz que las operaciones entre matrices son altamente costosas
computacionalmente hablando.

El algoritmo cuntico de Grover es ms eficaz y ms eficiente que el


algoritmo GRASP. Sin embargo, tambin es el ms complejo de
implementar de los dos.

Existe un intervalo del valor de N (cantidad de genes por


cromosoma) en el cual el algoritmo cuntico de Grover es mejor que
80

el algoritmo GRASP en la aplicacin planteada. Para valores


mayores fuera de este intervalo el algoritmo de Grover no se puede
explicar

pues

las

necesidades

computacionales

se

vuelven

demasiado altas. En esta tesis se utiliz el valor de N=10 (1024


elementos en el Universo) y el algoritmo de Grover funcion, sin
embargo, de usar valores cada vez ms grandes como 15 o 20, se
necesitara una computadora con mayor capacidad de memoria.
Para valores como N=30

(ms de mil millones de elementos) la

cantidad de memoria necesaria por el algoritmo de Grover (en su


versin clsica planteada aqu) excede las capacidades actuales de
una computadora promedio.

Para que el algoritmo cuntico de Grover funcione en una bsqueda


es necesario poder formular correctamente la funcin orculo del
elemento que se desea buscar. Esto resulta altamente deseable
cuando se busca un elemento conocido en un universo grande. Sin
embargo se vuelve un poderoso inconveniente cuando no se puede
identificar el elemento deseado. Un claro caso de esto fue detectado
durante el desarrollo de la tesis, pues no hay forma de saber si
hemos encontrado el mejor individuo (o uno de los mejores) sin antes
compararlo con cada uno de los elementos de la poblacin. La
solucin a este problema es realizar varias ejecuciones del algoritmo
de Grover como se puede comprobar en el diseo e implementacin
de la bsqueda cuntica.

El

algoritmo

cuntico de

Grover

es

una

opcin altamente

recomendable para la realizacin de bsquedas siempre y cuando


en el futuro pueda contarse con una computadora cuntica
completamente operacional. Esto a raz de que el algoritmo cuntico
de Grover puede realizar bsquedas en todo el universo y no en un
sub-conjunto de este universo, como hace el algoritmo GRASP.

La implementacin del algoritmo de Grover usando matrices y


vectores como alternativa a la simulacin de un entorno cuntico,
restringe notablemente el campo de aplicaciones que podran drsele
al algoritmo en un entorno clsico. Si el tamao del universo de

81

posibles soluciones crece, sta implementacin clsica del algoritmo


de Grover requiere cada vez una mayor cantidad de memoria.
En la ejecucin del experimento principal se trabaj con el valor de N
igual a 10, lo cual significaba que cada cromosoma tuviera en total 10
genes. Ello tambin significaba que el algoritmo de Grover
necesitaba usar matrices de 1024 elementos por 1024 elementos
durante cada ejecucin. Si se tratara de trabajar con un valor de
N=20, el algoritmo de Grover necesitara utilizar matrices de ms de
un milln de elementos por ms de un milln de elementos, una labor
computacionalmente muy costosa. Un problema real podra tener un
universo de billones de posibles soluciones, lo cual descarta de
inmediato la posibilidad de usar la implementacin clsica del
algoritmo de Grover.

5.3

Observaciones

Algunas observaciones que se notaron durante el desarrollo de esta tesis son


las siguientes:

La simulacin de un algoritmo cuntico en un entorno clsico es una


tarea no trivial. Optar por la representacin matricial en estados y
operadores cunticos conllev a un desgaste altamente significativo
de eficiencia real, caso que no fue previsto al inicio de la formulacin
de la tesis.

El tamao del universo escogido para las ejecuciones de los


algoritmos GRASP, algoritmo cuntico de Grover, y del propio
experimento principal, podra no ser ptimo para establecer una
conclusin ms definitiva (el algoritmos GRASP podra ser ms
efectivo en un universo ms grande), pero este tamao estaba sujeto
a las restricciones de memoria de una computadora clsica. Dado
que se usaba representacin matricial, solo teniendo 20 genes, se
podan tener 220 combinaciones, y por tanto matrices de dimensiones
de ms de un milln. El gasto de memoria para representar y operar
estas matrices era muy alto.

82

Las ponderaciones que se asignen a los factores de eficacia,


eficiencia y complejidad alterarn notablemente el resultado de la
experimentacin numrica. Inicialmente se consider que el peso de
tanto los factores de eficacia y de eficiencia fuera 4, y el peso del
factor de complejidad fuera 1. En este caso, el resultado de la
experimentacin numrica fue que ningn algoritmo poda ser
considerado mejor que el otro. Sin embargo al reducir el peso del
factor de complejidad a la mitad, la experimentacin numrica dio
como resultado que el algoritmo de Grover era efectivamente mejor
que el algoritmo GRASP en las condiciones en las cuales ambos
fueron implementados y ejecutados.
Es fcilmente deducible que si en lugar de reducir el peso del factor de
complejidad, se hubiera duplicado el peso de los factores de eficacia y
eficiencia, la experimentacin numrica hubiera dado el mismo
resultado: que el algoritmo de Grover tena el mayor factor de bondad
promedio.
Para analizar mejor este hecho, se realiz una grfica donde se
visualiza la variacin del valor de bondad promedio de ambos
algoritmos respecto a la razn entre el factor de eficacia y eficiencia
(ambos tienen el mismo factor, por influir igual en el factor de bondad)
y el factor de complejidad.

Figura

5.1: Grfica Valores de Bondad Promedio vs Razn Eficacia-

Eficiencia/Complejidad

83

El resultado es bastante claro, mientras ms grande sea la razn entre el


peso de los factores de eficacia y eficiencia, y el peso del factor de
complejidad, la diferencia entre los valores de bondad promedio tambin
aumenta, siendo el algoritmo de Grover el que alcanza los valores ms altos.

5.4

Recomendaciones y trabajos futuros

Durante el desarrollo de esta tesis surgieron algunas ideas que podran servir
a investigaciones posteriores, las cuales estn ntimamente relacionadas con
los temas tratados en esta tesis. Estas son enumeradas a continuacin:

En la presente investigacin una de las labores principales que se


llev a cabo fue la formulacin clsica del algoritmo cuntico de
Grover, sin embargo una interrogante que queda abierta, y se puede
abordar en trabajos futuros, tiene que ver con realizar la labor
inversa, representar un algoritmo clsico desde una perspectiva
cuntica. En este caso la pregunta ms importante a resolver sera:
pueden un algoritmo de ordenamiento y uno de

bsqueda

implementados en un contexto cuntico superar la eficiencia del


algoritmo Grover? Una respuesta intuitiva podra ser no, dado que un
algoritmo clsico no hace uso de todas las caractersticas ventajosas
de una computadora cuntica, como

s lo hace el algoritmo de

Grover. No obstante, el inconveniente ms poderoso de una


investigacin de este tipo, sera encontrar un entorno cuntico real,
en el cual simular el entorno clsico necesario para ejecutar el
algoritmo de ordenamiento y el de bsqueda. Esta labor sera ms
complicada que su inversa (simular un algoritmo cuntico en un
entorno clsico), y muy probablemente requerira ya del uso de una
computadora cuntica.

As como el algoritmo de Grover pudo ser representado en su forma


matricial, puede quedar en manos del lector la formulacin matricial
de otro algoritmo cuntico como el algoritmo de Shor aplicado a la
factorizacin de nmeros. Es necesario recordar que no se podr

84

aprovechar la eficiencia natural y real de un algoritmo cuntico


debido al entorno clsico en el cual uno se encuentra y sobre el cual
se realiza la implementacin.

Un trabajo futuro que se podra realizar es la ejecucin del


experimento planteado en esta tesis, pero definiendo factores de
comparacin distintos. Un inconveniente que se encontr durante la
fase de la experimentacin numrica fue que las diferencias entre
eficacia, eficiencia y complejidad eran muy distintas entre s,
inconveniente que se solucion asignando un peso a cada factor. Si
se pudieran definir nuevos factores o cambiar la definicin de los
planteados, se podran obtener quiz resultados ms precisos.

Es posible que existan otros enfoques respecto a la simulacin de


algoritmos cunticos en un entorno clsico, tal es el caso de la
investigacin realizada en [2], en la cual se usaron estructuras
primitivas y compuestas del lenguaje de programacin funcional
Haskell para simular superposicin de estados. Sera interesante y
provechoso plantear en una futura investigacin, una simulacin del
algoritmo de Grover ms eficiente y contrastar los resultados
obtenidos, con los correspondientes a la simulacin del algoritmo de
Grover con representacin matricial, tal como se realiz en la
presente investigacin.

85

Referencias

[1] Lee Spector 2007. Quantum Computing. Tutorial at the 2007 Genetic and
Evolutionary Computation Conference. EE.UU. Association for Computing
Machinery

Digital

Library.

Consulta:

15

de

abril

del

2009

http://portal.acm.org/citation.cfm?id=1274000.1274128&coll=ACM&dl=ACM&
CFID=32151033&CFTOKEN=99217282>
[2] Sabry Amr 2003. Modeling Quantum Computing in Haskell. Paper. EE.UU.
Association for Computing Machinery Digital Library. Consulta: 15 de abril del
2009.
http://portal.acm.org/citation.cfm?id=871895.871900&coll=ACM&dl=ACM&CFI
D=32151033&CFTOKEN=99217282>
[3] Eleanor Rieffel, Wolfgang Polak. 2000. An Introduction to Quantum
Computing for Non-Physicists. Paper. EE.UU. Association for Computing
Machinery Digital Library. Consulta: 15 de abril del 2009.
http://portal.acm.org/citation.cfm?id=367701.367709&coll=ACM&dl=ACM&CFI
D=32151033&CFTOKEN=99217282>
[4] Ben Travaglione. 2003. Designing and Implementing Small Quantum
Circuits and Algorithms. Paper. EE.UU. Association for Computing Machinery
Digital Library. Consulta: 15 de abril del 2009.
http://portal.acm.org/citation.cfm?id=775832.776057&coll=ACM&dl=ACM&CFI
D=32151033&CFTOKEN=99217282>
[5] Udrescu Mihai, Prodan Lucian, Vladutiu Mircea. "Implementing Quantum
Genetic Algorithms: A Solution based on Grovers Algorithm". Paper.
Rumania. 2006. Association for Computing Machinery Digital Library.
Consulta:

10

de

marzo

del

2010.

http://www.fing.edu.uy/if/cursos/qcomp/clases/grover_2007.pdf

86

[6] Lanzagorta Marco, Uhlmann Jeffrey. 2005. Hybrid Quantum-Classical


Computing

with

Applications

to

Computer

Graphics.

Paper.

EE.UU.

Association for Computing Machinery Digital Library. Consulta: 15 de abril del


2009.
http://portal.acm.org/citation.cfm?id=1198555.1198723&coll=ACM&dl=ACM&
CFID=32151033&CFTOKEN=99217282>
[7] How Stuff Works. How Quantum Computers Work. Pgina Web. EE.UU.
HowStuffWorks.Inc. Consulta: 1 de mayo del 2009. Disponible en:
http://computer.howstuffworks.com/quantum-computer.htm
[8] Lee Spector. 2004. Automatic Quantum Computer Programming: A
Genetic Programming Approach. New York. EE.UU. Springer Science
Business

Media.

Consulta

de

mayo

del

2009

http://books.google.com/books?id=HzC58SW6qSQC&dq=Automatic+Quantu
m+Computer+Programming:+A+Genetic+Programming&printsec=frontcover&
source=bl&ots=PO8DaVDn42&sig=0AzH0uXRMQxXhlgueGtlkwiKlI&hl=en#PPP1,M1
[9] Gua de los Fundamentos de la Direccin de Proyectos (Gua del
PMBOK), PMI, 3era Edicin, 2004
[10] Anthony Carpi, Ph.D. "The Scientific Method," Vision Learning Vol. SCI-1
(1), 2003.
Consulta

de

mayo

del

2009.

http://www.visionlearning.com/library/module_viewer.php?mid=45
[11] Universidad de la Repblica | Uruguay, Facultad de Ingeniera.
"Computacin Cuntica- Algoritmo de Grover", Universidad de la Repblica,
Uruguay,

2003. Consulta: 10 de marzo del 2010. Disponible en

http://www.fing.edu.uy/if/cursos/qcomp/clases/grover_2007.pdf
[12] C.Lavor, L.R.U. Manssur, R. Portugal. Grovers Algorithm: Quantum
Database Search. Paper. Instituto de Matemtica e Estatstica.Universidade
do Estado do Rio de Janeiro. Brasil. 2003. Consulta 5 de abril del 2009.
Disponible

en:

http://www.fing.edu.uy/if/cursos/qcomp/extras/notas/port-grover.pdf
87

[13] Heaton Research. Implementation of a Generic Genetic Algorithm. Pgina


Web. EE.UU. Heaton Research, Inc. Consulta 29 de marzo del 2009.
Disponible

en

http://www.heatonresearch.com/online/introduction-neural-

networks-java-edition-2/chapter-6
[14] Mathew Wall. Overview of Genetic Algorithms Pgina Web. EE.UU.
Mechanical Engineering Department of the Massachusetts Institute of
Technology.

Consulta

de

abril

del

2009.

Disponible

en

http://lancet.mit.edu/~mbwall/presentations/IntroToGAs/P001.html
[15] Nielsen Michael, Chuang Isaac. 2001 (e.o. 2000). Quantum Computation
and Quantum Information. Reino Unido. Cambridge University Press.
[16] Whitehead Matthew. Using Grovers Algorithm for Genetic Search. Paper
EE.UU.

2005.

Consulta

de

abril

del

2009.

Disponible

en

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.93.5598&rep=rep1&
type=pdf
[17] Ahuja Ashish, Kapoor Sanjiv. A Quantum Algorithm for Finding the
Maximum. Paper. Department of Computer Science and Engineering- Indian
Institute of Technology. New Delhi. India. 1999. Consulta 4 de abril del 2009.
[18] Goldberg, David. (1989). Genetic Algorithms in Search, Optimization and
Machine Learning. Addison-Wesley Professional, 1 Edition.
[19] Montgomery Douglas. (1991) Diseo y Anlisis de Experimentos. Grupo
Editorial Iberoamrica S.A.

88

Вам также может понравиться