Saltar al contenido
El bit perdido
Newsletter

Lección 3 de 13

El código de repetición de 3 cúbits: corregir sin mirar

El primer código cuántico: tres cúbits protegen uno contra un cambio de bit midiendo solo paridades. Responde a la no clonación y a la medida, y deja una pregunta.

Al terminar sabrás:

  • Codificar un cúbit en tres cúbits sin clonarlo
  • Calcular el síndrome midiendo Z1Z2 y Z2Z3 y corregir un cambio de bit
  • Ver cómo un error continuo se convierte en uno discreto al medir el síndrome
  • Entender por qué este código no protege contra un cambio de fase

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 aprendimos a medir un observable como Z1Z2Z_1Z_2 sin mirar el valor de ningún cúbit: el resultado dice en qué autoespacio está el estado, y si ya estaba en uno, no lo toca. Estamos en el relato de los tres obstáculos de la lección 1: (a) no se puede copiar un cúbit, (b) los errores son continuos y (c) medir destruye la superposición. Hoy construimos el primer código cuántico, el más pequeño que se te pueda ocurrir, y vemos qué parte de cada obstáculo resuelve. La pregunta de hoy es doble: ¿se puede proteger un cúbit repitiéndolo, aunque no se pueda copiar? Y, si se puede, ¿contra qué errores?

La idea

En el curso de códigos, el código de repetición [3,1,3][3,1,3] manda cada bit tres veces y corrige un error por mayoría (lección 1). Con cúbits no podemos copiar α∣0⟩+β∣1⟩\alpha\ket{0}+\beta\ket{1} tres veces, pero sí podemos repetir la información de un bit: mandar ∣0⟩\ket{0} a ∣000⟩\ket{000} y ∣1⟩\ket{1} a ∣111⟩\ket{111}, y dejar que la linealidad decida qué hace con las superposiciones.

Los estados lógicos del código son

∣0L⟩=∣000⟩,∣1L⟩=∣111⟩.\ket{0_L}=\ket{000},\qquad \ket{1_L}=\ket{111}.

Son ortogonales (se diferencian en los tres cúbits), y el estado codificado de α∣0⟩+β∣1⟩\alpha\ket{0}+\beta\ket{1} es

∣ψL⟩=α∣0L⟩+β∣1L⟩=α∣000⟩+β∣111⟩.\ket{\psi_L}=\alpha\ket{0_L}+\beta\ket{1_L}=\alpha\ket{000}+\beta\ket{111}.

Las combinaciones α∣0L⟩+β∣1L⟩\alpha\ket{0_L}+\beta\ket{1_L} forman un subespacio de dimensión 2 dentro del espacio de 8 dimensiones de tres cúbits. Ese subespacio es el código.

Esto no es clonar. Clonar sería el producto (α∣0⟩+β∣1⟩)⊗3(\alpha\ket{0}+\beta\ket{1})^{\otimes 3}, que al desarrollar tiene ocho términos, entre ellos α2β∣001⟩\alpha^2\beta\ket{001}. El estado codificado solo tiene dos: ∣001⟩\ket{001} aparece con amplitud 0. Con α=β=1/2\alpha=\beta=1/\sqrt2 se ve muy claro: el clon sería una superposición uniforme de los 8 kets, y ∣ψL⟩=(∣000⟩+∣111⟩)/2\ket{\psi_L}=(\ket{000}+\ket{111})/\sqrt2 es un estado entrelazado en el que los tres cúbits están correlacionados y ninguno, por separado, tiene un valor definido. Esta es la primera respuesta al obstáculo (a): la redundancia no viene de copias, sino de correlaciones. No hay ninguna contradicción con el teorema de no clonación, porque no copiamos α\alpha y β\beta en tres sitios: los repartimos en un estado conjunto.

Medir paridades

Aquí entra el obstáculo (c). Si midiéramos los tres cúbits en la base computacional sabríamos si el estado es ∣000⟩\ket{000} o ∣111⟩\ket{111}, y habríamos destruido la superposición y perdido α\alpha y β\beta. Por eso medimos otra cosa: paridades. Los observables

Z1Z2,Z2Z3Z_1Z_2,\qquad Z_2Z_3

