# Corrección de errores cuántica

La corrección de errores cuántica se usa en computación cuántica para proteger la información cuántica de errores debidos, por ejemplo, a la decoherencia. La corrección de errores cuántica es esencial si se quiere lograr una computación cuántica a prueba de errores, esto es, que se pueda desarrollar en condiciones realistas. Experimentalmente no solo se encuentra decoherencia en la información cuántica almacenada, sino también defectos en las puertas lógicas cuánticas, en la preparación del estado cuántico inicial, y en la medida.
La detección y corrección de errores clásica se basa en la redundancia: codificar un bit en forma de varios bits. La forma más sencilla de corregir errores es almacenar la información varias veces, y si se encuentra que algunas de las copias no coinciden, tomar como correcto el valor más repetido y descartar los que se desvíen. Este código de repetición supone que la probabilidad de error p de cada bit es independiente (y pequeña). De esta forma, si se han preparado tres copias de un bit, la probabilidad de que se produzca un error en un solo bit corregible es del orden de p, frente a una probabilidad aproximadamente de p$^2$ de que se produzca un error en dos bits.
La copia de información cuántica no es posible, como demuestra el teorema de no clonación. Esto pareció presentar un obstáculo para la formulación de una teoría cuántica de corrección de errores. Sin embargo, se encontró que es posible repartir la información de un qubit lógico en un estado altamente entrelazado de varios qubits físicos. Peter Shor fue el primero en descubrir este método y formuló un código cuántico de corrección almacenando la información de un qubit en un estado altamente entrelazado de nueve qubits.
La corrección de errores clásica se base en la medida de síndromes para diagnosticar qué error está afectando a un estado codificado. Una vez diagnosticado, se revierte el error aplicando una operación de corrección adecuada para ese síndrome. La corrección de errores cuántica también puede emplear medidas de síndromes, que indica si un qubit ha sido afectado y, si es así, cual de ellos. Más aún, es posible determinar en qué forma ha sido afectado, de entre un pequeño conjunto de formas posibles. La medida cuántica del síndrome da toda la información posible sobre el error que ha ocurrido, pero nada sobre el valor está almacenado en el qubit lógico; de otra forma, la medida destruiría cualquier superposición cuántica del qubit lógico, y el entrelazamiento con otros qubits.

## Código de inversión del bit

Es un análogo cuántico a los códigos de repetición clásicos, y se basa en el entrelazamiento y la medida de síndromes. Sea $|\psi \rangle =\alpha _{0}|0\rangle +\alpha _{1}|1\rangle$ un qubit con valor arbitrario. El primer paso del código es entrelazar el qubit con otros dos, en estado inicial $|0\rangle$, mediante dos puertas lógicas cuánticas CNOT. El resultado es $|\psi '\rangle =\alpha _{0}|000\rangle +\alpha _{1}|111\rangle .$, el producto tensorial de tres qubits.
Supóngase que estos qubits atraviesan un canal $E_{\text{bit}}$ donde ocurre como mucho la inversión de un bit, esto es, $|0\rangle \rightarrow |1\rangle$ o $|1\rangle \rightarrow |0\rangle$. Si el qubit afectado fuera el primero, el resultado sería $|\psi '_{r}\rangle =\alpha _{0}|100\rangle +\alpha _{1}|011\rangle$.
El diagnóstico del síndrome se puede llevar a cabo mediante cuatro operadores proyección:
$P_{0}=|000\rangle \langle 000|+|111\rangle \langle 111|$
$P_{1}=|100\rangle \langle 100|+|011\rangle \langle 011|$
$P_{2}=|010\rangle \langle 010|+|101\rangle \langle 101|$
$P_{3}=|001\rangle \langle 001|+|110\rangle \langle 110|$
Se puede obtener:
$\langle \psi '_{r}|P_{0}|\psi '_{r}\rangle =0$
$\langle \psi '_{r}|P_{1}|\psi '_{r}\rangle =1$
$\langle \psi '_{r}|P_{2}|\psi '_{r}\rangle =0$
$\langle \psi '_{r}|P_{3}|\psi '_{r}\rangle =0$
De esta forma, en este ejemplo sería posible determinar que el síndrome de error corresponde a $P_{1}$, y corregirlo manteniendo la superposición cuántica del qubit original.

## Código de inversión del signo

En un registro de bits clásicos el único error posible es la inversión de los bits, pero en un registro de qubits, que puede estar en cualquier superposición coherente de estados, también es posible la inversión del signo relativo entre $|0\rangle$ y $|1\rangle$. Por ejemplo, un qubit en el estado $|-\rangle =(|0\rangle -|1\rangle )/{\sqrt {2}}$ puede sufrir una inversión de signo y pasar a $|+\rangle =(|0\rangle +|1\rangle )/{\sqrt {2}}.$
Como en el caso anterior, el código comienza con el cambio del estado original del qubit:
$|\psi \rangle =\alpha _{0}|+\rangle +\alpha _{1}|-\rangle$
al estado codificado
$|\psi '\rangle =\alpha _{0}|+++\rangle +\alpha _{1}|---\rangle .$
A continuación se aplica una puerta de Hadamard, que se puede ver como un cambio de base en el que la inversión del bit se transforma en inversión del signo y viceversa. Tras el error, se deshace la puerta de Hadamard y se completa el código exactamente como en el caso anterior.

## El código de Shor

