Lección 9 de 13
Códigos CSS: un código cuántico hecho con dos clásicos
Cómo dos códigos binarios con C2⊥ ⊆ C1 dan un código cuántico: estabilizadores, estados lógicos como clases laterales, síndromes clásicos y distancia.
Al terminar sabrás:
- Construir los estabilizadores de un código CSS a partir de H1 y H2
- Escribir los estados lógicos como sumas sobre clases laterales de C1/C2⊥
- Calcular k = dim C1 − dim C2⊥ y acotar la distancia
- Leer los errores X y Z con los síndromes clásicos de C1 y C2
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 cerramos el marco general: un código estabilizador, sus operadores lógicos, su distancia y sus estados lógicos. Ya sabemos qué es un buen código cuántico, pero todavía no sabemos fabricarlos. Shor encontró el suyo casi a mano. En 1996, Calderbank y Shor, y también Steane, dieron una receta que convierte códigos clásicos en códigos cuánticos. Es el puente que estaba anunciado desde la lección 1: lo que sabes del curso de códigos sirve aquí casi tal cual. La pregunta de hoy: ¿cómo se hace un código cuántico con dos clásicos?
La idea
Mira otra vez los estabilizadores del código de Shor: por un lado y , por otro. Ninguno mezcla y . Los de tipo vigilan los errores ; los de tipo vigilan los errores . Son dos detectores independientes.
Un detector de errores de bit ya lo conoces: es una matriz de paridad clásica. Un ve un error exactamente cuando , que es lo que calcula una fila de en el síndrome . Así que la idea es usar un código clásico para los errores y otro para los errores . La única condición es que los dos detectores conmuten.
La construcción
Toma dos códigos binarios lineales de longitud :
- , con matriz de paridad , que se encargará de los errores ;
- , con matriz de paridad , que se encargará de los errores ;
con la condición
Recuerda de matriz generatriz y matriz de paridad que las filas de generan el dual y las de generan . El código CSS (por Calderbank, Shor y Steane) tiene estos estabilizadores:
- de tipo : para cada fila de (así );
- de tipo : para cada fila de (así ).
Por qué conmutan. Sus vectores son y , con producto simpléctico . Como y , es . Los de un mismo tipo conmutan siempre. Eso es todo: la condición es justo la que hace falta.
Cuántos cúbits lógicos. Si y tienen rango completo, hay generadores, y da
Repaso Provisional: el código de Hamming [7,4,3]
Es el ejemplo clásico que usaremos en la lección 10. Su matriz de paridad «de manual» tiene como columna el número escrito en binario:
Sus palabras son las soluciones de :
, , , , , , , , , , , , , , , .
Hay una de peso 0, siete de peso 3, siete de peso 4 y una de peso 7: la distancia mínima es y corrige un error. Lo mejor: si el error está en la posición , el síndrome es la columna , es decir, escrito en binario. Por ejemplo, con un error en la posición 6 llega como , y , que es el 6. Esta misma matriz sale de ejemplo en matriz generatriz y matriz de paridad, y la familia entera, en su sección «Códigos de Hamming».
Los estados lógicos son clases laterales
Para cada definimos
Es la suma, con el mismo peso, de todas las palabras de la clase lateral (la noción de decodificación por síndrome). Tres cosas, cada una con su razón de una línea:
- Solo depende de la clase. Si con , al recorrer se recorren las mismas palabras.
- Está en el código. con cambia por : solo reordena la suma. Y con y : el signo es .
- Clases distintas dan estados ortogonales, porque no comparten ninguna palabra.
Hay clases: tantas como estados de una base del código. Cada clase es un estado lógico.
Codificar es elegir la clase. En el curso clásico, el mensaje elige la palabra ; en un cíclico, o su versión sistemática (codificación de códigos cíclicos). Aquí el mensaje elige un representante , con que completan una base de hasta una de , y el estado es la clase entera: .
Operadores lógicos. suma a todas las palabras: lleva la clase de a la de , así que cambia el bit lógico . Es un . Para se toma con , de modo que para todo y la fase es la misma en toda la clase; se elige con y para (existe siempre, porque los junto con una base de son linealmente independientes, así que esas ecuaciones en son compatibles).
Errores y síndromes: dos problemas clásicos
Un error de Pauli es, salvo fase, . Midiendo para cada fila de sale el valor propio : los bits son
el síndrome clásico de en . La parte no influye, porque conmuta con . Del mismo modo, los con fila de dan
el síndrome clásico de en . Así que corregir un código CSS es resolver dos problemas de decodificación por síndrome por separado: uno con para la parte y otro con para la parte . Un aparece en los dos.
Distancia. Un que pasa sin ser visto tiene , y es un operador lógico si además ; su peso es al menos . Igual con , , de peso al menos . Por eso
Un lógico mixto pesa al menos lo que y lo que , así que la distancia exacta es
La cota se queda corta solo si todas las palabras de y de con ese peso mínimo son estabilizadores (degeneración); basta con que una no lo sea para que la cota sea exacta. Lo verás en el ejercicio 2.
Ejemplo resuelto
Toma , el código de paridad (las 8 palabras de peso par), con .
Paso 1: la condición. , y tiene peso par: .
Paso 2: estabilizadores. y . Conmutan porque .
Paso 3: . . Codifica dos cúbits en cuatro.
Paso 4: clases y estados. Tomamos y , y . Las cuatro clases dan:
Entre las cuatro aparecen las 8 palabras de , cada una exactamente una vez, así que los cuatro estados son ortonormales. Compruébalo en uno: cambia por y al revés, así que deja fijo ; y da signo a los dos términos.
Paso 5: operadores lógicos. y . Para los buscamos palabras de peso par: cumple , , y cumple lo contrario. Así y . Por ejemplo, , porque y tienen, cada una, un solo 1 en las posiciones 2 y 4.
Paso 6: síndromes. En el orden :
- sobre da : pesos impares, síndrome . Es el síndrome clásico .
- sobre da , que cambia de signo: síndrome .
- da .
Pero , , y dan todos : el código detecta cualquier error en un cúbit, pero no sabe dónde está. Y tiene peso 2 y conmuta con todo, así que : es un , y la cota es exacta.
Ejercicios
Ejercicio 1
El código de repetición de bit de la lección 3 tiene estabilizadores y . Escríbelo como CSS: ¿quiénes son , y ? Calcula , los estados lógicos y la cota de la distancia.
Ver la solución
No hay estabilizadores de tipo , así que no tiene filas: y . Las filas de son y , luego , el código de repetición . La condición se cumple porque .
. Cada clase tiene una sola palabra: y . La cota es , y : tiene peso 1. Corrige un (el síndrome de la repetición: , , ) y ningún , porque no corrige nada.
Ejercicio 2
El código de Shor también es CSS. (a) Halla y a partir de sus 8 estabilizadores, comprueba y calcula . (b) Compara con su distancia . (c) Escribe y relaciónalo con los , de la lección 4.
Ver la solución
(a) Las filas de son los vectores de . Una palabra cumple esas seis ecuaciones si es constante en cada bloque: , un . Las filas de son y , constantes por bloques: , con . Así .
(b) . son las palabras ortogonales a y : las paridades de los tres bloques son iguales. Contiene , así que y la cota da solo . Pero es un estabilizador: no estropea nada. El código es degenerado y su distancia real es 3. Con la fórmula exacta: en no hay palabras de peso 1, y las de peso 2 tienen sus dos unos en un mismo bloque (si no, las paridades de los bloques no serían iguales), así que están en (peso par en cada bloque); así que los lógicos de tipo pesan al menos 3, y los de tipo también, porque . Es el argumento corto que anunciaba la lección 8.
(c) La clase de da
Desarrollando se ve que es con los estados de Shor, y la otra clase, la de , es . La base CSS es la base «girada» de Shor: por eso allí y salían «cruzados».
Ejercicio 3
Toma , con de filas y . ¿Se cumple la condición? Comprueba que y no conmutan. ¿Qué daría la fórmula de ?
Ver la solución
está generado por y : , que no cabe en . Falla la condición.
y tienen producto simpléctico : anticonmutan (solo se solapan en el cúbit 2). No generan un grupo estabilizador. La fórmula daría , un sinsentido que avisa de lo mismo.
En resumen
- Un código CSS sale de dos códigos binarios con : estabilizadores con fila de y con fila de . Conmutan justo por esa condición.
- Los estados lógicos son clases laterales: , uno por clase de , y .
- Los errores dan el síndrome clásico de y los el de : corregir es decodificar dos códigos clásicos.
- ; la distancia solo es mayor si hay degeneración, como en Shor.
- Con Hamming , cuyo dual está dentro, sale el código de Steane: es la próxima lección.
Siguiente lección: El código de Steane
Para profundizar
- A. R. Calderbank y P. W. Shor, Good quantum error-correcting codes exist (1996).
- A. M. Steane, Error Correcting Codes in Quantum Theory (1996).
- M. A. Nielsen e I. L. Chuang, Quantum Computation and Quantum Information (2010).