valen +1+1 o −1-1 sobre un estado de la base: Z1Z2∣x1x2x3⟩=(−1)x1+x2∣x1x2x3⟩Z_1Z_2\ket{x_1x_2x_3}=(-1)^{x_1+x_2}\ket{x_1x_2x_3}, es decir, +1+1 si los cúbits 1 y 2 coinciden y −1-1 si difieren. Lo mismo para Z2Z3Z_2Z_3 con los cúbits 2 y 3. Los medimos como en la lección anterior, con los proyectores (I±Z1Z2)/2(I\pm Z_1Z_2)/2 y (I±Z2Z3)/2(I\pm Z_2Z_3)/2 (los dos son diagonales, así que conmutan: Z1Z2⋅Z2Z3=Z2Z3⋅Z1Z2Z_1Z_2\cdot Z_2Z_3=Z_2Z_3\cdot Z_1Z_2, y se pueden medir los dos).

Sobre el código no se aprende nada: ∣000⟩\ket{000} y ∣111⟩\ket{111} tienen los tres cúbits iguales, así que ambos observables valen +1+1 en ∣0L⟩\ket{0_L} y en ∣1L⟩\ket{1_L}, y por tanto en toda combinación α∣0L⟩+β∣1L⟩\alpha\ket{0_L}+\beta\ket{1_L}. El código es justo el conjunto de estados que Z1Z2Z_1Z_2 y Z2Z3Z_2Z_3 dejan fijos: sobre un estado de la base, los dos valen +1+1 solo si los tres bits coinciden, es decir, solo en ∣000⟩\ket{000} y ∣111⟩\ket{111}. Por eso se les llama estabilizadores. El resultado de medirlos es siempre (+1,+1)(+1,+1) y no depende de α\alpha ni de β\beta: no hay información sobre el dato, y la superposición sobrevive.

Escribiremos el resultado como un síndrome de dos bits (s1,s2)(s_1,s_2), con sj=0s_j=0 si sale +1+1 y sj=1s_j=1 si sale −1-1. Si EE es un error formado por XX y ZZ en algunos cúbits, Z1Z2Z_1Z_2 y EE o bien conmutan (Z1Z2E=EZ1Z2Z_1Z_2E=EZ_1Z_2, síndrome 0) o bien anticonmutan (Z1Z2E=−EZ1Z2Z_1Z_2E=-EZ_1Z_2, síndrome 1). Se decide cúbit a cúbit. Donde uno lleva XX y el otro ZZ, aparece un signo, porque XZ=−ZXXZ=-ZX; en los demás cúbits no. Si hay un número par de cúbits así, los operadores conmutan; si es impar, anticonmutan. Razón de una línea del síndrome: si Z1Z2E=−EZ1Z2Z_1Z_2E=-EZ_1Z_2, entonces Z1Z2E∣ψL⟩=−EZ1Z2∣ψL⟩=−E∣ψL⟩Z_1Z_2E\ket{\psi_L}=-EZ_1Z_2\ket{\psi_L}=-E\ket{\psi_L}, y sale −1-1.

Tabla de síndromes

Un cambio de bit en el cúbit ii es XiX_i (XX en el cúbit ii, identidad en los demás). Anticonmuta con las paridades en las que interviene el cúbit ii y conmuta con las demás:

errorX1X_1X2X_2X3X_3ninguno
síndrome (Z1Z2, Z2Z3)(Z_1Z_2,\,Z_2Z_3)(1,0)(1,0)(1,1)(1,1)(0,1)(0,1)(0,0)(0,0)

Los cuatro síndromes son distintos, así que el síndrome identifica qué cúbit se dio la vuelta. Para corregir se aplica de nuevo el mismo XiX_i, porque Xi2=IX_i^2=I. Compáralo con la tabla del código clásico [3,1,3][3,1,3], con H=(110011)H=\begin{pmatrix}1&1&0\\0&1&1\end{pmatrix}: las columnas son (1,0)T(1,0)^T, (1,1)T(1,1)^T y (0,1)T(0,1)^T, las mismas. Cada fila de HH dice qué posiciones comparan las paridades, y Z1Z2Z_1Z_2 y Z2Z3Z_2Z_3 comparan exactamente esas. La decodificación por síndrome clásica y la cuántica son la misma cuenta. Eso responde al obstáculo (c): se mide el síndrome, nunca los datos.

Un error continuo

Un cambio de bit completo es un error muy brusco. El obstáculo (b) decía que los errores reales son continuos. Tomemos el más sencillo, una rotación pequeña del cúbit 1:

E=cos⁡θ I−isin⁡θ X1.E=\cos\theta\,I-i\sin\theta\,X_1.

