ves esta página sin formato por que esta hecha cumpliendo el estándar web CSS 2.
tú navegador no soporta este estándar, o tienes dicho soporte desactivado.
si estas en el primer caso, actualízate. merece mucho la pena.
Inicio > Historias > Cómo diseñar un circuito cuántico de teleportación I
Cómo diseñar un circuito cuántico de teleportación I
Tengo la impresión de que la mecánica cuántica se hace mucho más digerible cuando se estudia desde el punto de vista de la computación. En computación cuántica se parte del sistema cuántico más sencillo posible: el qubit (quantum bit) de la misma forma que en computación clásica partimos de la unidad de información más sencilla posible: el sistema de dos estados que conocemos como bit. Eso permite que hasta un alumno de secundaria pueda entender el funcionamiento general de los circuitos digitales e implementar algunas funciones interesantes.
Un qubit tiene muchas implementaciones físicas posibles, siendo quizás el spin de una partícula y la polarización de un fotón las primeras que a uno le vienen a la cabeza. Esos sistemas tan sencillos pueden utilizarse para entender con mayor facilidad todas esas propiedades de la mecánica cuántica que nos parecen tan poco intuitivas, tales y como la superposición de estados, el entrelazamiento o incluso el principio de incertidumbre.
Es precisamente a lo que me estoy dedicando estos días, utilizando uno de los libros de texto más prestigiosos sobre computación e información cuántica
El objetivo de las tres primeras entradas será el diseño y la posible implementación física de uno de los circuitos cuánticos más sencillos a la vez que importantes: el de teleportación cuántica. Este circuito tiene además aplicaciones tremendamente interesantes a la hora de concebir protocolos criptográficos cuya seguridad esté garantizada por las propias leyes de la física.
Aunque intentaré ser lo más pedagógico posible, no es mi objetivo, ni mucho menos, escribir una popularización. Dos ejemplos de intentos de popularización que quizás podrían interesar al lector como introducción pueden encontrarse en: El Tamiz, y Cuentos Cuánticos, dos blogs por otra lado muy recomendables.
Asumiré que el lector que quiera continuar adelante tiene conocimientos básicos de electrónica digital a un nivel de 4º ESO y álgebra de matrices y números complejos a nivel de 2º de bachillerato, aunque las matemáticas tendrán un sustituto visual en la medida de lo posible.
Para realizar algunos esquemas de circuitos clásicos y sus equivalentes cuánticos utilizaré este sencillo editor web
Para representar circuitos cuánticos utilizaré la misma aplicación que utilizaron Nielsen y Chuang en su libro, además de este editor-simulador web para algunos ejemplos que el lector puede implementar fácilmente.
Por último, para la representación visual de qubits y operaciones elementales sobre estos utilizando la esfera de Bloch, haré uso de una aplicación java creada por la universidad de Cincinnati
Antes de empezar, resulta muy instructivo visionar este vídeo de Quantum Fracture
¿Qué es un qubit?
En electrónica digital clásica tenemos cables que transportar bits. Los bits, como ya sabemos, pueden tomar los valores 0 ó 1 , que, en un circuito real, se implementa (simplificando la situación) introduciendo un voltaje de +5 V (nivel lógico alto equivalente a un valor lógico 1) y 0V para el nivel lógico 0. Esquemáticamente podemos representar un cable ideal como si se tratase de un transportador de bits en un estado que no cambia su valor.
Aquí encontramos las primeras diferencia con un circuito cuántico. Un circuito cuántico no procesa bits sino qubits. Un qubit no es más que un estado de superposición cuántica que sólo después de una medida tomará alguno de los dos valores posibles 0 ó 1 (bits clásicos) definiéndose en algunos de los estados de la base computacional estándar | 0 > ó | 1 > respectivamente. Podemos así representar un qbit general | 𝜓 > como
| 𝜓 > = a | 0 > + b | 1 >
Siendo a y b en general números complejos conocidos como amplitudes, que además deben cumplir la condición de normalización
| a |² + | b |² = 1
La notación | 0 >, | 1 >, | 𝜓 ;> -- conocida como notación de Dirac -- en lugar de 0,1, 𝜓 tendrá sentido a medida que vayamos introduciendo operaciones como | 𝜓 >| 𝜓 > por ejemplo frente a < 𝜓 | 𝜓 >, aunque en este momento no debería suponer ningún problema para el lector que sólo tiene que interpretarlo como una denominación conveniente que damos a los estados del qubit para distinguirlos de los bits clásicos. Podemos así representar un canal cuántico básico para transportar un qubit de la siguiente forma
O en notación estándar de circuitos cuánticos
La línea no tiene en este caso que representar necesariamente un cable. Podría tratarse simplemente de una línea de tiempo o de una partícula como un fotón cubriendo una determinada distancia. De hecho, no es siempre trivial poder preservar el estado de un qubit en un circuito cuántico debido al fenómeno de la decoherencia (análogo del ruido en un canal cuántico)
La notación podría empezar a espantar a algunos lectores, por lo que sería interesante contar con alguna herramienta apropiada de visualización. La herramienta estándar es una esfera unitaria conocida como esfera de Bloch, de tal manera que un qubit puede representarse como un vector (o un punto en la esfera si quieren simplificar) utilizando coordenadas esféricas [1]
Vemos que los estados | 0 > y | 1 > representan los vectores que apuntan verticalmente hacia arriba y abajo en el eje z --o bien polo norte y sur si el lector lo encuentra más intuitivo. Un qubit arbitrario quedará representado por las coordenadas (𝜃,𝜙) de forma similar a cómo localizamos un punto sobre la superficie terrestre utilizando la latitud y la longitud. Esos dos ángulos son suficientes para definir un qbit general, tal y como se explica en la nota [1]
Es justo con la forma de la expresión del qubit donde empieza a actuar la extraña lógica cuántica. En primer lugar no sabemos en ningún momento qué bit clásico se corresponde con el estado cuántico del qubit o siquiera si esa pregunta tiene algún sentido --Es precisamente esa propiedad la que permite a los circuitos cuánticos hacer cálculos de manera cualitativamente distintas a los circuitos clásicos. Lo más que podemos hacer es realizar una medida para definir el estado del qubit en uno de sus dos posiblidades | 0 > ó | 1 > y a los que asignamos los bits clásicos 0 y 1 como resultados de la medición.
La representación estándar de la realización de una medición sobre un qubit es la siguiente
La regla es que la probabilidad de obtener uno u otro resultado viene dada por el cuadrado del módulo de la amplitud -- la conocida como regla de Born--. Así, en un qubit general escrito como | 𝜓 > = a | 0 > + b | 1 > tenemos una probabilidad |a|² de obtener 0 y |b|² de obtener 1 después de realizar la medida.
Así, un estado sencillo del tipo
cuya representación de Bloch sería un vector en la dirección +x
nos daría un 50% de probabilidades de obtener 0 ó 1 después de realizar una media puesto que
Ya hemos dicho que un qubit podría implementarse físicamente (y así se ha hecho) con fotones polarizados o partículas con spin por ejemplo. Pero iremos más tarde con eso. Ahora centrémonos en implementar puertas cuánticas para poder diseñar circuitos.
Puertas cuánticas de una entrada
En electrónica digital clásica podemos definir básicamente una sola puerta de una entrada no trivial, la puerta NOT, que cambia el valor del bit de entrada según se representa en la tabla de verdad a continuación:
En el caso de un qubit, podemos definir un análogo de la puerta NOT -- conocida por razones históricas como puerta X -- cuya acción intercambia los valores de las amplitudes
que en notación estándar de circuitos cuánticos representamos como
Y aunque no estemos acostumbrados a hacerlo en electrónica digital clásica, una puerta lógica cuántica puede entenderse como una transformación -- representada por una matriz 2 x 2 en este caso -- de tal manera que el vector formado por la amplitudes [a,b] se transforme en un vector de salida [b,a] de la siguiente forma:
La matriz
definirá nuestra primera puerta cuántica X análoga a la puerta NOT clásica. En esta notación podemos ver cómo actuaría sobre los estados | 0 > y | 1 >
Para aquellos que no gusten de los cálculos matriciales, podemos visualizar la transformación producida por X como una rotación de 180º en torno al eje X del vector que representa al qubit en la esfera de Bloch.
El lector no tiene que ser especialmente perspicaz para darse cuenta que, de esta manera y a diferencia de los circuitos digitales clásicos, podremos definir fácilmente más tipos de puertas cuánticas de una entrada. De hecho, podremos definir infinitas matrices (puertas) con la única condición de que sean unitarias. Así, dos ejemplos que nos serán muy útiles de puertas cuánticas de una entrada son la Z y la H (Hadamard)
La puerta de Hadamard puede resultar más intuitiva si cambiamos la base computacional. En lugar de tomar la base estándar | 0 > y | 1 > como base de representación de un qubit, tomamos una nueva base de representación | + > y | − > definida como
Así, podemos considerar la transformación de la puerta como una simple sustitución de una base por otra:
| 0 > → | + > ; | 1 > → | - >
La operación de la puerta se puede entender visualmente como una rotación de 90º alrededor del eje y seguida una rotación de 180º en torno al eje x. En el gif a continuación podemos ver en la esfera de Bloch cómo el vector de estado | + > se transforma en el vector | 0 >
Veremos la importancia de este hecho en la formación de estados de Bell entrelazados, imprescindibles en la implementación de nuestro circuito de teleportación.
Sin embargo, en este punto, recomiendo al lector que compruebe su comprensión de las ideas manejadas hasta este momento con algunos ejercicios que debería intentar haciendo uso de la aplicación java de la esfera de bloch y el simulador de circuitos
1. Representar la transformación que produce la operación Y en una esfera de Bloch. ¿A qué tipo de rotación es equivalente? Cuál es resultado de Y| + >, es decir, la operación de la puerta Y aplicada al vector de estado en la dirección x.
2. ¿Cuál es el resultado de aplicar la misma puerta dos veces una a continuación de la otra?
3. Simplificación de circuitos: ¿Por qué única puerta equivalente podemos sustituir los circuitos HXH y HZH?
4. ¿Cuál es el resultado de aplicar una puerta X y una Z sucesivamente a un qubit general | 𝜓 > = a | 0 > + b | 1 > ?
En el próximo post veremos cómo definir una única puerta de dos entradas -- controlled-NOT -- que junto, con las de una entrada, nos permitirán construir cualquier circuito cuántico. Empezaremos con un circuito muy sencillo para crear estados de Bell entrelazados que nos servirá como parte de la entrada de nuestro circuito de teleportación cuántica.
[1]La idea de la esfera de Bloch parte del hecho de que | 𝜓 > y el estado multiplicado por un factor de fase global e^(i γ) | 𝜓 > representan el mismo estado físico, por lo que podemos representar un qubit general como