Saltar al contenido
El bit perdido
Newsletter

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 cos⁡θ I−isin⁡θ X\cos\theta\,I-i\sin\theta\,X quedaba, al medir el síndrome, en «nada» o en «XX». 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.

  1. Linealidad. Toda matriz 2×22\times2 es combinación lineal de cuatro matrices fijas, II, XX, YY y ZZ. Así que un error cualquiera EE en el cúbit kk actúa sobre el estado codificado como una suma de cuatro términos: «nada», «XkX_k», «YkY_k» y «ZkZ_k».
  2. 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 II, XkX_k, YkY_k o ZkZ_k, y el síndrome nos dice cuál (o, para los ZZ, 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 XX (cambio de bit) y ZZ (cambio de fase) necesitamos su producto:

X=(0110),Z=(100−1),Y=iXZ=(0−ii0).X=\begin{pmatrix}0&1\\1&0\end{pmatrix},\quad Z=\begin{pmatrix}1&0\\0&-1\end{pmatrix},\quad Y=iXZ=\begin{pmatrix}0&-i\\i&0\end{pmatrix}.

YY es «los dos errores a la vez», salvo el factor ii. Tres propiedades, que se comprueban multiplicando:

  • X2=Y2=Z2=IX^2=Y^2=Z^2=I: cada una es su propia inversa, así que un error de Pauli se deshace aplicándolo otra vez.
  • Anticonmutan dos a dos: XZ=−ZXXZ=-ZX, XY=−YXXY=-YX, YZ=−ZYYZ=-ZY.
  • II, XX, YY, ZZ forman una base del espacio de las matrices 2×22\times 2, que tiene dimensión 4.

Por la última propiedad, toda matriz 2×22\times2 se escribe de forma única como

M=e0I+e1X+e2Y+e3Z,ej=12tr⁡(σjM),M=e_0I+e_1X+e_2Y+e_3Z,\qquad e_j=\tfrac12\operatorname{tr}(\sigma_jM),

con σ0,σ1,σ2,σ3=I,X,Y,Z\sigma_0,\sigma_1,\sigma_2,\sigma_3=I,X,Y,Z. La fórmula de los coeficientes sale de que tr⁡(σiσj)\operatorname{tr}(\sigma_i\sigma_j) vale 22 si i=ji=j y 00 si no.

Repaso La traza

La traza de una matriz cuadrada es la suma de su diagonal: tr⁡(abcd)=a+d\operatorname{tr}\begin{pmatrix}a&b\\c&d\end{pmatrix}=a+d. Es lineal: tr⁡(A+B)=tr⁡A+tr⁡B\operatorname{tr}(A+B)=\operatorname{tr}A+\operatorname{tr}B y tr⁡(cA)=ctr⁡A\operatorname{tr}(cA)=c\operatorname{tr}A.

El síndrome de un error de un cúbit

Recordemos los 8 observables que se miden, en este orden:

Z1Z2, Z2Z3, Z4Z5, Z5Z6, Z7Z8, Z8Z9, X1X2X3X4X5X6, X4X5X6X7X8X9.Z_1Z_2,\ Z_2Z_3,\ Z_4Z_5,\ Z_5Z_6,\ Z_7Z_8,\ Z_8Z_9,\ X_1X_2X_3X_4X_5X_6,\ X_4X_5X_6X_7X_8X_9.

Los llamamos g1,…,g8g_1,\dots,g_8. Los dos estados lógicos, y por tanto ∣ψL⟩=α∣0L⟩+β∣1L⟩\ket{\psi_L}=\alpha\ket{0_L}+\beta\ket{1_L}, son autoestados +1+1 de los ocho. Como en la lección 3, si EE es un producto de operadores de Pauli, al medir gjg_j sobre E∣ψL⟩E\ket{\psi_L} sale +1+1 con certeza si gjg_j y EE conmutan, y −1-1 si anticonmutan. Apuntamos un 00 por cada +1+1 y un 11 por cada −1-1: 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 YY: se miran los cúbits donde los dos operadores tienen matrices de Pauli distintas (ninguna II). Cada choque aporta un signo −1-1. Con un número par de choques, conmutan; con uno impar, anticonmutan.

  • XiX_i choca con los ZaZbZ_aZ_b que contienen el cúbit ii: eso localiza el XX dentro de su bloque, como en el código de repetición.
  • ZiZ_i choca con los X⋯XX\cdots X de seis cúbits que contienen ii: eso dice en qué bloque está, pero no en qué cúbit del bloque.
  • YiY_i choca con todos ellos, porque YY es distinta de XX y de ZZ: su síndrome es la suma (bit a bit, módulo 2) de los de XiX_i y ZiZ_i.

Aquí está la tabla completa de los 9×3=279\times3=27 errores de peso 1.

cúbitXiX_iZiZ_iYiY_i
1100000000000001010000010
2110000000000001011000010
3010000000000001001000010
4001000000000001100100011
5001100000000001100110011
6000100000000001100010011
7000010000000000100001001
8000011000000000100001101
9000001000000000100000101

Ningún síndrome es 0000000000000000, así que todos se detectan. Pero solo hay 21 síndromes distintos para 27 errores: los nueve XiX_i y los nueve YiY_i tienen síndromes propios, mientras que Z1,Z2,Z3Z_1,Z_2,Z_3 comparten 0000001000000010, y lo mismo pasa con Z4,Z5,Z6Z_4,Z_5,Z_6 y con Z7,Z8,Z9Z_7,Z_8,Z_9. 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 XiX_i e YiY_i, la corrección es ese mismo XiX_i o YiY_i. Para los tres síndromes de tipo ZZ elegimos uno por bloque: Z1Z_1, Z4Z_4 y Z7Z_7.

Error X5X_5. X5X_5 choca con Z4Z5Z_4Z_5 y con Z5Z6Z_5Z_6, y con nada más. Síndrome 0011000000110000. La tabla dice X5X_5; como X5X5=IX_5X_5=I, el estado queda exactamente α∣0L⟩+β∣1L⟩\alpha\ket{0_L}+\beta\ket{1_L}.

Error Z2Z_2. Z2Z_2 solo choca con X1⋯X6X_1\cdots X_6. Síndrome 0000001000000010. La tabla no dice Z2Z_2, sino Z1Z_1. ¿Lo estropeamos? No:

Z1Z2∣ψL⟩=∣ψL⟩,Z_1Z_2\ket{\psi_L}=\ket{\psi_L},

porque Z1Z2Z_1Z_2 es g1g_1, uno de los observables que fijan el código. Dicho de otra forma: Z1∣ψL⟩Z_1\ket{\psi_L} y Z2∣ψL⟩Z_2\ket{\psi_L} son el mismo vector. Los dos cambian el signo de ∣111⟩\ket{111} en el primer bloque, y nada más:

Z1∣ψL⟩=Z2∣ψL⟩=α22(∣000⟩−∣111⟩)(∣000⟩+∣111⟩)(∣000⟩+∣111⟩)+β22(∣000⟩+∣111⟩)(∣000⟩−∣111⟩)(∣000⟩−∣111⟩).Z_1\ket{\psi_L}=Z_2\ket{\psi_L}=\tfrac{\alpha}{2\sqrt2}(\ket{000}-\ket{111})(\ket{000}+\ket{111})(\ket{000}+\ket{111})+\tfrac{\beta}{2\sqrt2}(\ket{000}+\ket{111})(\ket{000}-\ket{111})(\ket{000}-\ket{111}).

La pregunta «¿fue Z1Z_1, Z2Z_2 o Z3Z_3?» 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 (Z1Z2Z_1Z_2, Z2Z3Z_2Z_3 o Z1Z3=g1g2Z_1Z_3=g_1g_2). No tiene análogo clásico, y es la razón de que 21 síndromes basten para 27 errores.

Error Y8Y_8. Como Y8=iX8Z8Y_8=iX_8Z_8, su síndrome es el de X8X_8 más el de Z8Z_8: 00001100+00000001=0000110100001100+00000001=00001101. La tabla dice Y8Y_8, y Y8Y8=IY_8Y_8=I.

Un error continuo se vuelve discreto

Ahora el caso general. Un error cualquiera EE en el cúbit kk se escribe E=e0I+e1X+e2Y+e3ZE=e_0I+e_1X+e_2Y+e_3Z, así que

Ek∣ψL⟩=e0∣ψL⟩+e1Xk∣ψL⟩+e2Yk∣ψL⟩+e3Zk∣ψL⟩.E_k\ket{\psi_L}=e_0\ket{\psi_L}+e_1X_k\ket{\psi_L}+e_2Y_k\ket{\psi_L}+e_3Z_k\ket{\psi_L}.

Cada uno de esos cuatro vectores es autoestado de los 8 observables, con síndromes 0000000000000000, el de XkX_k, el de YkY_k y el de ZkZ_k: cuatro síndromes distintos, para cualquier kk (la tabla lo muestra). Medir los 8 observables, que conmutan entre sí, es proyectar sobre el subespacio de un síndrome ss, con el proyector

Ps=∏j=18I+(−1)sjgj2.P_s=\prod_{j=1}^{8}\frac{I+(-1)^{s_j}g_j}{2}.

Ese proyector deja intacto el término con síndrome ss 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 EE es unitaria, Ek∣ψL⟩E_k\ket{\psi_L} tiene norma 1 y, por Pitágoras, ∣e0∣2+∣e1∣2+∣e2∣2+∣e3∣2=1|e_0|^2+|e_1|^2+|e_2|^2+|e_3|^2=1. Por tanto:

  • el resultado es el de XkX_k con probabilidad ∣e1∣2|e_1|^2, el de YkY_k con ∣e2∣2|e_2|^2, el de ZkZ_k con ∣e3∣2|e_3|^2 y 0000000000000000 con ∣e0∣2|e_0|^2;
  • después de medir, el estado es el término correspondiente, por ejemplo Xk∣ψL⟩X_k\ket{\psi_L}, multiplicado por una fase e1/∣e1∣e_1/|e_1|;
  • la tabla aplica XkX_k (o YkY_k, o ZkZ_k, o nada) y queda ∣ψL⟩\ket{\psi_L} salvo esa fase global, que no se puede observar (lección 1).

Fíjate en que las probabilidades no dependen de α\alpha ni de β\beta: medir el síndrome no aprende nada del dato. Que las probabilidades sumen 1 sí usa que EE es unitaria, pero lo demás no: para cualquier matriz, cada rama sale con probabilidad proporcional a ∣ej∣2|e_j|^2 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 Z1Z_1 y Z2Z_2), 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:

