Diagonalizzazione quantistica basata su campioni (SQD)
Questo pacchetto implementa la diagonalizzazione quantistica basata su campioni (SQD), una tecnica per calcolare gli autovalori e gli autovettori degli operatori quantistici, come ad esempio l'hamiltoniano di un sistema quantistico [1–6]. Può essere applicato agli hamiltoniani espressi come combinazioni lineari di operatori di Pauli o di operatori fermionici di seconda quantizzazione. I flussi di lavoro basati su SQD possono essere eseguiti sugli attuali computer quantistici e hanno dimostrato di poter scalare fino a dimensioni dei problemi superiori a quelle raggiungibili con i metodi variazionali — e persino oltre la portata dei metodi classici di diagonalizzazione esatti.
I flussi di lavoro basati su SQD prevedono innanzitutto la preparazione di uno o più stati quantistici su un dispositivo quantistico e il campionamento da essi. Successivamente, si ricorre al calcolo distribuito classico per elaborare tali campioni affetti da rumore. Questa elaborazione avviene in modo iterativo in due fasi: in primo luogo, una fase di recupero della configurazione corregge i campioni affetti da rumore utilizzando le informazioni relative al problema di input; in secondo luogo, l'hamiltoniano viene proiettato e diagonalizzato nel sottospazio generato da tali campioni. Questi passaggi vengono ripetuti in modo coerente fino alla convergenza. Il risultato è un valore approssimativo dell'autovalore minimo (energia) e dello stato proprio a energia minima di un dato hamiltoniano. L'SQD è resistente ai campioni distorti dal rumore quantistico; infatti, purché sia possibile ricavare un segnale utile dal computer quantistico, il risultato dell'SQD non sarà influenzato dalle stringhe di bit soggette a rumore.
qiskit-addon-sqd può essere utilizzato per elaborare in modo classico campioni ricavati, nella pratica, da una varietà di circuiti quantistici. Ad esempio:
- Un approccio basato su un circuito variazionale con parametri scelti in modo tale che il campionamento del circuito produca configurazioni elettroniche sulle quali la funzione d'onda di riferimento (ad esempio, lo stato fondamentale) abbia un supporto significativo. Ciò risulta interessante per le applicazioni nel campo della chimica, dove gli hamiltoniani possono contenere milioni di termini di interazione [1]. Per un esempio di questo approccio applicato alla chimica mediante un circuito LUCJ, si veda il tutorial dedicato all'approssimazione dell'energia dello stato fondamentale della molecola di N2.
- Viene preparato un insieme di stati di base di Krylov a intervalli di tempo crescenti. Partendo dal presupposto che lo stato iniziale sia corretto e che lo stato fondamentale sia poco denso, è stato dimostrato che questo approccio converge in modo efficiente. Poiché è necessario preparare circuiti di evoluzione temporale di tipo Trotter su un dispositivo quantistico, questo approccio è più indicato per le applicazioni ai modelli a reticolo [2] piuttosto che per gli Hamiltoniani complessi a molti corpi, come quelli utilizzati nella chimica quantistica. Per un esempio di questo approccio applicato agli hamiltoniani su reticolo fermionico, si veda il tutorial sull’approssimazione dell’energia dello stato fondamentale di un modello di Anderson semplificato a singola impurità.
- Un insieme di stati di base di Krylov implementato mediante una compilazione randomizzat qDRIFT e dell'operatore di evoluzione temporale. Questo approccio consente di ottenere circuiti di profondità inferiore rispetto alle decomposizioni dell'evoluzione temporale basate sul metodo di Trotter e può quindi essere utilizzato per gli hamiltoniani della chimica quantistica. Questa tecnica è stata applicata all'energia dello stato fondamentale degli idrocarburi policiclici aromatici [6].
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 tecnica di diagonalizzazione quantistica basata su campioni può essere utilizzata per implementare una vasta gamma di flussi di lavoro. Ecco alcuni esempi di dove è stato utilizzato:
- Calcoli della struttura elettronica relativi alle energie dello stato fondamentale dei cluster ferro-zolfo
- Stima delle energie dello stato fondamentale per prevedere i band gap dei dielettrici
- Stima degli stati eccitati molecolari a bassa energia
- Simulazione delle interazioni tra molecole
- Studio delle interazioni soluto-solvente nelle simulazioni della struttura elettronica
- Analisi a guscio aperto della dissociazione molecolare
- Modellizzazione dei percorsi di reazione per problemi di fotochimica
- In combinazione con la tecnica di "entanglement forging", per studiare i percorsi di reazione alla base del degrado dei materiali tramite l'estrazione di idrogeno
- Costruzione di sottospazi a partire dagli stati della base di Krylov quantistica per eseguire simulazioni dello stato fondamentale di modelli di impurità per sistemi fermionici
- Utilizzo di una compilazione randomizzata di tipo “ qDRIFT ” per ridurre il sovraccarico legato all’implementazione degli stati di base di Krylov per gli hamiltoniani chimici, con applicazione a una molecola che presenta una topologia elettronica di tipo “half-Mobius”
- L'utilizzo di SQD come risolutore nell'ambito dei metodi di embedding e frammentazione per i sistemi molecolari, ad esempio per calcolare le energie degli anelli di idrogeno e del cicloesano, nonché dei complessi bi- e trimetallici, per studiare la reazione di riduzione dell'ossigeno, per stimare le energie delle proteine e dei complessi proteina-ligando e per prevedere la speciazione del trizio.
Discussione tecnica
Dimensioni del sistema e requisiti di calcolo
Il costo computazionale dell'SQD è determinato principalmente dalle chiamate al risolutore degli stati propri. In ogni fase dell'iterazione di recupero della configurazione auto-consistente, vengono eseguiti n_batch di chiamate al risolutore degli stati propri. Le diverse chiamate sono imbarazzantemente parallele. In questo tutorial, tali chiamate si trovano all'interno di un ciclo for. Si consiglia vivamente di eseguire queste chiamate in parallelo.
La qiskit_addon_sqd.fermion.solve_fermion() funzione è multithread e in grado di gestire sistemi con circa 25 orbitali spaziali e circa 10 elettroni con dimensioni del sottospazio di circa $10^7$, utilizzando circa 10-30 core.
Scelta delle dimensioni del sottospazio
La scelta della dimensione del sottospazio influisce sulla precisione e sul tempo di esecuzione del risolutore degli stati propri. Più ampio è il sottospazio, maggiore è la precisione del calcolo, a scapito però di un aumento dei tempi di esecuzione e dei requisiti di memoria. La dimensione ottimale del sottospazio di un dato sistema non è nota; pertanto, è possibile effettuare uno studio di convergenza in funzione della dimensione del sottospazio, come descritto nella presente guida.
La dimensione del sottospazio viene impostata indirettamente
In questo pacchetto, l'utente controlla il numero di stringhe di bit contenute in ciascun sottospazio tramite l'argomento samples\_per\_batch in qiskit_addon_sqd.subsampling.postselect_and_subsample(). Il valore di questo argomento definisce un limite superiore alla dimensione del sottospazio nel caso delle applicazioni alla chimica quantistica. Per ulteriori dettagli, consulta questo esempio.
Risolvi-problemi
Le fasi di proiezione e diagonalizzazione vengono eseguite da un risolutore classico. Qui mettiamo a disposizione due risolutori generici, uno per i sistemi fermionici e un altro per i sistemi a qubit. Gli utenti possono integrare altri risolutori che potrebbero rivelarsi più efficienti per sistemi specifici.
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 la sezione "Issues" GitHub per tenere traccia delle richieste e dei bug.
Riferimento a 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 significativo, modifica che comporta incompatibilità o funzionalità deprecata sarà documentato nelle note di rilascio.
Riferimenti
-
Javier Robledo-Moreno e altri, La chimica oltre le soluzioni esatte su un supercomputer quantistico, arXiv:2405.05068[ quant-ph].
-
Jeffery Yu e altri, Algoritmo quantistico-centrico per la diagonalizzazione di Krylov basata su campioni, arXiv:2501.09702 [quant-ph].
-
Keita Kanno e altri, Interazione di configurazione selezionata quantisticamente: diagonalizzazione classica degli hamiltoniani in sottospazi selezionati da computer quantistici, arXiv:2302.11320 [quant-ph].
-
Kenji Sugisaki e altri, Interazione di configurazione a selezione quantistica basata su simulazioni hamiltoniane per calcoli su larga scala della struttura elettronica con un computer quantistico, arXiv:2412.07218 [quant-ph].
-
Mathias Mikkelsen, Yuya O. Nakagawa, “Interazione di configurazione selezionata quantisticamente con stato evoluto nel tempo ”, arXiv:2412.13839 [quant-ph].
-
Samuele Piccinelli e altri, Chimica quantistica con convergenza dimostrabile tramite diagonalizzazione quantistica di Krylov basata su campioni casuali, arXiv:2508.02578 [quant-ph].