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?

Diagonalizzazione quantistica basata su campioni (SQD)

Questo pacchetto implementa la diagonalizzazione quantistica basata su campioni (SQD), una tecnica per trovare autovalori e autovettori di operatori quantistici, come l'hamiltoniana di un sistema quantistico [1–6]. Può affrontare hamiltoniane espresse come combinazioni lineari di operatori di Pauli o di operatori fermionici in seconda quantizzazione. I workflow basati su SQD possono essere eseguiti sugli attuali computer quantistici e si è dimostrato che scalano a dimensioni del problema oltre ciò che era possibile con i metodi variazionali, e persino oltre la portata dei metodi esatti di diagonalizzazione classica.

I workflow basati su SQD prevedono innanzitutto di preparare uno o più stati quantistici su un dispositivo quantistico e di campionarli. Poi si usa il calcolo distribuito classico per elaborare quei campioni rumorosi. Questa elaborazione avviene in modo iterativo in due passaggi: prima, un passaggio di recupero della configurazione corregge i campioni rumorosi usando informazioni sul problema di input; poi, l'hamiltoniana viene proiettata e diagonalizzata nel sottospazio generato da quei campioni. Questi passaggi vengono ripetuti in modo autoconsistente fino alla convergenza. Il risultato è un autovalore (energia) più basso approssimato e lo stato di energia più bassa di una data hamiltoniana. SQD è robusto rispetto a campioni corrotti dal rumore quantistico; anzi, finché dal computer quantistico si riesce a recuperare un segnale utile, il risultato di SQD sarà insensibile alle stringhe di bit rumorose.

qiskit-addon-sqd può essere usato in pratica per elaborare in modo classico campioni estratti da una varietà di circuiti quantistici. Per esempio:

  1. Un ansatz variazionale a circuito con parametri scelti in modo che il campionamento del circuito produca configurazioni elettroniche su cui la funzione d'onda target (per esempio lo stato fondamentale) ha un supporto significativo. Questo è interessante per le applicazioni chimiche in cui le hamiltoniane possono avere milioni di termini di interazione [1]. Per un esempio di questo approccio applicato alla chimica usando un circuito LUCJ, consulta il tutorial per approssimare l'energia dello stato fondamentale della molecola N2.
  2. Un insieme di stati della base di Krylov viene preparato su intervalli di tempo crescenti. Assumendo un buon stato iniziale e la sparsità dello stato fondamentale, è dimostrato che questo approccio converge in modo efficiente. Poiché occorre preparare su un dispositivo quantistico circuiti di evoluzione temporale trotterizzati, questo approccio è più adatto ad applicazioni a modelli reticolari [2] anziché a hamiltoniane many-body complesse come quelle della chimica quantistica. Per un esempio di questo approccio applicato a hamiltoniane reticolari fermioniche, consulta il tutorial per approssimare l'energia dello stato fondamentale di un modello di Anderson a singola impurità semplificato.
  3. Un insieme di stati della base di Krylov implementato con la compilazione randomizzata qDRIFT dell'operatore di evoluzione temporale. Questo approccio produce circuiti di profondità minore rispetto alle decomposizioni dell'evoluzione temporale basate su Trotter e quindi può essere usato per hamiltoniane della chimica quantistica. Questa tecnica è stata applicata all'energia dello stato fondamentale di idrocarburi policiclici aromatici [6].

Primi passi​

Una semplice guida per iniziare rapidamente con questo pacchetto è disponibile nella guida rapida.

Esempi di casi d'uso​

La tecnica di diagonalizzazione quantistica basata su campioni può essere usata per implementare un insieme eterogeneo di workflow. Alcuni esempi di dove è stata usata includono:

Discussione tecnica​

Dimensioni del sistema e requisiti computazionali​

Il costo computazionale di SQD è dominato dalle chiamate al solver di autostati. A ogni passo dell'iterazione di recupero autoconsistente delle configurazioni vengono eseguite n_batches chiamate al solver di autostati. Le diverse chiamate sono embarrassingly parallel. In questo tutorial tali chiamate si trovano all'interno di un ciclo for. Si raccomanda vivamente di eseguire queste chiamate in parallelo.

La funzione qiskit_addon_sqd.fermion.solve_fermion() è multithread ed è in grado di gestire sistemi con ~25 orbitali spaziali e ~10 elettroni con dimensioni del sottospazio di ~$10^7$, usando ~10-30 core.

Scelta delle dimensioni del sottospazio​

La scelta della dimensione del sottospazio influisce sull'accuratezza e sul tempo di esecuzione del solver di autostati. Più grande è il sottospazio, più accurato è il calcolo, al prezzo di maggiori requisiti di tempo di esecuzione e di memoria. La dimensione ottimale del sottospazio per un dato sistema non è nota; si può quindi eseguire uno studio di convergenza rispetto alla dimensione del sottospazio, come descritto in questa guida.

Limitare la dimensione del sottospazio​

