Vai al contenuto principale

Algoritmi variazionali

Prima di iniziare, ti chiediamo di completare questo breve sondaggio pre-corso, che è importante per migliorare i nostri contenuti e l'esperienza utente.

Questo corso copre i dettagli degli algoritmi variazionali e degli algoritmi ibridi quantistici-classici a breve termine basati sul teorema variazionale della meccanica quantistica. Questi algoritmi possono sfruttare l'utilità offerta dai computer quantistici non fault-tolerant di oggi, rendendoli candidati ideali per ottenere il vantaggio quantistico.

Nel corso di questo percorso esploreremo:

  • Ogni fase del flusso di lavoro per la progettazione di algoritmi variazionali
  • I compromessi associati a ciascuna fase
  • Come usare le primitive di Qiskit Runtime per ottimizzare velocità e accuratezza

Sebbene questo corso sia pensato come punto di partenza per ricercatori e sviluppatori che vogliono esplorare l'utilità dei computer quantistici, sentiti libero/a di approfondire le conoscenze teoriche e fondamentali dell'informatica quantistica in generale nel corso Basics of Quantum Information and Computation (disponibile anche come serie di video su YouTube).

Flusso ibrido semplificato

Flusso di un algoritmo variazionale che mostra i passi: inizializza il problema, prepara l'ansatz, valuta la funzione di costo, ottimizza i parametri. Gli algoritmi variazionali includono diversi componenti modulari che possono essere combinati e ottimizzati in base ai progressi degli algoritmi, del software e dell'hardware. Questi comprendono una funzione di costo che descrive un problema specifico con un insieme di parametri, un ansatz per esprimere lo spazio di ricerca con questi parametri, e un ottimizzatore per esplorare iterativamente lo spazio di ricerca. A ogni iterazione, l'ottimizzatore valuta la funzione di costo con i parametri correnti e seleziona i parametri per l'iterazione successiva, finché non converge su una soluzione ottimale. La natura ibrida di questa famiglia di algoritmi deriva dal fatto che le funzioni di costo vengono valutate usando risorse quantistiche e ottimizzate tramite risorse classiche.

  1. Inizializza il problema: Gli algoritmi variazionali iniziano inizializzando il computer quantistico in uno stato predefinito 0|0\rangle, trasformandolo poi in uno stato desiderato (non parametrizzato) ρ|\rho\rangle, che chiameremo stato di riferimento.

    Questa trasformazione è rappresentata dall'applicazione di un operatore unitario di riferimento URU_R sullo stato predefinito, tale che UR0=ρU_R|0\rangle = |\rho\rangle.

  2. Prepara l'ansatz: Per iniziare a ottimizzare iterativamente dallo stato predefinito 0|0\rangle verso lo stato target ψ(θ)|\psi(\vec\theta)\rangle, dobbiamo definire una forma variazionale UV(θ)U_V(\vec\theta) che rappresenti un insieme di stati parametrizzati che l'algoritmo variazionale esplorerà.

    Chiamiamo ansatz qualsiasi particolare combinazione di stato di riferimento e forma variazionale, tale che: UA(θ):=UV(θ)URU_A(\vec\theta) := U_V(\vec\theta) U_R. Gli ansatz assumono in definitiva la forma di circuiti quantistici parametrizzati capaci di portare lo stato predefinito 0|0\rangle allo stato target ψ(θ)|\psi(\vec\theta)\rangle.

    In sintesi avremo:

    0URUR0=ρUV(θ)UA(θ)0=UV(θ)UR0=UV(θ)ρ=ψ(θ)\begin{aligned} |0\rangle \xrightarrow{U_R} U_R|0\rangle & = |\rho\rangle \xrightarrow{U_V(\vec{\theta})} U_A(\vec{\theta})|0\rangle \\[1mm] & = U_V(\vec{\theta})U_R|0\rangle \\[1mm] & = U_V(\vec{\theta})|\rho\rangle \\[1mm] & = |\psi(\vec{\theta})\rangle \\[1mm] \end{aligned}
  3. Valuta la funzione di costo: Possiamo codificare il nostro problema in una funzione di costo C(θ)C(\vec\theta) come combinazione lineare di operatori di Pauli, da eseguire su un sistema quantistico. Sebbene queste informazioni possano riguardare un sistema fisico, come l'energia o lo spin, è possibile codificare anche problemi non fisici. Possiamo sfruttare le primitive di Qiskit Runtime per gestire il rumore con soppressione ed attenuazione degli errori durante la valutazione della funzione di costo.

  4. Ottimizza i parametri: Le valutazioni vengono inviate a un computer classico, dove un ottimizzatore classico le analizza e sceglie il prossimo insieme di valori per i parametri variazionali. Se disponiamo di una soluzione ottimale preesistente, possiamo impostarla come punto iniziale θ0\vec\theta_0 per fare da bootstrap all'ottimizzazione. Usare questo stato iniziale ψ(θ0)|\psi(\vec\theta_0)\rangle può aiutare l'ottimizzatore a trovare una soluzione valida più rapidamente.

  5. Aggiusta i parametri dell'ansatz con i risultati e riesegui: L'intero processo viene ripetuto finché i criteri di finalizzazione dell'ottimizzatore classico non sono soddisfatti, e viene restituito un insieme ottimale di valori dei parametri θ\vec\theta^*. Lo stato soluzione proposto per il nostro problema sarà quindi ψ(θ)=UA(θ)0|\psi(\vec\theta^*)\rangle = U_A(\vec\theta^*)|0\rangle.

