Pauli propagation
Paket pauli-prop menyediakan antarmuka Python yang dipercepat dengan Rust untuk melakukan Pauli propagation.
Pauli propagation adalah kerangka kerja untuk mengaproksimasi evolusi operator dalam basis Pauli di bawah aksi operator lain, seperti gate circuit kuantum dan noise channel. Pendekatan ini bisa efektif ketika operator yang terlibat diperkirakan tetap sparse dalam basis Pauli.
Subrutin di paket ini bisa dipakai untuk mengimplementasikan teknik error mitigation seperti lightcone shading [6] dan propagated noise absorption [7], operator backpropagation [8] untuk mengurangi kedalaman circuit, serta simulasi klasik nilai ekspektasi [1-5].
Mulai
Panduan sederhana untuk membantu kamu mulai dengan cepat memakai paket ini tersedia di panduan quickstart.
Contoh kasus penggunaan
Pauli propagation bisa dipakai sebagai mesin tingkat rendah untuk mengimplementasikan berbagai teknik. Beberapa contoh penggunaannya adalah:
-
Lightcone shading untuk mengurangi overhead sampling dari probabilistic error cancellation (PEC) dalam memitigasi nilai ekspektasi pada model Ising medan transversal 1D dan 2D [6] [
qiskit-addon-slcdocs] -
Menyerap informasi noise model ke dalam observable target untuk memitigasi nilai ekspektasi pada model Ising medan transversal 2D [7] [
qiskit-addon-pnadocs] -
Memangkas gate di bagian ujung untuk menghasilkan circuit Trotter berkedalaman lebih rendah bagi evolusi waktu model spin 2D [8] [
qiskit-addon-obpdocs]
Pembahasan teknis
Detail perangkat lunak
-
Antarmuka Python yang dipercepat dengan Rust
-
Dukungan untuk simulasi noisy [panduan]
-
Kemampuan memotong suku selama evolusi berdasarkan toleransi koefisien absolut, jumlah suku tetap pada operator yang berevolusi, atau kombinasi keduanya
-
Kemampuan melakukan Pauli propagation baik dalam kerangka Schrödinger maupun Heisenberg
-
Teknik baru untuk mengaproksimasi konjugasi operator jumlah-Pauli oleh operator Pauli lain. Implementasi heuristik ini secara greedy menghasilkan kontribusi pada hasil kali yang diperkirakan paling signifikan. Lihat Appendix B dari [7] untuk informasi lebih lanjut.
-
Berutas tunggal
Kebutuhan komputasi
Baik biaya memori maupun waktu untuk rutin Pauli propagation umumnya berskala dengan ukuran yang boleh dicapai operator yang berevolusi.
propagate_through_rotation_gates(): Saat operator Pauli dipropagasikan dalam basis Pauli di bawah aksi urutan gate rotasi Pauli dari circuit -qubit, jumlah suku akan tumbuh sebesar menuju maksimum komponen Pauli yang unik. Untuk mengendalikan pemakaian memori, operator dipotong setelah penerapan tiap gate, yang menimbulkan sedikit error sebanding dengan besar koefisien suku yang dipotong. Kebutuhan memorinya linear terhadap ukuran operator yang berevolusi, dan waktu eksekusinya berskala linear terhadap ukuran operator maupun jumlah gate.
propagate_through_operator(): Mengonjugasikan satu operator dalam basis Pauli dengan operator lain dengan mengakumulasi suku-suku secara greedy dalam jumlah, , dengan adalah indeks sparse atas basis Pauli. Implementasi ini mengurutkan koefisien di tiap operator berdasarkan besar secara menurun lalu mencari di ruang indeks 3D suku-suku dengan koefisien terbesar, dimulai dari titik asal , dan mengakumulasi triplet sampai batas tertentu. Waktu yang dipakai untuk pencarian sering bisa dibuat dapat diabaikan dengan memperbesar ukuran langkah pencarian di ruang , yang memberi percepatan kubik untuk subrutin ini. Dalam profiling kami, waktu yang cukup besar bisa terpakai untuk mengurutkan operator dan melakukan perkalian Pauli guna menghasilkan suku-suku di operator baru.
Berkontribusi
Kode sumbernya tersedia di GitHub.
Panduan developer ada di CONTRIBUTING.md di root repositori proyek ini. Dengan berpartisipasi, kamu diharapkan menjunjung kode etik Qiskit.
Kami memakai GitHub issues untuk melacak permintaan dan bug.
Mengutip paket ini
Kalau kamu memakai paket ini dalam penelitianmu, pakai file CITATION.bib di repositori proyek ini untuk mengutip referensi yang sesuai.
Lisensi
Kebijakan Deprecation
Kami mengikuti semantic versioning. Sesekali kami mungkin membuat perubahan yang merusak (breaking changes) demi memperbaiki pengalaman pengguna. Bila memungkinkan, kami akan mempertahankan antarmuka lama dan menandainya sebagai deprecated, selama masih bisa berdampingan dengan yang baru. Setiap peningkatan substansial, breaking change, atau deprecation akan didokumentasikan di release notes.
Referensi
-
[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].