Sample-based Quantum Diagonalization (SQD)
Pinagsasama ng sample-based quantum diagonalization (SQD) ang klasikal na linear algebra at ang kapangyarihan ng quantum computing para i-diagonalize ang isang Hamiltonian (matrix) at makuha ang mga eigenvalue at eigenvector nito. Ang diagonalization ng matrix ay isang mahalagang operasyong matematikal dahil maraming problema sa agham, kompyutasyon, at optimisasyon ang gumagamit ng pamamaraang ito.
Ang video sa ibaba ay nagbibigay ng pangkalahatang-ideya ng SQD, kung ano ang nagtatakda ng pagiging kapaki-pakinabang nito, at kung bakit ito mas mabilis kaysa sa maraming ibang paraan. Ang kasunod na teksto ay nagbibigay ng mas detalyadong impormasyon.
1. Panimula at motibasyonβ
Bilang halimbawa, isaalang-alang ang energy eigenvalue equation na ginawang sikat ni SchrΓΆdinger.
Ang ay ang Hamiltonian ng isang sistema, ang ay ang wave function (kilala rin bilang eigenstate), at ang ay isang eigenvalue. Ang mga eigenvalue ng matrix ay kumakatawan sa mga antas ng enerhiya ng sistema. Halimbawa, kung ang sistema ay isang molekula, ang pinakamababang eigenvalue ay kumakatawan sa ground state energy ng molekula. Sa maraming problema, interesado tayo sa pagtatantya ng ground state energy.
Sa pamamagitan ng paglalapat ng eksaktong diagonalization techniques mula sa linear algebra, maaari nating i-diagonalize ang buong matrix . Gayunpaman, nagiging mahal ang computationally ang pamamaraan (maging imposible) habang lumalaki ang matrix. Halimbawa, maging para sa maliliit na kemikal na molekula, ang ay maaaring maging napakalaki (halimbawa, ang Hamiltonian para sa molekulang na may cc-PVDZ basis ay may dimensyon na
Sa kabutihang palad, hindi natin palaging kailangan ang lahat ng eigenvalue at eigenvector ng Hamiltonian , kaya sa maraming praktikal na kaso, hindi na kailangang i-diagonalize ang buong matrix. Halimbawa, para sa ground state estimation, interesado tayo sa pinakamababang eigenvalue at sa kaukulang eigenvector. Nagbibigay-daan ito sa atin na gamitin ang konsepto ng projection sa isang (kapaki-pakinabang na) subspace.
Isaalang-alang ang isang matrix, , kung saan ang kumpletong vector space (Hilbert space) ay may dimensyon na ( ay malaki). Susunod, pumipili tayo ng subspace () β na isang subset ng buong Hilbert space β na may dimensyon na , kung saan ang ay sapat na maliit. Pagkatapos ng pag-project ng sa subspace na ito, ang projected matrix (sabihin nating ) ay magiging mas maliit (). Ang mas maliit na ay maaaring i-diagonalize gamit ang isang angkop na klasikal na numerical method, at makabuo ng mga eigenvalue at eigenvector para sa subspace na iyon.
Tandaan na ang subspace ay dapat nasa support ng ating target (halimbawa, ground) eigenstate. Sa ibang salita, ang projected Hamiltonian ay dapat nasa subspace na kinabibilangan ng pinakamababang eigenvalue.
2. Projection at Diagonalizationβ
Ipagpalagay na gusto nating hanapin ang pinakamababang eigenvalue at ang kaukulang eigenvector para sa sumusunod na Hamiltonian matrix .
I-diagonalize natin ang buong matrix kasama ang iba't ibang projected na bersyon () para sa iba't ibang subspace upang ipakita ang scalability at kahalagahan ng pagpili ng subspace.
Ang ground state energy (minimum eigenvalue) ng matrix ay at ang eksaktong ground state wave function (eigenvector) ay:
Ibig sabihin, ang ground state ng matrix ay sakop ng dalawang computational basis states (vectors) at .
# Added by doQumentation β required packages for this notebook
!pip install -q numpy scipy
import numpy as np
from scipy.linalg import eigh
np.set_printoptions(precision=4, sign="-", suppress=True, linewidth=100)
H = np.array(
[
[0.2235, -0.039, -0.1035, -0.0818, 0.1746, 0.1091, 0.1165, -0.0104],
[-0.0390, 0.6621, 0.0706, -0.1964, -0.0782, 0.2619, 0.1095, 0.0029],
[-0.1035, 0.0706, 0.9961, 0.1724, 0.1067, -0.2299, -0.1817, 0.1571],
[-0.0818, -0.1964, 0.1724, -0.1773, 0.1019, -0.4778, -0.1272, -0.0414],
[0.1746, -0.0782, 0.1067, 0.1019, 0.1418, -0.1359, -0.1793, -0.0766],
[0.1091, 0.2619, -0.2299, -0.4778, -0.1359, 0.1014, 0.1696, 0.0552],
[0.1165, 0.1095, -0.1817, -0.1272, -0.1793, 0.1696, 0.4227, 0.2702],
[-0.0104, 0.0029, 0.1571, -0.0414, -0.0766, 0.0552, 0.2702, 0.4456],
]
)
eigvals, eigvecs = eigh(H)
print("Eigenvalues:")
print(eigvals)
print(f"Minimum eigenvalue: {eigvals.min()}")
print("\nEigenvectors (columns represent vectors):")
print(eigvecs)
print("\nEigenvector for the minimum eigenvalue (ground state)")
print(eigvecs[:, np.argmin(eigvals)])
Eigenvalues:
[-0.5357 -0.1321 0.1049 0.1258 0.3616 0.6405 0.947 1.3039]
Minimum eigenvalue: -0.5356560029438817
Eigenvectors (columns represent vectors):
[[-0. -0.5612 0.098 -0.0024 0.8051 -0.0806 0.0643 0.1288]
[-0. -0.1403 -0.1985 -0.4249 -0.0092 0.585 -0.5952 0.2526]
[ 0. 0.0416 0.3041 0.2122 0.1509 -0.0139 -0.5794 -0.7086]
[ 0.8 -0.1936 -0.0127 -0.4376 -0.1081 -0.0838 0.1557 -0.2966]
[ 0. 0.6716 -0.3535 -0.2552 0.5395 0.0954 0.1449 -0.1941]
[ 0.6 0.258 0.017 0.5834 0.1441 0.1118 -0.2076 0.3954]
[ 0. 0.3088 0.5504 -0.4197 0.0626 -0.468 -0.2625 0.3657]
[-0. -0.1146 -0.6559 0.0356 -0.0394 -0.6352 -0.3856 0.0418]]
Eigenvector for the minimum eigenvalue (ground state)
[-0. -0. 0. 0.8 0. 0.6 0. -0. ]
Susunod, ipo-project natin ang matrix sa iba't ibang subspace at titingnan kung makuha natin ang eksaktong ground state. Sa partikular, ipo-project natin ang matrix sa isang subspace na sakop ng:
- eksaktong ground state vectors ( at ).
- mga vector na hindi kasama ang ilan o lahat ng eksaktong ground state vectors (halimbawa, , , at ).
- mga vector na kinabibilangan ng parehong eksaktong ground state at hindi ground state (ngunit hindi lahat ng posibleng vector sa Hilbert space).
2.1 Kaso-1: Ang subspace ay kinabibilangan ng ground stateβ
Ipagpalagay na gusto nating i-project ang sa isang subspace () na sakop ng dalawang vector at . Ang projected Hamiltonian ay tinukoy ng:
x1 = np.zeros(8)
x1[3] = 1 # binary 011 is 3 in decimal. |011> = |3> = [0,0,0,1,0,0,0,0]
x2 = np.zeros(8)
x2[5] = 1 # binary 101 is 5 in decimal
Hs = np.array([[x1 @ H @ x1.T, x1 @ H @ x2.T], [x2 @ H @ x1.T, x2 @ H @ x2.T]])
print(Hs)
[[-0.1773 -0.4778]
[-0.4778 0.1014]]
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")
Minimum eigenvalue: -0.535656000064295
Eigenvector for minimum eigenvalue: [-0.8 -0.6]
Maaari tayong gumawa ng ilang mahahalagang obserbasyon dito.
- Dahil binuo natin ang subspace ng dalawang vector, ang dimensyon ng projected matrix () ay , na mas maliit kaysa sa buong matrix ().
- Ang minimum eigenvalue ng projected matrix ay tumutugma sa eigenvalue ng eksaktong ground state.
- Ang mga halaga sa variable na
eigvecsay nagpapakita ng amplitude ng mga vector na bumubuo sa subspace, at gamit ang mga ito ay maaari nating buuin muli ang eigenstate (ground state). Sa kasong ito, nakukuha natin ang eksaktong ground state (hanggang sa isang global phase):
2.2 Kaso-2: Ang subspace ay hindi kasama ang ilan o lahat ng ground state vectorsβ
Susunod, ipo-project natin ang sa isang subspace na sakop ng tatlong vector , , at . Sinadya nating piliin ang mga vector upang hindi kasama ang isang ground state vector (). Ang projected Hamiltonian ay tinukoy ng:
x1 = np.zeros(8)
x1[0] = 1
x2 = np.zeros(8)
x2[3] = 1
x3 = np.zeros(8)
x3[6] = 1
Hs = np.array(
[
[x1 @ H @ x1.T, x1 @ H @ x2.T, x1 @ H @ x3.T],
[x2 @ H @ x1.T, x2 @ H @ x2.T, x2 @ H @ x3.T],
[x3 @ H @ x1.T, x3 @ H @ x2.T, x3 @ H @ x3.T],
]
)
print(Hs)
[[ 0.2235 -0.0818 0.1165]
[-0.0818 -0.1773 -0.1272]
[ 0.1165 -0.1272 0.4227]]
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")
Minimum eigenvalue: -0.21108858736702252
Ang eigenvalue na sa kasong ito ay hindi tumutugma sa minimum eigenvalue na ng buong Hamiltonian. Ang pangunahing obserbasyon dito ay: kung mag-project tayo sa isang subspace na hindi kasama ang mga basis state sa ating target (ground) state β bahagi man o buo β ang tinantyang ground state ay magiging iba sa eksaktong halaga.
2.3 Kaso-3: Ang subspace ay kinabibilangan ng parehong ground state at hindi ground state vectorsβ
Susunod, ipinakita natin ang isang kaso kung saan ang subspace ay binuo ng mga vector na kinabibilangan ng eksaktong ground state vectors kasama ang mga hindi gustong vector. Ipagpalagay na ang ating subspace ay binuo ng , (naroroon sa eksaktong ground state), at (wala sa eksaktong ground state).
x1 = np.zeros(8)
x1[3] = 1
x2 = np.zeros(8)
x2[5] = 1
x3 = np.zeros(8)
x3[7] = 1
Hs = np.array(
[
[x1 @ H @ x1.T, x1 @ H @ x2.T, x1 @ H @ x3.T],
[x2 @ H @ x1.T, x2 @ H @ x2.T, x2 @ H @ x3.T],
[x3 @ H @ x1.T, x3 @ H @ x2.T, x3 @ H @ x3.T],
]
)
print(Hs)
[[-0.1773 -0.4778 -0.0414]
[-0.4778 0.1014 0.0552]
[-0.0414 0.0552 0.4456]]
eigvals, eigvecs = eigh(Hs)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")
Minimum eigenvalue: -0.53565600006461
Eigenvector for minimum eigenvalue: [ 0.8 0.6 -0. ]
Sa kasong ito, nakakuha muli tayo ng bilang minimum eigenvalue na tumutugma sa buong matrix (ibig sabihin, ang eksaktong ground state). Isa pang kawili-wiling resulta ay ang amplitude ng na ibinalik ng projection at diagonalization process. Ang amplitude ay , at kapag binuo nating muli ang wave function (eigenstate) gamit ang mga nakalkulang amplitude at vector, nakukuha natin:
Kaya, kahit ang ating subspace ay naglalaman ng ilang hindi target na vector (kasabay ng buong hanay ng target na vector), maaari tayong makakuha ng tamang eigenvalue at eigenstate dahil ang projection at diagonalization process ay nag-aalis ng hindi target na vector sa pamamagitan ng pagtatakda ng kanilang mga amplitude sa . Ang katangiang ito ng SQD ay nagbibigay ng likas na toleransya sa ingay.
3. Papel ng quantum sa SQDβ
Itinatag ng mga pagsusuri sa itaas ang kahalagahan ng mga vector na bumubuo ng subspace, na dapat nasa support ng target state. Nagdudulot ito ng isang mahalagang tanong: Paano natin pipiliin ang mga vector na may target state support para sa pagbuo ng subspace?
Dito pumapasok ang mga quantum computer. Ang quantum-classical synergy ay gumagana tulad ng sumusunod sa SQD paradigm:
- Gamit ang angkop na quantum circuit, sumusubok tayong maghanda ng isang estado sa isang quantum computer na makakabuo ng mga basis state kung saan ang target wave function (halimbawa, ground state) ay may malaking support. Ang mga na-sample na basis state (bitstrings) ay sasalukin ang subspace para sa Hamiltonian projection.
- Ang isang klasikal na computer ay nagpo-project ng Hamiltonian sa subspace (sakop ng mga sample/vector mula sa quantum computer) at dini-diagonalize ito upang makalkula ang mga eigenvalue at eigenvector gamit ang mga angkop na numerical method.
Maaaring mayroong ilang paraan upang maghanda ng ganitong quantum state, at maaaring variational o hindi variational depende sa problema.
Sa susunod na dalawang aralin, magpapakita tayo ng dalawang tiyak na halimbawa ng paghahanda ng mga estado at pag-sample mula sa mga ito.
- Sa Aralin 4, gagamit tayo ng isang parameterized local unitary coupled Jastrow (LUCJ) ansatz upang makabuo ng mga sample para sa isang problemang pang-chemistry (ground state energy estimation ng molekulang ). Sisimulan natin ang LUCJ ansatz gamit ang mga parameter mula sa klasikal na coupled cluster singles and doubles (CCSD) computation.
- Sa Aralin 5, mag-sa-sample tayo mula sa Krylov basis states upang masalukin ang subspace para sa isang condensed matter physics problem. Ang pamamaraang ito ay hindi variational ang kalikasan.
Bukod sa mga problem-specific na pamamaraan sa itaas, ang isang generic na pamamaraan para sa state preparation ay kinabibilangan ng isang variational ansatz, kung saan paulit-ulit na ia-update ang mga ansatz parameter gamit ang isang klasikal na optimizer.
Ang mga sample mula sa pre-fault tolerant quantum computers ay maaaring may ingay. Gumagamit ang SQD ng isang self-consistent configuration recovery process upang itama ang mga maingay na sample [1]. Tatalakayin natin ang configuration recovery process nang mas detalyado at ilalapat ito para sa paulit-ulit na pagwawasto ng mga maingay na sample upang mapahusay ang ground state energy estimation para sa isang chemistry problem sa Aralin 4.
3.1 Mga tala sa ground state supportβ
Ipaliwanag natin ang konsepto ng ground state support nang higit pa. Ang ground state support ay maaaring tukuyin bilang ang hanay ng mga basis state kung saan ang ground state ay may hindi zero na amplitude (hanggang sa isang cutoff threshold).
Ipagpalagay na ang eksaktong ground state ng isang -qubit na problema ay
Kung isa-sample natin ang estado sa itaas, dapat nating makuha ang isang hanay ng mga computational basis state , (ang ibang computational basis state ay may zero amplitude sa ground state, kaya sa perpektong sitwasyon ay hindi sila lalabas sa panahon ng sampling).
Sa perpektong sitwasyon, ang hanay ng mga basis vector para sa estadong ito ay binubuo ng (sa ibang salita, ang subspace ng estadong ito ay sakop ng dalawang basis vector na ito).
Sa katotohanan, hindi natin kailangang ihanda ang eksaktong ground state dahil ang pag-sample ng maraming ibang estado ay maaaring magbigay sa atin ng parehong hanay ng mga vector. Halimbawa:
Ang paghahanda at pag-sample mula sa alinman sa mga estado sa itaas ay makakabuo ng mga vector na may hindi zero na amplitude sa ground state, at lahat sila ay kwalipikado na nagtataglay ng ground state support. Tandaan na ang pag-sample ng ay nagsasama ng isang karagdagang vector