Con θ=0\theta=0 no pasa nada, y con θ=π/2\theta=\pi/2 es el cambio de bit completo (salvo la fase −i-i). Para valores intermedios, el cúbit 1 queda «a medias». Aplicado al estado codificado:

E∣ψL⟩=cos⁡θ (α∣000⟩+β∣111⟩)−isin⁡θ (α∣100⟩+β∣011⟩).E\ket{\psi_L}=\cos\theta\,(\alpha\ket{000}+\beta\ket{111})-i\sin\theta\,(\alpha\ket{100}+\beta\ket{011}).

Es una superposición de dos cosas: el estado sin error y el estado con X1X_1. Ahora medimos el síndrome. El primer sumando está en el autoespacio (0,0)(0,0) y el segundo en el (1,0)(1,0), y la medida proyectiva obliga a elegir uno:

  • síndrome (0,0)(0,0), con probabilidad cos⁡2θ\cos^2\theta: el estado queda ∣ψL⟩\ket{\psi_L}, limpio, y no hay nada que corregir;
  • síndrome (1,0)(1,0), con probabilidad sin⁡2θ\sin^2\theta: queda −i X1∣ψL⟩-i\,X_1\ket{\psi_L}, y al aplicar X1X_1 se recupera ∣ψL⟩\ket{\psi_L} (salvo la fase global −i-i, que no se puede observar).

En los dos casos el estado final es exactamente el original, y no hemos tenido que saber cuánto valía θ\theta. Ningún otro síndrome puede salir. La medida del síndrome ha convertido un error continuo en uno discreto: «ninguno» o «X1X_1». Es solo la primera señal de la respuesta al obstáculo (b), porque aquí el error continuo era una combinación de II y X1X_1. En la lección 5 veremos que para cualquier error vale el mismo argumento.

El límite: un ZZ pasa sin ser visto

Hemos corregido todos los cambios de bit. Pero un cúbit también puede sufrir un cambio de fase ZZ. Veamos qué hace Z1Z_1 sobre el estado codificado: Z1∣000⟩=∣000⟩Z_1\ket{000}=\ket{000} y Z1∣111⟩=−∣111⟩Z_1\ket{111}=-\ket{111}, así que

Z1∣ψL⟩=α∣000⟩−β∣111⟩.Z_1\ket{\psi_L}=\alpha\ket{000}-\beta\ket{111}.

Su síndrome es (0,0)(0,0), porque Z1Z_1 conmuta con Z1Z2Z_1Z_2 y con Z2Z3Z_2Z_3. El error no se ve, y el estado ha cambiado: es el estado codificado de α∣0⟩−β∣1⟩\alpha\ket{0}-\beta\ket{1}, otro dato distinto. Lo mismo pasa con Z2Z_2 y Z3Z_3.

De hecho Z1Z_1 es un operador lógico: actúa sobre el código como ZZ sobre un cúbit, Zˉ∣jL⟩=(−1)j∣jL⟩\bar Z\ket{j_L}=(-1)^j\ket{j_L}. Junto con Xˉ=X1X2X3\bar X=X_1X_2X_3, que lleva ∣0L⟩\ket{0_L} a ∣1L⟩\ket{1_L} y viceversa, son el ZZ y el XX del cúbit lógico. Hay un detalle importante: Zˉ\bar Z puede ser Z1Z_1, que pesa 1 (actúa en un solo cúbit) y no es un estabilizador. Un error en un solo cúbit puede cambiar el dato sin que nadie se entere: la distancia de este código es 1 (es el peso del operador lógico más ligero; la definimos con calma en la lección 8), y más adelante lo escribiremos [[3,1,1]][[3,1,1]]. En otras palabras, este código corrige un cambio de bit pero ningún cambio de fase.

Con dos cambios de bit también se equivoca. X1X2X_1X_2 tiene el síndrome (0,1)(0,1), el mismo que X3X_3, y el decodificador aplica X3X_3. Queda X1X2X3=XˉX_1X_2X_3=\bar X sobre el dato: un error lógico que intercambia α\alpha y β\beta, igual que en el código clásico.

La versión de fase

Si lo que nos preocupa es el cambio de fase, se puede repetir lo mismo en la otra base. Los estados lógicos son ahora

∣0L⟩=∣+++⟩,∣1L⟩=∣−−−⟩,\ket{0_L}=\ket{+++},\qquad \ket{1_L}=\ket{---},

