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?

Propagación de Pauli

El paquete pauli-prop proporciona una interfaz de Python acelerada con Rust para realizar la propagación de Pauli.

La propagación de Pauli es un marco para aproximar la evolución de operadores en la base de Pauli bajo la acción de otros operadores, como las puertas de un circuito cuántico y los canales de ruido. Este enfoque puede ser eficaz cuando se espera que los operadores involucrados permanezcan dispersos en la base de Pauli.

Las subrutinas de este paquete pueden usarse para implementar técnicas de mitigación de errores como lightcone shading [6] y propagated noise absorption [7], operator backpropagation [8] para reducir la profundidad del circuito, y la simulación clásica de valores esperados [1-5].

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​

La propagación de Pauli puede usarse como motor de bajo nivel para implementar diversas técnicas. Algunos ejemplos donde se ha usado son:

  • Lightcone shading para reducir la sobrecarga de muestreo de la cancelación probabilística de errores (PEC) al mitigar valores esperados en un modelo de Ising de campo transversal 1D y 2D [6] [qiskit-addon-slc documentación]

  • Absorción de información del modelo de ruido en un observable objetivo para mitigar valores esperados en un modelo de Ising de campo transversal 2D [7] [qiskit-addon-pna documentación]

  • Recorte de puertas finales para producir circuitos de Trotter de menor profundidad para la evolución temporal de un modelo de espines 2D [8] [qiskit-addon-obp documentación]

Discusión técnica​

Detalles del software​

  • Interfaz de Python acelerada con Rust

  • Soporte para simulaciones con ruido [guía]

  • Capacidad de truncar términos durante la evolución según una tolerancia absoluta de los coeficientes, un número fijo de términos en el operador en evolución, o una combinación de ambos

  • Capacidad de realizar la propagación de Pauli tanto en el marco de Schrödinger como en el de Heisenberg

  • Técnica novedosa para aproximar la conjugación de un operador de suma de Pauli por otro operador de Pauli. Esta implementación heurística genera de forma voraz las contribuciones al producto que se espera que sean más significativas. Consulta el Apéndice B de [7] para más información.

  • Un solo hilo

Requisitos computacionales​

Tanto el costo en memoria como en tiempo de las rutinas de propagación de Pauli suelen escalar con el tamaño al que se permite crecer al operador evolucionado.

propagate_through_rotation_gates(): Cuando el operador de Pauli se propaga en la base de Pauli bajo la acción de una secuencia de NN puertas de rotación de Pauli de un circuito de MM qubits, el número de términos crecerá como O(2N)\mathcal{O}(2^N) hacia un máximo de 4M4^M componentes de Pauli únicos. Para controlar el uso de memoria, el operador se trunca tras la aplicación de cada puerta, lo que introduce cierto error proporcional a las magnitudes de los coeficientes de los términos truncados. Los requisitos de memoria son lineales en el tamaño del operador evolucionado, y el tiempo de ejecución escala linealmente tanto con el tamaño del operador como con el número de puertas.

propagate_through_operator(): Conjuga un operador en la base de Pauli por otro acumulando de forma voraz términos de la suma, ∑i,j,kGi†OjGk\sum_{i,j,k}G^{\dagger}_iO_jG_k, donde i,j,ki,j,k son índices dispersos sobre la base de Pauli. Esta implementación ordena los coeficientes de cada operador por magnitud descendente y luego busca en el espacio de índices 3D los términos con los coeficientes más grandes, empezando por el origen (0,0,0)(0,0,0) y acumulando tripletes (i,j,k)(i,j,k) hasta un límite especificado. El tiempo dedicado a la búsqueda a menudo puede hacerse insignificante aumentando el tamaño del paso de búsqueda en el espacio (i,j,k)(i,j,k), lo que proporciona una aceleración cúbica para esta subrutina. En nuestro perfilado, se puede dedicar un tiempo significativo a ordenar los operadores y a realizar la multiplicación de Pauli para generar los términos del nuevo operador.

Contribuir​

El código fuente está disponible en GitHub.

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 GitHub issues 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 la(s) referencia(s) adecuada(s).

Licencia​

Apache License 2.0

Política de obsolescencia​

Seguimos el versionado semántico. Ocasionalmente podemos introducir cambios incompatibles para mejorar la experiencia del 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. [Tomislav Begušić, Johnnie Gray, Garnet Kin-Lic Chan, Fast and converged classical simulations of evidence for the utility of quantum computing before fault tolerance, arXiv:2308.05077 [quant-ph].

  2. Nicolas Loizeau, et al., Quantum many-body simulations with PauliStrings.jl, arXiv:2410.09654 [quant-ph].

  3. Manuel S. Rudolph, et al., Pauli Propagation: A Computational Framework for Simulating Quantum Systems, arXiv:2505.21606 [quant-ph].

  4. Hrant Gharibyan, et al., A Practical Guide to using Pauli Path Simulators for Utility-Scale Quantum Experiments, arXiv:2507.10771 [quant-ph].

  5. Lukas Broers, et al., Scalable Simulation of Quantum Many-Body Dynamics with Or-Represented Quantum Algebra, arXiv:2506.13241 [quant-ph].

  6. Andrew Eddins, Minh C. Tran, Patrick Rall, Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401 [quant-ph].

  7. Andrew Eddins, et al., Computing noise-canceling observables via Pauli propagation, arXiv:2606.20441 [quant-ph].

8 Bryce Fuller, et al., Improved Quantum Computation using Operator Backpropagation, arXiv:2502.01897 [quant-ph].