Sari la conținutul principal

Prezentare generală a diagonalizării cuantice bazate pe eșantioane (SQD)

Diagonalizarea cuantică bazată pe eșantioane (SQD) este o tehnică clasică de post-procesare care acționează asupra eșantioanelor obținute dintr-un Circuit cuantic după execuția pe un QPU. Este utilă pentru găsirea valorilor proprii și a vectorilor proprii ai operatorilor cuantici, cum ar fi Hamiltonianul unui sistem cuantic, și folosește împreună calculul cuantic și cel clasic distribuit. Această tehnică de post-procesare poate fi deosebit de utilă pentru utilizatorii care simulează sisteme chimice sau alte sisteme cuantice.

Calculul clasic este folosit pentru a procesa eșantioanele obținute de la un procesor cuantic și pentru a proiecta și diagonaliza un Hamiltonian țintă într-un subspațiu generat de acestea. Astfel, SQD este robust față de eșantioanele afectate de zgomotul cuantic și poate gestiona Hamiltonieni mari, cum ar fi sisteme chimice cu milioane de termeni de interacțiune, dincolo de capacitățile metodelor exacte de diagonalizare.

Instrumentul SQD poate viza Hamiltonieni exprimați ca combinații liniare de operatori Pauli sau operatori Fermionici a doua cuantizare. Eșantioanele de intrare sunt obținute din Circuit-uri cuantice definite de utilizator, care sunt considerate reprezentări bune ale stărilor proprii (de exemplu, starea fundamentală) ale unui operator țintă. Rata de convergență a SQD în funcție de numărul de eșantioane se îmbunătățește odată cu creșterea rarității stării proprii țintă.

Instalarea pachetului SQD

Există două modalități de a instala pachetul SQD: PyPI și compilarea din sursă. Se recomandă instalarea acestor pachete într-un mediu virtual pentru a asigura separarea dependențelor între pachete.

Instalare din PyPI

Cea mai simplă modalitate de a instala pachetul qiskit-addon-sqd este prin PyPI.

pip install qiskit-addon-sqd

Compilare din sursă

Apasă aici pentru a citi cum să instalezi acest pachet manual

Dacă dorești să contribui la acest pachet sau vrei să îl instalezi manual, clonează mai întâi depozitul:

git clone git@github.com:Qiskit/qiskit-addon-sqd.git

și instalează pachetul prin pip. Depozitul conține, de asemenea, notebookuri de exemplu pe care le poți rula. Dacă plănuiești să dezvolți în cadrul depozitului, poți instala dependențele dev.

Ajustează opțiunile în funcție de nevoile tale.

pip install tox notebook -e '.[notebook-dependencies, dev]'

Context teoretic

Fluxul de lucru SQD folosind recuperarea auto-consistentă a configurațiilor este explicat în detaliu în [1]. Această secțiune oferă o prezentare generală a tehnicii ilustrate în diagrama de mai jos.

Diagramă SQD care ilustrează recuperarea configurației, colectarea subeșantioanelor și obținerea stărilor proprii din acele subeșantioane

Aici Xˉ\bar{\mathcal{X}} este un set de eșantioane zgomotoase care conțin, în contextul Hamiltonianului simulat, configurații fizice și ne-fizice (reprezentate ca șiruri de biți) obținute din execuția pe un QPU. Configurațiile ne-fizice sunt cauzate de zgomot și pot fi procesate prin metoda sqd.configuration_recovery.recover_configurations() pentru a rafina eșantioanele într-un nou set XR\mathcal{X}_R.

Din acest set, loturi de configurații S(1)... S(K)\mathcal{S}^{(1)}...\ \mathcal{S}^{(K)} sunt colectate conform unei distribuții proporționale cu frecvențele empirice ale fiecărui x\mathbf{x} din XR\mathcal{X}_R. Fiecare lot de configurații eșantionate acoperă un subspațiu, S(k):k=1,...,K\mathcal{S}^{(k)}: k = 1, ..., K, în care Hamiltonianul este proiectat și diagonalizat:

H^S(k)=P^S(k)H^P^S(k), with P^S(k)=xS(k)xx, \hat{H}_{S^{(k)}} = \hat{P}_{\mathcal{S}^{(k)}}\hat{H}\hat{P}_{\mathcal{S}^{(k)}}\text{, with } \hat{P}_{\mathcal{S}^{(k)}} = \sum_{\mathbf{x} \in \mathcal{S}^{(k)}} |\mathbf{x}\rangle\langle\mathbf{x}|,

unde H^S(k)\hat{H}_{\mathcal{S}^{(k)}} este Hamiltonianul unui subspațiu dat.

Partea esențială a fluxului de lucru SQD constă în diagonalizarea fiecăruia dintre acești Hamiltonieni de subspațiu. Stările fundamentale obținute din fiecare dintre aceste subspații, ψ(k)|\psi^{(k)}\rangle, sunt folosite pentru a produce o estimare a unui vector de referință al ocupanțelor n(K)\mathbf{n}^{(K)} calculat ca medie peste fiecare dintre cele KK subspații. Un nou set de configurații XR\mathcal{X}_R este apoi generat prin inversarea probabilistică a biților individuali pe baza acestei ocupanțe medii și a numărului total cunoscut de particule (greutatea Hamming) din sistem. Acest proces de recuperare a configurației este apoi repetat prin pregătirea unui nou set de subspații de diagonalizat, obținând noi stări proprii și ocupanță orbitală medie, și generând un nou set de configurații. Această buclă este iterată până când un criteriu specificat de utilizator este îndeplinit, iar procesul general este analog cu filtrarea unui semnal zgomotos pentru a-i îmbunătăți fidelitatea.

Pași următori

Recomandări

Referințe

[1] Robledo-Moreno, Javier, et al. "Chemistry beyond exact solutions on a quantum-centric supercomputer" arXiv preprint arXiv:2405.05068 (2024).