Discretización de errores
Hasta ahora hemos considerado errores y errores en el contexto del código de Shor de 9 qubits. En esta sección nos ocuparemos de errores arbitrarios. Comprobaremos que para tratar tales errores no necesitamos hacer nada diferente de lo que ya hemos discutido; la capacidad de corregir errores , errores o ambos implica la capacidad de corregir errores arbitrarios. Este fenómeno se denomina a veces discretización de errores.
Errores unitarios de qubit
Comencemos con errores unitarios de un solo qubit. Un error así podría corresponder, por ejemplo, a una rotación muy pequeña de la esfera de Bloch, representando un error debido a una puerta imperfecta. O podría ser cualquier otra operación unitaria sobre un qubit, que no necesariamente está cerca de la identidad.
Puede parecer que corregir tales errores sería difícil. Después de todo, hay infinitos errores posibles de este tipo, y es inconcebible identificar cada error exactamente y luego revertirlo. Sin embargo, siempre que podamos corregir una inversión de bit, una inversión de fase o ambas, los procedimientos descritos anteriormente en la lección corregirán con éxito cualquier error unitario arbitrario de un solo qubit.
Para entender por qué esto es así, reconocemos primero que cualquier matriz unitaria arbitraria , que representa un error en un solo qubit, puede expresarse como combinación lineal de las cuatro matrices de Pauli (incluyendo la matriz identidad).
Como veremos, al ejecutar los circuitos de detección de errores, las mediciones que nos proporcionan los bits del síndrome colapsan probabilísticamente el estado de la codificación a un estado en el que ha ocurrido un error (o ningún error) representado por una de las cuatro matrices de Pauli. (Del hecho de que es unitaria se deduce que los números y deben satisfacer la condición , y de hecho y son las probabilidades con las que el estado codificado colapsa a un estado en el que ha ocurrido el error de Pauli correspondiente.)
Para explicar cómo funciona esto más precisamente, es conveniente usar índices para indicar en qué qubit actúa una determinada operación unitaria de qubit. Por ejemplo, si usamos la convención de numeración de qubits de Qiskit para numerar los 9 qubits del código de Shor, obtenemos estas expresiones para diversas operaciones unitarias sobre qubits individuales, donde en cada caso tensoramos la matriz unitaria con la matriz identidad en cada otro qubit.
Para una operación unitaria de qubit dada, podemos expresar la acción de sobre el qubit con la siguiente fórmula, similar a la anterior, donde cada matriz representa una operación aplicada al qubit .
Ahora sea la codificación de 9 qubits de un estado de qubit. Si el error ocurre en el qubit , obtenemos el estado , que puede expresarse como combinación lineal de operaciones de Pauli actuando sobre de la siguiente manera.
En este punto hacemos la sustitución .
Consideremos ahora los pasos de detección y corrección de errores descritos anteriormente. Podemos considerar los resultados de medición de las tres verificaciones de paridad del código interno junto con las del código externo como un solo síndrome de 8 bits. Inmediatamente antes de las mediciones reales en la base estándar que producen estos bits de síndrome, el estado tiene la siguiente forma.
Para ser claros: en este punto tenemos dos sistemas. El sistema de la izquierda son los 8 qubits que medimos para obtener el síndrome, donde etc. representan el estado de la base estándar de 8 qubits correspondiente al error (o no error) respectivo. El sistema de la derecha son los 9 qubits que usamos para la codificación.
Nótese que estos dos sistemas están ahora (en general) correlacionados — y esta es la clave de por qué esto funciona. Al medir el síndrome, el estado de los 9 qubits de la derecha colapsa efectivamente a uno en el que un error de Pauli, consistente con el síndrome medido, ha sido aplicado a uno de los qubits. Además, el síndrome mismo proporciona suficiente información para revertir el error y restaurar la codificación original .
Cuando se miden los qubits del síndrome y se realizan las correcciones correspondientes, obtenemos un estado que puede expresarse como una matriz de densidad:
donde
Lo crucial es que este es un estado producto: tenemos nuestra codificación original, no corrompida, como factor tensorial derecho, y a la izquierda tenemos una matriz de densidad que describe un síndrome de error aleatorio. Ya no hay correlación con el sistema de la derecha, que es el único que nos interesa, porque los errores han sido corregidos. En este punto podemos descartar o reinicializar los qubits del síndrome, de modo que podamos reutilizarlos. Así es como la aleatoriedad — o entropía — generada por los errores se elimina del sistema.
Esto es la discretización de errores para el caso especial de errores unitarios. En esencia, al medir el síndrome, efectivamente proyectamos el error en un error descrito por una matriz de Pauli.
A primera vista puede parecer demasiado bueno para ser verdad que podamos corregir errores unitarios arbitrarios de esta manera, incluso errores que son diminutos y apenas perceptibles por sí mismos. Sin embargo, lo que hay que entender aquí es: se trata de un error unitario en un solo qubit, y por el diseño del código, una operación de un solo qubit no puede cambiar el estado del qubit lógico codificado. Todo lo que puede hacer es mover el estado fuera del subespacio de codificaciones válidas — pero entonces las detecciones de errores colapsan el estado, y las correcciones lo devuelven a su punto de partida.
Errores de qubit arbitrarios
Finalmente, consideremos errores arbitrarios que no son necesariamente unitarios. Más precisamente, consideramos un error descrito por un canal de qubit arbitrario . Esto podría ser, por ejemplo, un canal de desfasamiento o despolarización, un canal de reinicio, o un canal inusual en el que nunca hemos pensado.
El primer paso es considerar una representación de Kraus arbitraria de .
Este es un canal de qubit, por lo que cada es una matriz de que podemos expresar como combinación lineal de matrices de Pauli.
Con esto, podemos expresar la acción del error sobre un qubit elegido en términos de matrices de Pauli de la siguiente manera.
En resumen: hemos desarrollado todas nuestras matrices de Kraus como combinaciones lineales de matrices de Pauli.
Si ahora calculamos y medimos el síndrome de error y corregimos todos los errores descubiertos, obtenemos un estado similar al del caso de un error unitario:
donde esta vez:
Los detalles son algo más engorrosos y no se muestran aquí. Conceptualmente, la idea es idéntica al caso unitario.
Generalización
La discretización de errores se generaliza a otros códigos correctores de errores cuánticos, incluidos aquellos que pueden detectar y corregir errores en múltiples qubits. En tales casos, los errores en múltiples qubits pueden expresarse como productos tensoriales de matrices de Pauli, y diferentes síndromes correspondientes prescriben correcciones de operaciones de Pauli que posiblemente se realizan en múltiples qubits en lugar de uno solo.
Al medir el síndrome, los errores se proyectan o colapsan efectivamente en un conjunto discreto de posibilidades representadas por productos tensoriales de matrices de Pauli; al corregir estos errores de Pauli, podemos restaurar el estado originalmente codificado. La aleatoriedad generada en este proceso se transfiere a los qubits del síndrome, que se descartan o reinicializan — y así la aleatoriedad generada en este proceso se elimina del sistema que almacena la codificación.