El canal de error puede inducir una inversión en el bit, en el signo, o en ambos. Es posible corregir los dos tipos de errores con un único código, y eso es lo que hace el código de Shor.
Sea $E$ un canal cuántico que puede afectar a un qubit de forma arbitraria. El primer, cuarto y séptimo qubit funcionan como código para corregir la inversión del signo, mientras que los tres grupos (1,2,3), (4,5,6), y (7,8,9) corrigen la inversión del bit. Con el código de Shor, un estado $|\psi \rangle =\alpha _{0}|0\rangle +\alpha _{1}|1\rangle$ se transforma en un producto de 9 qubits $|\psi '\rangle =\alpha _{0}|0_{S}\rangle +\alpha _{1}|1_{S}\rangle$, donde
    $|0_{S}\rangle ={\frac {1}{2{\sqrt {2}}}}(|000\rangle +|111\rangle )\otimes (|000\rangle +|111\rangle )\otimes (|000\rangle +|111\rangle )$
    $|1_{S}\rangle ={\frac {1}{2{\sqrt {2}}}}(|000\rangle -|111\rangle )\otimes (|000\rangle -|111\rangle )\otimes (|000\rangle -|111\rangle )$
Si un qubit sufre una inversión de bit, el análisis del síndrome se realiza en los estados (1,2,3), (4,5,6) y (7,8,9) y el error se corrige.
Si los tres grupos de inversión del bit (1,2,3), (4,5,6) y (7,8,9) se consideran como tres inputs, el código de Shor se reduce a un código de inversión del signo.
El código de Shor también puede corregir errores arbitrarios en un solo qubit. Si un error se modela como una transformación unitaria U, actuando sobre un qubit $|\psi \rangle$, $U$ se puede describir como
    $U=c_{0}I+c_{1}\sigma _{x}+c_{2}\sigma _{y}+c_{3}\sigma _{z}$
donde $c_{0}$,$c_{1}$,$c_{2}$, Y $c_{3}$ son constantes complejas, I es la identidad, y las matrices de Pauli vienen dadas por
    $\sigma _{x}={\biggl{\begin{matrix}0&1\\1&0\end{matrix}}{\biggr )};$
    $\sigma _{y}={\biggl{\begin{matrix}0&-i\\i&0\end{matrix}}{\biggr )};$
    $\sigma _{z}={\biggl{\begin{matrix}1&0\\0&-1\end{matrix}}{\biggr )}$
Si U es igual a I, no ha ocurrido un error. Si $U=\sigma _{x}$, ha ocurrido una inversión del bit. Si $U=\sigma _{z}$, ha ocurrido una inversión del signo. Si $U=i\sigma _{y}$ han ocurrido una inversión de bit y una de signo. De la linealidad se sigue que el código de Shor puede corregir errores arbitrarios que afecten solo a un qubit.

## Códigos generales

En general, un código cuántico para un canal cuántico ${\mathcal {E}}$ es un subespacio ${\mathcal {C}}\subseteq {\mathcal {H}}$, donde ${\mathcal {H}}$ es el espacio de Hilbert, tal que existe otro canal cuántico ${\mathcal {R}}$ que cumple
$({\mathcal {R}}\circ {\mathcal {E}})(\rho )=\rho \quad \forall \rho =P_{\mathcal {C}}\rho P_{\mathcal {C}},$
donde $P_{\mathcal {C}}$ es la proyección ortogonal sobre ${\mathcal {C}}$. Aquí ${\mathcal {R}}$ es la operación de corrección.

## Modelos

Con el tiempo, diferentes investigadores han diseñado una serie de códigos:
* El código de 9 qubits de Peter Shor que se detalla arriba.
* Andrew Steane encontró un código que logra el mismo resultado empleando 7 qubits en lugar de 9.
* Raymond Laflamme encontró una clase de códigos de 5 qubits con la misma función, y que también tienen la propiedad de ser a prueba de errores.
* Una generalización de este último concepto son los llamados códigos CSS, por las siglas de sus inventores: A. R. Calderbank, Peter Shor y Andrew Steane. De acuerdo con el límite de Hamming, la corrección de errores arbitrarios de un qubit exige un mínimo de 5 qubits.
* Una clase más general de código, que incluye a la anterior, son los códigos estabilizadores descubiertos por Daniel Gottesman, y por A. R. Calderbank, Eric Rains, Peter Shor, y N. J. A. Sloane (, ); estos son los llamados códigos aditivos.
* Una idea más reciente es la de los códigos cuánticos topológicos, para la computación cuántica topológica.
El teorema del límite de Michael Ben-Or y Dorit Aharonov es el que afirma que es posible corregir todo tipo de errores si se aplica de forma reiterada la corrección de errores cuántica, siempre que la tasa de error de las puertas lógicas esté por debajo de cierto límite; si está por encima, las operaciones para corregir errores introducen más errores de los que corrigen. Este límite estaba originalmente en un error por cada 10.000 a 100.000 operaciones, pero actualmente se piensa que el límite puede alcanzar valores hasta del 1-3%, siempre que haya un número suficiente de qubits.

## Realización experimental

Hay varios ejemplos de códigos basados en CSS que se han llevado a cabo experimentalmente. El primer caso fue con qubits de tipo RMN. Más tarde, se han realizado demostraciones con óptica lineal, trampas de iones, y qubits superconductores (transmon).
Se han implementado otros códigos de corrección de errores cuánticos, como los que tienen como objetivo corregir la pérdida de fotones, que es la fuente dominante de errores en el esquema de qubits fotónicos.