rivera alejo josé enrique algoritmo cuántico grover grasp

Upload: cesar-raul-quispe-loyola

Post on 17-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    1/96

    TESIS PUCP

    Esta obra ha sido publicada bajo la licencia Creative Commons

    Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 Per.

    Para ver una copia de dicha licencia, visite

    http://creativecommons.org/licenses/by-nc-sa/2.5/pe/

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    2/96

    PONTIFICIA UNIVERSIDAD CATLICA DEL PER

    FACULTAD DE CIENCIAS E INGENIERA

    ANLISIS COMPARATIVO ENTRE EL ALGORITMOCUNTICO DE GROVER Y UN ALGORITMO GRASP,

    APLICADOS A LA BSQUEDA DE INDIVIDUOS PTIMOS ENLA POBLACIN INICIAL DE UN ALGORITMO GENTICO.

    Tesis para optar por el Ttulo de Ingeniero Informtico, que presenta el bachiller:

    Jos Enrique Rivera Alejo

    ASESOR: Mg. Martin Richard Kong Moreno

    Lima, agosto del 2010

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    3/96

    Resumen

    Este trabajo trata sobre la aplicacin de dos algoritmos de bsqueda a la

    seleccin de individuos ptimos en la poblacin inicial de un algoritmo

    gentico, y la consiguiente comparacin entre ambos.

    El primero de ellos es el algoritmo meta-heurstico GRASP, y el segundo es el

    algoritmo cuntico de Grover.

    El algoritmo cuntico de Grover forma parte de una nueva generacin en las

    ciencias de la computacin: la computacin cuntica. Y por tanto hace uso deconceptos matemticos y fsicos completamente distintos a los usados en la

    programacin clsica.

    En esta tesis se presenta un anlisis general de ambos algoritmos, siendo de

    especial mencin el anlisis del algoritmo cuntico de Grover, ya que incluye

    un modelo matemtico del funcionamiento del mismo. Este modelo ser de

    suma importancia para simular la ejecucin del algoritmo de Grover en una

    computadora clsica, dada la carencia de una computadora cuntica sobre lacual realizar esto.

    Luego, se preparan dos procesos experimentales, los cuales se usarn para

    realizar la comparacin de eficacia y eficiencia entre las ejecuciones de los

    dos algoritmos.

    Posteriormente, se presenta el diseo e implementacin de los algoritmos,

    ambos aplicados a la seleccin de individuos de un algoritmo gentico

    genrico. Una vez ambos algoritmos se encuentren correctamente

    implementados y funcionales, se ejecutarn las pruebas experimentales que

    permitan realizar la comparacin entre ellos.

    Finalmente se realizan las conclusiones y observaciones del caso en base a

    los resultados numricos obtenidos en la fase experimental.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    4/96

    Dedicado a:

    Mis padres.

    Los lectores de este trabajo.

    Agradecimientos a:

    Dios, porque gracias a l todo es posible.

    Mi padre, mi madre y mi hermano, quienes me han apoyado en cada

    momento de mi vida.

    Mi asesor por su apoyo durante el desarrollo de esta tesis.

    Mis profesores por sus importantes enseanzas a lo largo de mi vida

    acadmica.

    Mis amigos por su ayuda, apoyo, nimo y compaa, y especialmente a quien

    siempre me dese suerte en todo y a quien me hizo abrir los ojos nuevamente

    a la investigacin.

    A todos ustedes, muchas gracias.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    5/96

    Tabla de Contenido

    Introduccin.......................................................................................................1

    1.

    Captulo I: Generalidades...........................................................................4

    1.1 Definicin del Problema......................................................................4

    1.2 Marco Conceptual del Problema ........................................................ 6

    1.3

    Estado del Arte .................................................................................12

    1.3.1

    Investigaciones realizadas............................................................13

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

    2 Captulo II: Aporte de la Investigacin......................................................21

    2.1

    Aportes especficos ..........................................................................21

    2.2

    Desarrollo de la Metodologa............................................................23

    2.2.1

    Observacin..................................................................................23

    2.2.2 Planteamiento de Hiptesis: .........................................................24

    2.2.3 Experimentacin ...........................................................................24

    2.2.4

    Conclusin ....................................................................................25

    2.3

    Lista de Resultados Esperados........................................................ 26

    2.4 Planteamiento de hiptesis...............................................................27

    3

    Captulo III: Implementacin del Aporte....................................................32

    3.1

    Definicin de los Experimentos ........................................................ 32

    3.1.1

    Seleccin de Individuos ptimos (Experimento-1) ........................33

    3.1.2 Experimentacin Numrica........................................................... 35

    3.2 Definicin de los Algoritmos .............................................................36

    3.2.1

    Definicin del Algoritmo Gentico.................................................36

    3.2.2

    Definicin del Algoritmo GRASP...................................................41

    3.2.3

    Definicin del Algoritmo Cuntico de Grover ................................42

    3.3

    Diseo de los Algoritmos..................................................................48

    3.3.1 Diseo del Algoritmo GRASP ....................................................... 48

    3.3.2

    Diseo del Algoritmo Cuntico de Grover.....................................50

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

    4 Experimentacin Numrica.......................................................................59

    4.1

    Ejecucin de la Experimentacin Numrica .....................................60

    4.1.1

    Antes de la ejecucin de la Experimentacin Numrica...............61

    4.1.2 Prueba T-Student para dos muestras relacionadas...................... 64

    4.2

    Resultados........................................................................................64

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    6/96

    5 Observaciones, conclusiones y recomendaciones...................................78

    5.1 Contraste de Hiptesis .....................................................................78

    5.2

    Conclusiones ....................................................................................80

    5.3 Observaciones..................................................................................82

    5.4

    Recomendaciones y trabajos futuros ...............................................84

    6 Referencias ..............................................................................................86

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    7/96

    ndice de Figuras

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

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

    Figura 4.3: Anlisis de Eficacia 73

    Figura 4.4: Anlisis de Eficiencia 74

    Figura 4.5: Anlisis de Bondad 75

    Figura 4.6: Anlisis de Bondad tras ajustes en Ponderacin 77

    Figura 5.1: Grfica Valores de Bondad Promedio vs Razn Eficacia-

    Eficiencia/Complejidad

    83

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    8/96

    ndice de Tablas

    Tabla 1.1: Cuadro Comparativo de las Investigaciones Encontradas 17

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    9/96

    1

    Introduccin

    La computacin cuntica aparece como una nueva rama de las Ciencias de la

    Computacin, la cual promete la posibilidad de realizar el procesamiento de

    inmensas cantidades de informacin en tiempos millones de veces menores

    de lo que son capaces las computadoras clsicas hoy en da.

    La computacin cuntica est atravesando una etapa de intensa investigacin

    alrededor del todo el mundo, por ejemplo, en los laboratorios de entidades

    como IBM, Microsoft, Google y el Instituto Tecnolgico de Massachusetts. Se

    perfila como la tecnologa que reemplazar eventualmente a la computacin

    clsica tal cual la conocemos hoy en da, gracias a los mltiples beneficios

    que supone.

    La investigacin en el campo de la computacin cuntica es solo parte de un

    campo mucho ms amplio conocido como informacin cuntica. En lo que

    respecta a su rama ms cercana a las Ciencias de la Computacin, se puede

    afirmar que en la actualidad ya han sido propuestos varios algoritmos de

    naturaleza cuntica, los cuales garantizan podrn realizarse operaciones que

    hoy en da tomaran miles o millones de aos, en tan solo segundos. Uno de

    estos algoritmos, es el algoritmo cuntico de Grover, un algoritmo cuntico de

    bsqueda, especialmente til en grandes universos de elementos sin ningn

    tipo de ordenamiento a priori.

    El algoritmo cuntico de Grover es capaz de resolver bsquedas con una

    velocidad mucho mayor que los algoritmos clsicos con los que contamos

    hoy. La razn entre ambas velocidades demuestra que la velocidad del

    algoritmo de Grover es aproximadamente el cuadrado de la velocidad del

    mejor algoritmo clsico de bsqueda en un universo grande de elementos sin

    ordenar.

    Lo que se plantea en esta tesis es recoger el conocimiento y fundamento

    fsico-matemtico del algoritmo de Grover, a fin de poder simular suimplementacin en un entorno clsico, analizar su eficiencia aplicada a un

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    10/96

    2

    caso en particular y compararla con un algoritmo de bsqueda clsico

    aplicado al mismo caso.

    El caso que se ha decidido tomar como base para la aplicacin (y posterior

    comparacin) de ambos algoritmos, es la seleccin de individuos ptimos en

    la poblacin inicial de un algoritmo gentico.

    Los algoritmos genticos son una clase de algoritmo de la rama de la

    computacin evolutiva, los cuales a travs de la simulacin de ciertos

    fenmenos de la naturaleza, buscan dar como respuesta final la solucin

    ptima (o la ms cercana a la ptima) de un problema. Los problemas que se

    tratan de resolver con los algoritmos genticos, son en la mayora de casos

    aquellos que son conocidos como problemas NP. Estos problemas se

    caracterizan por no tener una solucin exacta, o, en todo caso, porque el

    clculo de la solucin exacta requiere un cmputo exhaustivo, el cual tomara

    una cantidad excesiva de tiempo en finalizar (desde das hasta incluso miles

    de aos).

    Una de las fases caractersticas de un algoritmo gentico es la seleccin de

    los mejores individuos de su poblacin. Para resumir, un algoritmo gentico

    cuenta con un conjunto de posibles soluciones al problema que busca

    resolver, este conjunto se conoce como su poblacin, y cada posible

    solucin se conoce como individuo. El algoritmo gentico generalmente se

    apoya en otros algoritmos de bsqueda y optimizacin para seleccionar los

    mejores individuos de un universo y formar una poblacin inicial, la cual ir

    mejorando progresivamente y, por tanto, ir acercndose a la mejor solucin.

    Uno de los mejores algoritmos clsicos que se usan hoy en da para esta

    labor es el que se conoce como algoritmo GRASP (Greedy RandomizedAdaptive Search Procedure o Procedimiento de Bsqueda Adaptativa

    Aleatoria y Golosa).

    Tanto el algoritmo cuntico de Grover como el algoritmo GRASP sern

    aplicados a la seleccin de la poblacin inicial de un algoritmo gentico

    genrico. No se definir una aplicacin particular al algoritmo gentico, pues

    no es parte del objetivo de la presente tesis.

    Se usarn los conceptos fundamentales de los algoritmos genticos demanera genrica a fin de que los resultados obtenidos de la comparacin

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    11/96

    3

    entre el algoritmo de Grover y el algoritmo GRASP sean vlidos en cualquier

    aplicacin concreta del algoritmo gentico.

    Por ltimo, esta tesis busca fomentar el deseo de investigacin en la rama de

    la computacin cuntica, dentro del pas, demostrando que existe un campo

    muy amplio para la aplicacin de los algoritmos cunticos en la resolucin

    ms eficiente de problemas ya presentes hoy en da.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    12/96

    4

    1. Captulo I: Generalidades

    1.1 Definicin del Problema

    En este apartado, primero se presentar el campo de la computacin

    cuntica, posteriormente se explicar brevemente qu es un algoritmo

    gentico y cul es la fase que se plantea optimizar.

    La computacin cuntica es un campo emergente y nuevo en las Ciencias de

    la Computacin, el cual hace uso directo de los principios fsicos y

    matemticos que rigen la mecnica cuntica para poder lograr procesamiento

    de la informacin con mucha mayor eficiencia que la computacin clsica.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    13/96

    5

    La programacin cuntica difiere de la clsica pues usa conceptos inherentes

    a la matemtica y fsica de la mecnica cuntica, tales como amplitudes de

    probabilidad y superposicin de elementos [1]. Cada uno de estos conceptos

    est fuertemente relacionado con la computacin cuntica, desde sus

    elementos tangibles como las computadoras cunticas hasta sus elementos

    intangibles como los algoritmos cunticos.

    El tratamiento de los elementos probabilsticos propios de la mecnica

    cuntica est siempre presente en el manejo de algoritmos y programacin

    cuntica. Puede tomarse por ejemplo, que en todo momento al trabajar con

    qubits (equivalente cuntico de los bits), hay una probabilidad que determina

    el estado en el cual se encuentren (si en cero, en uno, o en superposicin).

    Otro elemento propio de la computacin cuntica es precisamente la

    superposicin de estados (un qubit puede estar en 0 y 1 a la vez) lo cual crea

    un paralelismo completamente distinto del manejado por la programacin

    clsica [2].

    Un algoritmo gentico es un tipo de algoritmo de la familia de la computacin

    evolutiva. Su lgica y funcionamiento estn inspirados en la teora de la

    seleccin natural, herencia y la evolucin. Los algoritmos genticos son

    ampliamente usados en problemas de optimizacin y para buscar soluciones

    aproximadas a los problemas del tipo NP, los cuales no cuentan con una

    solucin exacta, o, si en caso la tengan, resulta computacionalmente

    exhaustivo encontrarla, pues el tiempo necesario est en el orden de hasta

    cientos, miles o millones de aos, de acuerdo a la magnitud del problema.

    Un elemento propio de los algoritmos genticos es su poblacin de individuos.

    En el contexto de un algoritmo gentico, los individuos que conforman supoblacin son posibles soluciones al problema planteado y en las

    consiguientes iteraciones se simular una progresiva evolucin de esta

    poblacin: los individuos malos (soluciones no-ptimas) son eliminados y los

    individuos buenos (soluciones cercanas a las ptimas) generan nuevos

    individuos los cuales heredan lo mejor de sus padres, es decir, se vuelven

    mejores candidatos de la solucin general.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    14/96

    6

    Una de las fases cruciales del algoritmo gentico es la seleccin de la

    poblacin inicial, es decir, la seleccin de los individuos buenos

    discriminando los individuos malos de todo el universo de candidatos. Este

    proceso es crtico pues los algoritmos genticos no trabajan directamente con

    todo el universo de posibles soluciones, sino que necesitan un subconjunto d

    dicho universo, el cual permita que la labor sea menos exhaustiva. Los

    algoritmos genticos utilizan en la mayora de casos un algoritmo adicional

    para realizar esta seleccin. Uno de los algoritmos que se usan por

    excelencia en este tipo de casos, es el algoritmo GRASP, un algoritmo meta-

    heurstico.

    Sin bien el algoritmo GRASP resulta efectivo al seleccionar una poblacin

    inicial de individuos buenos, para que funcione correctamente se requiere

    una gran cantidad de iteraciones del mismo. Adems, para que el algoritmo

    gentico funcione mejor, lo recomendado es trabajar con grandes

    poblaciones. Siendo este el caso nos encontramos con una gran cantidad de

    bsquedas en un gran universo de elementos. Esto se traduce en un gran

    tiempo computacional, que si bien no demora aos, ni siglos, puede tomar

    largas horas y das. Es precisamente esta fase de seleccin la cual se plantea

    optimizar a fin de poder conseguir mejores resultados con una mayor

    eficiencia. Usando los nuevos conceptos emergentes de computacin

    cuntica y algoritmos cunticos ya descritos lneas arriba, se plantear el uso

    del algoritmo cuntico de Grover para la seleccin de los mejores individuos

    de un universo, los cuales conformarn la poblacin inicial de un algoritmo

    gentico genrico. Posteriormente, se compararn estos resultados con los

    que se hubieran obtenido si se usara el algoritmo GRASP.

    1.2 Marco Conceptual del Problema

    Se explicarn las nociones bsicas de la computacin cuntica, enfatizando

    en aquellas caractersticas que permitan comprender el funcionamiento del

    algoritmo de Grover. Adems se explicar el funcionamiento del algoritmo

    gentico y el algoritmo GRASP.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    15/96

    7

    La Computacin Cuntica

    La computacin cuntica es una nueva rama tecnolgica y cientfica que

    aparece como una poderosa alternativa para realizar procesamiento masivo

    de datos en menor tiempo de lo que se consigue con las computadoras que

    se usan en la actualidad. El comportamiento de una computadora cuntica

    est gobernado por las leyes de la mecnica cuntica [1]

    En general, se usa la frase computacin cuntica para describir procesos

    computacionales cuya eficiencia depende de las propiedades de la mecnica

    cuntica en el manejo de la informacin. [8]

    Cmo aparece la computacin cuntica?

    La ley de Moore establece que el nmero de transistores presentes en un

    microprocesador va duplicndose cada 18 meses. Esto presupone que entre

    los aos 2020 y 2030, los circuitos de procesamiento habrn llegado a una

    escala atmica. Es aqu donde se plantea la aparicin de computadoras

    cunticas, las cuales usarn el potencial de tomos y molculas para realizar

    tareas de memoria y procesamiento [7].

    Por qu la computacin cuntica es un tema relevante?

    Los mecanismos de procesamiento de informacin que se usan en la

    computacin cuntica son notablemente ms eficientes que los usados en la

    computacin clsica. La capacidad de procesamiento de una computadora

    cuntica resulta ser exponencialmente mayor que la de una computadora

    clsica. Como se ver ms adelante, el fenmeno de superposicin en lamecnica cuntica permite que las unidades de informacin de la

    computacin cuntica (qubits) aumenten exponencialmente la capacidad

    presente en las unidades de informacin actuales (bits).

    Se puede considerar el siguiente ejemplo: la tarea de factorizar un nmero de

    5000 dgitos es una tarea computacionalmente exhaustiva, irrealizable para

    una computadora clsica. Usando el mejor algoritmo clsico con el que se

    cuenta hasta la fecha, el tiempo de ejecucin estimado es de 5 trillones de

    aos. Este tiempo de ejecucin sobrepasa incluso la edad del universo. Sin

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    16/96

    8

    embargo, si la misma tarea fuera realizada por el algoritmo cuntico de Shor,

    una computadora cuntica se demorara tan solo dos minutos.

    El ahorro exponencial de recursos provisto por la computacin cuntica lo

    hace un tema sumamente atractivo en la comunidad cientfica mundial y est

    siendo investigado activamente por entidades tales como el Massachussets

    Institute of Technology (MIT) o IBM Research entre muchas otras.[1]

    Conceptos bsicos de Computacin Cuntica

    Como ya se mencion antes, la computacin cuntica tiene principios

    basados en las leyes de la mecnica cuntica. Algunos conceptos

    importantes son:

    1. Las probabilidades:

    En la computacin cuntica las probabilidades de un hecho deben ser

    siempre consideradas, aun si el hecho en cuestin nunca sucede [1].

    Tanto una computadora cuntica como un algoritmo cuntico son sistemas

    probabilsticos, esto quiere decir que por su propia naturaleza nunca se puede

    saber con seguridad cul es el estado del sistema. Sin embargo s se puede

    saber la distribucin de probabilidad de dichos estados. Los clculos que se

    realizan en la computacin cuntica son probabilsticos. Es por ello que, al

    igual que en la mecnica cuntica, nunca puede darse una respuesta cien por

    ciento segura, sino una respuesta probabilsticamente aceptable.

    El trmino asociado a la probabilidad en la mecnica cuntica (y por tanto en

    la computacin cuntica) se denomina amplitud y puede incluir trminos

    negativos e incluso imaginarios. [1]

    2. La superposicin cuntica:

    La mnima unidad de informacin en la computacin clsica es el bit. Un bit

    tiene dos estados, puede estar en 0 (apagado) o 1 (prendido), siempre estar

    nicamente en uno de estos dos estados.

    Por su parte, la computacin cuntica tiene como mnima unidad de

    informacin al qubit. Un qubit tambin puede existir en alguno de los dos

    estados de la computacin clsica: 0 y 1, sin embargo, tambin puede existiren una superposicin de ambos. [3]

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    17/96

    9

    Esto puede explicarse de la siguiente forma:

    Un bit tiene dos estados posibles asociados. Si el bit est prendido, la

    probabilidad de que est prendido es evidentemente uno, y la probabilidad de

    que est apagado es cero. Notamos que las probabilidades son absolutas.

    Un qubit tambin tiene dos estados posibles asociados. Sin embargo, un

    qubit tiene una probabilidad de estar prendido y otra probabilidad de estar

    apagado. Estas probabilidades como se mencion anteriormente, en la

    computacin cuntica estn asociadas a elementos denominados amplitudes

    y son trminos imaginarios.

    As como un qubit puede existir en superposicin de estados. El mismo

    principio es aplicable a registros enteros de qubits. Si se tiene un registro de

    n qubits, el principio de superposicin de la mecnica cuntica dice que se

    podran tener hasta 2nestados a la vez. Dicho de otra forma, un registro de

    n qubits es equivalente a 2n registros de n bits. En conclusin, un qubit

    tiene una capacidad de procesamiento exponencialmente mayor a la de un bit

    convencional gracias al principio de superposicin.

    3. Sistemas cunticos:

    Al considerar un sistema cuntico de dos qubits donde existen 4 posibles

    estados superpuestos a la vez., la notacin cuntica es la siguiente: [1]

    Esto quiere decir que el estado del sistema est determinado por la

    superposicin de todos los estados posibles. Dos qubits determinan que los

    cuatro posibles estados del sistema son: (00), (01), (10) y (11). Cada uno de

    estos posibles estados tiene asociada una amplitud i, cuyo valor elevado al

    cuadrado determina la probabilidad de que el sistema colapse a dicho estado.

    Adems, la suma de las probabilidades de todos los casos posibles en un

    sistema debe ser siempre uno. En el sistema cuntico mostrado, la

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    18/96

    10

    probabilidad efectiva de cada caso est dada por el cuadrado del mdulo de

    la amplitud asociada. Entonces la suma de los cuadrados del mdulo de cada

    amplitud, es uno.

    Qu es el algoritmo de Grover?

    El algoritmo de Grover es, como su creador, Lov Grover, lo defini: Un

    algoritmo mecnico cuntico rpido para bsqueda en base de datos (A fast

    quantum mechanical algorithm for database search) [11].

    El algoritmo de Grover realiza bsquedas de elementos dentro de un universo

    sin ordenar, con una velocidad pasmosa que supera de manera cuadrtica la

    velocidad de un algoritmo clsico.

    Clsicamente, si se tiene un universo con elementos sin ordenar, la opcin

    ms segura que queda es revisar secuencialmente cada uno de los

    elementos (podra ser en orden aleatorio) a fin de poder encontrar el elemento

    deseado. Si el universo consta de N elementos, clsicamente, en promedio,

    se necesitan N/2 intentos para encontrar el elemento deseado.

    Sin embargo, el algoritmo de Grover puede realizar bsquedas en un universo

    de elementos desordenados en la raz cuadrada de N iteraciones. Es decir,

    si el universo es de 10000 elementos, clsicamente se necesitaran en

    promedio 5000 iteraciones, sin embargo, usando el algoritmo de Grover solo

    son necesarias 100 iteraciones. Y esta diferencia se hace ms evidente al

    hacer N un nmero ms grande.

    Cmo funciona un algoritmo gentico?

    Un algoritmo gentico, como se mencion lneas arribas, est inspirado en los

    fenmenos naturales de seleccin natural, herencia y evolucin. Dependiendodel problema que se est tratando de resolver, primero se establecer un

    conjunto inicial de soluciones candidatas (individuos de la poblacin inicial).

    Todas las soluciones son correctas, sin embargo, algunas son mejores que

    otras, el objetivo es buscar la solucin ptima, es decir, el individuo ms

    apto de toda la poblacin.

    La funcin de fitness, es un indicador que permite distinguir si una solucin

    candidata es mejor que otra. La funcin de fitness asigna a cada individuo un

    valor numrico el cual determina cun ptimo es dicho individuo, es decir,cuan buena es la solucin. [18]

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    19/96

    11

    El algoritmo gentico simula la seleccin natural, discriminando los individuos

    con menor valor de funcin de fitness y promoviendo que los individuos con

    alto valor de funcin de fitness, tengan hijos, los cuales hereden lo mejor de

    sus padres, es decir, se volvern soluciones mejores.

    Los algoritmos genticos no trabajan con el universo entero de posibles

    soluciones al problema, pues no es parte de sus caractersticas ser

    exhaustivos, ya que tomara una mayor cantidad de tiempo computacional. Es

    por ello que una fase muy importante en la ejecucin de un algoritmo

    gentico, es seleccionar la poblacin inicial, la cual es un subconjunto del

    universo total de soluciones. Es ventajoso que los individuos de la poblacin

    inicial tengan un alto grado de bondad segn la funcin de fitness.

    El objetivo de la fase de seleccin de la poblacin inicial es eminentemente

    una bsqueda: El universo son todos los individuos de la poblacin, (los

    cuales no se encuentran ordenados), y lo que se est buscando son los

    individuos con mayor valor de funcin de fitness.

    Es este proceso de seleccin el cual ser simulado utilizando primero un

    algoritmo GRASP y luego el algoritmo cuntico de Grover. No es parte del

    objetivo de esta tesis simular el proceso evolutivo de la poblacin inicial

    seleccionada.

    El algoritmo gentico tambin simula otros procesos propios de la naturaleza,

    como la eventual aparicin de mutaciones y la eliminacin de aberraciones,

    sin embargo la simulacin de estos procesos no forma parte del objetivo de

    esta tesis y, por lo tanto, no sern considerados.

    Qu es un algoritmo GRASP?

    Es un algoritmo meta-heurstico usado generalmente para hallar un conjuntode soluciones candidatas en problemas de optimizacin combinatoria. El

    algoritmo GRASP evita realizar una bsqueda exhaustiva de las

    combinaciones de elementos que pueden considerarse solucin, y en lugar

    de eso, aplica un criterio voraz a la par de un grado de variabilidad en la

    seleccin. Esta variabilidad surge como resultado de seleccionar ciertos

    elementos del universo de una forma aleatoria, estos elementos

    seleccionados al azar son asignados como parte de una solucin.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    20/96

    12

    Es esta variabilidad la que relaja la voracidad natural del algoritmo a fin de

    evitar las desventajas naturales de un algoritmo voraz heurstico, como la

    seleccin de mximo locales en lugar del mximo global.

    El algoritmo GRASP es ampliamente utilizado en problemas de tipo NP a fin

    de obtener un conjunto de posibles soluciones. La eficacia del algoritmo

    GRASP aumenta con la cantidad de iteraciones, sin embargo, a la par, el

    tiempo de ejecucin tambin aumenta de manera considerable. Esta es una

    de las razones por las cuales el algoritmo cuntico de Grover surge como una

    alternativa muy atractiva para superar este inconveniente.

    1.3 Estado del Arte

    Actualmente existen numerosos estudios sobre computacin y algoritmos

    cunticos, la mayor parte de ellos son realizados en Estados Unidos y parte

    de Europa, si bien en Latinoamrica, Mxico sobresale como uno de los

    pases con la mayor cantidad de investigaciones activas realizadas sobre el

    tema.

    Los estudios realizados sobre las aplicaciones al algoritmo de Grover son

    muy variados y han servido de gran apoyo al desarrollo de la presente tesis.

    En particular, hay un estudio de la Universidad Politcnica de Timisoara en

    Rumania en el cual se propone el modelo de un algoritmo gentico

    eminentemente cuntico. El funcionamiento de este algoritmo sigue estando

    inspirado en los procesos de evolucin y seleccin natural, sin embargo con

    ciertos cambios que lo permitan amoldarse ms a la lgica y principios de la

    mecnica cuntica.

    Este algoritmo gentico cuntico tiene como motor de bsqueda al algoritmode Grover, el cual sirve para realizar una veloz y eficiente seleccin de las

    mejores soluciones en cada iteracin.

    Respecto a los algoritmos genticos y a los algoritmos GRASP, las

    investigaciones y estudios que se han realizado son bastante amplios y

    diversos. Hay una gran cantidad de aplicaciones prcticas a los algoritmos

    genticos, desde optimizacin de rutas hasta planeamiento de carteras de

    proyectos de inversin.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    21/96

    13

    Las investigaciones que han sido de gran ayuda para la elaboracin de la

    presente tesis son aquellos que tratan de computacin cuntica, algoritmos

    cunticos, su formulacin, fundamento e implementacin. Fundamentalmente

    aquellas que logran una cierta unin entre los algoritmos clsicos y cunticos

    en lo que son conocidos como algoritmo hbridos. Dado que en esta tesis se

    plantea la implementacin del algoritmo cuntico de Grover en un entorno

    clsico, es de mucha ayuda conocer los resultados de investigaciones ya

    realizadas, que han intentado y en muchos casos armonizar dos paradigmas

    tan diferentes.

    1.3.1 Investigaciones realizadas

    Implementing Quantum Genetic Algorithms: a Solution based on Grover

    Algorithm

    Esta investigacin llevada a cabo en la Universidad Politcnica de Timisoara

    en Rumania, plantea que es posible una conjuncin amistosa entre dos

    ramas de las ciencias de la computacin altamente prometedoras: la

    computacin cuntica y los algoritmos genticos. [5]

    Para ello se apoyan en lo que se conoce como Programacin Cuntica

    Evolutiva (Quantum Evolutionary Programming QEP), la cual viene a ser

    una nueva rama en las ciencias de la computacin que engloba e incluye la

    lgica y fundamento de los algoritmos genticos en conjunto con los principios

    de la mecnica y computacin cuntica. Lo que la investigacin plantea es

    que es posible realizar un algoritmo cuntico gentico (Quantum Genetic

    Algorithm- QGA), si bien, tambin es descrita como una tarea ardua, pues en

    la actualidad no existe ninguna base, ni idea coherente sobre la cual plantear

    uno.

    En la computacin clsica, la poblacin de individuos (soluciones candidatas)

    que se selecciona inicialmente y la cual ir siendo mejorada

    progresivamente a lo largo de las iteraciones, es solo una muestra del

    universo total de posibles soluciones al problema. Esto es un prerrequisito

    indispensable para todo algoritmo gentico ya que, una de los objetivos de

    este algoritmo es evitar realizar clculos exhaustivos, por ejemplo, procesar

    todas las posibles soluciones al problema. Esto tomara un tiempo

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    22/96

    14

    computacional excesivo y el algoritmo perdera su eficiencia que lo

    caracteriza resolviendo problemas.

    Sin embargo, esta investigacin plantea que un algoritmo gentico cuntico

    debe incluir toda la poblacin para poder encontrar de forma efectiva y exacta

    la mejor solucin de todas. En este caso, no existe el problema del excesivo

    tiempo computacional requerido para seleccionar las mejores soluciones de

    toda la poblacin, ya que la eficiencia del algoritmo de Grover logra que

    incluso para grandes cantidades de individuos, el ahorro de tiempo

    computacional sea notable. Esta diferencia en cuanto al tamao de la

    poblacin inicial es una de las diferencias que presenta el algoritmo gentico

    cuntico frente a su homlogo clsico [5]

    Los objetivos principales de la investigacin fueron:

    Plantear un modelo cuntico del algoritmo gentico clsico. [5]

    Evaluar la reduccin del algoritmo gentico cuntico a una bsqueda

    cuntica con el algoritmo cuntico de Grover. [5]

    En el paper se describen principalmente:

    Las fases de un algoritmo cuntico gentico cuntico en contraste al

    algoritmo gentico clsico.

    Pseudocdigo del algoritmo gentico cuntico.

    Modelo matemtico del algoritmo gentico cuntico

    Formulacin de la funcin orculo que se usar en el algoritmo

    cuntico de Grover, el cual forma parte del algoritmo gentico

    cuntico.

    Finalmente las conclusiones de la investigacin fueron las siguientes:

    Es posible reducir cualquier problema que se trate de resolver con el

    algoritmo gentico clsico, a una bsqueda cuntica del individuo con

    mayor funcin de fitness. Sin destruir la correlacin entre los valores

    de fitness individuales [5]

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    23/96

    15

    El algoritmo de Grover resulta especialmente efectivo al resolver los

    problemas a los cuales est dirigido el algoritmo gentico cuntico. Es

    un buen ejemplo de una aplicacin efectiva de bsqueda usando

    principios de computacin cuntica [5]

    El mtodo cientfico usado por el equipo de la Universidad Politcnica de

    Timisoara fue deductivo. En base al conocimiento general sobre el algoritmo

    gentico clsico, se plante un nuevo modelo inspirado en el mismo, el cual,

    sin embargo, tom principios de la computacin cuntica, a fin de lograr una

    mayor eficiencia y mejores resultados a los problemas que se buscaban

    solucionar con la aplicacin de los algoritmos genticos clsicos.

    Hybrid Quantum-Classical Computing with Applications to Computer

    Graphics

    Otra investigacin que utiliz los conceptos de computacin cuntica y

    computacin clsica de forma conjunta fue la que realizaron Marco

    Lanzagorta y Jeffrey K. Uhmann en el Departamento de Ciencias de la

    Computacin de la Universidad de Missouri-Columbia.

    Esta investigacin plante que un algoritmo clsico poda ser aumentado

    para explotar los beneficios de la computacin cuntica.

    Particularmente se utiliz el algoritmo cuntico de Grover para incrementar la

    funcionalidad de un algoritmo de bsqueda lineal, y luego se describieron las

    consideraciones necesarias para aplicar el algoritmo hbrido resultante en

    geometra computacional y grficos en computacin. [6]

    En esta investigacin no se us un lenguaje de programacin en particular, el

    anlisis de los algoritmos fue realizado a nivel abstracto sin llegar a suimplementacin explcita. El paper publicado con los resultados de la

    investigacin, se llam Hybrid Quantum-Classical Computing with

    Applications to Computer Graphics (Computacin Hbrida Cuntica-Clsica

    con Aplicaciones para Grficos de Computadora)[6]

    La investigacin de Lanzagorta y Uhmann es relevante en esta tesis pues se

    hace uso del algoritmo de Grover para potenciar un algoritmo de bsqueda

    clsico, es decir, se hace uso del algoritmo de Grover aplicado a un entornoclsico. Esto es precisamente, ser un aspecto fundamental en la

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    24/96

    16

    implementacin del algoritmo de Grover durante la fase de experimentacin

    de esta tesis.

    El mtodo cientfico utilizado por Lanzagorta y Uhmann fue deductivo. A partir

    del conocimiento sobre computacin cuntica y clsica, particularizaron

    algoritmos hbridos que contuvieran ciertas caractersticas particulares de

    ambas.

    Designing and Implementing Small Quantum Circuits and Algorithms

    Este estudio realizado por Ben Travaglione del Laboratorio de Computadoras

    del Centro para la Computacin Cuntica en la Universidad de Cambridge en

    el Reino Unido provee conocimiento necesario para la formulacin de

    sencillos algoritmos en pequeas computadoras cunticas que no necesiten

    de ms que algunos pocos qubits. [4]

    Travaglione public un paper donde expona los resultados del estudio que

    realiz, el paper se llam Designing and Implementing Small Quantum

    Circuits and Algorithms (Diseando e Implementando Pequeos Circuitos y

    Algoritmos Cunticos). [4]

    En la investigacin, se plantearon y definieron algunas estructuras de datos

    matemticas que permitan guardar la informacin de un sistema cuntica y

    cada uno de sus elementos. Los algoritmos que se plantean son realizados

    bajo la transicin de los estados de qubits a travs de compuertas lgicas y

    operaciones simples basadas directamente sobre las leyes de la mecnica

    cuntica. [4]

    El mtodo cientfico usado por Travaglione fue deductivo. Concentr parte delconocimiento general de las leyes de la mecnica cuntica y tom

    formulaciones matemticas ya existentes para determinar que transiciones

    seran las ms adecuadas para plantear un algoritmo sencillo.

    En base a la informacin de las tres investigaciones presentadas, se elabor

    el siguiente cuadro comparativo donde se resumen las caractersticas

    principales de cada uno de los estudios.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    25/96

    17

    Implementing

    Quantum Genetic

    Algorithms: A

    Solution based

    on Grover

    Algorithm

    Hybrid Quantum-

    Classical

    Computing with

    Applications to

    Computer Graphics

    Designing and

    Implementing Small

    Quantum Circuits

    and Algorithms

    Mtodo

    Cientfico

    Deductivo Deductivo Deductivo

    Herramientasde

    programacin

    usadas

    Pseudo cdigoPseudo cdigo

    Pseudo cdigo

    Relacin con

    la tesis

    Hace uso del

    algoritmo

    cuntico de

    Grover para

    formular un

    algoritmo

    gentico anlogo

    a su contraparte

    clsica, pero con

    caractersticas

    eminentemente

    cunticas. Demanera similar,

    en esta tesis se

    usar el

    algoritmo de

    Grover, pero para

    potenciar un

    algoritmo

    gentico clsico.

    Plantea algoritmos

    que contienen

    caractersticas

    tanto de la

    computacin

    clsica como de la

    cuntica.

    Precisamente

    utiliza el algoritmo

    de Grover para

    potenciar un

    algoritmo clsico.De manera similar,

    en esta tesis ser

    necesario

    implementar el

    algoritmo de

    Grover en un

    entorno clsico.

    Presenta principios

    bsicos en la

    formulacin de

    algoritmos

    cunticos sencillos.

    Este conocimiento

    ser til, pues

    brindar la

    perspectiva

    necesaria en la

    formulacin del

    algoritmo deGrover, as como su

    implementacin.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    26/96

    18

    El

    conocimiento

    generado es

    reutilizable?

    S S S

    Presenta

    conceptos de

    mecnica

    cuntica?

    S S S

    Hace uso

    del algoritmo

    de Grover?

    S S No

    Combina el

    entorno

    clsico y

    cuntico?

    No S No

    Tabla 1.1: Cuadro Comparativo de las Investigaciones Encontradas

    1.4 Descripcin y Sustentacin de la Solucin

    La solucin que se plantea para mejorar la eficiencia en la seleccin de

    individuos ptimos en la poblacin inicial de un algoritmo gentico, es utilizar

    el algoritmo cuntico de Grover y, posteriormente realizar una anlisis

    comparativo respecto a un algoritmo clsico que se usa hoy en da para el

    mismo propsito: el algoritmo GRASP.

    Para el desarrollo de esta investigacin se llevarn a cabo los siguientes

    pasos:

    Se investigar y recopilar informacin sobre los conceptos fsicos y

    matemticos propios de la mecnica cuntica que influyen

    directamente en las caractersticas y el comportamiento de una

    computadora cuntica. En particular, se investigar sobre el

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    27/96

    19

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

    implementarlo en un entorno clsico.

    Se plantear una hiptesis que relacione y compare las

    implementaciones del algoritmo de Grover y el algoritmo GRASP,

    ambas aplicadas a la seleccin de individuos ptimos en la poblacin

    inicial del algoritmo gentico.

    Se disear un experimento que permita la comparacin objetiva entre

    ambas implementaciones de los algoritmos. El diseo de este

    experimento incluye la determinacin de los factores que se usarn

    para realizar el anlisis comparativo y la definicin de la funcin de

    fitness del algoritmo gentico genrico.

    Una vez se haya preparado la estructura del experimento a realizar, se

    proceder a la implementacin de los algoritmos. Este proceso

    presupone la definicin de las estructuras de datos necesarias y, en el

    caso del algoritmo de Grover, el modelo matemtico del mismo. Antes

    de realizar la implementacin se proceder al diseo en pseudocdigo

    de ambos algoritmos. Cuando el diseo de los dos algoritmos hayaterminado, se proceder a la eleccin del lenguaje de programacin, y,

    finalmente, se proceder a la implementacin propiamente dicha.

    Tras culminar las implementaciones del algoritmo cuntico de Grover y

    del algoritmo GRASP, se proceder a la ejecucin del experimento

    diseado. A partir de los resultados obtenidos se realizar la

    experimentacin numrica, el anlisis comparativo entre ambas

    implementaciones y las conclusiones finales sobre las caractersticasde complejidad, eficacia y eficiencia de dichas implementaciones.

    El desarrollo de esta investigacin permitir explicar de forma terica y

    prctica, gracias al diseo e implementacin de un algoritmo cuntico en un

    entorno clsico, cmo es el funcionamiento y cules son las caractersticas de

    un algoritmo cuntico (en este caso el algoritmo de Grover), resaltando las

    diferencias entre ste y un algoritmo clsico (en este caso, un algoritmoGRASP).

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    28/96

    20

    La comprensin de las leyes que rigen el funcionamiento de un algoritmo

    cuntico servir de ayuda didctica a toda persona interesada en una

    introduccin al campo de la computacin cuntica.

    Finalmente, la aplicacin del algoritmo cuntico de Grover a un algoritmo

    gentico genrico, deja la puerta abierta a futuras optimizaciones del propio

    algoritmo gentico, o, ms all, tratar de replantear su fundamento, como por

    ejemplo est haciendo la nueva rama de la Programacin Cuntica Evolutiva.

    Permitir adems ampliar la perspectiva del lector y sugerir el posible diseo

    de un modelo hbrido entre la programacin clsica y la programacin

    cuntica a fin de resolver problemas que, hoy en da, solo son enfocados

    desde el punto de vista clsico.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    29/96

    21

    2 Captulo II: Aporte de la Investigacin

    2.1 Aportes especficos

    El presente proyecto de tesis presenta los siguientes aportes especficos:

    Recopila y explica de manera resumida y sucinta los conceptos fsicos

    y matemticos que rigen el funcionamiento de una computadora

    cuntica. Siendo la computacin cuntica una rama de las Ciencias de

    la Computacin que se encuentra en pleno desarrollo, esta tesis se

    presenta como un primer apoyo para toda persona que se encuentre

    interesada en dedicarse a esta rea. Dado que los conceptos de la

    mecnica cuntica son altamente complejos y abstractos, resultan dedifcil comprensin para un lector que est comenzando a adentrarse

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    30/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    31/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    32/96

    24

    2.2.2 Planteamiento de Hiptesis:

    Segunda fase del proyecto de tesis. Una vez que se ha recopilado

    conocimiento sobre computacin cuntica puede plantearse una hiptesis la

    cual ser contrastada despus de realizar la experimentacin y a partir de la

    verdad o falsedad de esta hiptesis generar nuevo conocimiento debidamente

    sustentando. Consta del siguiente proceso:

    Formulacin de la hiptesis:

    En este proceso, se propondr una hiptesis o supuesto que responder

    de forma parcial la interrogante propuesta. Ser despus en la fase de

    conclusin cuando la hiptesis, si es aceptada, responder la interrogante

    de forma total.

    2.2.3 Experimentacin

    Tercera fase del proyecto de tesis. Constituye a la vez la etapa de mayor

    duracin y complejidad durante el desarrollo del proyecto. Es en esta etapa

    donde se aplicar todo el conocimiento recogido en las dos etapas anteriores

    para disear e implementar el algoritmo cuntico de Grover y el algoritmo

    GRASP. Consta de los siguientes procesos:

    Diseo del proceso Experimental

    En este proceso se determinarn las caractersticas del experimento a

    realizar que permitir obtener los datos necesarios para llevar a cabo la

    experimentacin numrica. Este experimento est relacionado con el

    proceso de seleccin de la poblacin inicial del algoritmo gentico.

    Adems, se definir el mtodo estadstico adecuado que permita

    contrastar los resultados obtenidos del experimento.

    Tambin se definir la funcin de fitness del algoritmo gentico genrico al

    cual se aplicarn el algoritmo de Grover y el algoritmo GRASP. Por ltimo,

    en este proceso tambin se determina qu caractersticas de los

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    33/96

    25

    algoritmos (ya implementados) pueden ser usadas como factores de

    comparacin.

    Diseo e Implementacin de los Algoritmos

    En este proceso se definen las estructuras de datos que se usarn en eldiseo e implementacin de los algoritmos. En el caso del algoritmo

    cuntico de Grover se cuenta con un paso adicional: es necesario analizar

    su modelo fsico-matemtico.

    Luego se realizar el diseo de cada uno de los algoritmos usando

    pseudocdigo, en el caso del algoritmo cuntico de Grover, este diseo

    debe considerar su inclusin en un entorno clsico. Por ltimo, ambos

    diseos sern implementados (codificados) utilizando un mismo lenguaje

    de programacin.

    Ejecucin de los Experimentos:

    En este proceso, una vez que ya se tienen los algoritmos implementados,

    se siguen los pasos definidos en el experimento principal. Tras la

    ejecucin de este, se recopilarn y almacenarn los resultados exactos,

    tal cual fueron obtenidos del experimento. Con estos datos se ejecuta la

    experimentacin numrica.

    2.2.4 Conclusin

    ltima fase del proyecto de tesis. Es la etapa de mayor anlisis deductivo en

    base a los resultados obtenidos de la experimentacin. Los resultados son

    empleados como datos de entrada del experimento numrico que permitir

    contrastar los datos reales con los datos supuestos de la hiptesis inicial.

    Adems se realizar el anlisis comparativo de las implementaciones y se

    determinarn las conclusiones finales del proyecto de tesis.

    Consta de los siguientes procesos:

    Anlisis de los resultados obtenidos de la experimentacin numrica:

    Este proceso involucra un anlisis completo y exhaustivo de los resultados

    que devuelva la experimentacin numrica

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    34/96

    26

    Anlisis comparativo de las Implementaciones:

    Este proceso consta de un anlisis basado en las experiencias que hayan

    sucedido durante el desarrollo de la investigacin, y los resultados

    numricos obtenidos tanto del experimento principal como de la

    experimentacin numrica. El anlisis comparativo tiene como objetivo

    contrastar las implementaciones de los dos algoritmos.

    Redaccin de las conclusiones de la investigacin:

    Esto incluye los resultados del anlisis comparativo y la aceptacin o

    rechazo de la hiptesis.

    2.3 Lista de Resultados Esperados

    Durante el progresivo avance del proyecto de tesis se obtendrn una serie de

    resultados que en conjunto permitirn cumplir los objetivos propuestos

    inicialmente. Cuando el proyecto de tesis haya finalizado, se espera haber

    obtenido los siguientes resultados:

    A. Definicin de la poblacin inicial del algoritmo gentico.

    B. Definicin de la funcin de fitness del algoritmo gentico.

    C. Diseo en pseudocdigo de un algoritmo GRASP aplicado a la

    seleccin de individuos ptimos en la poblacin del algoritmo gentico.

    D. Implementacin del algoritmo GRASP.

    E. Modelo Matemtico del algoritmo cuntico de Grover aplicado a la

    seleccin de individuos ptimos en la poblacin del algoritmo gentico.

    F. Diseo en pseudocdigo del algoritmo cuntico de Grover en un

    entorno clsico.

    G. Implementacin del algoritmo cuntico de Grover en un entorno

    clsico.

    H. Definicin de factores de comparacin entre las implementaciones de

    los dos algoritmos.

    I. Resultados de la Experimentacin Numrica.

    J. Conclusiones de la idoneidad del uso del algoritmo cuntico de Grover

    en la seleccin de individuos ptimos de la poblacin de un algoritmo

    gentico genrico.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    35/96

    27

    2.4 Planteamiento de hiptesis.

    La computacin cuntica presenta una serie de novedosas caractersticas las

    cuales la hacen una opcin sumamente atractiva en lo que respecta a

    procesamiento de grandes cantidades de informacin y bsqueda de

    soluciones a problemas altamente complejos.

    Dada la notable eficiencia lograda por el algoritmo de Grover en bsquedas

    dentro de un universo con una gran cantidad de elementos, surge la pregunta

    Puede aplicarse el algoritmo cuntico de Grover para realizar bsquedas

    que a travs de la computacin clsica toman un tiempo considerablemente

    alto, el cual puede incluso considerarse absurdo? Puede el algoritmo

    cuntico de Grover usarse en problemas clsicos?

    Como respuesta para estas dos preguntas, se propone en esta tesis, aplicar

    el algoritmo cuntico de Grover para realizar la seleccin de individuos

    ptimos en la poblacin inicial de un algoritmo gentico. Este procedimiento,

    al formar parte de un algoritmo gentico, tiene de forma inherente un contexto

    clsico al cual debe adaptarse el algoritmo de Grover. Surge entonces unanueva duda, el algoritmo cuntico de Grover puede aplicarse de forma

    efectiva en un entorno clsico como el de un algoritmo gentico?

    Por ello plantearemos la siguiente hiptesis:

    Hiptesis 1: Es posible la implementacin del algoritmo cuntico de Grover en

    un entorno clsico, de tal forma que pueda aplicarse de forma efectiva en un

    algoritmo clsico, como es un Algoritmo Gentico.

    Asumimos esta hiptesis por verdadera, dado que existen investigaciones

    realizadas anteriormente donde, en efecto, se pudo lograr el diseo de

    modelos de programacin hbridos, los cuales usaban lo mejor tanto del

    paradigma de programacin clsica, como del paradigma de programacin

    cuntica. (Seccin 1.4 - Estado del Arte).

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    36/96

    28

    Dado que la hiptesis 1 es asumida como verdadera, surge la siguiente

    pregunta: Si en realidad el algoritmo cuntico de Grover puede aplicarse en

    un entorno clsico (en este caso, un algoritmo gentico), Es el algoritmo

    cuntico de Grover ms eficiente que los algoritmos clsicos de

    bsqueda usados por un algoritmo gentico? A raz de esta pregunta, es

    necesario realizar una comparacin, y antes que eso, es necesario elegir el

    algoritmo clsico contra el cual se realizara la comparacin.

    Se eligi como candidato para la comparacin a un algoritmo GRASP. Esto

    debido a que el algoritmo GRASP ha sido durante mucho tiempo (hasta la

    fecha) uno de los que han dado resultados ms exitosos en lo que respecta a

    su aplicacin en la seleccin de poblacin de un algoritmo gentico.

    Por tanto, para poder realizar esta comparacin, es necesario definir las

    caractersticas con las cuales sern comparados los dos algoritmos. Los

    factores de comparacin generales que se proponen son los siguientes:

    La eficaciadel algoritmo cuntico de Grover y del algoritmo de GRASP en la

    seleccin de individuos ptimos de la poblacin del algoritmo gentico. La

    funcin de fitness que se definir para el algoritmo gentico genrico nos

    permitir cuantificar qu individuos seleccionados por los algoritmos son

    efectivamente los mejores. Por lo tanto, el algoritmo que seleccione los

    mejores individuos tendr el mayor grado de eficacia.

    La eficiencia de los algoritmos tambin jugar un papel importante en la

    comparacin. Si la eficacia de ambos algoritmos puede llegar a considerarse

    equiparable, ser la eficiencia el factor decisivo en la comparacin de ambos.

    Para la comparacin de la eficiencia de ambos algoritmos, se considerar la

    cantidad de operaciones (clsicas para el algoritmo GRASP y cunticas parael algoritmo de Grover) necesarias para terminar la ejecucin efectiva de cada

    uno de ellos. A fin de, evitar detalles innecesarios en cuanto el tiempo de

    ejecucin de ambos algoritmos, se plantea la siguiente hiptesis:

    Hiptesis 2: El tiempo de ejecucin de una operacin cuntica del algoritmo

    de Grover es igual al tiempo de ejecucin de una operacin clsica del

    algoritmo GRASP.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    37/96

    29

    Esta hiptesis es necesaria aceptarla como verdadera, debido a la carencia

    de una computadora cuntica sobre la cual ejecutar el algoritmo de Grover.

    La complejidad de la implementacin de los algoritmos, es decir, cun difcil

    resulta ser la realizacin del proceso. Cada uno de los algoritmos tiene tras de

    s una serie de fundamentos inherentes los cuales pueden hacer ms o

    menos difcil su diseo e implementacin. De forma aparente, un algoritmo

    GRASP es menos complejo de integrar en un algoritmo gentico, dada la

    cantidad de veces que esta integracin ha resultado exitosa en numerosos

    estudios y casos de aplicacin. De forma contraria, la integracin del

    algoritmo de Grover y un algoritmo de Grover es compleja dado el escaso

    estudio al respecto y la nulidad de casos prcticos del tema. Sin embargo, se

    cuantificar la complejidad tanto del algoritmo GRASP como del algoritmo

    cuntico de Grover, a fin de poder considerar este factor dentro del proceso

    de comparacin. Esta cuantificacin estar basada fundamentalmente en la

    experiencia de la implementacin que se seguir en esta tesis

    Entonces cada uno de los tres criterios mencionados tendrn asociados un

    factor por cada uno de los algoritmos, estos factores permitirn hacer la

    comparacin entre los dos algoritmos a utilizar. Es decir, se definen:

    Reficacia: Factor de eficacia de la aplicacin del algoritmo GRASP.

    Reficiencia: Factor de eficiencia de la aplicacin del algoritmo GRASP.

    Rcomplejidad: Factor de complejidad de la implementacin del algoritmo

    GRASP.

    Geficacia: Factor de eficacia de la aplicacin del algoritmo cuntico de Grover.

    Geficiencia: Factor de eficiencia de la aplicacin del algoritmo cuntico de

    Grover.

    Gcomplejidad: Factor de complejidad de la implementacin del algoritmo

    cuntico de Grover.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    38/96

    30

    Y se definen adems dos factores que representan en conjunto el grado de

    bondad de cada una de las implementaciones de los algoritmos:

    RB: Factor de bondad de la implementacin del algoritmo GRASP.

    RB=Reficacia+ Reficiencia- Rcomplejidad

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

    GB =Geficacia+ Geficiencia- Gcomplejidad

    Por tanto, estos sern los factores que indicarn si un algoritmo (y por

    extensin, su implementacin) es mejor que otra. Lo cual lleva al

    planteamiento de la siguiente hiptesis:

    Hiptesis 3: El grado de bondad de la aplicacin del algoritmo cuntico de

    Grover es igual al grado de bondad de la aplicacin del algoritmo GRASP,

    ambos aplicados a la seleccin de individuos ptimos de la poblacin inicial

    de un algoritmo gentico.

    RB = GB

    Del planteamiento de esta hiptesis podra surgir la duda: Por qu asumir

    que ambos algoritmos tendrn un igual grado de bondad? Esto tiene su

    razn en que, a este punto, an no se han llevado a cabo las

    implementaciones de los algoritmos, y tampoco se han aplicado ambos a la

    seleccin de individuos de la poblacin de un algoritmo gentico. No se puede

    asegurar, por tanto, precipitadamente que un algoritmo ser necesariamente

    mejor que el otro. Por ello resulta ms sensato determinar que inicialmente

    ambas implementaciones tienen igual grado de bondad, y, tras realizar la

    experimentacin numrica, si esta hiptesis llega a ser descartada, se sabr

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    39/96

    31

    en efecto que una es mejor que otra, lo cual llevar a la formulacin de una

    nueva hiptesis. Sin embargo es necesario recordar que podr plantearse esa

    nueva hiptesis si y solo si en el caso la Hiptesis 3 es rechazada.

    Las tres hiptesis planteadas en esta seccin sern asumidas por ciertas

    hasta la fase de Conclusin. En esta fase, los resultados de la

    experimentacin numrica permitirn corroborar la verdad de estas hiptesis

    o la falsedad de las mismas.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    40/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    41/96

    33

    seleccin. La eficacia dada por el valor de la funcin de fitness de los

    individuos seleccionados, y, la eficiencia hallada a partir de la cantidad de

    operaciones que se necesitaron.

    Posteriormente, se realizar la experimentacin numrica. Se usar una

    prueba estadstica T-Student para contrastar los resultados numricos de las

    ejecuciones del experimento, primero usando el algoritmo de Grover y luego

    el algoritmo GRASP. El objetivo de la experimentacin numrica es

    determinar qu algoritmo es el mejor de ambos. La experimentacin numrica

    cuenta con dos fases:

    En la primera fase, se plantea como hiptesis que el valor de bondad

    de los individuos seleccionados por ambos algoritmos es el mismo. Es

    decir que ningn algoritmo es mejor. Si se logra rechazar esta

    hiptesis, se procede con la fase 2. Si no se logra rechazar la

    hiptesis, se debe concluir que ningn algoritmo es mejor que el otro.

    Se llega a la segunda fase de la experimentacin numrica, si es que

    en la fase 1 se garantiz que efectivamente un algoritmo es mejor que

    el otro. En este caso, se compararn las medias de los grados de

    bondad obtenidos por cada algoritmo a fin de determinar cul es el

    mejor.

    A continuacin se detallar la estructura de cada uno de estos experimentos:

    3.1.1 Seleccin de Individuos ptimos (Experimento-1)

    Este ser el experimento principal de la investigacin. Este experimento ser

    aplicado a la fase de seleccin de la poblacin inicial del algoritmo gentico.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    42/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    43/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    44/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    45/96

    37

    Seleccin de la poblacin inicial

    Todo algoritmo gentico cuenta con una poblacin, es decir un conjunto de

    individuos, siendo cada uno de estos una solucin potencial al problema que

    se busca resolver.

    Todo problema que busca resolver un algoritmo gentico tiene un universo

    general de soluciones, las cuales son generalmente combinaciones de una

    serie de elementos dados. La evaluacin de cada una de las posibles

    combinaciones es una tarea excesiva que ocupara una cantidad de tiempo

    irracional en la mayora de casos. Es por eso que los algoritmos genticos

    cuentan con una poblacin inicial, es decir, un subconjunto del universo desoluciones, de preferencia, un subconjunto que incluya las mejores soluciones

    candidatas. De ah la importancia en la fase de seleccin de la poblacin

    inicial de un algoritmo gentico.

    Esta fase de seleccin resulta ser un excelente caso en el cual aplicar el

    algoritmo cuntico de Grover y el algoritmo GRASP, es por ello que el

    experimento principal fue diseado con el objetivo de seleccionar la poblacin

    inicial a partir del universo total de soluciones candidatas.

    Ahora es necesario definir cada individuo para poder definir, eventualmente,

    el universo total de soluciones candidatas.

    Cada individuo del universo contiene lo que se conoce como un cromosoma,

    y un cromosoma viene a ser un conjunto de genes. A su vez, cada gen

    contiene parte de la informacin del individuo, informacin vital para

    determinar si el individuo es en realidad una posible solucin al problema y si

    es as, para determinar cun buena es su solucin. [13]

    Para facilitar la formulacin del algoritmo gentico, se tratar de hacer de esta

    tarea lo ms genrica posible.

    Se define que un individuo cuenta con un cromosoma que incluye N genes y

    tiene la siguiente estructura:

    Gen1 Gen2 Gen3 Gen4 Gen5 Gen6 .., Gen N

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    46/96

    38

    Ahora toca decidir la estructura que tendr cada gen. La estructura inicial

    propuesta por John Holland (conocido como el padre de los algoritmos

    genticos) estaba dada por cadenas de bits [14]. Se usar una representacin

    anloga, cada gen ser un bit, el cual podr tener el valor cero o uno. El valor

    cero indica que el gen se encuentra apagado, es decir, no proporciona

    informacin al cromosoma, por el contrario, si el valor es uno, el gen se

    encuentra prendido y s contribuye a la informacin total del cromosoma.

    Cada gen tambin tendr cierta informacin adicional, inherente a cada uno

    de ellos. Se define lo siguiente:

    Definicin 1:

    Cada uno de los genes de un cromosoma tiene asociado una triada de

    tres valores: un factor positivo, un factor negativo y un factor de

    ponderacin.

    Estos valores sern hallados de forma aleatoria pues no hay forma de

    asignarles valores exactos sin el contexto de una aplicacin real. Adems la

    naturaleza aleatoria de estos valores permitir obtener resultados ms

    objetivos en el experimento. Cabe resaltar que tanto el factor positivo y el

    factor negativo sern reales dentro de un rango especfico, mientras que el

    factor de ponderacin ser siempre un nmero real entre cero y uno.

    Tambin se define lo siguiente:

    Definicin 2:

    Existe una funcin matemtica F, la cual dado el valor de los genes de

    un cromosoma, as como los factores positivos, negativos y de

    ponderacin de cada gen, puede calcular el grado de bondad del

    cromosoma. Esta funcin ser llamada: funcin de fitness

    Adems, el grado de bondad de un cromosoma es un valor numrico exacto

    que determina cun bueno es el individuo, es decir cun buena es susolucin.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    47/96

    39

    Ahora que ya se tienen definida la estructura de los cromosomas y genes, es

    necesario resolver una pregunta de suma importancia que ha quedado

    pendiente desde el principio: Cul es el problema que se est tratando de

    resolver?

    Como se ha venido mencionando, no existe un problema real al cual se est

    aplicando el algoritmo gentico, de ah que se le agregue el adjetivo genrico.

    Por tanto plantearemos el problema como: Cul es el cromosoma que

    tiene el mayor grado de bondad?

    Sin embargo se colocar una restriccin a todos los candidatos para ser una

    solucin real. Si no existiera esta restriccin, sera fcil hallar la mejor

    solucin, sera simplemente la suma de todos los genes con mayor factor

    positivo. La restriccin que se colocara es: la suma de los factores de

    ponderacin de los genes que tengan valor uno, no puede exceder el valor

    promedio de factores de ponderacin de los N genes. El promedio de factores

    de ponderacin se halla fcilmente, dado que el menor valor posible es que

    todos los genes tengan factor de ponderacin igual a cero, y el mayor valor,

    que todos los factores de ponderacin sean igual a uno, el valor promedio de

    factores de ponderacin es el siguiente:

    Valor promedio de factores de ponderacin= (1 x N + 0 x N) / 2 = N/2

    En resumen, la restriccin a toda verdadera solucin del problema en

    cuestin, es que la suma de todos los factores de ponderacin de los genes

    prendidos (con valor en uno), no exceda en valor a la mitad de la cantidad

    total de genes.

    Como puede verse, el valor de N determina la cantidad de posibles

    soluciones y por tanto el tamao del universo a considerar. Precisamente este

    valor N es el parmetro que se defini en el experimento principal para

    delimitar el tamao del universo sobre el cual trabajarn tanto el algoritmo

    GRASP como el algoritmo de Grover.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    48/96

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    49/96

    41

    3.2.2 Definicin del Algoritmo GRASP

    En este apartado se definirn las principales caractersticas del Algoritmo

    GRASP que se utilizar para calcular la poblacin inicial del algoritmo

    gentico. Tomando en cuenta las definiciones del algoritmo gentico, toca

    establecer las estructuras de datos a utilizar en el diseo y posterior

    implementacin del algoritmo GRASP.

    En lo sucesivo el Algoritmo GRASP ser identificado con las siglas AGR.

    El algoritmo GRASP consta de una serie continua de iteraciones, en las

    cuales trata de seleccionar una buena solucin al problema. Para no dejarse

    llevar por lo que se conoce criterio goloso y elegir equvocamente un

    mximo local, el algoritmo GRASP crea una lista restringida de candidatos

    usando un factor aleatorio. Es precisamente esta aleatoriedad la que hace del

    algoritmo GRASP una alternativa con superior eficacia respecto a una gran

    cantidad de algoritmos heursticos.

    La cantidad de iteraciones n que se realizarn con el algoritmo GRASP ser

    determinada antes de la ejecucin del experimento principal. Se realizar un

    proceso de calibracin del algoritmo GRASP, esto supondr la ejecucin del

    algoritmo GRASP varias veces, cada una con un diferente valor de n hasta

    determinar en promedio, qu valor halla buenos resultados y en un tiempo

    aceptable.

    El algoritmo GRASP tambin hace uso de un parmetro importante en la

    creacin de la lista restringida de candidatos. Este parmetro estsimbolizado por la letra griega y se le conoce como factor de relajacin.

    El valor de este parmetro tambin ser hallado con un proceso de

    calibracin previo al experimento principal de la investigacin, pero se tendr

    en cuenta valores previos utilizados en aplicaciones similares a la presente.

    Finalmente, es necesario determinar las estructuras de datos que se

    necesitarn para la implementacin del algoritmo GRASP, estas estructuras

    de datos podrn tambin ser utilizadas por el Algoritmo Cuntico de Grover.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    50/96

    42

    Definicin de las Estructuras de Datos

    Para el correcto diseo e implementacin del algoritmo GRASP, es necesario

    contar con las siguientes estructuras de datos:

    a) Una estructura de Datos para representar los Genes. Esta es la

    estructura de datos primaria y de ms bajo nivel. La entidad u objeto

    Gen deber contar con los siguientes atributos: Nmero de Gen

    (nmero entero), Valor (binario) y Grado de Bondad del Gen (un

    nmero real).

    b) Una estructura de Datos para representar los Cromosomas: Estaentidad representar cada individuo y simboliza una posible solucin.

    La entidad u objeto Cromosoma deber contar con los siguientes

    atributos: Una lista de Genes y el Grado de Bondad del Individuo (un

    nmero real).

    c) Una estructura de Datos para los datos de la triada de cada Gen: Esta

    entidad tendr los valores de los factores de la triada para cada Gen.

    Esta estructura ser constante por cada ejecucin completa del

    algoritmo GRASP y ser generada cada vez que se forme un nuevo

    universo de soluciones. Esta estructura de datos, ser una lista de N

    (nmero de genes) objetos Triada. Cada objeto Triada tendr los

    atributos: Factor positivo, Factor Negativo y Factor de Ponderacin,

    siendo todos, valores reales.

    Estos son los factores necesarios para la futura formulacin del diseo en

    pseudocdigo del algoritmo GRASP.

    3.2.3 Definicin del Algoritmo Cuntico de Grover

    En este apartado se definirn las principales caractersticas del Algoritmo

    Cuntico de Grover, el segundo algoritmo candidato a utilizar para la

    seleccin del a poblacin inicial del algoritmo gentico. A partir de las

    definiciones del algoritmo gentico establecidas en el apartado anterior, se

    definir el modelo matemtico del algoritmo cuntico de Grover y las

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    51/96

    43

    estructuras de datos necesarias para su diseo e implementacin en un

    entorno clsico.

    En lo sucesivo el Algoritmo Cuntico de Grover ser identificado con las

    siglas ACG.

    El ACG tiene un fundamento completamente diferente al del Algoritmo

    GRASP. En esta seccin se comprender los aspectos ms importantes que

    se usarn en su diseo e implementacin.

    Tanto en el AGR como en el ACG se parte de un universo total de posibles

    soluciones. El objetivo es encontrar la mejor solucin, es decir realizar una

    bsqueda en todo ese universo hasta encontrar un nico resultado. Para

    llevar a cabo esto, el algoritmo de Grover usa lo que se conoce como el

    orculo.

    Por el momento, lo ms adecuado es considerar al orculo como una caja

    negra, que de una forma u otra, es capaz de identificar la solucin ptima al

    problema [15].

    Se defini antes que se tendr una cantidad de N genes en el cromosoma de

    cada individuo, y que cada uno de esos genes poda tomar el valor de cero o

    uno, y, por ello, el universo total de posibles soluciones era de 2N elementos.

    Utilizando algunos conceptos claves de computacin cuntica se puede

    definir lo siguiente:

    Definicin 4:

    Si se tiene un universo de 2Nelementos, es posible formular un sistema

    cuntico que lo represente. Este sistema cuenta con una superposicin

    de N estados, cada uno de los cuales es un qubit.

    Adems es necesario definir formalmente como se considerar un qubit. Se

    tomar la definicin ms general, encontrada en el libro de Nielsen y Chuang

    [15]

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    52/96

    44

    Definicin 5:

    Un qubit es un estado cuntico que puede tomar el valor de cero o uno.

    Usando la notacin de Dirac, un qubit puede estar en el estado |0> en

    el estado |1>.

    Entonces, si por ejemplo, N tuviera el valor de 2, se tendran 4 elementos,

    representados de la siguiente forma:

    |n0> = |0>|0>

    |n1> = |0>|1>

    |n2> = |1>|0>

    |n3> = |1>|1>

    Una representacin bastante similar a la que se hara con conceptos de

    computacin clsica, la nica diferencia est en la concepcin de qubits como

    estados, en vez de bits convencionales.

    Usando las definiciones anteriores, ahora es posible describir mejor la

    naturaleza del orculo:

    Definicin 6:

    Cada estado |ni> tiene asociado un orculo Oital que:

    Oi|ni> = - |ni>

    Oi|nj> = +|nj>, donde i j

    Es decir, si se aplica el orculo a su estado correspondiente, el orculo

    provoca un cambio de fase en dicho estado. Podemos considerar que este

    cambio de fase se manifiesta como un cambio de signo.

    Por otra parte, si se aplica el orculo a algn otro estado, el orculo no causa

    ningn cambio.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    53/96

    45

    Con todos los conceptos mencionados anteriormente podemos establecer la

    siguiente afirmacin:

    Si se quiere buscar el estado |n i> y se conoce su funcin orculo Oi, es

    posible encontrarlo aplicando dicho orculo en cada estado del universo total,

    dado que solamente el estado |ni> presentar un cambio de fase.

    En consecuencia, en el problema de bsqueda de individuos del algoritmo

    gentico, si se conoce la funcin orculo del mejor individuo, es posible

    determinar cul es el mejor individuo aplicando esa funcin orculo a cada

    elemento del Universo.

    Entonces, hasta ahora, surgen dos inconvenientes al seguir el camino

    cuntico en la bsqueda de individuos, el primero, que es necesario calcular o

    definir la funcin orculo del mejor individuo antes de proceder a buscarlo. Y

    el segundo inconveniente radica en que no se est logrando ninguna ventaja

    en comparacin con el camino clsico: an si se tiene definida la funcin

    orculo del mejor individuo, es necesario aplicar dicha funcin orculo a

    todos los elementos del universo hasta ver cul de ellos presenta un

    cambio de fase.

    Es aqu donde aparece el Algoritmo Cuntico de Grover para evitar aplicar la

    funcin orculo a cada uno de los elementos del Universo, y, en cambio,

    realizar una bsqueda sumamente ms eficiente. Grover plantea una serie de

    pasos, a travs de los cuales, el nmero de iteraciones necesarias para hallar

    la respuesta, es del orden de N .

    Usando los conceptos descritos podemos enunciar el modelo matemtico delalgoritmo Grover en el cual se describen los elementos que usa y la relacin

    entre estos:

    Modelo Matemtico del Algoritmo de Grover:

    Sea M la cantidad de elementos del universo, tal que:

    xM x ,2

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    54/96

    46

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

    )(log2 MN

    Sea | > el estado inicial del universo:

    12

    0

    |2

    1|

    N

    i

    iNn

    El sistema est en una superposicin con mxima probabilidad: puedecolapsar con igual probabilidad a cualquier estado.

    Sea G, el operador de Grover:

    kOIG )||2(

    Donde I es la matriz identidad y Okla funcin orculo de elemento buscado.

    Cada aplicacin de la funcin orculocrea un desfase en el estado |nk>. Por

    tanto el estado del universo quedara como:

    12

    01 |

    2

    1|

    2

    12||

    N

    kii

    kNiN

    N

    k nnO

    El nuevo estado del universo est dado entonces por:

    |)1||2(|| ' kOG

    Reemplazando | 1>:

    1' |)1||2(|

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    55/96

    47

    11' |||2|

    Dado que el producto interno de es un escalar, sea:

    1| C

    Entonces:

    1' ||2| C

    )|2

    1|

    2

    12(|

    2

    2|

    12

    0

    12

    0

    '

    NN

    kii

    kNiN

    N

    i

    iNnnn

    C

    )|2

    12(|

    2

    122|

    12

    0

    '

    kN

    ki

    i

    iN

    N

    nC

    nC

    N

    Como se puede apreciar, la amplitud de todos los estados distintos al

    buscado ha disminuido. Por el contrario la amplitud del elemento buscado ha

    aumentado.

    Conclusin: Sucesivas aplicaciones del operador de Grover hacen que la

    amplitud del estado buscado |nk> siga creciendo y que, por tanto, sea el valor

    ms probable de obtener al hacer una medicin al sistema.

    En cuanto a las estructuras de datos necesarias para la implementacin del

    Algoritmo Cuntico de Grover, una estructura indispensable es la que

    represente un estado cuntico (qubit). Una alternativa inicial ser usar valores

    binarios (cero o uno), dado que es imposible representar superposicin real

    en una computadora clsica, se tratar de simular este comportamiento

    durante la implementacin del algoritmo.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    56/96

    48

    Queda pendiente tambin, la formulacin de la funcin orculo del mejor

    individuo en el universo completo de soluciones candidatas.

    3.3 Diseo de los Algoritmos

    En este apartado, se proceder a realizar la formulacin en pseudocdigo del

    Algoritmo GRASP y el Algoritmo Cuntico de Grover. En el caso del Algoritmo

    Gentico, no es necesario realizar un diseo, dado que los conceptos que se

    utilizarn del mismo ya han sido definidos en el apartado anterior.

    En el caso del algoritmo GRASP, su diseo ser bastante directo al no existir

    mayor complicacin. Sin embargo, en el caso del Algoritmo Cuntico de

    Grover, ser necesario presentar primero una formulacin cuntica del

    algoritmo, y, luego, analizar la forma correcta de realizar una simulacin

    clsica.

    3.3.1 Diseo del Algoritmo GRASP

    En el caso del Algoritmo GRASP, no existe ninguna consideracin en

    particular a la cual atenerse. Es posible realizar la formulacin en

    pseudocdigo partiendo de la propia definicin del Algoritmo GRASP y losconceptos establecidos en la definicin del Algoritmo Gentico y del Algoritmo

    GRASP de esta tesis.

    La formulacin en pseudocdigo sera como sigue:

    N: nmero de genes

    ListaFactoresBondadxGen: Lista con el valor resultante del siguiente clculo:

    (Fpositivo + Fnegativo)*Fponderacin, por cada gen. El tamao de esta listaes N.

    Inicio Algoritmo GRASP

    1. Inicializa_ListaFactoresBondadGen()

    2. PoblacionInicial= Lista_Vacia_Cromosomas()

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    57/96

    49

    3. Para i=0 hasta i=NumTotalDeIteraciones

    a. SumaFactorPonderacin=0

    b. Inicializa_Nuevo_Cromosoma(cromosoma)

    c. Mientras (SumaFactorPonderacion < N/2)

    i. Ordenar_ListaFactoresBondadxGen()

    ii. IndiceSuperior= N-1

    iii. IndiceInferior= 0

    iv. IndiceRCL= (Aleatorio() * ( IndiceInferior + Alfa *

    (IndiceSuperior IndiceInferior) ) + IndiceInferior

    v. ElementoSeleccionado=ListaFactoresBondadGen

    [IndiceRCL]

    vi. Cromosoma.ActivaGen(ElementoSeleccionado)

    vii. SumaFactorPonderacion+=

    ElementoSeleccionado.FactorPonderacion

    viii. ListaFactoresBondadGen.Remover( IndiceRCL)

    d. Fin Mientras

    e. Si (SumaFactorPonderacion > N/2)

    i. Cromosoma.ApagaGen( IndiceRCL)

    f. Fin Si

    g. PoblacionInicial.Agregar(Cromosoma)

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    58/96

    50

    4. Fin Para

    5. EliminarRepetidos (PoblacionInicial)

    Fin Algoritmo GRASP

    3.3.2 Diseo del Algoritmo Cuntico de Grover

    Ahora toca realizar el diseo del Algoritmo Cuntico de Grover. Esta es quiz

    la parte ms compleja de esta investigacin pues comprende la simulacin de

    un algoritmo eminentemente cuntico a un entorno clsico, en el cual podr

    ser implementado.

    Primero se describir el Algoritmo Cuntico de Grover desde la perspectiva

    cuntica, y luego se plantear un enfoque clsico aceptable.

    Formulacin Cuntica del Algoritmo de Grover

    En el apartado de la definicin del Algoritmo Cuntico de Grover se

    plantearon algunos conceptos bsicos del funcionamiento de una bsqueda

    cuntica estndar. Se propuso representar el universo de soluciones como

    una superposicin de distintos qubits. Cada una de estas posibles soluciones

    tiene asociada una funcin orculo, y esta funcin orculo solo reacciona con

    el estado al cual est asociada, esta reaccin, como se mencion antes, se

    manifiesta en un cambio de fase, lo cual se visualiza en un cambio de signo

    en el estado de dicha solucin candidata.

    Sin embargo, hasta estos momentos, la bsqueda cuntica no representa

    ninguna mejora respecto a un algoritmo clsico, dado que de todas formas es

    necesario aplicar la funcin orculo del mejor individuo a todos los candidatos

    del universo completo. El algoritmo de Grover proporciona una serie de

    pasos, para realizar esta bsqueda en una cantidad mucho menor de

    iteraciones.

    Los pasos del algoritmo de Grover son los siguientes:

    Sea |nk> el estado de la solucin con mayor valor de funcin de fitness

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    59/96

    51

    Inicio del Algoritmo de Grover

    1. Inicializar un estado base como una superposicin de todas las posibles

    soluciones:

    12

    0

    |1

    |

    N

    i

    in

    N

    2. Repetir N veces

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

    kOIG )||2(

    Donde I es la matriz Identidad y Okes el operador Orculo del estado que

    se busca.

    3. Realizar una medicin del sistema y se obtendr el estado |nk> buscado.

    Fin Algoritmo Grover.

    Sin embargo, aqu surge el problema de que no es posible formular la funcin

    orculo de la mejor solucin candidata, porque simplemente no se conoce

    este valor. Entonces, es necesario buscar una solucin alternativa para hallar

    el mejor candidato a solucin ptima, utilizando el algoritmo de Grover.

    Gracias a los estudios realizados en [16] y [17], podemos formular un

    algoritmo ms completo, que presupone la ejecucin del algoritmo de Grover

    una determinada cantidad de veces, lo cual reducir el grado de eficiencia,

    pero, sin embargo, garantiza un alto nivel de eficacia.

    Inicio Bsqueda Cuntica

    1. Elegir de forma aleatoria un ndice m entre 0 y 2

    N

    -1. Este valor ser unndice tentativo del estado con mayor valor de funcin de fitness.

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    60/96

    52

    2. Repetir N veces

    a. Ejecutar el algoritmo de Grover usando la siguiente funcin

    orculo

    -1, si f(i) > f(m)

    Om(i) =

    1, caso contrario

    b. Reemplazar m con el ndice hallado por el algoritmo cuntico de

    Grover en el paso a)

    3. El ltimo valor de m tras las iteraciones del algoritmo de Grover es la

    mejor solucin.

    Fin Bsqueda Cuntica

    Resumiendo, el funcionamiento del algoritmo de bsqueda cuntica

    propuesto es como sigue: En cada iteracin se buscar usando el algoritmo

    de Grover, un candidato a solucin mejor que el candidato anterior (el primer

    candidato a solucin se selecciona de forma aleatoria). Finalmente, tras N

    ejecuciones del algoritmo, se podr obtener la mejor solucin con una altsima

    probabilidad (en mecnica cuntica no existen resultados cien por ciento

    certeros, sino con altas probabilidades). Esto puede explicarse de la siguiente

    forma:

    Inicialmente todos los elementos del universo tienen asociada una misma

    probabilidad, sin embargo al aplicar sucesivamente el operador de Grover, los

    elementos ms cercanos en valor al elemento buscado adquieren un mayor

    valor de probabilidad, y, en consecuencia, los elementos que se encuentran

    lejos del valor buscado adquieren un valor de probabilidad menor (como se

    dijo, la suma de probabilidades siempre debe mantenerse constante en 1).

  • 7/23/2019 Rivera Alejo Jos Enrique Algoritmo Cuntico Grover Grasp

    61/96

    53

    Tras todas las iteraciones, el elemento buscado tiene el valor de probabilidad

    ms alto en todo el sistema, de forma que al realizar una medicin cuntica,

    este elemento sea muy probablemente el encontrado.

    Como no se sabe con exactitud cul es el valor buscado, la funcin orculo

    plantea que el valor que se busca es simplemente un valor mayor al de la

    conjetura inicial. Una vez que se termina una ejecucin del algoritmo Grover,

    el valor que se obtenga al medir el sistema pasa a ser la nueva conjetura y

    as sucesivamente.

    Con esto quedara terminada la formulacin del Algoritmo Cuntico de

    Grover, t