Computación cuántica para niños (sin fórmulas). Nueva version

Introducción.

 

 Del mismo modo que un programador clásico no necesita una ingeniería electrónica para programar su computadora, un programador cuántico no necesita conocer física cuántica, simplemente un lenguaje de programación cuántico...  Y esto es lo que pretendo con el presente escrito: proporcionar un sistema fácil y comprensible hasta para un niño, para iniciarse en el complejo mundo de la programación cuántica. Una materia imprescindible en el futuro, tanto como hoy lo es la programación de computadoras clásicas. 

 

¿Por qué construir una computadora cuántica? Puedes leer un bosquejo de justificación aquí.

Esta es una nueva versión del blog del mismo título propiciada por las dificultades que me aparecían a medida que avanzaba en el programa: Construir una computadora cuántica con el buscaminas de windows.

Así que seguiré por donde terminé en el anterior y añadiré entradas para recuperar lo que sea válido, necesario o me interese.

Me salto la explicación del funcionamiento del famoso juego del buscaminas de Windows porque asumo que todos los que lean esto han jugado alguna vez y conocen la mecánica. Si no, puedes recuperar el juego en las nuevas versiones de Windows y practicar un poco o hacerlo online aquí. Tambien puedes consultar las reglas del buscaminas aquí.

 

Antes que nada voy a definir algunos conceptos que considero necesario aclarar desde el principio.

- Hebra buscaminas cuántico:

Figura 1.

Esta configuración actúa como una línea de transporte de información de un bit reversible. Las casillas marcadas con interrogante contienen TODAS la misma información: hueco/mina (0/1),

Así pues podemos establecer tres tipos de casillas: las vacías, las que pueden contener una mina, que cómo ya sabes se marcan con una banderita y las que probalemente no la contengan.

Así que la terminología que usaré será: vacía, mina y hueco para referirme a ellas.

Volviendo a la hebra de conductor cuántico del buscaminas, me referiré a ella simplemente como hebra.


- Hilo conductor del buscaminas cuántico.

Figura 2.

Como puedes observar en la figura, el Hilo (así lo llamaré a partir de ahora) está formado por tres hebras. Me referiré a la superior como  la hebra x la central será la y y la inferior la z.
También puedes observar en el dibujo que la hebra x contiene un interrogante que coincide siempre con el cruce de dos líneas resaltadas en color cian. Aunque las líneas cian no estén Toda la información del hilo, está contenida en el recuadro resaltado en negro. La casilla superior derecha, siempre conterndrá una casilla NO vacía de la hebra x. La casilla a su izquierda TAMPOCO estará vacía.

Esta disposición la podremos alterar durante la computación, como veremos más adelante, pero será imprescindible al final de la computación, cuando se procede a LEER el resultado.

 - Conductor cuántico del buscaminas (a partir de ahora, solamente conductor).

Figura 3.

Como puedes ver, está formado por tres hilos de tres hebras cada uno. A los hilos los llamaremos de forma similar a las hebras: al superior X, al central Y y al inferior Z.

Esta disposición se utilizará únicamente de el momento de LEER el resultado de la computación. Durante la misma, podremos variar arbitrariamente la disposición y recorrido tanto de las hebras, los conductores y los hilos, siempre y cuando seamos capaces de recuperarla en el momento de la lectura.

El qBit.

Definiremos el qBit, o mejor la lectura del mismo, el colapso de la función de onda, por las casillas resaltadas en los recuadros de las figura correspondientes a los conductores X e Y. Estos recuadros se toman desde la casilla de intersección de las líneas cian, 3 casillas a la izquierda y 5 hacia abajo.

Los interrogantes señalan las posiciones en las que puede haber mina o hueco. Las casillas a su izquierda señalan no mina y las de la derecha espacio vacío.

Antes de seguir quizá deberías mirar esta entrada en la que se comparan configuraciones de buscaminas con puertas lógicas del álgebra de boole.

Figura 4. Ket 0:  0

Empezar por el final: la lectura del resultado, el colapso de la función de onda. Puede parecer absurdo, pero no se me ocurre otro modo mejor de hacerlo.

Al final de la computación, el último paso es la lectura del resultado. Ya he dicho que el qBit del bucaminas hay que buscarlo en un recuadro de 3x5 que se inicia en los cruces de las líneas cian y se prolonga 3 a la izquierda y 5 hacia abajo. De esas 15 casillas del qBit únicamente "leeremos" 2: las resaltadas en la figura 2 por recuadros negros y que se corresponden con la que corresponde al cruce de dos líneas cian y la inmediata inferior.

Si ambas arrojan el mismo valor, como en el caso de las de la figura, leeremos un bit 0. Sin inportarnos el resto de la información: si los valores son mina/hueco, ni tampoco el valor y posición del tercer conductor.
Figura 5. Ket 0:  ⎪0〉