U=123(3+i1+i−1+i3−i).U=\frac{1}{2\sqrt3}\begin{pmatrix}3+i&1+i\\-1+i&3-i\end{pmatrix}.

Es unitaria: cada columna tiene norma 1 (∣3+i∣2+∣−1+i∣212=10+212=1\tfrac{|3+i|^2+|-1+i|^2}{12}=\tfrac{10+2}{12}=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 U=(u11u12u21u22)U=\begin{pmatrix}u_{11}&u_{12}\\u_{21}&u_{22}\end{pmatrix} no hace falta multiplicar las matrices enteras: tr⁡(XU)=u12+u21\operatorname{tr}(XU)=u_{12}+u_{21}, tr⁡(YU)=i(u12−u21)\operatorname{tr}(YU)=i(u_{12}-u_{21}) y tr⁡(ZU)=u11−u22\operatorname{tr}(ZU)=u_{11}-u_{22}. Aquí:

  • tr⁡U=623=3\operatorname{tr}U=\tfrac{6}{2\sqrt3}=\sqrt3, luego e0=32e_0=\tfrac{\sqrt3}{2}.
  • tr⁡(XU)=(1+i)+(−1+i)23=i3\operatorname{tr}(XU)=\tfrac{(1+i)+(-1+i)}{2\sqrt3}=\tfrac{i}{\sqrt3}, luego e1=i23e_1=\tfrac{i}{2\sqrt3}.
  • tr⁡(YU)=i (1+i)−(−1+i)23=i3\operatorname{tr}(YU)=i\,\tfrac{(1+i)-(-1+i)}{2\sqrt3}=\tfrac{i}{\sqrt3}, luego e2=i23e_2=\tfrac{i}{2\sqrt3}.
  • tr⁡(ZU)=(3+i)−(3−i)23=i3\operatorname{tr}(ZU)=\tfrac{(3+i)-(3-i)}{2\sqrt3}=\tfrac{i}{\sqrt3}, luego e3=i23e_3=\tfrac{i}{2\sqrt3}.

Así que

U=32 I+i23 (X+Y+Z).U=\frac{\sqrt3}{2}\,I+\frac{i}{2\sqrt3}\,(X+Y+Z).

Compruébalo con X+Y+Z=(11−i1+i−1)X+Y+Z=\begin{pmatrix}1&1-i\\1+i&-1\end{pmatrix}.

Paso 2: el estado con error.

U4∣ψL⟩=32∣ψL⟩+i23X4∣ψL⟩+i23Y4∣ψL⟩+i23Z4∣ψL⟩.U_4\ket{\psi_L}=\frac{\sqrt3}{2}\ket{\psi_L}+\frac{i}{2\sqrt3}X_4\ket{\psi_L}+\frac{i}{2\sqrt3}Y_4\ket{\psi_L}+\frac{i}{2\sqrt3}Z_4\ket{\psi_L}.

Paso 3: medir el síndrome. Los cuatro términos tienen síndromes distintos (filas del cúbit 4 de la tabla):

resultadoprobabilidadestado tras medircorrecciónestado final
0000000034\tfrac34∣ψL⟩\ket{\psi_L}ninguna∣ψL⟩\ket{\psi_L}
00100000112\tfrac1{12}iX4∣ψL⟩iX_4\ket{\psi_L}X4X_4i∣ψL⟩i\ket{\psi_L}
00100011112\tfrac1{12}iY4∣ψL⟩iY_4\ket{\psi_L}Y4Y_4i∣ψL⟩i\ket{\psi_L}
00000011112\tfrac1{12}iZ4∣ψL⟩iZ_4\ket{\psi_L}Z4Z_4i∣ψL⟩i\ket{\psi_L}

Las probabilidades son ∣e0∣2=34|e_0|^2=\tfrac34 y ∣ej∣2=112|e_j|^2=\tfrac1{12}, y suman 1.

Resultado: en las cuatro ramas acabamos en α∣0L⟩+β∣1L⟩\alpha\ket{0_L}+\beta\ket{1_L}, con una fase global 11 o ii 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 UU: 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 X1X_1 y X2X_2. El síndrome es la suma de los suyos:

10000000+11000000=01000000,10000000+11000000=01000000,

que es el síndrome de X3X_3. El decodificador aplica X3X_3 y el resultado es

X3X1X2∣ψL⟩=X1X2X3∣ψL⟩=α∣0L⟩−β∣1L⟩,X_3X_1X_2\ket{\psi_L}=X_1X_2X_3\ket{\psi_L}=\alpha\ket{0_L}-\beta\ket{1_L},

porque X1X2X3X_1X_2X_3 es el operador lógico Zˉ\bar Z 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 Z1Z2Z_1Z_2, que tiene síndrome 0000000000000000 y no hace nada porque fija el código.

Fíjate en la diferencia con Z1Z_1 y Z2Z_2: X1X2X_1X_2 y X3X_3 tienen el mismo síndrome, pero se diferencian en X1X2X3X_1X_2X_3, 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 Z6Z_6 y el de Y3Y_3, y di qué aplica el decodificador en cada caso. ¿Recupera el estado?

Ver la solución

Z6Z_6 solo choca con los dos observables de seis XX, porque el cúbit 6 está en los dos: síndrome 0000001100000011. El decodificador aplica Z4Z_4, y Z4Z6=(Z4Z5)(Z5Z6)=g3g4Z_4Z_6=(Z_4Z_5)(Z_5Z_6)=g_3g_4 fija el código: el estado vuelve exactamente.

Y3Y_3 choca con Z2Z3Z_2Z_3 y con X1⋯X6X_1\cdots X_6: síndrome 01000000+00000010=0100001001000000+00000010=01000010. El decodificador aplica Y3Y_3 y Y3Y3=IY_3Y_3=I: recupera el estado.

Ejercicio 2

Un error de fase pequeño D=(100eiθ)D=\begin{pmatrix}1&0\\0&e^{i\theta}\end{pmatrix} 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 θ=0,1\theta=0{,}1?

Ver la solución

Las trazas dan e0=12tr⁡D=1+eiθ2e_0=\tfrac12\operatorname{tr}D=\tfrac{1+e^{i\theta}}{2}, e3=12tr⁡(ZD)=1−eiθ2e_3=\tfrac12\operatorname{tr}(ZD)=\tfrac{1-e^{i\theta}}{2} y e1=e2=0e_1=e_2=0 (XDXD e YDYD tienen la diagonal nula). Así que D=1+eiθ2I+1−eiθ2ZD=\tfrac{1+e^{i\theta}}{2}I+\tfrac{1-e^{i\theta}}{2}Z y

D2∣ψL⟩=1+eiθ2∣ψL⟩+1−eiθ2Z2∣ψL⟩.D_2\ket{\psi_L}=\tfrac{1+e^{i\theta}}{2}\ket{\psi_L}+\tfrac{1-e^{i\theta}}{2}Z_2\ket{\psi_L}.

Hay dos resultados. 0000000000000000 con probabilidad ∣1+eiθ2∣2=cos⁡2θ2\left|\tfrac{1+e^{i\theta}}{2}\right|^2=\cos^2\tfrac\theta2: el estado queda ∣ψL⟩\ket{\psi_L} salvo fase. 0000001000000010 con probabilidad ∣1−eiθ2∣2=sin⁡2θ2\left|\tfrac{1-e^{i\theta}}{2}\right|^2=\sin^2\tfrac\theta2: queda Z2∣ψL⟩Z_2\ket{\psi_L} salvo fase; el decodificador aplica Z1Z_1, y Z1Z2∣ψL⟩=∣ψL⟩Z_1Z_2\ket{\psi_L}=\ket{\psi_L}. Se corrige en los dos casos, aunque el decodificador «se equivoque» de cúbit.

Con θ=0,1\theta=0{,}1, sin⁡2(0,05)≈0,0025\sin^2(0{,}05)\approx0{,}0025: un 0,25 %0{,}25\,\%. 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: E=R⊗RE=R\otimes R en esos dos cúbits, con R=cos⁡θ2 I−isin⁡θ2 ZR=\cos\tfrac\theta2\,I-i\sin\tfrac\theta2\,Z. 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 c=cos⁡θ2c=\cos\tfrac\theta2 y s=sin⁡θ2s=\sin\tfrac\theta2:

E=c2I−ics (Z1+Z2)−s2Z1Z2.E=c^2I-ics\,(Z_1+Z_2)-s^2Z_1Z_2.

Los cuatro términos forman dos grupos por síndrome. II y Z1Z2Z_1Z_2 tienen síndrome 0000000000000000; Z1Z_1 y Z2Z_2 tienen 0000001000000010. Sobre el código, Z1Z2Z_1Z_2 actúa como II y Z2Z_2 como Z1Z_1. Así que

E∣ψL⟩=(c2−s2)∣ψL⟩−2ics Z1∣ψL⟩=cos⁡θ ∣ψL⟩−isin⁡θ Z1∣ψL⟩.E\ket{\psi_L}=(c^2-s^2)\ket{\psi_L}-2ics\,Z_1\ket{\psi_L}=\cos\theta\,\ket{\psi_L}-i\sin\theta\,Z_1\ket{\psi_L}.

Resultado 0000000000000000 con probabilidad cos⁡2θ\cos^2\theta, y el estado queda ∣ψL⟩\ket{\psi_L} (salvo el signo de cos⁡θ\cos\theta). Resultado 0000001000000010 con probabilidad sin⁡2θ\sin^2\theta, y queda Z1∣ψL⟩Z_1\ket{\psi_L} salvo fase; el decodificador aplica Z1Z_1 y se recupera. Este error de peso 2 se corrige siempre: dentro de cada grupo, los términos se diferencian en Z1Z2Z_1Z_2, que fija el código.

En resumen

  • {I,X,Y,Z}\{I,X,Y,Z\}, con Y=iXZY=iXZ, es una base de las matrices 2×22\times2: todo error de un cúbit es e0I+e1X+e2Y+e3Ze_0I+e_1X+e_2Y+e_3Z, con ej=12tr⁡(σjM)e_j=\tfrac12\operatorname{tr}(\sigma_jM).
  • En el código de Shor, II, XkX_k, YkY_k y ZkZ_k tienen síndromes distintos. Medir el síndrome proyecta el error continuo sobre uno solo, con probabilidad ∣ej∣2|e_j|^2, que no depende del dato, y tras corregir queda α∣0L⟩+β∣1L⟩\alpha\ket{0_L}+\beta\ket{1_L} salvo una fase global. Es la respuesta al obstáculo (b).
  • Los 27 errores de peso 1 dan 21 síndromes: Z1,Z2,Z3Z_1,Z_2,Z_3 comparten uno (y así cada bloque), pero da igual cuál se corrija, porque Z1Z2Z_1Z_2 fija el código. Es la degeneración.
  • Con dos errores puede fallar: X1X2X_1X_2 se «corrige» con X3X_3 y deja α∣0L⟩−β∣1L⟩\alpha\ket{0_L}-\beta\ket{1_L}, un error lógico silencioso.

Siguiente lección: Matrices de Pauli y producto simpléctico

Para profundizar