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?

Propagação de Pauli

O pacote pauli-prop fornece uma interface Python acelerada com Rust para realizar a propagação de Pauli.

A propagação de Pauli é uma estrutura para aproximar a evolução de operadores na base de Pauli sob a ação de outros operadores, como portas de circuitos quânticos e canais de ruído. Essa abordagem pode ser eficaz quando se espera que os operadores envolvidos permaneçam esparsos na base de Pauli.

As sub-rotinas deste pacote podem ser usadas para implementar técnicas de mitigação de erros, como lightcone shading [6] e propagated noise absorption [7], retropropagação de operadores [8] para redução da profundidade do circuito, e simulação clássica de valores esperados [1-5].

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​

A propagação de Pauli pode ser usada como um mecanismo de nível mais baixo para implementar diversas técnicas. Alguns exemplos de onde ela foi usada são:

  • Lightcone shading para reduzir o overhead de amostragem do cancelamento probabilístico de erros (PEC) ao mitigar valores esperados em um modelo de Ising de campo transversal 1D e 2D [6] [qiskit-addon-slc docs]

  • Absorção de informações do modelo de ruído em um observável-alvo para mitigar valores esperados em um modelo de Ising de campo transversal 2D [7] [qiskit-addon-pna docs]

  • Remoção de portas finais para produzir circuitos de Trotter de menor profundidade para a evolução temporal de um modelo de spins 2D [8] [qiskit-addon-obp docs]

Discussão técnica​

Detalhes do software​

  • Interface Python acelerada com Rust

  • Suporte a simulações com ruído [guia]

  • Capacidade de truncar termos durante a evolução com base em uma tolerância absoluta de coeficiente, em um número fixo de termos no operador em evolução ou em uma combinação de ambos

  • Capacidade de realizar a propagação de Pauli tanto no referencial de Schrödinger quanto no de Heisenberg

  • Técnica inédita para aproximar a conjugação de um operador de soma de Pauli por outro operador de Pauli. Essa implementação heurística gera, de forma gulosa, as contribuições do produto que se espera serem mais significativas. Consulte o Apêndice B de [7] para mais informações.

  • Thread única

Requisitos computacionais​

Tanto o custo de memória quanto o de tempo das rotinas de propagação de Pauli geralmente escalam com o tamanho até o qual o operador evoluído pode crescer.

propagate_through_rotation_gates(): À medida que o operador de Pauli é propagado na base de Pauli sob a ação de uma sequência de NN portas de rotação de Pauli de um circuito de MM qubits, o número de termos crescerá como O(2N)\mathcal{O}(2^N) em direção a um máximo de 4M4^M componentes de Pauli únicos. Para controlar o uso de memória, o operador é truncado após a aplicação de cada porta, o que introduz algum erro proporcional às magnitudes dos coeficientes dos termos truncados. Os requisitos de memória são lineares no tamanho do operador evoluído, e o tempo de execução escala linearmente tanto com o tamanho do operador quanto com o número de portas.

propagate_through_operator(): Conjuga um operador na base de Pauli por outro, acumulando de forma gulosa termos na soma, ∑i,j,kGi†OjGk\sum_{i,j,k}G^{\dagger}_iO_jG_k, onde i,j,ki,j,k são índices esparsos sobre a base de Pauli. Essa implementação ordena os coeficientes de cada operador por magnitude decrescente e então busca no espaço de índices 3D os termos com os maiores coeficientes, começando pela origem (0,0,0)(0,0,0) e acumulando trincas (i,j,k)(i,j,k) até um corte especificado. O tempo gasto na busca muitas vezes pode ser tornado desprezível aumentando o tamanho do passo de busca no espaço (i,j,k)(i,j,k), o que proporciona uma aceleração cúbica para essa sub-rotina. Em nossa análise de desempenho, um tempo significativo pode ser gasto ordenando os operadores e realizando a multiplicação de Pauli para gerar os termos do novo operador.

Como contribuir​

O código-fonte está disponível no GitHub.

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.

Como citar 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​

Seguimos 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. [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].