Propagazione di Pauli
Il pacchetto pauli-prop fornisce un'interfaccia Python, ottimizzata in Rust, per l'esecuzione della propagazione di Pauli.
La propagazione di Pauli è un quadro di riferimento per approssimare l'evoluzione degli operatori nella base di Pauli sotto l'azione di altri operatori, quali i gate dei circuiti quantistici e i canali di rumore. Questo approccio può rivelarsi efficace quando si prevede che gli operatori coinvolti rimangano sparsi nella base di Pauli.
Le subroutine contenute in questo pacchetto possono essere utilizzate per implementare tecniche di mitigazione degli errori quali l’ombreggiatura con cono di luce [6] e l’assorbimento del rumore propagato [7], la retropropagazione degli operatori [8] per la riduzione della profondità dei circuiti e la simulazione classica dei valori attesi [1-5].
Guida introduttiva
Nella guida rapida è disponibile una semplice guida che ti aiuterà a iniziare subito a utilizzare questo pacchetto.
Esempi di casi di utilizzo
La propagazione di Pauli può essere utilizzata come motore di livello inferiore per implementare una varietà di tecniche. Ecco alcuni esempi di casi in cui è stato utilizzato:
- Ombreggiatura con cono di luce per ridurre il sovraccarico di campionamento della cancellazione probabilistica dell'errore (PEC) finalizzata alla mitigazione dei valori attesi in un modello di Ising a campo trasversale 1- e 2D e [6] [
qiskit-addon-slcdocs ] - Incorporazione delle informazioni relative al modello di rumore in un osservabile target per mitigare i valori attesi in un modello di Ising a campo trasversale con 2D [7] [
qiskit-addon-pnadocs ] - Riduzione dei gate finali per ottenere circuiti di Trotter a profondità ridotta per l’evoluzione temporale di un modello di spin di tipo “ 2D ” [8] [
qiskit-addon-obpdocs ]
Discussione tecnica
Dettagli sul software
- Interfaccia
Pythonottimizzata per Rust - Supporto per simulazioni con rumore [ guida ]
- Possibilità di troncare i termini durante l'evoluzione in base a una tolleranza assoluta del coefficiente, a un numero fisso di termini nell'operatore in evoluzione o a una combinazione di entrambi
- Capacità di eseguire la propagazione di Pauli sia nel quadro di Schrödinger che in quello di Heisenberg
- Nuova tecnica per approssimare la coniugazione di un operatore di somma di Pauli mediante un altro operatore di Pauli. Questa implementazione euristica genera in modo avido i contributi al prodotto che si prevede siano i più significativi. Per ulteriori informazioni, si veda l'Appendice B di [7].
- A thread singolo
Requisiti informatici
Sia il consumo di memoria che il tempo richiesto dalle routine di propagazione di Pauli variano generalmente in proporzione alla dimensione massima che l'operatore evoluto può raggiungere.
propagate_through_rotation_gates(): Man mano che l’operatore di Pauli viene propagato nella base di Pauli sotto l’azione di una sequenza di porte di rotazione di Pauli di un circuito a qubit, il numero di termini crescerà secondo la relazione fino a raggiungere un massimo di componenti di Pauli uniche. Per controllare l'utilizzo della memoria, l'operando viene troncato dopo l'applicazione di ogni porta logica, il che introduce un errore proporzionale alle grandezze dei coefficienti dei termini troncati. I requisiti di memoria sono lineari rispetto alla dimensione dell’operatore evoluto, mentre il tempo di esecuzione varia linearmente sia in funzione della dimensione dell’operatore che del numero di porte.
propagate_through_operator(): Coniuga un operatore nella base di Pauli con un altro accumulando in modo avido i termini nella somma, , dove sono indici sparsi sulla base di Pauli. Questa implementazione ordina i coefficienti di ciascun operatore in ordine decrescente di grandezza, quindi effettua una ricerca nello spazio degli indici 3D per individuare i termini con i coefficienti più grandi, partendo dall'origine e accumulando terne fino a un limite specificato. Il tempo impiegato per la ricerca può spesso essere ridotto a livelli trascurabili aumentando l'ampiezza del passo di ricerca nello spaz o, il che garantisce un aumento di velocità di ordine cubico per questa subroutine. Nel nostro processo di profilazione, può essere necessario dedicare molto tempo all’ordinamento degli operatori e all’esecuzione della moltiplicazione di Pauli per generare i termini del nuovo operatore.
contribuzione
Il codice sorgente è disponibile su GitHub.
La guida per gli sviluppatori si trova all'indirizzo CONTRIBUTING.md nella directory principale del repository di questo progetto. Partecipando, ci si aspetta che tu rispetti il codice di condotta di Qiskit.
Utilizziamo le segnalazioni su GitHub per tenere traccia delle richieste e dei bug.
Come citare questo pacchetto
Se utilizzi questo pacchetto nella tua ricerca, usa il file “ CITATION.bib ” presente nel repository di questo progetto per citare i riferimenti bibliografici appropriati.
Licenza
Politica di obsolescenza
Seguiamo il sistema di versioning semantico. Occasionalmente potremmo apportare modifiche sostanziali al fine di migliorare l'esperienza dell'utente. Ove possibile, manterremo le vecchie interfacce e le contrassegneremo come obsolete, purché possano coesistere con quelle nuove. Ogni miglioramento sostanziale, modifica che comporta incompatibilità o funzionalità deprecata sarà documentata nelle note di rilascio.
Riferimenti
-
[Tomislav Begušić, Johnnie Gray, Garnet Kin-Lic Chan, Simulazioni classiche veloci e convergenti a sostegno dell’utilità del calcolo quantistico prima della tolleranza ai guasti, arXiv:2308.05077 [quant-ph].
-
Nicolas Loizeau e altri, Simulazioni quantistiche a molti corpi con PauliStrings.jl, arXiv:2410.09654 [quant-ph].
-
Manuel S. Rudolph e altri, Propagazione di Pauli: un quadro computazionale per la simulazione di sistemi quantistici, arXiv:2505.21606 [quant-ph].
-
Hrant Gharibyan e altri, Guida pratica all'uso dei simulatori di traiettorie di Pauli per esperimenti quantistici su scala industriale, arXiv:2507.10771[ quant-ph].
-
Lukas Broers e altri, Simulazione scalabile della dinamica quantistica a molti corpi con algebra quantistica rappresentata in Or, 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 e altri, Calcolo degli osservabili con cancellazione del rumore tramite la propagazione di Pauli, arXiv:2606.20441 [quant-ph].
8 Bryce Fuller e altri, Miglioramento del calcolo quantistico tramite la retropropagazione degli operatori, arXiv:2502.01897 [quant-ph].