Pular para o conteúdo principal
Este projeto está em fase beta. Encontrou um bug? Abra uma issue no GitHub. Tem uma pergunta ou ideia? Pergunte no Discussions — adoraríamos receber seu feedback!
Como está a qualidade da tradução nesta página?

Retropropagação de operadores

Este pacote implementa a retropropagação de operadores (OBP) para reduzir a profundidade de circuitos em cálculos de valores esperados. Essa técnica propaga um observável para trás através das portas no final de um circuito quântico, o que resulta em um circuito mais raso ao custo de um aumento nas bases de medição do observável. Conforme se retropropaga um operador mais fundo em um circuito, o tamanho do observável cresce exponencialmente, resultando em uma sobrecarga de recursos tanto clássicos quanto quânticos. No entanto, para alguns circuitos, a distribuição resultante de observáveis de Pauli é mais concentrada do que o pior caso de escala exponencial, o que significa que alguns termos do Hamiltoniano com coeficientes pequenos podem ser truncados para reduzir a sobrecarga quântica. O erro incorrido ao fazer isso pode ser controlado para encontrar um equilíbrio adequado entre precisão e eficiência.

Existem várias maneiras de realizar a retropropagação de operadores; este pacote usa um método baseado na teoria de perturbação de Clifford, que tem a vantagem de que a sobrecarga incorrida ao retropropagar várias portas é determinada pela não-Clifford-idade dessa porta. Isso leva a uma eficiência maior para algumas famílias de circuitos em relação aos métodos de OBP baseados em redes de tensores, que atualmente têm altas sobrecargas clássicas mesmo nos casos em que a sobrecarga quântica permanece controlada.

Este pacote é adequado para estimar valores esperados de circuitos quânticos gerais e observáveis de Pauli; no entanto, para circuitos de alta magia (muito não-Clifford), o erro do observável incorrido pelo truncamento provavelmente se tornará proibitivo antes que o observável tenha sido propagado por uma parte significativa do circuito. Para circuitos quase Clifford, pode ser possível propagar por uma parte muito maior do circuito mantendo limites de erro relativamente pequenos.

Primeiros passos​

Um guia simples para ajudar você a começar rapidamente com este pacote está disponível no guia de início rápido.

Exemplos de casos de uso​

Essa técnica foi usada para implementar circuitos de Trotter de menor profundidade para a evolução temporal de um modelo de spin 2D [1].

Discussão técnica​

  • Um único ponto de entrada: a função backpropagate realiza a OBP.

  • Dois controles independentes sobre o equilíbrio entre profundidade ↔ precisão:

    • OperatorBudget limita o quanto o observável pode crescer durante a retropropagação.

    • TruncationErrorBudget limita quanto erro pode ser incorrido durante a retropropagação.

  • A eficácia depende de quão Clifford é o circuito: em circuitos de alta magia (ou seja, muito não-Clifford), os termos adicionados ao observável tendem a ter coeficientes maiores, então incorre-se em mais erro de truncamento mais cedo, o que limita a economia de profundidade sob um orçamento de erro fixo. Circuitos quase Clifford podem ser truncados de forma mais agressiva e retropropagados mais fundo com o mesmo orçamento.

  • Totalmente inspecionável: cada execução retorna um objeto OBPMetadata que registra contagens de Pauli por fatia, contagens de grupos QWC e o erro de truncamento acumulado, com auxiliares plot_* para visualizar o crescimento do operador e o erro em relação à profundidade do circuito — útil para ajustar orçamentos antes de comprometer tempo de QPU.

Contribuindo​

O guia do desenvolvedor está em CONTRIBUTING.md, na raiz do repositório deste projeto. Ao participar, espera-se que você respeite o código de conduta do Qiskit.

Usamos as issues do GitHub para acompanhar solicitações e bugs.

Citando este pacote​

Se você usar este pacote em sua pesquisa, use o arquivo CITATION.bib no repositório deste projeto para citar a(s) referência(s) apropriada(s).

Licença​

Apache License 2.0

Política de descontinuação​

Este pacote segue o versionamento semântico. Ocasionalmente, podemos fazer mudanças incompatíveis para melhorar a experiência do usuário. Quando possível, manteremos as interfaces antigas e as marcaremos como descontinuadas, desde que possam coexistir com as novas. Cada melhoria substancial, mudança incompatível ou descontinuação será documentada nas notas de versão.

Referências​

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