Panoramica della diagonalizzazione quantistica basata su campioni (SQD)
La diagonalizzazione quantistica basata su campioni (SQD) è una tecnica di post-elaborazione classica che agisce sui campioni ottenuti da un circuito quantistico dopo l'esecuzione su una QPU. È utile per trovare autovalori e autovettori di operatori quantistici, come l'Hamiltoniano di un sistema quantistico, e combina il calcolo quantistico con quello classico distribuito. Questa tecnica di post-elaborazione può essere particolarmente utile per gli utenti che simulano sistemi chimici o altri sistemi quantistici.
Il calcolo classico viene usato per elaborare i campioni ottenuti da un processore quantistico e per proiettare e diagonalizzare un Hamiltoniano target in un sottospazio da essi generato. Ciò permette a SQD di essere robusto rispetto ai campioni corrotti dal rumore quantistico e di gestire Hamiltoniani di grandi dimensioni, come sistemi chimici con milioni di termini in interazione, al di là della portata dei metodi di diagonalizzazione esatta.
Lo strumento SQD può trattare Hamiltoniani espressi come combinazioni lineari di operatori di Pauli o operatori fermionici a seconda quantizzazione. I campioni di input sono ottenuti da circuiti quantistici definiti dall'utente, ritenuti buone rappresentazioni degli autostati (ad esempio, lo stato fondamentale) di un operatore target. La velocità di convergenza di SQD in funzione del numero di campioni migliora con la sparsità dell'autostato target.
Installare il pacchetto SQD​
Ci sono due modi per installare il pacchetto SQD: PyPI e la compilazione dal sorgente. Si raccomanda di installare questi pacchetti in un ambiente virtuale per garantire la separazione tra le dipendenze dei pacchetti.
Installare da PyPI​
Il modo più diretto per installare il pacchetto qiskit-addon-sqd è tramite PyPI.
pip install qiskit-addon-sqd
Compilare dal sorgente​
Clicca qui per leggere come installare questo pacchetto manualmente
Se desideri contribuire a questo pacchetto o vuoi installarlo manualmente, clona prima il repository:
git clone git@github.com:Qiskit/qiskit-addon-sqd.git
e installa il pacchetto tramite pip. Il repository contiene anche notebook di esempio che puoi eseguire. Se hai intenzione di sviluppare nel repository, puoi installare le dipendenze dev.
Adatta le opzioni alle tue esigenze.
pip install tox notebook -e '.[notebook-dependencies, dev]'
Fondamenti teorici​
Il flusso di lavoro SQD con recupero della configurazione auto-consistente è spiegato in dettaglio in [1]. Questa sezione fornisce una panoramica della tecnica illustrata nel diagramma seguente.

Qui è un insieme di campioni rumorosi che contengono, nel contesto dell'Hamiltoniano simulato, configurazioni fisiche e non fisiche (rappresentate come stringhe di bit) ottenute dall'esecuzione su una QPU. Le configurazioni non fisiche sono dovute al rumore e possono essere elaborate dal metodo sqd.configuration_recovery.recover_configurations() per raffinare i campioni in un nuovo insieme .
Da questo insieme, batch di configurazioni vengono raccolti secondo una distribuzione proporzionale alle frequenze empiriche di ciascun in . Ogni batch di configurazioni campionate genera un sottospazio, , nel quale l'Hamiltoniano viene proiettato e diagonalizzato:
dove è l'Hamiltoniano di un dato sottospazio.
La parte centrale del flusso di lavoro SQD consiste nella diagonalizzazione di ciascuno di questi Hamiltoniani di sottospazio. Gli stati fondamentali ottenuti da ciascuno di questi sottospazi, , vengono utilizzati per produrre una stima di un vettore di riferimento delle occupazioni mediato su ciascuno dei sottospazi. Un nuovo insieme di configurazioni viene quindi generato capovolgendo probabilisticamente i singoli bit in base a questa occupazione media e al numero totale noto di particelle (peso di Hamming) nel sistema. Questo processo di recupero della configurazione viene poi ripetuto preparando un nuovo insieme di sottospazi da diagonalizzare, ottenendo nuovi autostati e nuova occupazione orbitale mediata, e generando un nuovo insieme di configurazioni. Questo ciclo viene iterato fino al raggiungimento di un criterio specificato dall'utente, e il processo complessivo è analogo al filtraggio di un segnale rumoroso per migliorarne la fedeltà .
Passi successivi​
- Leggi la pagina introduttiva a SQD.
- Leggi il tutorial su come migliorare la stima dell'energia con SQD.
Riferimenti​
[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).