Teorema variazionale

Un obiettivo comune degli algoritmi variazionali è trovare lo stato quantistico con il valore proprio più basso o più alto di un certo osservabile. Un'intuizione fondamentale che useremo è il teorema variazionale della meccanica quantistica. Prima di enunciarlo nella sua forma completa, esploriamo l'intuizione matematica che lo sostiene.

Intuizione matematica per l'energia e gli stati fondamentali

In meccanica quantistica, l'energia si presenta sotto forma di un osservabile quantistico solitamente chiamato Hamiltoniano, che indicheremo con H^\hat{\mathcal{H}}. Consideriamo la sua decomposizione spettrale:

H^=k=0N1λkϕkϕk\hat{\mathcal{H}} = \sum_{k=0}^{N-1} \lambda_k |\phi_k\rangle \langle \phi_k|

dove NN è la dimensionalità dello spazio degli stati, λk\lambda_{k} è il kk-esimo valore proprio o, fisicamente, il kk-esimo livello energetico, e ϕk|\phi_k\rangle è il corrispondente autostato: H^ϕk=λkϕk\hat{\mathcal{H}}|\phi_k\rangle = \lambda_k |\phi_k\rangle. L'energia attesa di un sistema nello stato (normalizzato) ψ|\psi\rangle sarà:

ψH^ψ=ψ(k=0N1λkϕkϕk)ψ=k=0N1λkψϕkϕkψ=k=0N1λkψϕk2\begin{aligned} \langle \psi | \hat{\mathcal{H}} | \psi \rangle & = \langle \psi |\bigg(\sum_{k=0}^{N-1} \lambda_k |\phi_k\rangle \langle \phi_k|\bigg) | \psi \rangle \\[1mm] & = \sum_{k=0}^{N-1} \lambda_k \langle \psi |\phi_k\rangle \langle \phi_k| \psi \rangle \\[1mm] & = \sum_{k=0}^{N-1} \lambda_k |\langle \psi |\phi_k\rangle|^2 \\[1mm] \end{aligned}

Tenendo conto che λ0λk,k\lambda_0\leq \lambda_k, \forall k, abbiamo:

ψH^ψ=k=0N1λkψϕk2k=0N1λ0ψϕk2=λ0k=0N1ψϕk2=λ0\begin{aligned} \langle \psi | \hat{\mathcal{H}} | \psi \rangle & = \sum_{k=0}^{N-1} \lambda_k |\langle \psi |\phi_k\rangle|^2 \\[1mm] & \geq \sum_{k=0}^{N-1} \lambda_0 |\langle \psi |\phi_k\rangle|^2 \\[1mm] & = \lambda_0 \sum_{k=0}^{N-1} |\langle \psi |\phi_k\rangle|^2 \\[1mm] & = \lambda_0 \\[1mm] \end{aligned}

