Concepto e importacia de la Computación Cuántica, Axiomas Fundamentales de la Mécanica Cuántica, El Qbit, sistema de dos qbits, compuertas cuánticas, algoritmos cuánticas, Dwave: la primera computadora cuántica comercial.
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Computación Cuántica
1. Computación Cuántica
Principios Fundamentales y Aplicaciones Prácticas
Bayron Guevara
Desarrollador de Software e
Investigador Independiente
● Email: bayron.guevara@gmail.com
● FB Grupo: https://www.facebook.com/groups/multiversehacking
2. Computación Cuántica
¿Qué es y por qué ha llegado a ser tan importante?
Es el procesamiento y comunicacion de información
usando los efectos y principios de la mecánica cuántica.
Representa el siguiente salto en la revolución tecnológica
ya que permitiría resolver los problemas más complejos de la humanidad que
actualmente son inmanejables aun para las super-computadoras. Esto se debe a
que los sistemas cuánticos son exponencialmente poderosos y que permiten
evaluar simultaneamente todos los valores de ciertas funciones.
Ejemplo de problemas que podrían ser solucionados eficientemente se
encuentran: aquellos que involucran encontrar la solución más optima,
evaluación de todas las posibilidades en un problema combinatorio, lo cuales son
fundamentales en aplicaciones de Inteligencia Artificial, Bio-informática,
simulaciones físicas a las escalas más pequeñas.
3. Computación Cuántica
Mecánica Cuántica: Física a niveles sub-atómicos
El revolucionario concepto de Información y Computación Cuánticos se debe a los
sorprendentes principios o axiomas de la Mecánica Cuántica:
Superposición: Estable que un sistema de partículas puede encontrarse en
múltiples posiciones al mismo tiempo. Otra forma de verlo es que el sistema
todavía no ha decidido cual sería su estado final.
Principio de incertidumbre: El simple hecho de observar o
medir un sistema cuántico lo colapsa o afecta de manera substancial.
Por tal razón, la mecánica cuántica es inherente-mente probabilista.
Werner Heisenberg: No podemos conocer con
absoluta certeza la posición y el momento lineal
(velocidad) de una partícula.
4. Computación Cuántica
Mecánica Cuántica: Física a niveles sub-atómicos
Evolución temporal: Describe la evolución de un sistema cuántico a través del
tiempo a través de la siguiente ecuación diferencial parcial formulada por Erwin
Schrodinger:
La cual tiene algunas implicaciones inesperadas:
* Cuantificación de la energía: Los niveles de energía solamente pueden tomar
valores discretos específicos. De ahí el termino cuántico de esta rama de la física.
* Incertidumbre como resultado de que describe a un estado cuántico como una
distribución de probabilidad.
* Dualidad partícula-onda y Efecto túnel: Una objeto cuantico puede
comportarse como particula o como onda. El efecto tunel consiste en la
capacidad de las partículas para atravesar ´barreras´ en lugar de saltarlas. Este
fenomeno que es una ventaja de los computacion cuantica, por otro lado es un
obstaculo en la miniturizacion de los transistores convencionales.
5. Computación Cuántica
Mecánica Cuántica: Un experimento Clásico
Adjunto link hacia un video para ayudar a explicar este experimento:
http://www.youtube.com/watch?v=DfPeprQ7oGc
Un experimento que es usado comúnmente para explicar y desmostrar los efectos
contra-intuitivos de la mecánica cuántica se llama Double-Slit, el cual consistente
en colocar dos laminas una detrás de otra, la primera contiene dos ranuras (slits) y
la segunda contiene un sensor que determina la ubicación del electrón o fotón,
luego se disparan electrones que a traviesan la primera lamina y llegan a la
segunda. El resultado es que los electrones se comportan a la vez como ondas por
que muestran un patrón de interferencia y como partículas porque se detectan como
objetos enteros e indivisibles.
6. Computación Cuántica
El Qbit, qué es y que lo diferencia de los bits clásicos
Es el estado más básico de un sistema cuántico y
el bloque de construcción fundamental de las
computadoras cuánticas. A la izquierda se muestra
la representación geométrica de un qbit, también
llamada Esfera de Boch.
Un qbit puede implementarse físicamente mediante cualquier soporte cuántico como
por ejemplo, los estados de energía o el spin de un electrón, la polaridad de un fotón,
puntos cuánticos, efecto Josephson aplicado a superconductores (esta última es la
tecnología usada en la primera CQ comercial llamada D-Wave).
Es el análogo a los bits de las computadoras convencionales,
pero difieren en que pueden estar en más de un estado a la vez,
es decir pueden representar un 1 o un 0 simultáneamente. A esto
formalmente le llama superposición y es lo que posibilita su
enorme poder de procesamiento paralelo.
7. Computación Cuántica
Algunos datos asombrosos
Computación Cuántica
La propiedad derivada de la superposición y la incertidumbre llamada
entrelazamiento 'entanglement' hace que una partícula afecte a otra
instantaneamente independientemente de la distancia aun cuando se
encuentre en otra galaxia. (algo parecido a la tele-transportacion en la
ciencia ficción).
Una de las posibles explicaciones o interpretaciones de los fenómenos
cuánticos es que existen Universos Paralelos (Multiverso) y un espacio-
tiempo de múltiples dimensiones.
Una computadora cuántica de sólo 300 qbits podría calcular
simultáneamente una cantidad de valores mayores a los átomos
en el universo.
8. Computación Cuántica
El Qbit, concepto matemático
Matemáticamente representamos cada qbit como un vector multidimensional
unitario de números complejos también conocido como espacio de Hilbert.
Usamos la notación Bra-Ket (< | >) para abreviar su escritura.
Cuando escribimos el estado de un qbit en realidad estamos describiendo su
superposición como una amplitud compleja sobre esos dos niveles de energía
base. Lo cual se escribe así:
En la figura izquierda se muestra los
niveles de energía de un átomo,
digamos hidrógeno, para representar
los dos estados finales de un qbit. El
estado base se codifica en 0 y el
primer estado excitado corresponde
al 1. A la derecha vemos su
representación geométrica de varios
qbits como un vector unitario.
9. Computación Cuántica
El Qbit, concepto matemático
Es decir la probabilidad de obtener un 0 es igual a la magnitud de alfa a la
segunda potencia y de forma similar con la probabilidad de obtener 1.
Hay que recordar que para números complejos la magnitud es como sigue:
Ahora un qbit además debe estar normalizado, lo que significa que la
probabilidad conjunta de todos sus estados debe ser igual a 1 o 100%
Como ya saben la mecánica cuántica es probabilista. De ahí que dichas
magnitudes (valores de alfa y beta) nos permitan obtener la probabilidad de que
el qbit tome determinado valor, ya sea 1 o 0, al ser medido. Esto se formula de la
siguiente manera:
10. Computación Cuántica
Sistemas de múltiples Qbits
Cuando interactuan más de un qbit, su estado se representa como el producto
tensorial de los mismos. Para el caso de los siguientes qbits :v
Entonces el estado compuesto de este sistema cuántico sería:
Como podemos deducir para describir un sistema de K qbits necesitaríamos
amplitudes o números complejos. Por lo que ya podemos tener mejor intuicion
de lo que significa la superposición y por que la misma puede usarse para
realizar un procesamiento paralelo que se incrementa exponencialmente según el
número de qbits.
11. Computación Cuántica
Entrelazamiento (Entanglement)
Existe un estado muy curioso de un sistema cuántico llamado entrelazamiento,
en el cual un sistema no puede describirse en término de sus componentes
individuales, en términos de qbits: dos qbits no pueden expresarse como el
producto tensorial de sus qbits individuales.
Tomemos el siguiente ejemplo también llamado estado de Bell:
Analizando un poco podemos descubrir que es imposible factorizar dicho estado
como el producto de dos qbits, no obstante este estado se ha re-producido
incontables veces en los laboratorios.
Algo mas interesante seria conocer el estado
final del sistema cuando medimos unicamente
uno de sus qbits, para este ejemplo, tomemos el
primero. En caso de que este resultara ser 0, el
resultado seria:
12. Computación Cuántica
Entrelazamiento (Entanglement)
Ahora como podemos observar la probabilidad que el segundo qbit sea 0
quedaría en 1, en otras palabras el resultado que se obtenga en el primer qbit
automáticamente determina o afecta al segundo. El mismo resultado se
obtendría si el qbit resultara ser 1.
Esta relación se mantiene incluso si estos qbit se encuentran en galaxias
separadas, lo que ha dado conjeturas sobre la posibilidad de tele-transportación.
No obstante no podemos comunicar la información que deseemos debido a que
no podemos ´forzar´ a que el primer qbit siempre tome el valor que queramos ya
que la mecánica cuántica es probabilista (Principio de No Señalizacion). Pero si
podemos crear Correlaciones No Locales (ver paradoja EPR y Experimento
Bell).
En la computación cuántica si existe un mecanismo de transportación pero no
permite la velocidad superluminal, y es necesario transportar convencionalmente
2 bits por cada qbit.
13. Computación Cuántica
Compuertas Cuánticas
Análogas a las compuertas digitales (XOR, NOT, AND), estas permiten operar
sobre los estados de un sistema cuántico. Se basan en el principio de
transformación unitaria en el cual un sistema cuántico evoluciona como una
serie de rotaciones vectoriales que permiten mantener su unidad, normalización
y reversibilidad (a diferencia de la compuertas digitales, se puede aplicar otro
conjunto de compuertas que permitan revertir el sistema a su estado inicial).
Estas se representan como matrices unitarias cuadradas.
Veamos algunos ejemplos de compuertas cuánticas sencillas que operan sobre
un único qbit:
Bit Flip: Simbolizado con la letra X, invierte su superposición/amplitud
14. Computación Cuántica
Compuertas Cuánticas
Phase Flip: Invierte la fase o el signo de la segunda amplitud
Transformada de Hadamard: Básicamente ejecuta una rotación de 45
grados.
De igual forma podríamos extender el concepto de matriz unitaria para
compuertas de dos o más qbits, donde para el caso de k qbits, necesitaríamos
una matriz de dimensión 2^k * 2^k.
15. Computación Cuántica
Algoritmos Cuánticos
Estos se caracterizan por resolver en tiempo polinómico problemas que a las
mejores algoritmos clásicos les tomaría un tiempo exponencial. Por brevedad me
limitare a nombrar y describir la utilidad de los algoritmos cuánticos más conocidos.
Algoritmo de Shor: Factoriza números primos en tiempo polinómico, un hecho
que rompería con la mayoria de los métodos de criptografía asimétrica actuales.
Por ejemplo, el cifrado RSA que se utiliza en los certificados SSL de los sitios web.
Su cota superior viene dada por:
Algoritmo de Grover: Mejor en forma cuadrática la eficiencia de búsqueda de un
elemento en una base de datos no estructurada (para poner un ejemplo: una BD
relacional sin indexación). Cota superior:
Algoritmo de Deutsch–Jozsa: Conocido por ser el primer ejemplo de algoritmo
cuántico en ser exponencialmente más veloz. Resuelve un problema de caja negra
en una sola consulta mientras que a uno clasico le tomaria 2^(n-1) + 1.
16. Computación Cuántica
Ejemplo Práctico utilizando la primera CQ comercial
Con el fin de realizar una demostración práctica de la ejecución de un algoritmo
cuántico veamos un simulador desarrollador por Dwave, la primera empresa en
fabricar computadoras cuánticas comerciales. Vale la pena mencionar que entre sus
actuales clientes se encuentra Lockheed Martin, La Nasa y Google.
Para aclarar, esta es un tipo de computadora cuántica especializada llamada
Adiabática que aprovecha el efecto túnel de la mecánica cuántica para resolver
problemas de optimización discretos tales como el problema de encontrar la ruta
más corta (Vendedor Viajante), problemas de optimizacion combinatorios, en la
Inteligencia Artificial para el aprendizaje autónomo, en la biología para estudio de
las cadenas de proteínas, etc.
El mecanismo de programación de esta computadora no es una forma general de
plantear un algoritmo cuántico debido a que NO se basa en el uso de las compuertas
que vimos anteriormente, sino en la descripción de un programa de energía
Hamiltoniano, en donde la computadora buscará la solución asignando a los qbits
los valores que minimizan la cantidad de energía total del sistema.
17. Computación Cuántica
Ejemplo Práctico utilizando la primera CQ comercial
En términos matemáticos la computadora tratará de minimizar la siguiente función:
Nuestro trabajo es encontrar los valores de hi y Jij que nos permitan definir el
problema que queremos resolver. Afortunadamente Dwave ofrece un componente
de Software llamado BlackBoxSolver que realiza el trabajo difícil por nosotros.
Mediante este ultimo método nosotros solamente tendremos que definir un
algoritmo que tome como entrada los valores -1 y 1 que corresponden una posible
solución del problema y luego retornar valores menores para las respuestas
correctas y penalizar mediante valores altos las respuestas incorrectas.
18. Computación Cuántica
Ejemplo práctico: Resolviendo el Eternity II
El Eternity II es un rompecabezas que consiste en armar un conjunto
de 256 piezas de forma tal que los patrones de piezas adyacentes
coincidan. Las piezas correctas laterales y de esquinas siempre
llevarán un patrón gris. En la figura de la izquierda se muestra un
patrón desordenado de este juego.
Para simplificar nuestro ejemplo usaremos unicamente un conjunto de 16 piezas
que se muestran a continuación:
19. Computación Cuántica
Ejemplo práctico: Resolviendo el Eternity II
Lo que buscamos es definir una función objetivo que proporcionaremos a nuestra
computadora cuántica y que se alimentará de sus resultados para buscar la mejor
solución al problema, asumiendo que entre menor sea el valor retornado, más
correcta es la solución encontrada.
Descompondremos la definición de nuestro algoritmo de penalización por partes
como se sigue a continuación:
● P1: Calcular el numero de piezas que no encajan
● P2: Penalizar aquellos casos donde una pieza se coloque en el mismo lugar de otra
● P3: Penalizar cuando una pieza lateral no contenga el patrón gris
● P4: Además penalizar cuando una pieza de esquina no sea de patrón gris.
A cada penalización le asignamos un multiplicador diferente con el objetivo de
reforzar como incorrectos los casos menos deseables. Para este ejemplo se han
usando los siguientes factores:
Penalización agregada = 5 x P4 + 4 x P3 + 3 x P2 + 3 x P1
20. Computación Cuántica
Ejemplo práctico: Resolviendo el Eternity II
El lenguaje prefererido para programar la Dwave es Python por su versatilidad para
operar sobre vectores, matrices y en general para la computacion cientifica. El
código de nuestra función de penalización quedaría similar al siguiente:
21. Computación Cuántica
Ejemplo práctico: Resolviendo el Eternity II
Luego tendríamos que proporcionarle una instancia del objeto MismatchFunction y una
serie de parámetros que definen las iteraciones y la intensidad del trabajo que la Dwave
hará para resolver nuestro problema.
Como se puede observar en el siguiente código utilizamos un instancia local del solver
de la Dwave para realizar pruebas locales que luego podamos ejecutar en una
computadora cuántica real (si disponemos del dinero suficiente). Luego invocamos al
metodo solve y le pasamos como parámetros nuestra función objetivo y las
configuraciones para establecer la precisión de la solución
22. Computación Cuántica
Ejemplo práctico: Resolviendo el Eternity II
Ademáss recogemos e imprimimos estadísticas
sobre los resultados que corresponden a los
criterios de penalización que definimos
anteriormente.
Después de ejecutar el programa unas cuantas
veces, la mejor solución encontrada es la que
muestra la figura de la derecha. Es importante
recordar que la Dwave es una computadora
probabilista no determinista, así que no siempre
encontrará la mejor respuesta, no obstante podemos
ajustar nuestro algoritmo para mejorar la calidad de
la respuesta.
23. Gracias por su tiempo.
● Repositorio con el código del ejercicio Eternity II:
https://github.com/Socrattes2099/dwave-eternity2
● Email: bayron.guevara@gmail.com
● FB Grupo: https://www.facebook.com/groups/multiversehacking