Después de haber visto cómo funcionan los qubits en solitario y cómo son las puertas lógicas de un qbit, vamos a ver qué cambios hay que hacer cuando hay más de un qubit en el circuito. Primero recordaremos un par de cosas de las anteriores entradas:
- Cada qubit está en una mezcla de encendido, |1>, y apagado, |0>. La mezcla en general es a|0>+b|1>, donde a y b son números (en general complejos, pero vamos a intentar usar siempre números reales) tales que .
- Al medir un qubit la probabilidad de que sea un 0 es y la de que sea un 1, .
- Hay tres puertas lógicas de un qubit importantes: X, Z y H. La puerta X transforma |0> en |1> y viceversa; la puerta H transforma |0> en |+> (que es simplemente una mezcla a partes iguales de |0> y |1>, ) y viceversa, y |1> en |-> (que de nuevo es una mezcla a partes iguales de |0> y |1>, pero con la fase opuesta, ) y viceversa; por último la puerta Z transforma |+> en |-> y viceversa.
- Cualquier puerta lógica tiene que tener el mismo número de qubits de entrada que de salida.
Si pensamos en esta última afirmación un momento, podemos ver que que el número de qubits en un circuito tiene que ser constante durante todo él: si al principio tenemos un cierto número de qubits, a la salida tendremos que tener el mismo número también, y en todo momento durante el cálculo también tendremos el mismo número de qubits. Por tanto ese número de qubits va a ser una constante durante todo el circuito: esto es una diferencia muy importante con los circuitos clásicos, en los que en cada momento puedes tener un número muy diferente. Esto quiere decir que todos los circuitos cuánticos se van a poder representar como una serie de líneas horizontales, cada una de ellas un qubit, con la entrada a la izquierda y la salida a la derecha, y las puertas lógicas entre ambos extremos. Por ejemplo:
Cada una de las líneas horizontales es un qubit, y cada rectángulo una puerta lógica de uno o más qubits – por supuesto, inventadas. Cualquier circuito cuántico puede representarse de esta manera, con las puertas aplicandose sucesivamente de izquierda a derecha. Esto quiere decir que aplicamos la puerta 1 al primer qubit, la puerta 2 al sexto, la puerta 3 (puerta de dos qubits) al segundo y tercero, la 4 (puerta de tres qubits) a los cuarto, quinto y sexto, y así sucesivamente. De momento todas las puertas que hemos visto son de un solo qubit, pero ya veremos más adelante ejemplos de puertas de dos o más qubits.
Ahora vamos a ver cómo podemos describir matemáticamente estos circuitos de más de un qubit, de la misma forma en que un sólo qubit se puede representar como a|0>+b|1>. El problema de base es que no todos los estados de un circuito se pueden escribir como qubits separados. Algunos estados están entrelazados (y si no sabes muy bien qué significa eso, léete el artículo de Pedro sobre el tema), y esto nos obliga a tener que describir el sistema como un todo. La demostración sería un poco compleja para este nivel, así que tendré que decirlo como dogma de fe: cuando tenemos más de un qubit, en lugar de tener dos estados (|0> y |1>) tenemos tantos estados como combinaciones – binarias – posibles de bits existan. ¿Qué quiero decir con esto? Pues que tenemos un estado por cada combinación posible de ceros y unos con tantas cifras como bits tengamos. Se ve mejor con un ejemplo. Con un (qu)bit sólo tenemos dos posibles combinaciones de una cifra: 0 y 1. Por lo tanto tenemos dos estados de un qubit, |0> y |1>. Cuando nos vamos a dos qubits tenemos cuatro posibles combinaciones de dos cifras: 00, 01, 10 y 01. Por lo tanto, tendríamos cuatro estados: |00>, |01>, |10> y |11>. Cada estado significa, respectivamente:
- |00>: El primer qubit está en estado |0>, y el segundo qubit en estado |0>
- |01>: El primer qubit está en estado |0>, y el segundo qubit en estado |1>
- |10>: El primer qubit está en estado |1>, y el segundo qubit en estado |0>
- |11>: El primer qubit está en estado |1>, y el segundo qubit en estado |1>
Y un sistema de dos qubits podrá tener una mezcla cualquiera de estos cuatro estados. Si tenemos más qubits, tendremos más estados.[1] Por ejemplo, con 3 qubits tenemos ocho estados: 000, 001, 010, 011, 100, 101, 110 y 111, que son todas las posibles combinaciones binarias de 3 cifras. Con 4 qubits, tenemos ya dieciséis estados: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110 y 1111. En todos los casos, claro, el sistema de qubits podrá ser una mezcla cualquiera de todos estos estados. El número de estados crece muy rápidamente con el número de qubits, y ésta es la principal ventaja de la computación cuántica sobre la clásica: con muy pocos qubits podemos representar mucha información, ¡y trabajar con toda ella simultáneamente! Por ejemplo, imagina un ordenador con “solamente” 200 qubits. ¿Cuántos estados tendría? Pues la respuesta, por sorprendente que pueda parecer, es un número tan grande como el número de átomos del universo: es del orden de 10 elevado a la 60ª potencia, un 1 seguido de 60 ceros. Si intentáramos escribir todos los estados símplemente no tendríamos átomos en el universo para hacerlo.[2] Supongo que eso puede dar una idea del potencial de la computación cuántica. Por desgracia, ese mismo potencial nos va a obligar a centrarnos en nuestro estudio en circuitos con muy pocos qubits, porque si no, nos será imposible seguir la pista de todos los estados – ¡con seis qubits ya tendríamos 64 estados! Pero tranquilidad: pocas veces necesitaremos circuitos tan grandes, y si llegamos a usarlos será cuando ya entendamos qué hacen sin necesidad de mirar todos los estados uno a uno.
Hemos visto qué estados tiene un sistema de varios qubits, pero esto todavía no es como lo que vimos con sistemas de un qubit. Allí no sólo teníamos los estados |0> y |1>, sino que además teníamos dos números, a y b, que nos decían “cuánto” de cada estado teníamos, y nos daba la probabilidad de obtener uno u otro al medir. Cuando tenemos más de un qubit ocurre algo similar, pero ahora en lugar de dos números tenemos tantos números como estados haya. Al igual que en un qubit, cada estado lleva asociado un número, al igual que en un qubit los estados son números complejos – aunque, repito, intentaremos usar solamente reales -, y al igual que en un qubit la suma de los cuadrados de sus módulos (si usamos números reales, simplemente la suma de sus cuadrados) es uno. La diferencia es que ahora, en lugar de tener dos números, tenemos cuatro, ocho, dieciséis… o dos elevado a doscientos. Pero pongamos ejemplos de estados con dos qubits – se puede hacer análogamente para cualquier número de qubits. El estado general sería a|00>+b|01>+c|10>+d|11>, pero lo veremos mejor viendo ejemplos:
- |00>+|01>+|10>+|11>: Cada estado lleva asociado un número, en este caso todos son iguales a , y la suma de sus cuadrados es , por lo que es un estado válido.
- |00>+|01>-|10>-|11>: Este estado es similar al anterior, pero cambian algunos de los signos; no obstante, al elevar al cuadrado todos se volverán positivos, por lo que también sumarán lo mismo, es decir, 1, y el estado también será válido. Esto es un resultado general: al cambiar el signo de un estado válido[3] sigue siendo un estado válido.
- |00>: Este es un estado válido, aunque a primera vista no lo parezca: a – el número que multiplica a |00> – vale 1, pero, como solemos hacer en matemáticas, no escribimos el 1. Por otro lado, b, c y d – los números que acompañan a los otros estados – valen los tres 0, y de nuevo, como solemos hacer en matemáticas, no los escribimos ni a ellos ni a lo que multiplican. El estado escrito “al 100%” sería 1|00>+0|01>+0|10>+0|11>, pero resulta mucho más cómodo escribirlo como anteriormente; además, los estados |01>, |10> y |11> también son estados válidos, y lo mismo ocurre con más qubits.
- 0.6|01>+0.8|11>: Igual que en el anterior, aquí hay dos estados que no hemos escrito por estar multiplicados por cero; el estado completo sería 0|00>+0.6|01>+0|10>+0.8|11>. Lo interesante de este estado es que el segundo qubit siempre es un 1 (en los estados que no están multiplicados por 0): esto hace que no se comporte como un qubit sino más bien como un bit normal, su estado está definido y es 1. Por tanto el estado de dos qubits en realidad se comporta como un estado de un qubit, el primero, más un estado de un bit clásico.
Igual que había infinitos estados posibles de un qubit, lo mismo ocurre con más de un qubit: hay infinitas combinaciones posibles de números tales que sus cuadrados sumen 1. Ahora bien, una diferencia importante con los sistemas de un qubit es a la hora de medir. Antes podíamos medir el qubit y nada más; ahora podemos medir uno, medir otro, medir dos, medir tres, medir todos. Y no todo va a ser igual de sencillo. Medir todos es muy simple: si medimos todos, después de la medida el estado será uno definido, por ejemplo el |00> que vimos un poco más arriba. Y la probabilidad de que aparezca esto será justamente el cuadrado del número que le acompañe. Un ejemplo lo dejará más claro. En el primer estado que vimos, |00>+|01>+|10>+|11>, la probabilidad de obtener cero en los dos qubits es un cuarto (un medio al cuadrado es un cuarto). La probabilidad de obtener cero en el primero y uno en el segundo también es un cuarto, lo mismo de obtener uno en el primero y cero en el segundo y lo mismo de obtener uno en ambos. Es decir, tenemos las mismas probabilidades de obtener cada una de las cuatro parejas de bits; es como si tiráramos un dado de cuatro caras y según el resultado eligiéramos uno de los estados. Igual que ocurría después de medir el qubit en un sistema de uno sólo, el estado después de la medición está definido: si obtuvimos 00 al medir, el estado será |00> después. Esto funciona igual que los sistemas de un qubit, solamente que tenemos más posibilidades. En cambio, si medimos menos qubits – en particular lo más útil, que es medir uno sólo -((Medir más de un qubit puede verse como medir uno primero, otro después… hasta medirlos todos.)) el método es más complicado.[4] Lo más importante es que después de medir el estado resultante será como el último que vimos en la lista anterior, con uno de los qubits siendo siempre 0 o siempre 1. Un estado así es uno que acabamos de medir.
Ahora que ya sabemos cómo representar y medir un estado de más de un qubit, llegamos a algo que mencionamos antes y aún no hemos tratado: el entrelazamiento. La forma de definir el entrelazamiento con precisión se escapa del alcance de esta serie.[5] Por tanto, vamos a dar una definición operacional, que además puede ser más interesante que la matemática. Lo haré para dos qubits, pero el concepto es el mismo para más de dos. Si tenemos dos qubits entrelazados, el hecho de medir uno cambiará las propiedades del otro. ¿Qué propiedades? Los dos números que definían el qubit, a y b. Ahora podrás decir, “pero si en un sistema de más de un qubit hemos dicho que ya no hay dos números, ¡hay muchos más!”. Y tendrías toda la razón, pero recuerda una cosa: imaginemos que tenemos un sistema de dos qubits; si medimos uno de los dos qubits, éste queda en un estado definido, es decir, o cero-del-todo o uno-del-todo. Y por tanto, mientras no le hagamos nada más, deja de parecer un qubit y parece más un bit normal. Pero como ya dijimos, esto significa que ¡parece que tenemos un sistema de un sólo qubit! ¡Con sólo dos números!
Por ejemplo, imaginemos el estado que vimos antes, |00>+|01>+|10>+|11>. No lo voy a demostrar, pero la probabilidad de medir el primer qubit y obtener un cero es un medio (y, análogamente, la de obtener uno es también un medio). ¿En qué se convierte el sistema después de medir y obtener un cero? Pues con un poco de matemáticas[6] vemos que se convierte en |00>+|01>, que, como dijimos antes, es lo mismo que decir que el primer qubit es ahora un bit cero y el segundo un qubit |0>+|1>. Pero ¿qué habría pasado si al medir hubiéramos obtenido un uno? Pues que se habría convertido en |10>+|11>, que es lo mismo que decir que el primer qubit es ahora un bit uno y el segundo un qubit |0>+|1>. Si te has perdido con tantas raíces cuadradas no te preocupes: lo único importante es que el resultado es el mismo en ambos casos. Es decir, no hay entrelazamiento.
En cambio veamos ahora el estado 0.36|00>+0.48|01>+0.64|10>+0.48|11>. Si medimos el primer qubit y da 0 (ni nos preocupamos de calcular las probabilidades, no nos interesa), el estado queda, tras las mismas matemáticas que antes, como 0.6|00>+0.8|01>, que es equivalente a que el primero sea un bit cero y el segundo un qubit 0.6|0>+0.8|1>. Pero si lo medimos y da un 1 el estado queda como 0.8|10>+0.6|11>, que es equivalente a que el primero sea un bit 1 y el segundo un qubit 0.8|0>+0.6|1>. ¡El estado es diferente! Esto es algo muy poco intuitivo, y de las cosas más raras que tiene la mecánica cuántica. Los dos qubits podrían estar en extremos opuestos de la galaxia, pero al medir uno de ellos cambian las probabilidades de que el otro dé cero o uno. A Einstein esto le parecía que indicaba que la mecánica cuántica era incorrecta, pero esta es una de las cosas en que Alberto se equivocó: muchos experimentos han comprobado que, de hecho, esto ocurre. Y a nosotros nos viene de perlas, porque nos permitirá hacer muchas cosas en computación cuántica que de ninguna manera podríamos hacer en clásica. Por ejemplo, dentro de un par de entradas veremos cómo podemos utilizar esto para teletransportar información.
Antes de terminar quiero poner un último ejemplo de estado entrelazado. Es un tipo muy especial y que a veces nos será muy útil; los químicos los conocen como estados triplete y singlete, los físicos como estados de Bell, y en computación cuántica se suele usar el nombre estados de Bell o estados completamente entrelazados, por razones que veremos rápidamente. En lugar de una definición se va a ver más claro con un ejemplo; el estado de Bell más simple sería |00>+|11>. Es decir, que tiene “medio” estado cero-cero y “medio” estado uno-uno. ¿Qué ocurre si intentamos medir uno cualquiera de los qubits? Si medimos el primero y obtenemos un cero, el estado se convierte en |00>. Si en cambio obtenemos un 1, se convierte en |11>. Si medimos el segundo y obtenemos un cero, el estado se convierte en |00>. Si en cambio obtenemos un 1, se convierte en |11>. Fijaos bien: ¡Al medir cualquiera de los dos, medimos el otro instantáneamente! Cuando medimos uno cualquiera de los qubits, pasamos a tener un estado que parece un estado de dos bits, en lugar de uno de dos qubits. En este caso los bits son iguales, pero otros estados de Bell (|01>+|10>, por ejemplo) hacen que sean diferentes. Estos estados están completamente entrelazados en el sentido de que midiendo uno conoces totalmente el otro. Serán muy útiles entre otras razones porque son muy sencillos de fabricar y de utilizar.
Y aquí terminamos con los circuitos de varios qubits. En la próxima entrada, algún día, las puertas lógicas de varios qubits; y tras eso podremos empezar con verdaderos circutos cuánticos.
- Dos elevado al número de qubits, desde |00…00> hasta |11…11> [↩]
- Esto nos pone un límite también al intentar simular un ordenador cuántico en un ordenador clásico. Si intentamos simularlo, que se puede, necesitamos “un par de bytes” por cada estado. Si simulamos pocos qubits esto no da muchos problemas; al ordenador no le cuesta trabajar con varios miles o incluso millones de bytes. Pero cuando el número de qubits crece, el número de estados crece mucho más rápidamente, lo que rápidamente agota hasta las mejores memorias de ordenador. Piensa que añadir un qubit más, ¡supone duplicar el número de estados! [↩]
- O, más generalmente, al multiplicar por un número complejo con módulo 1. [↩]
- Hay que agrupar los estados que tienen ese qubit como 0 y sumar los cuadrados de los módulos de los números que multiplican cada estado: eso es la probabilidad de obtener un 0 en ese qubit; para obtener 1, se hace de manera análoga con los que tienen el qubit como 1. [↩]
- Dos o más qubits están entrelazados si no podemos escribir el estado como “producto” de qubits separados, en el caso de dos qubits (a|0>¹+b|1>¹)(c|0>²+d|1>²)=(a·c|00>+a·d|01>+b·c|10>+b·d|11>) (los superíndices denotan aquí a qué qubit nos referimos). Si no se puede escribir de esta manera, hay entrelazamiento entre los qubits. [↩]
- Normalizar. [↩]
The Computación Cuántica IV – Circuitos con varios qubits by , unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 Spain License.
{ 5 } Comentarios
Con estas matemáticas el entrelazamiento tiene menos gracia…
Se va complicando, pero sigue siendo muy interesante. No nos hagas esperar tanto hasta la proxima, por favor
Me está gustando mucho la serie, tenía ganas de saber más sobre qué era esto de la computación cuántica.
Sin embargo sigo teniendo una duda existencial que me reconcome.
¿Como se generan en un ordenador estas partículas cuantícas?
¿QUe tamaño tiene y como funciona el aparato (o lo que sea) que las genera?.
¡¡gracias!!
Es una pena que no hayas seguido, he disfrutado mucho leyendo los 4 artículos que hay. Un saludo.
Es una lastima que no siguieras, hay muy poca información comprensible en internet sobre la computación cuántica y de verdad que lo explicas muy bien. Ojalá sigas un día porque me encanta esta serie. Un saludo.
Escribe un comentario