Poiché {ϕk}k=0N1\{|\phi_k\rangle \}_{k=0}^{N-1} è una base ortonormale, la probabilità di misurare ϕk|\phi_{k} \rangle è pk=ψϕk2p_k = |\langle \psi |\phi_{k} \rangle |^2, e la somma di tutte le probabilità è tale che k=0N1ψϕk2=k=0N1pk=1\sum_{k=0}^{N-1} |\langle \psi |\phi_k\rangle|^2 = \sum_{k=0}^{N-1}p_k = 1. In breve, l'energia attesa di qualsiasi sistema è superiore all'energia minima, ossia all'energia dello stato fondamentale:

ψH^ψλ0.\langle \psi | \hat{\mathcal{H}} | \psi \rangle \geq \lambda_0.

L'argomento precedente si applica a qualsiasi stato quantistico valido (normalizzato) ψ|\psi\rangle, quindi è possibile considerare stati parametrizzati ψ(θ)|\psi(\vec\theta)\rangle che dipendono da un vettore di parametri θ\vec\theta. È qui che entra in gioco la parte "variazionale". Se consideriamo una funzione di costo data da C(θ):=ψ(θ)H^ψ(θ)C(\vec\theta) := \langle \psi(\vec\theta)|\hat{\mathcal{H}}|\psi(\vec\theta)\rangle e vogliamo minimizzarla, il minimo soddisferà sempre:

minθC(θ)=minθψ(θ)H^ψ(θ)λ0.\min_{\vec\theta} C(\vec\theta) = \min_{\vec\theta} \langle \psi(\vec\theta)|\hat{\mathcal{H}}|\psi(\vec\theta)\rangle \geq \lambda_0.

Il valore minimo di C(θ)C(\vec\theta) sarà il più vicino che si possa raggiungere a λ0\lambda_0 usando gli stati parametrizzati ψ(θ)|\psi(\vec\theta)\rangle, e l'uguaglianza si raggiungerà solo se esiste un vettore di parametri θ\vec\theta^* tale che ψ(θ)=ϕ0.|\psi(\vec\theta^*)\rangle = |\phi_0\rangle.

Teorema variazionale della Meccanica Quantistica

Se lo stato (normalizzato) ψ|\psi\rangle di un sistema quantistico dipende da un vettore di parametri θ\vec\theta, allora l'approssimazione ottimale dello stato fondamentale (ossia l'autostato ϕ0|\phi_0\rangle con il valore proprio minimo λ0\lambda_0) è quello che minimizza il valore di aspettazione dell'Hamiltoniano H^\hat{\mathcal{H}}:

H^(θ):=ψ(θ)H^ψ(θ)λ0\langle \hat{\mathcal{H}} \rangle(\vec\theta) := \langle \psi(\vec\theta) |\hat{\mathcal{H}}| \psi(\vec\theta) \rangle \geq \lambda_0

Il motivo per cui il teorema variazionale è enunciato in termini di minimi energetici è che include alcune assunzioni matematiche:

  • Per ragioni fisiche, deve esistere un limite inferiore finito all'energia Eλ0>E \geq \lambda_0 > -\infty, anche per NN\rightarrow\infty.
  • I limiti superiori in generale non esistono.

Tuttavia, dal punto di vista matematico, non c'è nulla di speciale nell'Hamiltoniano H^\hat{\mathcal{H}} al di là di queste assunzioni, quindi il teorema può essere generalizzato ad altri osservabili quantistici e ai loro autostati, a condizione che rispettino gli stessi vincoli. Si noti inoltre che, se esistessero limiti superiori finiti, gli stessi argomenti matematici potrebbero essere utilizzati per massimizzare i valori propri, scambiando i limiti inferiori con quelli superiori.

Riepilogo

Con questa lezione hai ottenuto una visione d'insieme degli algoritmi variazionali. Nelle lezioni successive esploreremo ogni fase in maggiore dettaglio, insieme ai relativi compromessi.