Lección 5 de 13
El código de Shor corrige cualquier error de un cúbit
Por linealidad, todo error de un cúbit es combinación de I, X, Y y Z, y medir el síndrome lo convierte en uno solo. Los 27 errores, la degeneración y un error continuo.
Al terminar sabrás:
- Calcular el síndrome de cualquier error de Pauli de peso 1 en el código de Shor
- Explicar por qué da igual corregir con Z1, Z2 o Z3 (degeneración)
- Seguir un error continuo de un cúbit por todas las ramas del síndrome hasta recuperar el estado
- Ver qué falla cuando hay dos errores
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 cómo el código de Shor de 9 cúbits responde a los obstáculos (a) y (c) de la lección 1. Queda el más inquietante, el (b): los errores cuánticos son continuos. Un cúbit puede girar un poco, o mucho, de infinitas maneras. En las lecciones 3 y 4 vimos que un error quedaba, al medir el síndrome, en «nada» o en «». Hoy vemos que el mismo argumento vale para cualquier error en un cúbit. Es la lección central del curso.
La idea
Dos ingredientes, y ninguno es nuevo.
- Linealidad. Toda matriz es combinación lineal de cuatro matrices fijas, , , y . Así que un error cualquiera en el cúbit actúa sobre el estado codificado como una suma de cuatro términos: «nada», «», «» y «».
- La medida del síndrome. Cada uno de esos cuatro términos tiene un síndrome distinto, y medir el síndrome se queda con un solo término y descarta el resto. Después de medir, el error es , , o , y el síndrome nos dice cuál (o, para los , uno que hace lo mismo).
Si sabemos corregir esos tres errores de Pauli en cada cúbit, sabemos corregir cualquier error que afecte a un solo cúbit. Este paso de lo continuo a lo discreto se llama discretización de los errores.
Lo justo de las matrices de Pauli
Además de (cambio de bit) y (cambio de fase) necesitamos su producto:
es «los dos errores a la vez», salvo el factor . Tres propiedades, que se comprueban multiplicando:
- : cada una es su propia inversa, así que un error de Pauli se deshace aplicándolo otra vez.
- Anticonmutan dos a dos: , , .
- , , , forman una base del espacio de las matrices , que tiene dimensión 4.
Por la última propiedad, toda matriz se escribe de forma única como
con . La fórmula de los coeficientes sale de que vale si y si no.
Repaso La traza
La traza de una matriz cuadrada es la suma de su diagonal: . Es lineal: y .
El síndrome de un error de un cúbit
Recordemos los 8 observables que se miden, en este orden:
Los llamamos . Los dos estados lógicos, y por tanto , son autoestados de los ocho. Como en la lección 3, si es un producto de operadores de Pauli, al medir sobre sale con certeza si y conmutan, y si anticonmutan. Apuntamos un por cada y un por cada : eso es el síndrome, una cadena de 8 bits.
¿Cómo saber si conmutan? Es el criterio de la lección 3, ahora con : se miran los cúbits donde los dos operadores tienen matrices de Pauli distintas (ninguna ). Cada choque aporta un signo . Con un número par de choques, conmutan; con uno impar, anticonmutan.
- choca con los que contienen el cúbit : eso localiza el dentro de su bloque, como en el código de repetición.
- choca con los de seis cúbits que contienen : eso dice en qué bloque está, pero no en qué cúbit del bloque.
- choca con todos ellos, porque es distinta de y de : su síndrome es la suma (bit a bit, módulo 2) de los de y .
Aquí está la tabla completa de los errores de peso 1.
| cúbit | |||
|---|---|---|---|
| 1 | 10000000 | 00000010 | 10000010 |
| 2 | 11000000 | 00000010 | 11000010 |
| 3 | 01000000 | 00000010 | 01000010 |
| 4 | 00100000 | 00000011 | 00100011 |
| 5 | 00110000 | 00000011 | 00110011 |
| 6 | 00010000 | 00000011 | 00010011 |
| 7 | 00001000 | 00000001 | 00001001 |
| 8 | 00001100 | 00000001 | 00001101 |
| 9 | 00000100 | 00000001 | 00000101 |
Ningún síndrome es , así que todos se detectan. Pero solo hay 21 síndromes distintos para 27 errores: los nueve y los nueve tienen síndromes propios, mientras que comparten , y lo mismo pasa con y con . En un código clásico, dos errores con el mismo síndrome serían un desastre: no sabríamos cuál corregir. Aquí no lo es.
Corregir, y por qué no hace falta saber qué error fue
El decodificador es una tabla: a cada síndrome le asigna una corrección. Para los síndromes de e , la corrección es ese mismo o . Para los tres síndromes de tipo elegimos uno por bloque: , y .
Error . choca con y con , y con nada más. Síndrome . La tabla dice ; como , el estado queda exactamente .
Error . solo choca con . Síndrome . La tabla no dice , sino . ¿Lo estropeamos? No:
porque es , uno de los observables que fijan el código. Dicho de otra forma: y son el mismo vector. Los dos cambian el signo de en el primer bloque, y nada más:
La pregunta «¿fue , o ?» no tiene respuesta, y no la necesita: sobre el código, los tres errores hacen exactamente lo mismo. Corregir con cualquiera de ellos devuelve el estado. Esto es la degeneración: errores distintos que actúan igual sobre el código, porque se diferencian en un operador que lo fija (, o ). No tiene análogo clásico, y es la razón de que 21 síndromes basten para 27 errores.
Error . Como , su síndrome es el de más el de : . La tabla dice , y .
Un error continuo se vuelve discreto
Ahora el caso general. Un error cualquiera en el cúbit se escribe , así que
Cada uno de esos cuatro vectores es autoestado de los 8 observables, con síndromes , el de , el de y el de : cuatro síndromes distintos, para cualquier (la tabla lo muestra). Medir los 8 observables, que conmutan entre sí, es proyectar sobre el subespacio de un síndrome , con el proyector
Ese proyector deja intacto el término con síndrome y anula los otros tres. Además los cuatro vectores son ortogonales (están en autoespacios distintos) y tienen norma 1 (las matrices de Pauli son unitarias: conservan la longitud, lección 1). Si es unitaria, tiene norma 1 y, por Pitágoras, . Por tanto:
- el resultado es el de con probabilidad , el de con , el de con y con ;
- después de medir, el estado es el término correspondiente, por ejemplo , multiplicado por una fase ;
- la tabla aplica (o , o , o nada) y queda salvo esa fase global, que no se puede observar (lección 1).
Fíjate en que las probabilidades no dependen de ni de : medir el síndrome no aprende nada del dato. Que las probabilidades sumen 1 sí usa que es unitaria, pero lo demás no: para cualquier matriz, cada rama sale con probabilidad proporcional a y se corrige igual.
¿Y si el error afecta a varios cúbits? Entonces puede que varios términos de Pauli tengan el mismo síndrome, y la medida se queda con el grupo de términos de ese síndrome. Si dentro del grupo todos se diferencian, salvo un signo o una fase, en operadores que fijan el código (como y ), sobre el código son el mismo vector salvo ese factor, y una corrección arregla el grupo entero (ejercicio 3). Si se diferencian en algo que cambia el dato, la corrección falla; lo veremos al final.
Ejemplo resuelto
Un error que no es de Pauli actúa sobre el cúbit 4:
Es unitaria: cada columna tiene norma 1 (, e igual la segunda) y las dos son ortogonales. No es ninguna de las cuatro matrices de Pauli.
Paso 1: la base de Pauli. Para no hace falta multiplicar las matrices enteras: , y . Aquí:
- , luego .
- , luego .
- , luego .
- , luego .
Así que
Compruébalo con .
Paso 2: el estado con error.
Paso 3: medir el síndrome. Los cuatro términos tienen síndromes distintos (filas del cúbit 4 de la tabla):
| resultado | probabilidad | estado tras medir | corrección | estado final |
|---|---|---|---|---|
| 00000000 | ninguna | |||
| 00100000 | ||||
| 00100011 | ||||
| 00000011 |
Las probabilidades son y , y suman 1.
Resultado: en las cuatro ramas acabamos en , con una fase global o que no tiene ningún efecto. Un error continuo, que nadie conocía de antemano, se ha corregido exactamente. Ni siquiera hemos usado la forma concreta de : solo que actúa en un único cúbit.
Cuando hay dos errores
El código tiene distancia 3 (lo veremos en la lección 8): corrige un error, no dos. Supón que ocurren y . El síndrome es la suma de los suyos:
que es el síndrome de . El decodificador aplica y el resultado es
porque es el operador lógico de la lección 4. Es un estado del código válido, pero no es el que guardamos. Es un error lógico, y nada lo avisa. Pasa como con dos errores en el Hamming clásico (decodificación por síndrome): con más errores de la cuenta, el decodificador se equivoca sin saberlo. Algunos errores de peso 2 sí se arreglan, como , que tiene síndrome y no hace nada porque fija el código.
Fíjate en la diferencia con y : y tienen el mismo síndrome, pero se diferencian en , que sí cambia el dato. Eso es lo que separa la degeneración (inofensiva) del error lógico.
Ejercicios
Ejercicio 1
Calcula el síndrome de y el de , y di qué aplica el decodificador en cada caso. ¿Recupera el estado?
Ver la solución
solo choca con los dos observables de seis , porque el cúbit 6 está en los dos: síndrome . El decodificador aplica , y fija el código: el estado vuelve exactamente.
choca con y con : síndrome . El decodificador aplica y : recupera el estado.
Ejercicio 2
Un error de fase pequeño actúa sobre el cúbit 2. Escríbelo en la base de Pauli, da los resultados posibles del síndrome con sus probabilidades y comprueba que se corrige. ¿Cuánto vale la probabilidad de detectar algo si ?
Ver la solución
Las trazas dan , y ( e tienen la diagonal nula). Así que y
Hay dos resultados. con probabilidad : el estado queda salvo fase. con probabilidad : queda salvo fase; el decodificador aplica , y . Se corrige en los dos casos, aunque el decodificador «se equivoque» de cúbit.
Con , : un . Casi siempre la medida dice «no hay error», y entonces el error desaparece: el estado queda limpio.
Ejercicio 3
Un error de fase conjunto actúa a la vez sobre los cúbits 1 y 2: en esos dos cúbits, con . Es un error de peso 2. Desarróllalo en la base de Pauli, mide el síndrome y comprueba que, aun así, se corrige.
Ver la solución
Con y :
Los cuatro términos forman dos grupos por síndrome. y tienen síndrome ; y tienen . Sobre el código, actúa como y como . Así que
Resultado con probabilidad , y el estado queda (salvo el signo de ). Resultado con probabilidad , y queda salvo fase; el decodificador aplica y se recupera. Este error de peso 2 se corrige siempre: dentro de cada grupo, los términos se diferencian en , que fija el código.
En resumen
- , con , es una base de las matrices : todo error de un cúbit es , con .
- En el código de Shor, , , y tienen síndromes distintos. Medir el síndrome proyecta el error continuo sobre uno solo, con probabilidad , que no depende del dato, y tras corregir queda salvo una fase global. Es la respuesta al obstáculo (b).
- Los 27 errores de peso 1 dan 21 síndromes: comparten uno (y así cada bloque), pero da igual cuál se corrija, porque fija el código. Es la degeneración.
- Con dos errores puede fallar: se «corrige» con y deja , un error lógico silencioso.
Siguiente lección: Matrices de Pauli y producto simpléctico
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 (10.ª ed. aniversario) (2010).
- D. Gottesman, An Introduction to Quantum Error Correction and Fault-Tolerant Quantum Computation (2009).