Lección 4 de 13
El código de Shor: tres respuestas a tres obstáculos
El código de 9 cúbits de Shor (1995): sus dos palabras, los 8 observables de paridad que lo vigilan y cómo responde a la no clonación y a la medida.
Al terminar sabrás:
- Escribir las dos palabras del código de Shor y explicar que salen de combinar el código de fase y el de bit
- Calcular qué resultado dan los 8 observables de paridad ante un error de un cúbit
- Explicar por qué la redundancia es entrelazamiento y no copias, y por qué medir paridades no destruye el dato
- Reconocer los operadores lógicos Z1Z4Z7 y X1X2X3 y por qué parecen cruzados
Si sabes multiplicar matrices, operar con números complejos y calcular un síndrome con una matriz de paridad (lo tienes en el curso de códigos correctores), puedes seguirlo. La física imprescindible (estado, medida, producto tensorial) se explica desde cero.
En la lección anterior vimos dos códigos de tres cúbits: uno corrige un cambio de bit () y el otro un cambio de fase (), pero ninguno corrige los dos. Nos quedamos con una pregunta: ¿se pueden juntar? Esta es la lección donde el relato da el giro. A mediados de los años 90 nadie sabía cómo corregir errores cuánticos: los tres obstáculos de la lección 1 parecían cerrar el paso. En 1995 Peter Shor publicó un código de nueve cúbits que responde a ellos. Hoy lo vemos entero y respondemos a dos de los tres: (a) no se puede clonar y (c) medir destruye la superposición. El (b), los errores continuos, es el tema de la lección 5.
La idea
Juntamos los dos códigos de la lección anterior, uno dentro del otro. Es una concatenación:
- Por dentro, cada cúbit se protege con el código de bit: pasa a ser y a . Un suelto dentro de un bloque se ve.
- Por fuera, tres bloques protegen contra los cambios de fase, igual que y en la versión de fase. Pero en vez de y usamos sus equivalentes de tres cúbits, y .
El resultado usa cúbits. Un cúbit vive en , pero nueve cúbits viven en , y hay que escribir los vectores con 512 amplitudes. Por suerte casi todas valen cero.
Las dos palabras
Escribimos los dos estados de un bloque:
Las dos palabras del código son tres bloques iguales:
Al desarrollar el producto salen ocho términos cada una:
donde los tres paréntesis se multiplican con el producto tensorial. Por ejemplo, contiene , , , etc., todos con amplitud . En cada término lleva signo por cada bloque que sea . Las dos palabras son ortogonales: , y el producto interno de dos productos es el producto de los de cada bloque, así que .
Para codificar un cúbit, se convierte en
No nos importa cómo se prepara este estado: lo que importa es el estado.
Obstáculo (a): entrelazamiento, no copias
El primer obstáculo decía que no se puede copiar un cúbit, así que no hay código de repetición. Lo que acabamos de escribir no es una copia. Copiar nueve veces daría , un vector con las 512 amplitudes no nulas (en general). Cada palabra del código tiene solo 8 amplitudes no nulas. Dos comprobaciones más lo confirman.
- no es . El estado aparece en con amplitud , así que al medirlo saldría cero en los nueve cúbits solo con probabilidad .
- no es un producto de nueve cúbits sueltos . Razona como con el estado de Bell en la lección 2. Como y aparecen en , todos los y son distintos de cero. Entonces aparecería con amplitud , y no lo contiene. Además, midas lo que midas sobre un solo cúbit de , los resultados salen con las mismas probabilidades sean cuales sean y : ningún cúbit suelto revela nada del dato. Esa información no está en ningún cúbit concreto: está en las correlaciones entre ellos. Eso es el entrelazamiento, y es la redundancia del código.
Así que el código no clona. Reparte la información de un cúbit entre nueve de manera que ninguno la guarda por separado. Es una manera de evitar el teorema de no clonación, no de saltárselo.
Los ocho observables
Para vigilar el código se miden ocho observables de paridad. Recuerda la lección 2: medir un observable de valores propios como es una medida proyectiva sobre sus autoespacios, con proyectores . Los seis primeros comparan cúbits dentro de un bloque:
Como en la lección anterior, si los cúbits 1 y 2 valen lo mismo y si no. Estos seis detectan los y son el código de bit en cada bloque. Los otros dos comparan el signo de bloques enteros:
El primero compara los bloques 1 y 2; el segundo, los bloques 2 y 3. La razón es que deja como está y cambia el signo de : vale sobre y sobre . Así que el producto de dos de ellos dice si dos bloques tienen el mismo signo. Estos dos detectan los .
Las dos palabras son autoestados de valor propio de los ocho, porque cada bloque es o , y los ocho observables lo respetan (compruébalo: cada ve dos bits iguales dentro de un bloque, y deja igual y cambia el signo de ; en , produce dos signos , que se compensan). Por tanto, medir los ocho sobre un estado sin error da con certeza y no lo toca. Los ocho conmutan dos a dos, así que se pueden medir juntos en cualquier orden. Para comprobarlo, usa el criterio de la lección 3: cuenta los cúbits donde un operador lleva y el otro . Dos de tipo nunca chocan, dos de tipo tampoco, y cada comparte con cada cero o dos cúbits: un número par.
Obstáculo (c): se miden paridades, nunca los datos
El tercer obstáculo decía que mirar destruye la superposición. Aquí no miramos los datos. Mirar no dice si el cúbit 1 vale o , solo si los cúbits 1 y 2 coinciden, y los dos términos de la superposición dan la misma respuesta: y tienen ambos . Como la medida solo colapsa lo que distingue resultados, no hay nada que colapsar.
La comprobación es esta: para cualquier error de un cúbit, la distribución de los ocho resultados no depende de ni de . Pasa con los nueve , con los nueve y con cualquier giro de un cúbit. Si el síndrome no sabe nada de y , la medida no ha aprendido nada del dato, y por eso (lo veremos con cuentas en la lección 5) tampoco lo destruye: tras medir, el estado se puede devolver al original.
Los operadores lógicos
Hay dos operadores que actúan sobre el dato codificado sin sacarlo del código: lleva a y cambia el signo de . Son
Parecen cruzados: el « lógico» está hecho con y el « lógico» con . La razón está en la concatenación. El bit lógico se guarda en el signo de los bloques, que es el código de fase de fuera. Cambiar por en un bloque es lo que hace en el bloque 1; para pasar de a hay que cambiar los tres bloques, y basta tocar un cúbit en cada uno: . Y vale sobre y sobre , así que sobre no hace nada y sobre cambia el signo, que es lo que hace . Los dos conmutan con los ocho observables, así que no se ven al medir el síndrome, y anticonmutan entre sí, como y .
Ejemplo resuelto
Tomamos y le aplicamos un cambio de bit en el cúbit 5, . Veamos qué da cada observable.
El estado tras el error. cambia el cúbit central del segundo bloque: y . El estado es .
Observables de bloque. En los dos términos del segundo bloque, y , los cúbits 4 y 5 son distintos y los cúbits 5 y 6 también. Así que y en los dos términos, es decir, con certeza y sin tocar ni . Los demás (, , , ) no ven nada: .
Observables de signo. conmuta con y con , que son sobre el estado limpio, así que siguen en .
Resultado: , que escrito con para y para es el síndrome . Entre los errores y , solo da ese síndrome, así que corregimos aplicando otra vez. Este resultado ocurre con probabilidad y la medida no cambia el estado: sigue siendo , con y intactos.
Otros ejemplos, calculados igual:
| error | síndrome | observables que dan |
|---|---|---|
| ninguno | 00000000 | ninguno |
| 00110000 | , | |
| 00001000 | ||
| 00000010 | ||
| 00000001 |
Un cambia del primer bloque en , así que los bloques 1 y 2 quedan con signos distintos y da ; los bloques 2 y 3 siguen iguales. Los tres cúbits de un mismo bloque dan el mismo síndrome de fase, porque cambiar el signo de un bloque es lo mismo desde cualquiera de sus cúbits. En la lección 5 verás que da igual cuál se corrija.
Un adelanto del (b). Si el error no es un limpio sino (un poco de «no pasa nada» y un poco de ), el síndrome sale con probabilidad y con probabilidad (para : y ). En el primer caso el estado queda limpio; en el segundo, queda aplicado, que se corrige. En los dos hay recuperación, y la lección 5 lo hará para cualquier error.
Ejercicios
Ejercicio 1
¿Qué síndrome da un error ? ¿Y un error ? Indica qué observables dan .
Ver la solución
cambia el primer cúbit del tercer bloque. Los cúbits 7 y 8 pasan a ser distintos, así que . El 8 y el 9 siguen igual, y los observables de signo no se ven afectados. Síndrome .
cambia el signo del tercer bloque. Los bloques 2 y 3 quedan con signos distintos, así que . Síndrome . Es el mismo que o .
Ejercicio 2
¿Se podría añadir como noveno observable de paridad? Razona con el criterio de conmutación de la lección 3.
Ver la solución
Hay que ver si conmuta con los otros ocho. Con comparte un solo cúbit, el 4: y anticonmutan, y todos los demás cúbits conmutan, así que anticonmuta con él. Dos observables que anticonmutan no se pueden medir a la vez con resultado seguro. Compara con , que sí es uno de los ocho: con comparte dos cúbits, dos cambios de signo que se compensan, y conmutan. Por eso las comparaciones de se hacen dentro de cada bloque.
Ejercicio 3
Comprueba que y anticonmutan, y que solo (de peso 1) no es un operador lógico.
Ver la solución
y solo comparten el cúbit 1, donde y anticonmutan. En los cúbits 2 y 3 no hay , y en los cúbits 4 y 7 no hay . Un solo cambio de signo: anticonmutan.
solo no vale como operador lógico porque anticonmuta con : saca el estado del código y el síndrome lo detecta (). Para pasar de a sin que se note hay que tocar los tres bloques.
En resumen
- El código de Shor es una concatenación: el código de bit dentro de cada bloque de tres cúbits y el de fase entre los tres bloques. Usa 9 cúbits y las palabras , .
- Obstáculo (a): la redundancia es entrelazamiento, no copias: no es ni un producto de cúbits sueltos, y ningún cúbit guarda ni .
- Obstáculo (c): se miden ocho observables de paridad ( y , ), nunca los datos. El síndrome no depende de ni de .
- y están «cruzados» porque el bit lógico vive en el signo de los bloques.
- Obstáculo (b): queda anunciado. En la lección 5 veremos que este código corrige cualquier error de un cúbit, no solo y .
Siguiente lección: El código de Shor corrige cualquier error
Para profundizar
- P. W. Shor, Scheme for reducing decoherence in quantum computer memory (1995).
- M. A. Nielsen e I. L. Chuang, Quantum Computation and Quantum Information (2010).
- D. Gottesman, An Introduction to Quantum Error Correction and Fault-Tolerant Quantum Computation (2009).