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 se codifica como
Cualquier estado 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.
La primera ecuación dice que aplicar operaciones a los dos qubits más a la izquierda de no tiene efecto — es decir, es un vector propio de con valor propio . La segunda ecuación es similar, excepto que las operaciones se aplican a los dos qubits más a la derecha. La idea es: si consideramos 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 e 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 , ya que es un vector propio de ambos observables con valor propio . 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.
Las dos ecuaciones anteriores implican, por tanto, que el circuito de verificación de paridad produce la salida — el síndrome que indica que no se detectaron errores.
Las operaciones de Pauli de 3 qubits e se denominan generadores de estabilizadores para este código, y el estabilizador del código es el conjunto generado por los generadores de estabilizadores.
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 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 se transforme según la acción de una operación (o error ).
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 e como observables.
Comencemos con el primer generador de estabilizador. El estado ha sido afectado por un error 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 y anticonmutan, mientras que cualquier matriz conmuta con la matriz identidad, anticonmuta con . Al mismo tiempo, actúa trivialmente sobre , ya que es una codificación válida de un qubit.
Por lo tanto, es un vector propio de con valor propio . Cuando la medición asociada al observable se realiza sobre el estado , el resultado es con certeza el asociado al valor propio .
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 .
Lo que observamos al examinar estas ecuaciones: independientemente de nuestro estado original , el estado con error es un vector propio de ambos generadores de estabilizadores, donde el valor propio o 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 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.
Aquí hay una tabla con una fila para cada generador de estabilizador y una columna para cada error. La entrada en la tabla es o , 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.
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 o 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 y en lugar de entradas y — y es habitual considerar un síndrome como una cadena binaria en lugar de una columna de entradas y — pero podemos igualmente considerar estos vectores con entradas y 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.
Cada generador de estabilizador divide el espacio en dos subespacios de igual dimensión: el espacio de vectores propios de y el espacio de vectores propios de para ese observable. Los vectores propios de de , 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 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 es el espacio generado por y — 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 , y entre las 64 posibles operaciones de Pauli de 3 qubits hay exactamente 16 en esta categoría (incluyendo y ), 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 — 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, 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 sobre el qubit lógico codificado.
Esto también es un fenómeno que se generaliza a todos los códigos de estabilizador.