Saltar al contenido principal
Este proyecto está en fase beta. ¿Encontraste un error? Abre un issue en GitHub. ¿Tienes una pregunta o una idea? Pregunta en Discussions — ¡nos encantaría tu opinión!
¿Cómo es la calidad de la traducción en esta página?

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 backpropagate realiza la OBP.

  • Dos controles independientes sobre el compromiso entre profundidad ↔ precisión:

    • OperatorBudget limita cuánto puede crecer el observable durante la retropropagación.

    • TruncationErrorBudget limita 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 OBPMetadata que registra los recuentos de Pauli por porción, los recuentos de grupos QWC y el error de truncamiento acumulado, con ayudantes plot_* 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​

Apache License 2.0

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​

    1. Fuller et al., “Improved quantum computation using operator backpropagation,” npj Quantum Inf. 12, 51 (2026). [arXiv]