L'argomento samples_per_batch di qiskit_addon_sqd.fermion.diagonalize_fermionic_hamiltonian() imposta il numero di bitstring contenute in ciascun batch e controlla così indirettamente la dimensione del sottospazio: nel caso delle applicazioni di chimica quantistica, il suo valore fissa un limite superiore alla dimensione del sottospazio. La dimensione che si ottiene effettivamente dipende da quante delle bitstring campionate sono distinte e cresce nel corso delle iterazioni di recupero autoconsistente delle configurazioni, quindi non è nota in anticipo. Consulta questo esempio per maggiori dettagli.

L'argomento max_dim della stessa funzione limita direttamente la dimensione, restringendo il numero di stringhe CI mantenute in ciascun settore di spin. Poiché il sottospazio è generato dal prodotto cartesiano dei due settori di spin, max_dim=d limita la dimensione del sottospazio a d**2, mentre una tupla max_dim=(d_a, d_b) limita separatamente i settori spin-alpha e spin-beta, restringendo la dimensione del sottospazio a d_a * d_b (con symmetrize_spin=True, i due limiti devono essere uguali). Quando un batch produce più stringhe CI di quante il limite ne consenta, vengono mantenute con priorità le stringhe richieste tramite include_configurations e quelle riportate dall'iterazione precedente, mentre gli slot rimanenti sono riempiti con le stringhe campionate più frequentemente. Poiché limita la dimensione della diagonalizzazione più grande che il solver di autostati dovrà eseguire, max_dim è un modo comodo per mantenere il solver entro un budget di tempo di esecuzione e di memoria. Consulta questa guida per maggiori dettagli.

Solver​

I passi di proiezione e diagonalizzazione sono eseguiti da un solver classico. Qui forniamo due solver generici, uno per sistemi fermionici e uno per sistemi di qubit. Altri solver, che potrebbero essere più efficienti per sistemi specifici, possono essere integrati dagli utenti.

Trim SQD​

L'SQD standard diagonalizza ogni batch sottocampionato in modo indipendente e conserva il risultato migliore, quindi il numero di configurazioni che può considerare è limitato a quanto può contenere un singolo sottospazio sostenibile. Trim SQD invece suddivide le bitstring in batch, esegue una diagonalizzazione intermedia di ciascun batch e poi esegue una diagonalizzazione più grande usando i determinanti di peso maggiore di ciascuna partizione. Questo metodo si basa su una ricerca congiunta di Cleveland Clinic Foundation, RIKEN e IBM [7] e può essere abilitato passando un oggetto TrimPolicy alla funzione diagonalize_fermionic_hamiltonian().

Contribuire​

Il codice sorgente è disponibile su GitHub.

La guida per gli sviluppatori si trova in CONTRIBUTING.md nella radice del repository di questo progetto. Partecipando, ti impegni a rispettare 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.

Ringraziamenti​

Questo pacchetto include una strategia di campionamento opzionale all'interno del ciclo di recupero autoconsistente delle configurazioni, che elimina determinanti in base ai risultati della diagonalizzazione intermedia. L'implementazione si basa su una ricerca congiunta di Cleveland Clinic Foundation, RIKEN e IBM. Se usi questa funzionalità nella tua ricerca, utilizza anche la citazione dell'articolo, che si trova nel file CITATION.bib con la chiave di citazione merz2026crossing. Si prevede che presto sarà disponibile su GitHub un'implementazione dell'intero flusso di lavoro di quell'articolo.

Licenza​

Apache License 2.0

Politica di deprecazione​

Seguiamo il versionamento semantico. Occasionalmente possiamo introdurre modifiche non retrocompatibili per migliorare l'esperienza utente. Quando possibile, manterremo le vecchie interfacce contrassegnandole come deprecate, finché possono coesistere con le nuove. Ogni miglioramento sostanziale, modifica non retrocompatibile o deprecazione sarà documentato nelle note di rilascio.

Riferimenti​

  1. Javier Robledo-Moreno, et al., Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer, arXiv:2405.05068 [quant-ph].

  2. Jeffery Yu, et al., Quantum-Centric Algorithm for Sample-Based Krylov Diagonalization, arXiv:2501.09702 [quant-ph].

  3. Keita Kanno, et al., Quantum-Selected Configuration Interaction: classical diagonalization of Hamiltonians in subspaces selected by quantum computers, arXiv:2302.11320 [quant-ph].

  4. Kenji Sugisaki, et al., Hamiltonian simulation-based quantum-selected configuration interaction for large-scale electronic structure calculations with a quantum computer, arXiv:2412.07218 [quant-ph].

  5. Mathias Mikkelsen, Yuya O. Nakagawa, Quantum-selected configuration interaction with time-evolved state, arXiv:2412.13839 [quant-ph].

  6. Samuele Piccinelli, et al., Quantum chemistry with provable convergence via randomized sample-based Krylov quantum diagonalization, arXiv:2508.02578 [quant-ph].

  7. Kenneth M. Merz Jr., et al., Crossing the 12,000-atom barrier with heterogeneous quantum-classical supercomputing: quantum chemistry of protein-ligand complexes, arXiv:2605.01138 [quant-ph].