Retropropagación de operadores
Este paquete implementa la retropropagación de operadores (OBP) para reducir la profundidad de los circuitos en el cálculo de valores esperados. Esta técnica propaga un observable hacia atrás a través de las puertas al final de un circuito cuántico, lo que da como resultado un circuito menos profundo a costa de un aumento en las bases de medición del observable. Al retropropagar un operador más a fondo en un circuito, el tamaño del observable crece exponencialmente, lo que supone una sobrecarga de recursos tanto clásicos como cuánticos. Sin embargo, para algunos circuitos, la distribución resultante de observables de Pauli está más concentrada que el escalado exponencial del peor caso, lo que significa que algunos términos del hamiltoniano con coeficientes pequeños pueden truncarse para reducir la sobrecarga cuántica. El error en el que se incurre al hacerlo puede controlarse para encontrar un compromiso adecuado entre precisión y eficiencia.
Hay varias formas de realizar la retropropagación de operadores; este paquete usa un método basado en la teoría de perturbaciones de Clifford, que tiene la ventaja de que la sobrecarga en la que se incurre al retropropagar distintas puertas viene determinada por lo no-Clifford que sea esa puerta. Esto conduce a una mayor eficiencia en algunas familias de circuitos en comparación con los métodos de OBP basados en redes tensoriales, que actualmente tienen altas sobrecargas clásicas incluso en casos donde la sobrecarga cuántica se mantiene moderada.
Este paquete es adecuado para estimar valores esperados de circuitos cuánticos generales y observables de Pauli; sin embargo, en circuitos de alta magia (muy no-Clifford), el error del observable derivado del truncamiento probablemente se vuelva prohibitivo antes de que el observable se haya propagado a través de una porción significativa del circuito. En circuitos casi-Clifford, puede ser posible propagar a través de una parte mucho mayor del circuito manteniendo cotas de error relativamente pequeñas.
Primeros pasos
Una guía sencilla para empezar rápidamente con este paquete está disponible en la guía de inicio rápido.
Ejemplos de casos de uso
Esta técnica se ha usado para implementar circuitos de Trotter de menor profundidad para la evolución temporal de un modelo de espín 2D [1].
Discusión técnica
-
Un único punto de entrada: la función
backpropagaterealiza la OBP. -
Dos controles independientes sobre el compromiso entre profundidad ↔ precisión:
-
OperatorBudgetlimita cuánto puede crecer el observable durante la retropropagación. -
TruncationErrorBudgetlimita cuánto error puede incurrirse durante la retropropagación.
-
-
La eficacia depende de lo Clifford que sea el circuito: en circuitos de alta magia (es decir, muy no-Clifford), los términos añadidos al observable tienden a tener coeficientes mayores, por lo que se incurre antes en más error de truncamiento, lo que limita el ahorro de profundidad con un presupuesto de error fijo. Los circuitos casi-Clifford pueden truncarse de forma más agresiva y retropropagarse más a fondo con el mismo presupuesto.
-
Totalmente introspectable: cada ejecución devuelve un objeto
OBPMetadataque registra los recuentos de Pauli por porción, los recuentos de grupos QWC y el error de truncamiento acumulado, con ayudantesplot_*para visualizar el crecimiento del operador y el error frente a la profundidad del circuito, útiles para ajustar los presupuestos antes de comprometer tiempo de QPU.
Contribuir
La guía para desarrolladores se encuentra en CONTRIBUTING.md, en la raíz del repositorio de este proyecto. Al participar, se espera que respetes el código de conducta de Qiskit.
Usamos issues de GitHub para el seguimiento de solicitudes y errores.
Cómo citar este paquete
Si usas este paquete en tu investigación, utiliza el archivo CITATION.bib del repositorio de este proyecto para citar las referencias adecuadas.
Licencia
Política de obsolescencia
Este paquete sigue el versionado semántico. Ocasionalmente podemos introducir cambios incompatibles para mejorar la experiencia de usuario. Cuando sea posible, mantendremos las interfaces antiguas y las marcaremos como obsoletas, siempre que puedan coexistir con las nuevas. Cada mejora sustancial, cambio incompatible u obsolescencia se documentará en las notas de la versión.
Referencias
-
- Fuller et al., “Improved quantum computation using operator backpropagation,” npj Quantum Inf. 12, 51 (2026). [arXiv]