Primero que nada: soy un principiante en computación cuántica.
Me gustaría tener un recurso (o una respuesta si no es complicado) que explique dónde colocamos los códigos de corrección de errores en un circuito cuántico.
De hecho, sé que tenemos diferentes posibles errores que pueden ocurrir (cambio de bit, cambio de fase, etc.), y tenemos un algoritmo para corregirlos. Pero lo que me gustaría saber es si hay algunas estrategias en las que colocamos el algoritmo de corrección de errores. ¿Es después de cada puerta involucrada del algoritmo principal? ¿Existe una estrategia más inteligente para hacer una única corrección para un conjunto de puertas?
Si la respuesta es "complicada", me gustaría tener un recurso para aprender todo esto (encuentro muchas cosas para el código de corrección de errores, pero no he encontrado nada sobre dónde debemos hacer la corrección).
Respuestas:
Según su pregunta, creo que no estaba buscando el término correcto. Los códigos de corrección de errores son métodos para detectar y corregir posibles errores que surgen en qubits debido al efecto de la decoherencia.
El término computación cuántica tolerante a fallas se refiere al paradigma de los dispositivos cuánticos que funcionan de manera efectiva incluso cuando sus componentes elementales son imperfectos, y los códigos de corrección de errores que ha estado buscando son la base para construir este tipo de cálculos. Lo aliento a que busque usted mismo información relacionada con la tolerancia a fallas, ya que es un área bastante grande en la computación cuántica. Sin embargo, le recomiendo encarecidamente el cálculo cuántico tolerante a fallos de texto de Preskill. En ese artículo, el autor comienza a hablar sobre los códigos de corrección de errores, pero luego profundiza en el concepto de tolerancia a fallas, y creo que resolverá muchas de sus dudas sobre el tema.
fuente
En la computación cuántica tolerante a fallas, hacemos una distinción entre física qubits y qubits lógicos .
Los qubits físicos son los que realmente existen, y son ruidosos. Esto es lo que usamos para hacer qubits lógicos, pero generalmente se necesitan muchos qubits físicos para hacer un qubit lógico. Esto se debe a la gran redundancia necesaria para poder detectar y corregir errores.
El diseño del código real ejecutado en qubits físicos se realizará en capas. Un ingeniero de software de corrección de errores cuánticos diseñará los qubits lógicos escribiendo el programa necesario para implementar el código de corrección de errores cuánticos. Para cada operación que alguien pueda necesitar en un algoritmo, diseñarán una versión compatible con corrección de errores, que realice la operación en los qubits lógicos de una manera que permita detectar y corregir sus imperfecciones.
Entonces el programador vendrá y escribirá su programa. No necesitarán pensar en qubits físicos o corrección de errores en absoluto.
Finalmente, el compilador combinará todo para crear la versión tolerante a fallas del programa que se ejecutará en los qubits físicos. Esto no se parecerá en nada a lo que escribió el programador. No parecerá una alternancia constante de cosas que escribió el programador, seguido de cosas de corrección de errores para limpiarlo. Se ocupará casi por completo de detectar y corregir los errores que ocurren constantemente, con pequeñas perturbaciones para implementar el algoritmo.
Como referencia, creo que es mejor recomendar algo que explique cómo se implementan las operaciones en qubits lógicos en qubits físicos a través de un código de corrección de errores. Uno de mis propios trabajos hace este trabajo, al explicar esto para una variedad de formas de obtener operaciones lógicas en el código de superficie. También tiene referencias a muchas obras de otros en la misma área.
fuente