Przejdź do głównej treści
Ten projekt jest w wersji beta. Znalazłeś błąd? Otwórz zgłoszenie na GitHub. Masz pytanie lub pomysł? Zapytaj w Discussions — chętnie poznamy Twoją opinię!
Jak oceniasz jakość tłumaczenia tej strony?

Propagacja Pauliego

Pakiet pauli-prop udostępnia interfejs Pythona przyspieszony w Rust do wykonywania propagacji Pauliego.

Propagacja Pauliego to ramy do przybliżania ewolucji operatorów w bazie Pauliego pod działaniem innych operatorów, takich jak bramki obwodów kwantowych i kanały szumu. Takie podejście może być skuteczne, gdy oczekuje się, że uczestniczące operatory pozostaną rzadkie w bazie Pauliego.

Podprogramy w tym pakiecie można wykorzystać do implementacji technik redukcji błędów, takich jak lightcone shading [6] i propagated noise absorption [7], operator backpropagation [8] do zmniejszania głębokości obwodu oraz klasycznej symulacji wartości oczekiwanych [1-5].

Pierwsze kroki​

Prosty przewodnik, który pomoże Ci szybko zacząć pracę z tym pakietem, jest dostępny w przewodniku szybkiego startu.

Przykłady zastosowań​

Propagację Pauliego można wykorzystać jako silnik niższego poziomu do implementacji różnych technik. Oto kilka przykładów jej użycia:

  • Lightcone shading do zmniejszania narzutu próbkowania probabilistycznej redukcji błędów (PEC) przy łagodzeniu błędów wartości oczekiwanych w 1- i 2-wymiarowym modelu Isinga z polem poprzecznym [6] [qiskit-addon-slc dokumentacja]

  • Wchłanianie informacji o modelu szumu do docelowej obserwabli w celu łagodzenia błędów wartości oczekiwanych w 2-wymiarowym modelu Isinga z polem poprzecznym [7] [qiskit-addon-pna dokumentacja]

  • Przycinanie końcowych bramek w celu uzyskania obwodów Trottera o mniejszej głębokości dla ewolucji w czasie 2-wymiarowego modelu spinowego [8] [qiskit-addon-obp dokumentacja]

Omówienie techniczne​

Szczegóły oprogramowania​

  • Interfejs Pythona przyspieszony w Rust

  • Obsługa symulacji z szumem [przewodnik]

  • Możliwość obcinania wyrazów podczas ewolucji na podstawie bezwzględnej tolerancji współczynnika, stałej liczby wyrazów w ewoluującym operatorze lub kombinacji obu

  • Możliwość wykonywania propagacji Pauliego zarówno w ujęciu Schrödingera, jak i Heisenberga

  • Nowatorska technika przybliżania sprzężenia operatora będącego sumą Pauliego przez inny operator Pauliego. Ta heurystyczna implementacja zachłannie generuje wkłady do iloczynu, które mają być najbardziej znaczące. Więcej informacji znajdziesz w dodatku B w [7].

  • Jednowątkowość

Wymagania obliczeniowe​

Zarówno koszt pamięciowy, jak i czasowy procedur propagacji Pauliego na ogół rosną wraz z rozmiarem, do jakiego pozwala się urosnąć ewoluowanemu operatorowi.

propagate_through_rotation_gates(): Gdy operator Pauliego jest propagowany w bazie Pauliego pod działaniem ciągu NN bramek obrotu Pauliego MM-kubitowego obwodu, liczba wyrazów rośnie jak O(2N)\mathcal{O}(2^N) w kierunku maksimum 4M4^M unikalnych składowych Pauliego. Aby kontrolować zużycie pamięci, operator jest obcinany po zastosowaniu każdej bramki, co wprowadza pewien błąd proporcjonalny do wielkości współczynników obciętych wyrazów. Wymagania pamięciowe są liniowe względem rozmiaru ewoluowanego operatora, a czas działania rośnie liniowo zarówno względem rozmiaru operatora, jak i liczby bramek.

propagate_through_operator(): Sprzęga jeden operator w bazie Pauliego z drugim, zachłannie akumulując wyrazy sumy, ∑i,j,kGi†OjGk\sum_{i,j,k}G^{\dagger}_iO_jG_k, gdzie i,j,ki,j,k są rzadkimi indeksami w bazie Pauliego. Ta implementacja sortuje współczynniki w każdym operatorze według malejącej wielkości, a następnie przeszukuje trójwymiarową przestrzeń indeksów w poszukiwaniu wyrazów o największych współczynnikach, zaczynając od początku (0,0,0)(0,0,0) i akumulując trójki (i,j,k)(i,j,k) aż do podanego progu odcięcia. Czas poświęcony na przeszukiwanie często można uczynić pomijalnym, zwiększając rozmiar kroku wyszukiwania w przestrzeni (i,j,k)(i,j,k), co zapewnia sześcienne przyspieszenie tej podprocedury. W naszym profilowaniu znaczną część czasu może zajmować sortowanie operatorów i wykonywanie mnożenia Pauliego w celu wygenerowania wyrazów nowego operatora.

Współtworzenie​

Kod źródłowy jest dostępny na GitHubie.

Przewodnik dla deweloperów znajduje się w pliku CONTRIBUTING.md w głównym katalogu repozytorium tego projektu. Uczestnicząc, zobowiązujesz się przestrzegać kodeksu postępowania Qiskit.

Do śledzenia próśb i błędów używamy zgłoszeń na GitHubie.

Cytowanie tego pakietu​

Jeśli używasz tego pakietu w swoich badaniach, skorzystaj z pliku CITATION.bib w repozytorium tego projektu, aby zacytować odpowiednie źródła.

Licencja​

Apache License 2.0

Polityka wycofywania​

Stosujemy wersjonowanie semantyczne. Czasami możemy wprowadzać zmiany łamiące zgodność, aby poprawić doświadczenie użytkownika. Gdy to możliwe, zachowamy stare interfejsy i oznaczymy je jako wycofane, dopóki mogą współistnieć z nowymi. Każde istotne ulepszenie, zmiana łamiąca zgodność lub wycofanie zostanie opisane w informacjach o wydaniu.

Bibliografia​

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