Pauli propagation
pauli-prop 패키지는 Pauli propagation을 수행하기 위한 Rust 가속 Python 인터페이스를 제공합니다.
Pauli propagation은 양자 회로 게이트나 노이즈 채널과 같은 다른 연산자의 작용 아래에서 Pauli 기저로 표현된 연산자의 발전을 근사하는 프레임워크입니다. 이 접근법은 관련된 연산자가 Pauli 기저에서 희소하게 유지될 것으로 예상될 때 효과적일 수 있습니다.
이 패키지의 서브루틴은 lightcone shading [6] 및 propagated noise absorption [7]과 같은 오류 완화 기법, 회로 깊이 감소를 위한 operator backpropagation [8], 그리고 기댓값의 고전 시뮬레이션 [1-5]을 구현하는 데 사용할 수 있습니다.
시작하기
이 패키지를 빠르게 시작하는 데 도움이 되는 간단한 가이드는 퀵스타트 가이드에서 볼 수 있습니다.
활용 사례 예제
Pauli propagation은 다양한 기법을 구현하기 위한 저수준 엔진으로 사용할 수 있습니다. 이것이 사용된 몇 가지 예는 다음과 같습니다.
-
1차원 및 2차원 횡자기장 Ising 모델에서 기댓값을 완화하기 위한 확률적 오류 상쇄(PEC)의 샘플링 오버헤드를 줄이는 Lightcone shading [6] [
qiskit-addon-slc문서] -
2차원 횡자기장 Ising 모델에서 기댓값을 완화하기 위해 노이즈 모델 정보를 대상 관측량에 흡수시키기 [7] [
qiskit-addon-pna문서] -
2차원 스핀 모델의 시간 발전을 위해 후행 게이트를 제거하여 더 낮은 깊이의 Trotter 회로 만들기 [8] [
qiskit-addon-obp문서]
기술적 논의
소프트웨어 세부 정보
-
Rust 가속 Python 인터페이스
-
노이즈 시뮬레이션 지원 [가이드]
-
절대 계수 허용 오차, 발전하는 연산자의 고정된 항 개수, 또는 이 둘의 조합에 따라 발전 중 항을 절단하는 기능
-
Schrödinger 틀과 Heisenberg 틀 모두에서 Pauli propagation을 수행하는 기능
-
Pauli 합 연산자를 다른 Pauli 연산자로 켤레하는 것을 근사하는 새로운 기법입니다. 이 휴리스틱 구현은 곱에서 가장 중요할 것으로 예상되는 기여를 탐욕적으로 생성합니다. 자세한 내용은 [7]의 부록 B를 참조하세요.
-
단일 스레드
계산 요구 사항
Pauli propagation 루틴의 메모리와 시간 비용은 일반적으로 발전된 연산자가 커지도록 허용된 크기에 따라 증가합니다.
propagate_through_rotation_gates(): 큐비트 회로의 개 Pauli 회전 게이트 시퀀스의 작용 아래에서 Pauli 연산자가 Pauli 기저로 전파될 때, 항의 개수는 으로 증가하여 최대 개의 고유한 Pauli 성분에 이릅니다. 메모리 사용량을 제어하기 위해 각 게이트를 적용한 후 연산자를 절단하며, 이는 절단된 항의 계수 크기에 비례하는 약간의 오차를 발생시킵니다. 메모리 요구량은 발전된 연산자의 크기에 선형적이며, 실행 시간은 연산자 크기와 게이트 수 모두에 선형적으로 증가합니다.
propagate_through_operator(): 합 의 항을 탐욕적으로 누적하여 Pauli 기저의 한 연산자를 다른 연산자로 켤레합니다. 여기서 는 Pauli 기저에 대한 희소 인덱스입니다. 이 구현은 각 연산자의 계수를 크기의 내림차순으로 정렬한 다음, 원점 에서 시작하여 계수가 가장 큰 항을 찾아 3차원 인덱스 공간을 탐색하며, 지정된 컷오프까지 삼중항을 누적합니다. 공간에서 탐색 단계 크기를 늘리면 탐색에 쓰는 시간을 종종 무시할 수 있을 정도로 줄일 수 있으며, 이는 이 서브루틴에 대해 세제곱의 속도 향상을 제공합니다. 프로파일링 결과, 연산자를 정렬하고 새 연산자의 항을 생성하기 위해 Pauli 곱셈을 수행하는 데 상당한 시간이 소요될 수 있습니다.
기여하기
소스 코드는 GitHub에서 볼 수 있습니다.
개발자 가이드는 이 프로젝트 저장소의 루트에 있는 CONTRIBUTING.md에 있습니다. 참여하는 경우 Qiskit의 행동 강령을 준수해야 합니다.
요청과 버그를 추적하기 위해 GitHub 이슈를 사용합니다.
이 패키지 인용하기
연구에 이 패키지를 사용하는 경우, 이 프로젝트 저장소의 CITATION.bib 파일을 사용하여 적절한 참고 문헌을 인용하세요.
라이선스
지원 중단 정책
시맨틱 버저닝을 따릅니다. 사용자 경험을 개선하기 위해 때때로 호환성을 깨는 변경을 할 수 있습니다. 가능한 경우 새로운 인터페이스와 공존할 수 있는 한 기존 인터페이스를 유지하고 지원 중단으로 표시합니다. 모든 주요 개선, 호환성을 깨는 변경 또는 지원 중단은 릴리스 노트에 문서화됩니다.
참고 문헌
-
[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].
-
Nicolas Loizeau, et al., Quantum many-body simulations with PauliStrings.jl, arXiv:2410.09654 [quant-ph].
-
Manuel S. Rudolph, et al., Pauli Propagation: A Computational Framework for Simulating Quantum Systems, arXiv:2505.21606 [quant-ph].
-
Hrant Gharibyan, et al., A Practical Guide to using Pauli Path Simulators for Utility-Scale Quantum Experiments, arXiv:2507.10771 [quant-ph].
-
Lukas Broers, et al., Scalable Simulation of Quantum Many-Body Dynamics with Or-Represented Quantum Algebra, arXiv:2506.13241 [quant-ph].
-
Andrew Eddins, Minh C. Tran, Patrick Rall, Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401 [quant-ph].
-
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].