Saltar al contenido principal

Código de repetición — revisitado

A continuación, echamos un segundo vistazo al código de repetición de 3 bits, esta vez en términos de operaciones de Pauli. Este será nuestro primer ejemplo de un código de estabilizador.

Observables de Pauli para el código de repetición

Recordemos: cuando aplicamos el código de repetición de 3 bits a qubits, un vector de estado de qubit dado α0+β1\alpha\vert 0\rangle + \beta\vert 1\rangle se codifica como

ψ=α000+β111.\vert\psi\rangle = \alpha\vert 000\rangle + \beta\vert 111\rangle.

Cualquier estado ψ\vert\psi\rangle de esta forma es una codificación válida de 3 qubits de un estado de qubit — pero si tuviéramos un estado del que no estamos seguros, podríamos verificar si tenemos una codificación válida comprobando las siguientes dos ecuaciones.

(ZZI)ψ=ψ(IZZ)ψ=ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I}) \vert\psi\rangle & = \vert\psi\rangle\\[1mm] (\mathbb{I} \otimes Z \otimes Z) \vert\psi\rangle & = \vert\psi\rangle \end{aligned}

La primera ecuación dice que aplicar operaciones ZZ a los dos qubits más a la izquierda de ψ\vert\psi\rangle no tiene efecto — es decir, ψ\vert\psi\rangle es un vector propio de ZZIZ\otimes Z\otimes \mathbb{I} con valor propio 11. La segunda ecuación es similar, excepto que las operaciones ZZ se aplican a los dos qubits más a la derecha. La idea es: si consideramos ψ\vert\psi\rangle como una combinación lineal de estados de la base estándar, la primera ecuación implica que solo podemos tener coeficientes no nulos para estados de la base estándar donde los dos bits más a la izquierda tienen paridad par (o equivalentemente son iguales), y la segunda ecuación implica que solo podemos tener coeficientes no nulos para estados de la base estándar donde los dos bits más a la derecha tienen paridad par.

Si consideramos las dos operaciones de Pauli ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z como observables y medimos ambas usando los circuitos sugeridos al final de la sección anterior, estaríamos seguros de obtener resultados de medición correspondientes a valores propios +1+1, ya que ψ\vert\psi\rangle es un vector propio de ambos observables con valor propio 11. Pero el circuito simplificado (combinado) para medir ambos observables independientemente, mostrado aquí, no es otra cosa que el circuito de verificación de paridad para el código de repetición de 3 bits.

Circuito de verificación de paridad para el código de repetición de 3 bits

Las dos ecuaciones anteriores implican, por tanto, que el circuito de verificación de paridad produce la salida 0000 — el síndrome que indica que no se detectaron errores.

Las operaciones de Pauli de 3 qubits ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z se denominan generadores de estabilizadores para este código, y el estabilizador del código es el conjunto generado por los generadores de estabilizadores.

ZZI,IZZ={III,ZZI,ZIZ,IZZ}\langle Z\otimes Z\otimes \mathbb{I}, \mathbb{I}\otimes Z\otimes Z\rangle = \{ \mathbb{I}\otimes\mathbb{I}\otimes\mathbb{I}, Z\otimes Z\otimes\mathbb{I}, Z\otimes\mathbb{I}\otimes Z, \mathbb{I}\otimes Z\otimes Z \}

El estabilizador es un objeto matemático fundamental asociado a este código, y su papel se discutirá a lo largo de la lección. Por ahora, observamos que también podríamos haber hecho otra elección para los generadores y las correspondientes verificaciones de paridad — concretamente eligiendo ZIZZ\otimes\mathbb{I}\otimes Z en lugar de uno de los generadores elegidos — pero el estabilizador y el código mismo habrían permanecido sin cambios.

Detección de errores

A continuación, consideramos la detección de cambios de bit para el código de repetición de 3 bits, centrándonos en las interacciones y relaciones entre las operaciones de Pauli involucradas: los generadores de estabilizadores y los errores mismos.

Supongamos que hemos codificado un qubit con el código de repetición de 3 bits, y ocurre un error de cambio de bit en el qubit más a la izquierda. Esto hace que el estado ψ\vert\psi\rangle se transforme según la acción de una operación XX (o error XX).