Para ir acostumbrándote, en la figura 5, no he dibujado las líneas cian, únicamente algunos puntos de intersección de las mismas. La lectura de los resultados de esta computación es un bit 0. Porque las hemos construido para generar en ambos hilos (solo estamos considerando el X y el Y), contenido inverso en ambas hebras, lo cual, al aplicar una operación qXor, que veremos más adelante, arroja en ambos hilos el mismo resultado 1. Aplicantdo ahora de nuevo la operación qXor sobre dichos resultados, el resultado final y valor de la "lectua" será un bit 0 con toda certeza, por lo que por construcción diremos que éste conductor contenía un ket 0.

Como ves, la lectura desperdicia una ingente cantidad de información, no solamente del hilo Z que no se mira, sino tambien los valores exactos de los hilos (mina/hueco) o incluso las probabilidades de que contuvieran uno u otro resultado:


Figura 6.
 
En la figura seis, la probabilidad de encontrar mina/hueco es del 0,083% con el 3 periodo, si leemos de izquierda a derecha. Si lo hacemos al contrario, la probabilidad será del 50%.

Lo mismo ocurre en computaciòn cuántica. Con la lectura, se produce un fenómeno que los físicos llaman el colapso de la función de onda, y lo que antes era un qBint con ingente cantidad de información pasa a ser, después del colapso, un triste bit conteniendo un único bit de información.
 
Puedes hacerte una idea de la potencia de cálculo de las futuras computadoras cuánticas si tienes presente que de TODOS los estados infinitos de las partículas cuánticas, únicamente se utilizan DOS autoestados incompatibles entre sí a los que se da los valores ket 0 ó ket 1.



Operación de leer el qBit.

Seguimos retrocediendo... 

La lectura "observación" del qBit arrojará un resultado binario 0/1. La operación de leer colapsa las propiedades cuánticas del qBit.  ¿Cómo realizaremos la lectura en el buscaminas?

Ya he indicado que la LECTURA se realiza mediante la aplicación sucesiva de pueras qXor. Primero sobre los hilos X e Y y después sobre los resultados de ambas mediciones. Veamos como:

 

Figura 7.

Como he dicho, el primer paso, figura 7, es aplicar dos puertas Xor a los hilos X e Y del conductor cuántico del buscaminas.

La potencia de la configuración resaltada en el recuadro negro se debe a que las casillas que rodean al seis adyacentes a los cincos, deben, necesariamente, contener la misma información: ambas mina o ambas hueco.

Figura 8.

Así pues, ya tenemos definida nuestra primera operación cuántica: La lectura u observación del resultado de la computación. Me referiré a ella simplemente como lectura u observación del resultado.

Esta operación está definida por las casillas del interior del recuadro negro. Simplemente "cortando" y "pegando" dicho recuadro en el lugar adecuado (X e Y), nos arrojará el resultado señalado con un interrogante. Si es una mina diremos que el resultado es 1 y cero en caso contrario.

Todas las operaciones que defina para el buscaminas cuántico, funcionarán de forma parecida: corta y pega, sobre el conductor/conductores cuánticos.

Iniciadores de la computación: ket 0 y ket 1 (0,⎪1〉): 

Aunque ya los apunté anteriormente, vamos a definir del mismo modo que el anterior (corta/pega) los iniciadores de la computación.

Generalmente, nos interesa definir los valores iniciales o de entrada de la computación. Al tratarse de computación cuántica, no nos valen valores binarios 0/1 sino valores cuánticos 0 / ⎪1, + / ⎪-〉, ⎪i〉 /⎪-i〉 etc...

