Saltar al contenido principal

Retropropagación de operadores (OBP)

La retropropagación de operadores (OBP, por sus siglas en inglés) es una técnica para reducir la profundidad de un circuito eliminando operaciones de su parte final, a cambio de medir más operadores. Existen diversas formas de llevar a cabo la retropropagación de operadores; este paquete utiliza un método basado en la teoría de perturbaciones de Clifford [1].

A medida que se propaga un operador más a fondo a través de un circuito, el tamaño del observable que hay que medir crece exponencialmente. Esto genera una sobrecarga tanto en recursos clásicos como cuánticos. Sin embargo, para algunos circuitos, la distribución resultante de los observables de Pauli adicionales está más concentrada que el escalado exponencial del peor caso. Esto implica que algunos términos de un observable con coeficientes pequeños pueden truncarse para reducir la sobrecarga cuántica. El error introducido al hacer esto puede controlarse para encontrar un equilibrio adecuado entre precisión y eficiencia.

Instalación

Puedes instalar el paquete OBP de dos formas: mediante PyPI o compilándolo desde el código fuente. Considera instalar estos paquetes en un entorno virtual para garantizar la separación entre las dependencias de los paquetes.

Instalar desde PyPI

La forma más sencilla de instalar el paquete qiskit-addon-obp es mediante PyPI.

pip install qiskit-addon-obp

Compilar desde el código fuente

Los usuarios que deseen contribuir a este paquete o instalarlo manualmente pueden hacerlo clonando primero el repositorio:

git clone git@github.com:Qiskit/qiskit-addon-obp.git

e instalar el paquete mediante pip. El repositorio también contiene cuadernos de ejemplo. Si planeas desarrollar en el repositorio, instala las dependencias dev.

Ajusta las opciones según tus necesidades:

pip install tox notebook -e '.[notebook-dependencies, dev]'

Marco teórico

El procedimiento OBP implementado en este paquete se describe en detalle en [1]. Al utilizar el primitivo Estimator, la salida de una carga de trabajo cuántica es la estimación de uno o más valores esperados O\langle O \rangle con respecto a algún estado preparado mediante una QPU. Esta sección resume el procedimiento.

Para comenzar, escribe la medición del valor esperado de un observable OO en términos de algún estado inicial ψ|\psi\rangle y un circuito cuántico UQU_Q:

OUψ=ψUOUψ.\langle O \rangle_{U|\psi\rangle} = \langle\psi | U^\dagger O U |\psi \rangle.

Para distribuir este problema entre recursos clásicos y cuánticos, divide el circuito UU en dos subcircuitos, UCU_C y UQU_Q, simula clásicamente el circuito UCU_C, luego ejecuta el circuito UQU_Q en hardware cuántico y utiliza los resultados de la simulación clásica para reconstruir la medición del observable OO.

Diagrama OBP que muestra la división de un circuito en dos subcircuitos, el cómputo clásico de uno de los subcircuitos y la medición del otro circuito con hardware cuántico

El subcircuito UCU_C debe seleccionarse de modo que sea simulable clásicamente, y calculará el valor esperado

OUCOUC,\langle O' \rangle \equiv U_C^\dagger O U_C,

que es la versión del operador inicial OO evolucionada a través del circuito UCU_C. Una vez que se ha determinado OO', se prepara la carga de trabajo cuántica: se inicializa el estado ψ|\psi\rangle, se le aplica el circuito UQU_Q y, a continuación, se mide el valor esperado OO'. Puedes demostrar que esto es equivalente a medir O\langle O \rangle escribiendo:

ψUQOUQψ=ψUQUCOUCUQψ=ψUOUψ=OUψ \langle \psi | U_Q^\dagger O' U_Q \psi \rangle = \langle \psi | U_Q^\dagger U_C^\dagger O U_CU_Q \psi \rangle = \langle\psi | U^\dagger O U |\psi \rangle = \langle O \rangle_{U|\psi\rangle}

Por último, para medir el valor esperado O\langle O' \rangle, debemos requerir que sea descomponible en una suma de cadenas de Pauli

O=PcPP,O' = \sum_P c_P P,

donde cPc_P son los coeficientes reales de la descomposición y PP es alguna cadena de Pauli compuesta por operadores II, XX, YY y ZZ. Esto garantiza que puedas reconstruir el valor esperado de OO mediante

ψUQOψ=PcPψUQPUQψ.\langle \psi | U_Q^\dagger O' |\psi \rangle = \sum_P c_P \langle \psi | U_Q^\dagger P U_Q | \psi \rangle.

Truncamiento de términos

Este esquema ofrece un equilibrio entre la profundidad de circuito requerida de UQU_Q, el número de ejecuciones del circuito en hardware cuántico y la cantidad de recursos computacionales clásicos necesarios para calcular OO'. En general, cuanto más lejos se elige retropropagar a través de un circuito, mayor es el crecimiento exponencial del número de cadenas de Pauli que medir, así como de la sobrecarga de mitigación de errores (junto con los recursos clásicos necesarios para simular UCU_C).

Afortunadamente, la descomposición de OO' puede contener con frecuencia coeficientes bastante pequeños que pueden truncarse de las mediciones finales utilizadas para reconstruir OO sin incurrir en mucho error. El paquete qiskit-addon-obp cuenta con la funcionalidad para especificar un presupuesto de error, que puede buscar automáticamente los términos que pueden truncarse, dentro de cierta tolerancia de error.

Teoría de perturbaciones de Clifford

Por último, el paquete qiskit-addon-obp aborda la retropropagación de operadores basándose en la teoría de perturbaciones de Clifford. Este método tiene la ventaja de que la sobrecarga incurrida al retropropagar diversas puertas escala con la no-cliffordianidad de UCU_C (es decir, en qué medida UCU_C está compuesto por instrucciones no Clifford).

Este enfoque de la OBP comienza dividiendo el circuito simulado, UCU_C, en rebanadas (slices):

UC=s=1SUs=US...U2U1,U_C = \prod_{s=1}^S \mathcal{U}_s = \mathcal{U}_S...\mathcal{U}_2\mathcal{U}_1,

donde SS representa el número total de rebanadas y Us\mathcal{U}_s denota una sola rebanada del circuito UCU_C. Cada una de estas rebanadas se aplica analíticamente en secuencia para medir el operador retropropagado OO', y puede o no contribuir al tamaño total de la suma, dependiendo de si la rebanada es una operación Clifford o no Clifford. Si se asigna un presupuesto de error, el truncamiento ocurrirá entre la aplicación de cada rebanada.

Próximos pasos

Recomendaciones

Referencias

[1] Fuller, Bryce, et al. "Improved Quantum Computation using Operator Backpropagation." arXiv:2502.01897 [quant-ph] (2025).