Operator backpropagation
Questo pacchetto implementa l'operator backpropagation (OBP) per ridurre la profondità dei circuiti nei calcoli di valori di aspettazione. Questa tecnica propaga un'osservabile all'indietro attraverso i gate alla fine di un circuito quantistico, ottenendo un circuito meno profondo al costo di un aumento delle basi di misura dell'osservabile. Man mano che si esegue la backpropagation di un operatore più a fondo in un circuito, la dimensione dell'osservabile cresce esponenzialmente, con un overhead di risorse sia classico sia quantistico. Tuttavia, per alcuni circuiti la distribuzione risultante delle osservabili di Pauli è più concentrata rispetto allo scaling esponenziale nel caso peggiore, il che significa che alcuni termini dell'Hamiltoniana con coefficienti piccoli possono essere troncati per ridurre l'overhead quantistico. L'errore introdotto in questo modo può essere controllato per trovare un compromesso adeguato tra precisione ed efficienza.
Esistono diversi modi per eseguire l'operator backpropagation; questo pacchetto usa un metodo basato sulla teoria delle perturbazioni di Clifford, che ha il vantaggio che l'overhead introdotto dalla backpropagation di vari gate è determinato dalla non-Clifford-icità di quel gate. Ciò porta a una maggiore efficienza per alcune famiglie di circuiti rispetto ai metodi di OBP basati su tensor network, che attualmente hanno overhead classici elevati anche nei casi in cui l'overhead quantistico rimane contenuto.
Questo pacchetto è adatto a stimare i valori di aspettazione di circuiti quantistici generali e osservabili di Pauli; tuttavia, per circuiti ad alta magia (molto non-Clifford) l'errore sull'osservabile dovuto al troncamento diventerà probabilmente proibitivo prima che l'osservabile sia stata propagata attraverso una porzione significativa del circuito. Per circuiti quasi-Clifford, può essere possibile propagare attraverso una parte molto maggiore del circuito mantenendo limiti di errore relativamente piccoli.
Per iniziare
Una semplice guida per iniziare rapidamente con questo pacchetto è disponibile nella guida rapida.
Esempi di casi d'uso
Questa tecnica è stata usata per implementare circuiti di Trotter a profondità inferiore per l'evoluzione temporale di un modello di spin 2D [1].
Discussione tecnica
-
Un unico punto di ingresso: la funzione
backpropagateesegue l'OBP. -
Due controlli indipendenti sul compromesso profondità ↔ accuratezza:
-
OperatorBudgetlimita quanto può crescere l'osservabile durante la backpropagation. -
TruncationErrorBudgetlimita quanto errore può essere introdotto durante la backpropagation.
-
-
L'efficacia dipende da quanto il circuito è Clifford: per circuiti ad alta magia (cioè molto non-Clifford), i termini aggiunti all'osservabile tendono ad avere coefficienti più grandi, quindi si introduce più errore di troncamento prima, limitando il risparmio di profondità con un budget di errore fisso. I circuiti quasi-Clifford possono essere troncati in modo più aggressivo e sottoposti a backpropagation più in profondità con lo stesso budget.
-
Completamente ispezionabile: ogni esecuzione restituisce un oggetto
OBPMetadatache registra i conteggi di Pauli per slice, i conteggi dei gruppi QWC e l'errore di troncamento accumulato, con helperplot_*per visualizzare la crescita dell'operatore e l'errore rispetto alla profondità del circuito — utile per regolare i budget prima di impegnare tempo QPU.
Contribuire
La guida per gli sviluppatori si trova in CONTRIBUTING.md nella radice del repository di questo progetto. Partecipando, ci si aspetta che tu rispetti il codice di condotta di Qiskit.
Usiamo le issue di GitHub per tracciare richieste e bug.
Citare questo pacchetto
Se usi questo pacchetto nella tua ricerca, usa il file CITATION.bib nel repository di questo progetto per citare i riferimenti appropriati.
Licenza
Politica di deprecazione
Questo pacchetto segue il versionamento semantico. Occasionalmente potremmo introdurre modifiche incompatibili per migliorare l'esperienza utente. Quando possibile, manterremo le vecchie interfacce contrassegnandole come deprecate, finché possono coesistere con quelle nuove. Ogni miglioramento sostanziale, modifica incompatibile o deprecazione sarà documentata nelle note di rilascio.
Riferimenti
-
- Fuller et al., “Improved quantum computation using operator backpropagation,” npj Quantum Inf. 12, 51 (2026). [arXiv]