Zum Hauptinhalt springen
Dieses Projekt befindet sich in der Beta-Phase. Einen Fehler gefunden? GitHub Issue erstellen. Frage oder Idee? In Discussions fragen — wir freuen uns über dein Feedback!
Wie ist die Übersetzungsqualität auf dieser Seite?

Pauli-Propagation

Das Paket pauli-prop bietet eine Rust-beschleunigte Python-Schnittstelle zur Durchführung von Pauli-Propagation.

Pauli-Propagation ist ein Framework zur Approximation der Entwicklung von Operatoren in der Pauli-Basis unter der Wirkung anderer Operatoren, wie etwa Gates von Quantencircuits und Rauschkanälen. Dieser Ansatz kann effektiv sein, wenn zu erwarten ist, dass die beteiligten Operatoren in der Pauli-Basis dünnbesetzt bleiben.

Die Unterroutinen in diesem Paket können verwendet werden, um Fehlerminderungstechniken wie Lightcone Shading [6] und Propagated Noise Absorption [7], Operator-Backpropagation [8] zur Reduzierung der Circuit-Tiefe sowie die klassische Simulation von Erwartungswerten [1-5] umzusetzen.

Erste Schritte​

Ein einfacher Leitfaden, der dir hilft, mit diesem Paket schnell loszulegen, steht im Schnellstart-Leitfaden zur Verfügung.

Anwendungsbeispiele​

Pauli-Propagation kann als Engine auf niedrigerer Ebene verwendet werden, um eine Vielzahl von Techniken umzusetzen. Einige Beispiele, in denen sie eingesetzt wurde, sind:

  • Lightcone Shading zur Verringerung des Sampling-Overheads der Probabilistic Error Cancellation (PEC) zur Minderung von Erwartungswerten in einem 1D- und 2D-Ising-Modell mit transversalem Feld [6] [qiskit-addon-slc Dokumentation]

  • Aufnahme von Informationen des Rauschmodells in eine Ziel-Observable, um Erwartungswerte in einem 2D-Ising-Modell mit transversalem Feld zu mindern [7] [qiskit-addon-pna Dokumentation]

  • Entfernen nachlaufender Gates, um Trotter-Circuits mit geringerer Tiefe für die Zeitentwicklung eines 2D-Spinmodells zu erzeugen [8] [qiskit-addon-obp Dokumentation]

Technische Diskussion​

Software-Details​

  • Rust-beschleunigte Python-Schnittstelle

  • Unterstützung für verrauschte Simulationen [Leitfaden]

  • Möglichkeit, Terme während der Evolution anhand einer absoluten Koeffiziententoleranz, einer festen Anzahl von Termen im sich entwickelnden Operator oder einer Kombination aus beidem abzuschneiden

  • Möglichkeit, Pauli-Propagation sowohl im Schrödinger- als auch im Heisenberg-Bild durchzuführen

  • Neuartige Technik zur Approximation der Konjugation eines Pauli-Summen-Operators durch einen anderen Pauli-Operator. Diese heuristische Implementierung erzeugt gierig diejenigen Beiträge zum Produkt, von denen erwartet wird, dass sie am bedeutsamsten sind. Weitere Informationen findest du in Anhang B von [7].

  • Single-Threaded

Rechenanforderungen​

Sowohl der Speicher- als auch der Zeitaufwand von Pauli-Propagations-Routinen skaliert im Allgemeinen mit der Größe, auf die der entwickelte Operator anwachsen darf.

propagate_through_rotation_gates(): Wird der Pauli-Operator in der Pauli-Basis unter der Wirkung einer Folge von NN Pauli-Rotations-Gates eines Circuits mit MM Qubits propagiert, wächst die Anzahl der Terme wie O(2N)\mathcal{O}(2^N) in Richtung eines Maximums von 4M4^M eindeutigen Pauli-Komponenten. Um den Speicherverbrauch zu kontrollieren, wird der Operator nach der Anwendung jedes Gates abgeschnitten, was einen Fehler einführt, der proportional zu den Beträgen der Koeffizienten der abgeschnittenen Terme ist. Der Speicherbedarf ist linear in der Größe des entwickelten Operators, und die Laufzeit skaliert linear sowohl mit der Operatorgröße als auch mit der Anzahl der Gates.

propagate_through_operator(): Konjugiert einen Operator in der Pauli-Basis mit einem anderen, indem gierig Terme der Summe ∑i,j,kGi†OjGk\sum_{i,j,k}G^{\dagger}_iO_jG_k akkumuliert werden, wobei i,j,ki,j,k dünnbesetzte Indizes über die Pauli-Basis sind. Diese Implementierung sortiert die Koeffizienten in jedem Operator nach absteigendem Betrag und durchsucht dann den 3D-Indexraum nach den Termen mit den größten Koeffizienten, beginnend am Ursprung (0,0,0)(0,0,0), und akkumuliert (i,j,k)(i,j,k)-Tripel bis zu einer festgelegten Grenze. Die für die Suche aufgewendete Zeit lässt sich oft vernachlässigbar machen, indem die Suchschrittweite im (i,j,k)(i,j,k)-Raum erhöht wird, was für diese Unterroutine eine kubische Beschleunigung bringt. In unserem Profiling kann erhebliche Zeit auf das Sortieren der Operatoren und die Pauli-Multiplikation zur Erzeugung der Terme im neuen Operator entfallen.

Mitwirken​

Der Quellcode ist auf GitHub verfügbar.

Der Entwicklerleitfaden befindet sich in CONTRIBUTING.md im Stammverzeichnis des Repositorys dieses Projekts. Mit deiner Teilnahme verpflichtest du dich, den Verhaltenskodex von Qiskit einzuhalten.

Wir verwenden GitHub Issues, um Anfragen und Fehler nachzuverfolgen.

Dieses Paket zitieren​

Wenn du dieses Paket in deiner Forschung verwendest, nutze die Datei CITATION.bib im Repository dieses Projekts, um die passenden Referenzen zu zitieren.

Lizenz​

Apache License 2.0

Richtlinie zur Veraltung​

Wir folgen Semantic Versioning. Gelegentlich nehmen wir möglicherweise inkompatible Änderungen vor, um die Benutzererfahrung zu verbessern. Wenn möglich, behalten wir alte Schnittstellen bei und kennzeichnen sie als veraltet, solange sie neben den neuen bestehen können. Jede wesentliche Verbesserung, inkompatible Änderung oder Veraltung wird in den Versionshinweisen dokumentiert.

Referenzen​

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