y los estabilizadores, X1X2X_1X_2 y X2X3X_2X_3. Es lo mismo que antes con los papeles de XX y ZZ cambiados, porque X∣±⟩=±∣±⟩X\ket{\pm}=\pm\ket{\pm} y Z∣±⟩=∣∓⟩Z\ket{\pm}=\ket{\mp}. Un ZiZ_i da la tabla que antes daba XiX_i:

errorZ1Z_1Z2Z_2Z3Z_3ninguno
síndrome (X1X2, X2X3)(X_1X_2,\,X_2X_3)(1,0)(1,0)(1,1)(1,1)(0,1)(0,1)(0,0)(0,0)

Esta versión corrige un cambio de fase, pero ahora es un X1X_1 el que pasa sin ser visto: deja ∣+++⟩\ket{+++} igual y cambia el signo de ∣−−−⟩\ket{---}, es decir, cambia el dato.

Ninguna de las dos versiones protege contra las dos cosas a la vez. Un cúbit real puede sufrir un cambio de bit, un cambio de fase o ambos. El primer código corrige XX y no ve ZZ; el segundo, al revés. La pregunta para la lección 4 es inevitable: ¿se pueden combinar los dos códigos para corregir ambos errores? Sí, y eso es lo que hizo Shor.

Ejemplo resuelto

Tomamos ∣ψ⟩=0,6∣0⟩+0,8i∣1⟩\ket{\psi}=0{,}6\ket{0}+0{,}8i\ket{1} (comprueba que 0,62+0,82=10{,}6^2+0{,}8^2=1), codificado como

∣ψL⟩=0,6∣000⟩+0,8i∣111⟩.\ket{\psi_L}=0{,}6\ket{000}+0{,}8i\ket{111}.

Error X2X_2. El estado pasa a 0,6∣010⟩+0,8i∣101⟩0{,}6\ket{010}+0{,}8i\ket{101}. Medimos Z1Z2Z_1Z_2: en ∣010⟩\ket{010} los cúbits 1 y 2 difieren, y en ∣101⟩\ket{101} también, así que sale −1-1 con certeza. Medimos Z2Z3Z_2Z_3: los cúbits 2 y 3 difieren en ambos términos, así que sale −1-1. El síndrome es (1,1)(1,1), el de X2X_2. Aplicamos X2X_2 y volvemos a 0,6∣000⟩+0,8i∣111⟩0{,}6\ket{000}+0{,}8i\ket{111}. Fíjate en que los dos términos dan la misma respuesta: por eso medir no ha tocado la superposición, y los números 0,60{,}6 y 0,8i0{,}8i no han intervenido.

Error continuo, con θ=π/6\theta=\pi/6. Aquí cos⁡2θ=3/4\cos^2\theta=3/4 y sin⁡2θ=1/4\sin^2\theta=1/4. El estado es

E∣ψL⟩=32 (0,6∣000⟩+0,8i∣111⟩)−i2 (0,6∣100⟩+0,8i∣011⟩).E\ket{\psi_L}=\tfrac{\sqrt3}{2}\,(0{,}6\ket{000}+0{,}8i\ket{111})-\tfrac{i}{2}\,(0{,}6\ket{100}+0{,}8i\ket{011}).

Con probabilidad 3/43/4 el síndrome es (0,0)(0,0) y queda ∣ψL⟩\ket{\psi_L}. Con probabilidad 1/41/4 es (1,0)(1,0) y queda −i (0,6∣100⟩+0,8i∣011⟩)-i\,(0{,}6\ket{100}+0{,}8i\ket{011}); aplicando X1X_1 se obtiene −i (0,6∣000⟩+0,8i∣111⟩)=−i∣ψL⟩-i\,(0{,}6\ket{000}+0{,}8i\ket{111})=-i\ket{\psi_L}, que es el estado original salvo la fase global.

Un ZZ que no se ve. Con Z1Z_1 el estado es 0,6∣000⟩−0,8i∣111⟩0{,}6\ket{000}-0{,}8i\ket{111}, síndrome (0,0)(0,0). El decodificador no hace nada, y el dato guardado ya no es ∣ψ⟩\ket{\psi} sino 0,6∣0⟩−0,8i∣1⟩0{,}6\ket{0}-0{,}8i\ket{1}. Su solape con el original es ∣0,36−0,64∣2=0,0784|0{,}36-0{,}64|^2=0{,}0784 (el solape ∣⟨ϕ∣ψ⟩∣2|\braket{\phi|\psi}|^2 de la lección 1): casi ortogonales.