Vamos a definir únicamente los valores ket 0 y ket 1 (vistos con anterioridad, porque los otros pueden alcanzarse realizando algún tipo de operación que definiremos posteriormente.

Figura 9.

En la figura 3 vimos el ket 0, aunque la separación entre hilos no era la "correcta" para poder cortar y pegar. Esta configuración si que nos sirve para cortar y pegar sobre los hilos X e Y para obtener un ket 0 al inicio de la computación.

De forma parecida procederemos para obtener el ket 1. Obligando a que uno de los hilos X o Y contenga valores iguales y el otro valores distintos. Así:

 Figura 10.


Conjunto de puertas cuánticas necesario y suficiente.

 

Para completar el programa de construir una computadora cuántica con el buscaminas, necesitaremos, además de los elementos auxiliares que nos permitan cambiar la dirección, la fase (posición relativa respecto de las imaginarias líneas cian ya vistas, etc...), un conjunto universal de puetas cuánticas completo.




http://www.fisicafundamental.net/misterios/computacion.html


En computación cuántica se dice que un conjunto de puertas es universal si cualquier operación unitaria puede ser aproximada con precisión arbitraria por un circuito cuántico construido con esas puertas. La puerta de Toffoli no es ya universal en computación cuántica.

Fue David Deutsch en 1989 el primero que mostró la existencia de una puerta universal cuántica, la puerta de Deutsch, de tres qubits. Se trata de una generalización de la puerta de Toffoli del tipo:

 

 

En 1994 David DiVicenzo descubrió que la puerta de Deutsch podía descomponerse en puertas binarias, lo cual fue una sorpresa, dado que la lógica clásica reversible requiere puertas ternarias para la universalidad. Ya comentamos que Toffoli y Fredkin observaron que hacían falta puertas ternarias para la lógica clásica reversible. Sin embargo, la puerta de Toffoli (y cualquiera) puede ser descompuesta en puertas binarias y monarias con la ayuda de las características eminentemente cuánticas, lo que implica el sorprendente resultado de que sólo son necesarios dos qubits para la lógica cuántica.

Vamos a desarrollar esto un poco más. Veamos por qué son necesarios tres bits en lógica clásica reversible. Imaginemos que queremos implementar la puerta universal NAND con solo dos bits. Para hacerla invertible deberíamos poner el resultado en uno de los dos bits entrantes: 

 


 

Como se ve, esto no nos valdría ya que perdemos la reversibilidad. Las dos primeras entradas producen la misma salida. Es necesario pues un tercer bit que nos dé información de la entrada.

Con puertas ternarias clásicas sin embargo siempre se pueden simular puertas de más bits. Vemos por ejemplo cómo se puede reducir la puerta cuaternaria CCC-NOT con puertas de Toffoli:

como se ve, se usa un bit auxiliar inicializado a 0, de forma que en él se escriba el resultado de los dos primeros bits, si están a 1 este también estará a 1 y nos servirá para aplicar un NOT al cuarto bit siempre que también esté el tercero encendido, como hacía la puerta original cuaternaria. Se ha reducido pues una puerta cuaternaria a dos puertas ternarias. Veamos ahora por qué no se puede reducir clásicamente una ternaria con binarias:

vemos que el NOT aquí sobre b3 se hace cuando uno de los dos bits son 1, no cuando lo son los dos. Sin embargo, con puertas eminentemente cuánticas sí se puede reducir el circuito ternario, en la forma:

En donde ya hemos estudiado la raiz de NOT como puerta unitaria, la recordamos aqui en sus varias formas:

Para hacernos una idea de cómo actúan los circuitos, veamos en dos ejemplos cómo efectivamente las puertas binarias reprocucen la de Toffoli:

En realidad esto se puede extender a cualquier puerta C2-U, en donde siempre se tendrá la equivalencia:

El resultado general mostrado por Adriano Barenco y otros que se apoyaron en trabajos anteriores fue que cualquier operación unitaria en el espacio de Hilbert H de n qubits puede descomponerse en una secuencia de puertas de 1 qubit y de 2 qubits CNOT. Este conjunto infinito además es exactamente universal. Existen sin embargo conjuntos discretos universales, como el formado por la puerta de Hadamard y la puerta de fase controlada.

 

 

 

 

 

 

 

 

 

 

 

 

Ya introduje que el conductor de buscaminas cuántico se compone de tres lineas superpuestas separadas entre sí según unas reglas que veremos posteriormente.
 
Nombraremos las líneas como x,y y z, según aparece en la figura 4. La línea x siempre correrá superpuesta a una línea cian, salvo el girar 90º u otro ángulo según veremos más adelante. Pero para realizar la lectura, necesitaremos que las tres líneas adopten la primera disposición de la figura 4.
 
Así que la primera operación de la lectura de un qBit será unir las lineas según la configuración indicada, teniendo en cuenta que la x corre sobre una cian. Así:

 
Figura 5. 
 

Antes de proseguir, voy a poner algunas configuraciones de buscaminas de un único conductor que ya tenía dibujadas. Con un poco de práctica y sin mucha dificultad se pueden extrapolar al conuctor de tres filas del buscaminas cuántico.

 

 

El hilo conductor y otros accesorios.

Empecemos pues por el conductor de buscaminas cuántico:

 

Figura 21.

El lector puede ver en la figura 21, además de los extremos indefinidos, los bloques de 6 cuadrados que representan los tres ejes cartesianos, un cambio de fase, un inversor de los tres ejes y un elemento para las esquinas. Además de un duplicador de un hilo.

El resto no es necesario mostrarlo puesto que se puede construir con los elementos de un único conductor vistos con anterioridad, aunque a lo largo del libro iré poniendo algunos ejemplos más.

Llegados a este punto tengo que volver a la computación cuántica formal para, una vez explicada, construir los elementos del buscaminas que los emulen.

Así que ha llegado el momento de introducir un poco de la simbología de computación cuántica adoptada por consenso:

 


 

a

Comentarios

Entradas populares de este blog

Computacion cuantica

Complenitud NP del buscaminas (comparativa con el álgebra de boole).