Pular para o conteúdo principal

Retropropagação de operadores (OBP)

A retropropagação de operadores (OBP, do inglês Operator Backpropagation) é uma técnica para reduzir a profundidade de um Circuit eliminando operações do seu final ao custo de mais medições de operadores. Há diversas formas de realizar a retropropagação de operadores, e este pacote utiliza um método baseado na teoria de perturbação de Clifford [1].

À medida que você propaga um operador mais adiante por um Circuit, o tamanho do observável a medir cresce exponencialmente. Isso resulta em um overhead de recursos tanto clássicos quanto quânticos. No entanto, para alguns circuitos, a distribuição resultante de observáveis de Pauli adicionais é mais concentrada do que o pior caso de escalonamento exponencial. Isso implica que alguns termos em um observável com coeficientes pequenos podem ser truncados para reduzir o overhead quântico. O erro incorrido ao fazer isso pode ser controlado para encontrar um equilíbrio adequado entre precisão e eficiência.

Instalação

Você pode instalar o pacote OBP de duas maneiras: via PyPI ou compilando a partir do código-fonte. Considere instalar esses pacotes em um ambiente virtual para garantir a separação entre as dependências dos pacotes.

Instalar pelo PyPI

A maneira mais direta de instalar o pacote qiskit-addon-obp é via PyPI.

pip install qiskit-addon-obp

Compilar a partir do código-fonte

Usuários que desejam contribuir com este pacote ou que querem instalá-lo manualmente podem fazê-lo clonando primeiro o repositório:

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

e instalar o pacote via `pip`. O repositório também contém notebooks de exemplos. Se você planeja desenvolver no repositório, instale as dependências `dev`.

Ajuste as opções conforme sua necessidade:

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

Embasamento teórico

O procedimento OBP implementado neste pacote é descrito em detalhes em [1]. Ao usar a primitiva Estimator, a saída de uma carga de trabalho quântica é a estimativa de um ou mais valores esperados O\langle O \rangle em relação a algum estado preparado usando uma QPU. Esta seção resume o procedimento.

Primeiro, comece escrevendo a medição do valor esperado de um observável OO em termos de algum estado inicial ψ|\psi\rangle e um Circuit quântico UQU_Q:

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

Para distribuir esse problema entre recursos clássicos e quânticos, divida o Circuit UU em dois subcircuitos, UCU_C e UQU_Q, simule classicamente o Circuit UCU_C, depois execute o Circuit UQU_Q em hardware quântico e use os resultados da simulação clássica para reconstruir a medição do observável OO.

Diagrama OBP ilustrando a divisão de um circuit em dois subcircuitos, o cálculo clássico de um dos subcircuitos e a medição do outro circuit usando hardware quântico

O subcircuito UCU_C deve ser selecionado de forma a ser simulável classicamente e calculará o valor esperado

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

que é a versão do operador inicial OO evoluído através do Circuit UCU_C. Uma vez que OO' foi determinado, a carga de trabalho quântica é preparada: o estado ψ|\psi\rangle é iniciado, o Circuit UQU_Q é aplicado a ele, e então o valor esperado OO' é medido. Você pode mostrar que isso é equivalente a medir O\langle O \rangle escrevendo:

ψ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 fim, para medir o valor esperado O\langle O' \rangle, é necessário que ele seja decomponível em uma soma de cadeias de Pauli

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

onde cPc_P são coeficientes reais da decomposição e PP é alguma cadeia de Pauli composta pelos operadores II, XX, YY e ZZ. Isso garante que você possa reconstruir o valor esperado de OO por meio de

ψ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.

Truncamento de termos

Esse esquema oferece um equilíbrio entre a profundidade de Circuit necessária para UQU_Q, o número de execuções de Circuit em hardware quântico e a quantidade de recursos de computação clássica necessários para calcular OO'. Em geral, quanto mais você escolhe retropropagar pelo Circuit, maior é o crescimento exponencial do número de cadeias de Pauli a medir, do overhead de mitigação de erros e dos recursos clássicos necessários para simular UCU_C.

Felizmente, a decomposição de OO' frequentemente pode conter coeficientes bastante pequenos que podem ser truncados das medições finais usadas para reconstruir OO sem incorrer em muito erro. O pacote qiskit-addon-obp possui funcionalidade para especificar um orçamento de erro, que pode buscar automaticamente termos que podem ser truncados dentro de uma certa tolerância de erro.

Teoria de perturbação de Clifford

Por fim, o pacote qiskit-addon-obp aborda a retropropagação de operadores com base na teoria de perturbação de Clifford. Esse método tem a vantagem de que o overhead gerado pela retropropagação de diversas Gates escala com a não-Cliffordness de UCU_C (ou seja, o quanto de UCU_C é composto por instruções não-Clifford).

Essa abordagem ao OBP começa dividindo o Circuit simulado, UCU_C, em fatias (slices):

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

onde SS representa o número total de fatias e Us\mathcal{U}_s denota uma única fatia do Circuit UCU_C. Cada uma dessas fatias é então aplicada analiticamente em sequência para medir o operador retropropagado OO', podendo ou não contribuir para o tamanho total da soma, dependendo se a fatia é uma operação Clifford ou não-Clifford. Se um orçamento de erro for alocado, o truncamento ocorrerá entre a aplicação de cada fatia.

Próximos passos

Recomendações

Referências

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