Ejercicios

Ejercicio 1

Sobre ∣ψL⟩=α∣000⟩+β∣111⟩\ket{\psi_L}=\alpha\ket{000}+\beta\ket{111} ocurre el error X3X_3. ¿Qué síndrome sale y cómo se corrige?

Ver la solución

El estado es α∣001⟩+β∣110⟩\alpha\ket{001}+\beta\ket{110}. En Z1Z2Z_1Z_2, los cúbits 1 y 2 coinciden en ambos términos (son 0000 y 1111), así que sale +1+1. En Z2Z3Z_2Z_3, los cúbits 2 y 3 difieren en ambos (0101 y 1010), así que sale −1-1. El síndrome es (0,1)(0,1), el de X3X_3, y se corrige aplicando X3X_3.

Ejercicio 2

En la versión de fase, el estado es α∣+++⟩+β∣−−−⟩\alpha\ket{+++}+\beta\ket{---} y ocurre el error Z2Z_2. Calcula el estado tras el error, el síndrome y la corrección.

Ver la solución

Z∣+⟩=∣−⟩Z\ket{+}=\ket{-} y Z∣−⟩=∣+⟩Z\ket{-}=\ket{+}, luego Z2Z_2 deja α∣+−+⟩+β∣−+−⟩\alpha\ket{+-+}+\beta\ket{-+-}. El observable X1X2X_1X_2 vale +1+1 sobre un estado de la base de ∣±⟩\ket{\pm} si los cúbits 1 y 2 tienen el mismo signo y −1-1 si difieren: aquí difieren en ambos términos, luego sale −1-1. Lo mismo ocurre con X2X3X_2X_3. El síndrome es (1,1)(1,1), el de Z2Z_2, y se corrige aplicando Z2Z_2 otra vez.

Ejercicio 3

En el código de bit ocurren dos errores, X1X_1 y X2X_2 a la vez. Calcula el síndrome, lo que hace el decodificador y qué estado queda. ¿Qué tiene que ver con el código clásico [3,1,3][3,1,3]?

Ver la solución

El estado es α∣110⟩+β∣001⟩\alpha\ket{110}+\beta\ket{001}. El cúbit 1 y el 2 coinciden, así que Z1Z2Z_1Z_2 da +1+1, y los cúbits 2 y 3 difieren, así que Z2Z3Z_2Z_3 da −1-1: síndrome (0,1)(0,1), el de X3X_3. El decodificador aplica X3X_3 y deja α∣111⟩+β∣000⟩\alpha\ket{111}+\beta\ket{000}, que es β∣0L⟩+α∣1L⟩\beta\ket{0_L}+\alpha\ket{1_L}: los coeficientes están intercambiados, un error lógico Xˉ\bar X que ya no se puede detectar. En el código clásico pasa lo mismo: recibir 110110 cuando se envió 000000 se decodifica como 111111. Con distancia 3, dos errores superan lo que se corrige.

En resumen

  • El código de repetición de 3 cúbits manda α∣0⟩+β∣1⟩\alpha\ket{0}+\beta\ket{1} a α∣000⟩+β∣111⟩\alpha\ket{000}+\beta\ket{111}: es un estado entrelazado, no tres copias (obstáculo (a)).
  • Se miden las paridades Z1Z2Z_1Z_2 y Z2Z3Z_2Z_3, nunca los cúbits: el síndrome identifica un cambio de bit sin tocar α\alpha ni β\beta (obstáculo (c)). Es la misma tabla que el código clásico [3,1,3][3,1,3].
  • Un error continuo como cos⁡θ I−isin⁡θ X1\cos\theta\,I-i\sin\theta\,X_1 queda, tras medir el síndrome, en «ninguno» o en «X1X_1», y se recupera el estado en los dos casos: primera señal de la respuesta al obstáculo (b).
  • Un cambio de fase ZZ pasa sin ser visto (distancia 1). La versión de fase con ∣+++⟩\ket{+++}, ∣−−−⟩\ket{---} corrige ZZ pero deja pasar XX.
  • Pregunta abierta: ¿se pueden proteger los dos tipos de error a la vez?

Siguiente lección: El código de Shor: tres respuestas a tres obstáculos

Para profundizar