Vai al contenuto principale
Questo progetto è in fase beta. Hai trovato un bug? Apri una issue su GitHub. Hai una domanda o un'idea? Chiedi su GitHub Discussions — apprezziamo il tuo feedback!
Com'è la qualità della traduzione su questa pagina?

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 backpropagate esegue l'OBP.

  • Due controlli indipendenti sul compromesso profondità ↔ accuratezza:

    • OperatorBudget limita quanto può crescere l'osservabile durante la backpropagation.

    • TruncationErrorBudget limita 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 OBPMetadata che registra i conteggi di Pauli per slice, i conteggi dei gruppi QWC e l'errore di troncamento accumulato, con helper plot_* 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​

Apache License 2.0

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​

    1. Fuller et al., “Improved quantum computation using operator backpropagation,” npj Quantum Inf. 12, 51 (2026). [arXiv]