ψ(XII)ψ\vert\psi\rangle \mapsto (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle

Este error puede detectarse realizando las verificaciones de paridad del código de repetición de 3 bits, como se discutió en la lección anterior — lo cual corresponde a medir de forma no destructiva los generadores de estabilizadores ZZIZ\otimes Z\otimes \mathbb{I} e IZZ\mathbb{I}\otimes Z\otimes Z como observables.

Comencemos con el primer generador de estabilizador. El estado ψ\vert\psi\rangle ha sido afectado por un error XX en el qubit más a la izquierda, y nuestro objetivo es entender cómo la medición de este generador de estabilizador como observable se ve afectada por este error. Dado que XX y ZZ anticonmutan, mientras que cualquier matriz conmuta con la matriz identidad, ZZIZ\otimes Z\otimes \mathbb{I} anticonmuta con XIIX\otimes\mathbb{I}\otimes\mathbb{I}. Al mismo tiempo, ZZIZ\otimes Z\otimes \mathbb{I} actúa trivialmente sobre ψ\vert\psi\rangle, ya que ψ\vert\psi\rangle es una codificación válida de un qubit.

(ZZI)(XII)ψ=(XII)(ZZI)ψ=(XII)ψ\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\vert\psi\rangle \\ & = -(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

Por lo tanto, (XII)ψ(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle es un vector propio de ZZIZ \otimes Z \otimes \mathbb{I} con valor propio 1-1. Cuando la medición asociada al observable ZZIZ \otimes Z \otimes \mathbb{I} se realiza sobre el estado (XII)ψ(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle, el resultado es con certeza el asociado al valor propio 1-1.

Consideraciones similares pueden aplicarse al segundo generador de estabilizador, pero esta vez el error conmuta con el generador de estabilizador en lugar de anticonmutar, por lo que el resultado de esta medición es el asociado al valor propio +1+1.

(IZZ)(XII)ψ=(XII)(IZZ)ψ=(XII)ψ\begin{aligned} (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z)\vert\psi\rangle\\ & = (X \otimes \mathbb{I} \otimes \mathbb{I}) \vert\psi\rangle \end{aligned}

Lo que observamos al examinar estas ecuaciones: independientemente de nuestro estado original ψ\vert\psi\rangle, el estado con error es un vector propio de ambos generadores de estabilizadores, donde el valor propio +1+1 o 1-1 depende de si el error conmuta o anticonmuta con cada generador de estabilizador. Para errores representados por operaciones de Pauli, siempre será uno u otro, ya que cualesquiera dos operaciones de Pauli conmutan o anticonmutan. El estado real ψ\vert\psi\rangle no juega un papel importante en esto, aparte de que los generadores de estabilizadores actúan trivialmente sobre ese estado.

Por esta razón, en general no necesitamos preocuparnos por el estado codificado específico con el que estamos trabajando. Todo lo que importa es si el error conmuta o anticonmuta con cada generador de estabilizador. En particular, estas son las ecuaciones relevantes con respecto a este error particular para este código.

(ZZI)(XII)=(XII)(ZZI)(IZZ)(XII)=(XII)(IZZ)\begin{aligned} (Z \otimes Z \otimes \mathbb{I})(X \otimes \mathbb{I} \otimes \mathbb{I}) & = -(X \otimes \mathbb{I} \otimes \mathbb{I})(Z \otimes Z \otimes \mathbb{I})\\[1mm] (\mathbb{I} \otimes Z \otimes Z)(X \otimes \mathbb{I} \otimes \mathbb{I}) & = (X \otimes \mathbb{I} \otimes \mathbb{I})(\mathbb{I} \otimes Z \otimes Z) \end{aligned}

Aquí hay una tabla con una fila para cada generador de estabilizador y una columna para cada error. La entrada en la tabla es +1+1 o 1-1, dependiendo de si el error y el generador de estabilizador conmutan o anticonmutan. La tabla solo contiene columnas para los errores que corresponden a un solo cambio de bit, así como para ningún error, descrito por la identidad tensorizada consigo misma tres veces. Podríamos añadir más columnas para otros errores, pero por ahora nos concentramos solo en estos errores.

IIIXIIIXIIIXZZI+111+1IZZ+1+111\begin{array}{c|cccc} & \mathbb{I}\otimes\mathbb{I} \otimes\mathbb{I} & X \otimes \mathbb{I} \otimes \mathbb{I} & \mathbb{I}\otimes X\otimes\mathbb{I} & \mathbb{I} \otimes\mathbb{I} \otimes X \\ \hline Z\otimes Z\otimes\mathbb{I} & +1 & -1 & -1 & +1 \\ \mathbb{I}\otimes Z\otimes Z & +1 & +1 & -1 & -1 \end{array}

Para cada error en la tabla, la columna correspondiente muestra cómo ese error transforma cualquier codificación dada en un vector propio de valor +1+1 o 1-1 de cada generador de estabilizador. De manera equivalente, las columnas describen el síndrome que obtendríamos de las verificaciones de paridad correspondientes a las mediciones no destructivas de los generadores de estabilizadores como observables. Naturalmente, la tabla tiene entradas +1+1 y 1-1 en lugar de entradas 00 y 11 — y es habitual considerar un síndrome como una cadena binaria en lugar de una columna de entradas +1+1 y 1-1 — pero podemos igualmente considerar estos vectores con entradas +1+1 y 1-1 como síndromes para relacionarlos directamente con los valores propios de los generadores de estabilizadores. En general, los síndromes nos dicen algo sobre el error que ocurrió, y si sabemos que ocurrió uno de los cuatro errores listados en la tabla, el síndrome indica cuál fue.

Síndromes

Las codificaciones para el código de repetición de 3 bits son estados de 3 qubits, es decir, vectores unitarios en un espacio vectorial complejo de 8 dimensiones. Los cuatro posibles síndromes dividen efectivamente este espacio de 8 dimensiones en cuatro subespacios de 2 dimensiones, donde los vectores de estado cuántico en cada subespacio siempre producen el mismo síndrome. El siguiente diagrama muestra concretamente cómo el espacio de 8 dimensiones se divide por los dos generadores de estabilizadores.

División en subespacios para el código de repetición de 3 bits

Cada generador de estabilizador divide el espacio en dos subespacios de igual dimensión: el espacio de vectores propios de +1+1 y el espacio de vectores propios de 1-1 para ese observable. Los vectores propios de +1+1 de ZZIZ\otimes Z\otimes\mathbb{I}, por ejemplo, son combinaciones lineales de estados de la base estándar donde los dos bits más a la izquierda tienen paridad par, y los vectores propios de 1-1 son combinaciones lineales de estados de la base estándar donde los dos bits más a la izquierda tienen paridad impar. La situación es similar para el otro generador de estabilizador, excepto que son los dos bits más a la derecha en lugar de los dos más a la izquierda.

Los cuatro subespacios bidimensionales correspondientes a los cuatro posibles síndromes pueden describirse fácilmente en este caso, ya que se trata de un código muy simple. En particular, el subespacio para el síndrome (+1,+1)(+1,+1) es el espacio generado por 000\vert 000\rangle y 111\vert 111\rangle — el espacio de codificaciones válidas (también conocido como espacio de código) — y los espacios restantes están generados por los estados de la base estándar que se muestran en las casillas correspondientes.

Los síndromes también particionan todas las operaciones de Pauli de 3 qubits en 4 grupos de igual tamaño, dependiendo de qué síndrome causaría esa operación (como error). Por ejemplo, cualquier operación de Pauli que conmute con ambos generadores de estabilizadores produce el síndrome (+1,+1)(+1,+1), y entre las 64 posibles operaciones de Pauli de 3 qubits hay exactamente 16 en esta categoría (incluyendo IIZ,\mathbb{I}\otimes \mathbb{I}\otimes Z, ZZZ,Z\otimes Z\otimes Z, y XXXX\otimes X\otimes X), e igualmente para los otros 3 síndromes.

Ambas propiedades — que los síndromes dividen tanto el espacio de estados en el que viven las codificaciones como todas las operaciones de Pauli sobre ese espacio en grupos de igual tamaño — son válidas en general para los códigos de estabilizador, que definiremos precisamente en la siguiente sección.

Aunque en este punto es principalmente una observación marginal, mencionemos que las operaciones de Pauli que conmutan con ambos generadores de estabilizadores — o equivalentemente, producen el síndrome (+1,+1)(+1,+1) — pero no son ellas mismas proporcionales a elementos del estabilizador, se comportan como operaciones de Pauli de un solo qubit sobre el qubit codificado (el qubit lógico) para este código. Por ejemplo, XXXX\otimes X \otimes X conmuta con ambos generadores de estabilizadores, pero no es proporcional a un elemento del estabilizador — y de hecho la acción de esta operación sobre una codificación es equivalente a una puerta XX sobre el qubit lógico codificado.

(XXX)(α000+β111)=α111+β000(X\otimes X \otimes X)(\alpha \vert 000\rangle + \beta \vert 111\rangle) = \alpha \vert 111\rangle + \beta \vert 000\rangle

Esto también es un fenómeno que se generaliza a todos los códigos de estabilizador.