Langkau ke kandungan utama
Projek ini dalam fasa beta. Jumpa pepijat? Buat isu GitHub. Ada soalan atau idea? Tanya dalam Discussions — kami suka dengar maklum balas anda!
Bagaimana kualiti terjemahan pada halaman ini?

Pepenjuruan Kuantum Berasaskan Pensampelan (SQD)

Pepenjuruan kuantum berasaskan pensampelan (SQD) menggabungkan aljabar linear klasik dan kuasa pengkomputeran kuantum untuk memenjurukan Hamiltonian (matriks) dan mengira nilai eigen serta vektor eigennya. Pepenjuruan matriks adalah operasi matematik yang penting kerana banyak masalah dalam sains, pengkomputeran dan pengoptimuman menggunakan kaedah ini.

Video di bawah memberikan gambaran keseluruhan SQD, apa yang menentukan kegunaannya, dan apa yang menjadikannya lebih pantas daripada banyak pendekatan lain. Teks berikutnya memberikan lebih banyak butiran.

1. Pengenalan dan motivasi​

Pertimbangkan persamaan nilai eigen tenaga yang dipopularkan oleh Schrödinger, sebagai contoh.

H∣ψ⟩=E∣ψ⟩H \vert \psi \rangle = E \vert \psi \rangle

HH ialah Hamiltonian sesuatu sistem, ∣ψ⟩|\psi\rangle ialah fungsi gelombang (juga dikenali sebagai eigen-keadaan), dan EE ialah nilai eigen. Nilai eigen matriks HH mewakili aras tenaga sistem. Sebagai contoh, jika sistem itu ialah molekul, nilai eigen terendah mewakili tenaga keadaan asas molekul. Dalam banyak masalah, kita berminat dengan anggaran tenaga keadaan asas.

Dengan menggunakan teknik pepenjuruan tepat daripada aljabar linear, kita boleh memenjurukan matriks HH penuh. Walau bagaimanapun, pendekatan ini menjadi mahal secara pengkomputeran (malah mustahil) apabila matriks semakin besar. Sebagai contoh, walaupun untuk molekul kimia kecil, HH boleh menjadi terlalu besar (contohnya, Hamiltonian untuk molekul N2N_2 dengan asas cc-PVDZ mempunyai dimensi 65780×65780).65780 \times 65780).

Nasib baik, kita tidak sentiasa memerlukan semua nilai eigen dan vektor eigen Hamiltonian HH, dan oleh itu, pepenjuruan matriks penuh tidak diperlukan dalam banyak kes praktik. Sebagai contoh, dalam kes anggaran keadaan asas, kita berminat dengan nilai eigen terendah dan vektor eigen yang sepadan. Ini membolehkan kita menggunakan konsep unjuran ke atas subruang (yang berguna).

Pertimbangkan matriks N×NN \times N, HH, di mana ruang vektor lengkap (ruang Hilbert) mempunyai dimensi NN (NN adalah besar). Seterusnya, kita memilih subruang (S\mathcal{S}) - yang merupakan subset ruang Hilbert penuh - berdimensi MM, di mana MM cukup kecil. Setelah memproyeksikan HH ke atas subruang ini, matriks yang diproyeksikan (katakan, HSH_\mathcal{S}) akan lebih kecil (M×MM \times M). HSH_\mathcal{S} yang lebih kecil boleh dipenjurukan menggunakan kaedah berangka klasik yang sesuai, dan menghasilkan nilai eigen dan vektor eigen untuk subruang tersebut.

Perhatikan bahawa subruang mesti berada dalam sokongan eigen-keadaan sasaran kita (contohnya, keadaan asas). Dengan kata lain, Hamiltonian yang diproyeksikan HSH_\mathcal{S} mesti berada dalam subruang yang merangkumi nilai eigen terendah.

2. Unjuran dan Pepenjuruan​

Katakan kita ingin mencari nilai eigen terendah dan vektor eigen yang sepadan untuk matriks Hamiltonian 8×88 \times 8 berikut HH.

H=[0.2235−0.0390−0.1035−0.08180.17460.10910.1165−0.0104−0.03900.66210.0706−0.1964−0.07820.26190.10950.0029−0.10350.07060.99610.17240.1067−0.2299−0.18170.1571−0.0818−0.19640.1724−0.17730.1019−0.4778−0.1272−0.04140.1746−0.07820.10670.10190.1418−0.1359−0.1793−0.07660.10910.2619−0.2299−0.4778−0.13590.10140.16960.05520.11650.1095−0.1817−0.1272−0.17930.16960.42270.2702−0.01040.00290.1571−0.0414−0.07660.05520.27020.4456]H = \begin{bmatrix} 0.2235 & -0.0390 & -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 \\ \end{bmatrix}

Kami akan memenjurukan matriks penuh bersama-sama dengan versi yang diproyeksikan secara berbeza (HSH_\mathcal{S}) untuk subruang yang berbeza bagi menunjukkan kebolehskalaan dan kepentingan pemilihan subruang.

Tenaga keadaan asas (nilai eigen minimum) matriks HH ialah −0.5357-0.5357 dan fungsi gelombang keadaan asas tepat (vektor eigen) ialah:

GSexact=0.8∗∣011⟩+0.6∗∣101⟩.\text{GS}_{\text{exact}} = 0.8 * |011\rangle + 0.6 * |101\rangle.

iaitu, keadaan asas matriks direntangi oleh dua keadaan basis pengkomputeran (vektor) ∣011⟩\vert 011 \rangle dan ∣101⟩\vert 101 \rangle.

# Added by doQumentation — installs the packages this notebook needs if they are missing
import importlib.util

_needed = {"numpy": "numpy", "scipy": "scipy"}
_missing = [pip for module, pip in _needed.items()
if importlib.util.find_spec(module) is None]
# One at a time, so a package that fails to install does not block the others
for _pip in _missing:
%pip install -q {_pip}
if not _missing:
print("\u2713 All required packages are installed")
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. ]

Seterusnya, kami akan memproyeksikan matriks HH ke atas subruang yang berbeza dan menyemak sama ada kita dapat memperoleh keadaan asas tepat. Khususnya, kami akan memproyeksikan matriks ke atas subruang yang direntangi oleh:

  1. vektor keadaan asas tepat (∣011⟩\vert 011 \rangle dan ∣101⟩\vert 101 \rangle).

  2. vektor yang mengecualikan sebahagian atau semua vektor keadaan asas tepat (contohnya, ∣000⟩\vert 000 \rangle, ∣011⟩\vert 011 \rangle, dan ∣110⟩\vert 110 \rangle).

  3. vektor yang merangkumi keadaan asas tepat dan keadaan bukan asas (tetapi bukan semua vektor yang mungkin dalam ruang Hilbert).

2.1 Kes-1: Subruang merangkumi keadaan asas​

Katakan kita ingin memproyeksikan HH dalam subruang (S\mathcal{S}) yang direntangi oleh dua vektor x1=∣011⟩x_1 = |011\rangle dan x2=∣101⟩x_2 = |101\rangle. Hamiltonian yang diproyeksikan ditakrifkan oleh:

HS=[⟨x1∣H∣x1⟩⟨x1∣H∣x2⟩⟨x2∣H∣x1⟩⟨x2∣H∣x2⟩]H_\mathcal{S} = \begin{bmatrix} \langle x1 | H | x1 \rangle & \langle x1 | H | x2 \rangle \\ \langle x2 | H | x1 \rangle & \langle x2 | H | x2 \rangle \end{bmatrix}
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.T @ H @ x1, x1.T @ H @ x2], [x2.T @ H @ x1, x2.T @ H @ x2]])
print(Hs)
[[-0.1773 -0.4778]
[-0.4778 0.1014]]

Perhatikan bahawa dengan menulis elemen Hamiltonian yang diproyeksikan sebagai x1.T @ H @ x2, kita secara implisit menggunakan konvensyen umum bahawa vektor keadaan x1 dan x2 berpadanan dengan ket (vektor lajur), selaras dengan ungkapan seperti x1=∣011⟩x_1 = |011\rangle. Walau bagaimanapun, tatasusunan 1D NumPy tidak membezakan secara intrinsik antara vektor baris dan vektor lajur, dan bagi vektor yang digunakan di sini, operasi transpos tidak memberi kesan berangka. Oleh itu, menulis x1 @ H @ x2.T akan menghasilkan keputusan berangka yang sama, walaupun x1.T @ H @ x2 lebih hampir sepadan dengan korespondensi tatatanda Dirac yang biasa ⟨x1∣H∣x2⟩\langle x_1|H|x_2\rangle.

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]

Kita boleh membuat beberapa pemerhatian utama di sini.

  • Kerana kita merentangi subruang dengan dua vektor, dimensi matriks yang diproyeksikan (HSH_\mathcal{S}) ialah 2×22 \times 2, yang lebih kecil daripada matriks penuh HH (8×88 \times 8).
  • Nilai eigen minimum matriks yang diproyeksikan sepadan dengan nilai eigen keadaan asas tepat.
  • Nilai dalam pemboleh ubah eigvecs menandakan amplitud vektor perentang subruang, dan menggunakannya kita boleh membina semula eigen-keadaan (keadaan asas). Dalam kes ini, kita mendapat keadaan asas tepat (sehingga fasa global):
∣ψ⟩=−(0.8∣011⟩+0.6∣101⟩)|\psi \rangle = - (0.8 |011\rangle + 0.6 |101\rangle)

2.2 Kes-2: Subruang mengecualikan sebahagian atau semua vektor keadaan asas​

Seterusnya, kami memproyeksikan HH ke atas subruang yang direntangi oleh tiga vektor x1=∣000⟩x_1 = |000\rangle, x2=∣011⟩x_2 = |011\rangle, dan x3=∣110⟩x_3 = |110\rangle. Kami sengaja memilih vektor supaya ia mengecualikan vektor keadaan asas (∣101⟩\vert 101 \rangle). Hamiltonian yang diproyeksikan ditakrifkan oleh:

HS=[⟨x1∣H∣x1⟩⟨x1∣H∣x2⟩⟨x1∣H∣x3⟩⟨x2∣H∣x1⟩⟨x2∣H∣x2⟩⟨x2∣H∣x3⟩⟨x3∣H∣x1⟩⟨x3∣H∣x2⟩⟨x3∣H∣x3⟩]H_\mathcal{S} = \begin{bmatrix} \langle x1 | H | x1 \rangle & \langle x1 | H | x2 \rangle & \langle x1 | H | x3 \rangle\\ \langle x2 | H | x1 \rangle & \langle x2 | H | x2 \rangle & \langle x2 | H | x3 \rangle \\ \langle x3 | H | x1 \rangle & \langle x3 | H | x2 \rangle & \langle x3 | H | x3 \rangle \\ \end{bmatrix}
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.T @ H @ x1, x1.T @ H @ x2, x1.T @ H @ x3],
[x2.T @ H @ x1, x2.T @ H @ x2, x2.T @ H @ x3],
[x3.T @ H @ x1, x3.T @ H @ x2, x3.T @ H @ x3],
]
)
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

Nilai eigen −0.2111-0.2111 dalam kes ini tidak sepadan dengan nilai eigen minimum −0.5357-0.5357 Hamiltonian penuh. Pemerhatian utama di sini ialah: jika kita memproyeksikan ke atas subruang yang mengecualikan keadaan basis dalam keadaan sasaran (keadaan asas) kita - sama ada sebahagian atau sepenuhnya - keadaan asas yang dianggar akan berbeza daripada yang tepat.

2.3 Kes-3: Subruang merangkumi keadaan asas dan vektor bukan keadaan asas​

Seterusnya, kami menunjukkan kes di mana subruang direntangi oleh vektor yang merangkumi vektor keadaan asas tepat bersama-sama dengan vektor yang tidak diinginkan. Katakan subruang kita direntangi oleh x1=∣011⟩x_1 = |011\rangle, x2=∣101⟩x_2 = |101\rangle (hadir dalam keadaan asas tepat), dan x3=∣111⟩x_3 = |111\rangle (tidak hadir dalam keadaan asas tepat).

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.T @ H @ x1, x1.T @ H @ x2, x1.T @ H @ x3],
[x2.T @ H @ x1, x2.T @ H @ x2, x2.T @ H @ x3],
[x3.T @ H @ x1, x3.T @ H @ x2, x3.T @ H @ x3],
]
)
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. ]

Dalam kes ini, kita sekali lagi mendapat −0.5357-0.5357 sebagai nilai eigen minimum yang sepadan dengan matriks penuh (iaitu, keadaan asas tepat). Keputusan menarik lain ialah amplitud x3x_3 yang dikembalikan oleh proses unjuran dan pepenjuruan. Amplitudnya ialah 00, dan apabila kita membina semula fungsi gelombang (eigen-keadaan) dengan amplitud dan vektor yang dikira, kita mendapat:

∣ψ⟩=0.8∣011⟩+0.6∣101⟩+0.0∣111⟩=0.8∣011⟩+0.6∣101⟩(exact ground state)\vert \psi \rangle = 0.8 |011\rangle + 0.6 |101\rangle + 0.0 |111\rangle = 0.8 |011\rangle + 0.6 |101\rangle \left( \text{exact ground state} \right)

Jadi, walaupun subruang kita merangkumi beberapa vektor bukan sasaran (bersama-sama dengan set penuh vektor sasaran), kita boleh mengira nilai eigen dan eigen-keadaan yang betul kerana proses unjuran dan pepenjuruan menapis vektor bukan sasaran dengan menetapkan amplitudnya kepada 00. Sifat SQD ini memberikan toleransi hingar yang melekat.

3. Peranan kuantum dalam SQD​

Analisis di atas menetapkan kepentingan vektor perentang subruang, yang mesti berada dalam sokongan keadaan sasaran. Ini menimbulkan soalan penting: Bagaimana kita memilih vektor dengan sokongan keadaan sasaran untuk pembinaan subruang?

Di sinilah komputer kuantum memainkan peranan. Sinergi kuantum-klasik berfungsi seperti berikut dalam paradigma SQD:

  1. Menggunakan Circuit kuantum yang sesuai, kita cuba menyediakan keadaan pada komputer kuantum yang akan menghasilkan keadaan basis di mana fungsi gelombang sasaran (contohnya, keadaan asas) mempunyai sokongan yang signifikan. Keadaan basis yang disampling (rentetan bit) akan merentangi subruang untuk unjuran Hamiltonian.

  2. Komputer klasik memproyeksikan Hamiltonian ke atas subruang (direntangi oleh sampel/vektor daripada komputer kuantum) dan memenjurukannya untuk mengira nilai eigen dan vektor eigen menggunakan kaedah berangka yang sesuai. Gambar rajah komponen kuantum dan klasik SQD. Dalam kuantum, anda menyediakan dan membuat sampel daripada sokongan sasaran anda, anda secara klasik memproyeksikan matriks anda ke atas subruang yang disampling dan memenjurukan matriks yang diproyeksikan. Terdapat beberapa cara kita boleh menyediakan keadaan kuantum seperti itu, dan ia boleh bersifat variasional atau bukan variasional bergantung pada masalah.

Dalam dua pelajaran berikutnya, kami akan menunjukkan dua contoh khusus penyediaan keadaan dan pensampelan darinya.

  1. Dalam Pelajaran 4, kami akan menggunakan ansatz Jastrow terganding uniter setempat berparameter (LUCJ) untuk menghasilkan sampel bagi masalah kimia (anggaran tenaga keadaan asas molekul N2N_2). Kami akan memulakan ansatz LUCJ dengan parameter daripada pengiraan coupled cluster tunggal dan ganda (CCSD) klasik.
  2. Dalam Pelajaran 5, kami akan membuat sampel daripada keadaan basis Krylov untuk merentangi subruang bagi masalah fizik jirim pekat. Pendekatan ini bersifat bukan variasional.

Selain pendekatan khusus masalah di atas, pendekatan generik untuk penyediaan keadaan melibatkan ansatz variasional, di mana kita akan mengemas kini parameter ansatz secara berulang menggunakan pengoptimum klasik. Carta alir daripada litar kuantum variasional melalui pensampelan kuantum kepada pengkomputeran klasik di mana matriks diunjurkan dan dipenjurukan. Kemudian keputusan dimasukkan ke dalam pengoptimum klasik yang memilih parameter variasional baharu, dan kita kembali ke litar kuantum variasional. Sampel daripada komputer kuantum pra-toleransi kesalahan boleh menjadi berhingar. SQD menggunakan proses pemulihan konfigurasi konsisten kendiri untuk membetulkan sampel yang berhingar [1]. Kita akan membincangkan proses pemulihan konfigurasi dengan lebih terperinci dan menggunakannya untuk membetulkan sampel berhingar secara berulang untuk memperhalusi anggaran tenaga keadaan asas bagi masalah kimia dalam Pelajaran 4.

3.1 Nota tentang sokongan keadaan asas​

Mari kita jelaskan konsep sokongan keadaan asas dengan lebih lanjut. Sokongan keadaan asas boleh ditakrifkan sebagai set keadaan basis di mana keadaan asas mempunyai amplitud bukan sifar (sehingga ambang potongan).

Katakan keadaan asas tepat masalah 33-Qubit ialah

∣ψ⟩=12∣000⟩+12∣111⟩\vert \psi \rangle = \frac{1}{\sqrt{2}} \vert 000 \rangle + \frac{1}{\sqrt{2}} \vert 111 \rangle

Jika kita membuat sampel keadaan di atas, kita sepatutnya mendapat set keadaan basis pengkomputeran {∣000⟩\{\vert 000 \rangle, ∣111⟩}\vert 111 \rangle \} (keadaan basis pengkomputeran lain mempunyai amplitud sifar dalam keadaan asas, dan oleh itu, secara ideal tidak akan muncul semasa pensampelan).

Secara ideal, set vektor basis untuk keadaan ini terdiri daripada {∣000⟩,∣111⟩}\{ \vert 000 \rangle, \vert 111 \rangle \} (dengan kata lain, subruang keadaan ini direntangi oleh kedua-dua vektor basis ini).

Dalam praktik, kita tidak perlu menyediakan keadaan asas tepat kerana pensampelan banyak keadaan lain boleh memberikan kita set vektor yang sama. Sebagai contoh:

∣ψa⟩=0.8∣000⟩+0.6∣111⟩→Sampling{∣000⟩,∣111⟩}∣ψb⟩=12∣000⟩+32∣111⟩→Sampling{∣000⟩,∣111⟩}∣ψc⟩=12∣000⟩+12∣111⟩+12∣101⟩→Sampling{∣000⟩,∣101⟩,∣111⟩}\begin{align} \vert \psi_a \rangle = 0.8 \vert 000 \rangle + 0.6 \vert 111 \rangle &\xrightarrow{\text{Sampling}} \{ \vert 000 \rangle, \vert 111 \rangle \} \\ \vert \psi_b \rangle = \frac{1}{2} \vert 000 \rangle + \frac{\sqrt{3}}{2} \vert 111 \rangle &\xrightarrow{\text{Sampling}} \{ \vert 000 \rangle, \vert 111 \rangle \} \\ \vert \psi_c \rangle = \frac{1}{2} \vert 000 \rangle + \frac{1}{2} \vert 111 \rangle + \frac{1}{\sqrt{2}} \vert 101 \rangle &\xrightarrow{\text{Sampling}} \{ \vert 000 \rangle, \vert 101 \rangle, \vert 111 \rangle \} \end{align}

Menyediakan dan membuat sampel daripada mana-mana keadaan di atas akan menghasilkan vektor yang mempunyai amplitud bukan sifar dalam keadaan asas, dan semuanya layak sebagai mempunyai sokongan keadaan asas. Perhatikan bahawa pensampelan ∣ψc⟩\vert \psi_c \rangle merangkumi satu vektor tambahan ∣101⟩\vert 101 \rangle yang mempunyai amplitud 00 dalam keadaan asas tepat. Walau bagaimanapun, sebelum ini kita telah menunjukkan bahawa memasukkan vektor sedemikian dalam subruang tidak bermasalah kerana operasi unjuran dan pepenjuruan menetapkan amplitud vektor yang tidak diinginkan kepada 00, dan kita boleh mendapatkan nilai eigen yang dijangkakan dan membina semula eigen-keadaan yang betul.

Diagrams of good and bad ansatz supports. A good ansatz has support that completely contains the ground state support. A poor ansatz contains only part or none of the ground state support.

Oleh itu, menyediakan dan membuat sampel daripada keadaan asas tepat tidak diperlukan. Malah, berbuat demikian boleh menjadi sukar kerana keadaan asas tepat tidak diketahui a priori, dan selalunya bermanfaat untuk tidak menyediakan dan membuat sampel daripada keadaan asas tepat, terutamanya jika fungsi gelombang (keadaan) condong dengan beberapa keadaan basis mempunyai kebarangkalian yang sangat tinggi. Pertimbangkan fungsi gelombang berikut:

∣ψ⟩=0.7∣000⟩−0.7∣010⟩+0.1∣101⟩−0.01∣111⟩\vert \psi \rangle = 0.7 \vert 000 \rangle - 0.7 \vert 010 \rangle + 0.1 \vert 101 \rangle - 0.01 \vert 111 \rangle

Ini adalah fungsi gelombang condong di mana keadaan basis ∣000⟩\vert 000 \rangle dan ∣010⟩\vert 010 \rangle mempunyai amplitud yang jauh lebih besar berbanding ∣101⟩\vert 101 \rangle dan ∣111⟩\vert 111 \rangle. Apabila disampling, kita akan mendapat ∣000⟩\vert 000 \rangle dan ∣010⟩\vert 010 \rangle lebih kerap (kebarangkalian pensampelan=∣amplitud∣2\text{kebarangkalian pensampelan} = \vert \text{amplitud} \vert^{2} ≈49%\approx 49\% untuk ∣000⟩\vert 000 \rangle dan ∣010⟩\vert 010 \rangle masing-masing, ≈1%\approx 1\% untuk ∣101⟩\vert 101 \rangle, dan ≈0.01%\approx 0.01\% untuk ∣111⟩\vert 111 \rangle). Dengan bajet pensampelan terhad (shots), kemungkinan besar set yang disampling hanya mengandungi ∣000⟩\vert 000 \rangle dan ∣010⟩\vert 010 \rangle. Seperti yang ditunjukkan sebelum ini, jika kita merentangi subruang dengan set sedemikian dengan vektor yang hilang, kita tidak akan dapat mencari nilai eigen minimum sebenar. Oleh itu, adalah bermanfaat (dan perlu) untuk membuat sampel daripada keadaan dengan sokongan keadaan asas.

3.2 Hujah menentang pensampelan seragam​

Mungkin tergoda untuk mengambil sampel daripada taburan seragam untuk merentangi subruang. Walaupun ia mungkin berfungsi untuk masalah kecil, ia akan mula gagal untuk masalah yang lebih besar dan lebih praktikal. Untuk masalah besar dengan banyak qubit, ruang Hilbert boleh menjadi terlalu besar. Sebagai contoh, ruang Hilbert 32-Qubit mempunyai lebih daripada 44 bilion vektor basis yang mungkin (232=4,294,967,2962^{32} = 4,294,967,296). Jika kita membuat sampel secara seragam daripada ruang tersebut dengan bajet sampel terhad (katakan 1000010000 vektor untuk memastikan proses pepenjuruan boleh dilaksanakan), subruang mungkin mengecualikan vektor dengan sokongan keadaan asas lebih kerap kerana proses itu akan rawak. Oleh itu, kita memerlukan cara yang sistematik untuk membuat sampel daripada sokongan keadaan asas memanfaatkan Circuit kuantum.

4. SQD dan Kejarangan fungsi gelombang​

Jurang antara ruang Hilbert penuh dan dimensi subruang yang boleh dilaksanakan membawa aspek penting lain SQD, iaitu kejarangan fungsi gelombang. Pendekatan SQD berfungsi dengan baik untuk fungsi gelombang yang jarang atau tertumpu di mana pecahan kecil keadaan basis mempunyai amplitud yang tidak boleh diabaikan. Terdapat dua sebab di sebaliknya:

  1. Jika fungsi gelombang adalah luas (iaitu, banyak keadaan basis mempunyai amplitud yang tidak boleh diabaikan), dan kita terlepas untuk memasukkan vektor dengan sokongan keadaan sasaran dalam subruang, kita mungkin mendapat nilai eigen dan vektor eigen yang tidak betul.

  2. Untuk mengelakkan masalah di atas, kita perlu memasukkan banyak vektor dalam subruang. Walau bagaimanapun, dimensi Hamiltonian yang diproyeksikan berkaitan langsung dengan dimensi subruang. Subruang yang lebih besar bermakna Hamiltonian yang lebih besar, yang mungkin menjadi tidak boleh dilaksanakan untuk dipenjurukan.

Kami menunjukkan masalah dengan matriks berikut (HnewH_{new}). Nilai eigen terendah HnewH_{new} ialah −2.2081-2.2081, dan fungsi gelombang (eigen-keadaan) yang sepadan adalah luas:

∣ψ⟩=∣000⟩+∣001⟩+∣010⟩+∣011⟩+∣100⟩+∣101⟩+∣110⟩+∣111⟩8|\psi\rangle = \frac{|000\rangle + |001\rangle + |010\rangle + |011\rangle + |100\rangle + |101\rangle + |110\rangle + |111\rangle}{\sqrt{8}}
H_new = np.array(
[
[-0.958, 0.1853, -0.2663, -0.3875, -0.0524, -0.3779, -0.0145, -0.3369],
[0.1853, -0.4081, -0.8549, -0.2312, 0.0615, -0.2493, -0.3804, -0.3312],
[-0.2663, -0.8549, -0.6929, -0.0063, -0.0478, -0.0236, -0.2494, -0.0669],
[-0.3875, -0.2312, -0.0063, -0.4468, -0.6301, -0.4627, -0.1188, 0.0753],
[-0.0524, 0.0615, -0.0478, -0.6301, -0.6664, -0.1514, -0.3571, -0.3644],
[-0.3779, -0.2493, -0.0236, -0.4627, -0.1514, -0.9605, 0.0137, 0.0035],
[-0.0145, -0.3804, -0.2494, -0.1188, -0.3571, 0.0137, -1.1449, 0.0433],
[-0.3369, -0.3312, -0.0669, 0.0753, -0.3644, 0.0035, 0.0433, -1.2307],
]
)
eigvals, eigvecs = eigh(H_new)
print(f"Minimum eigenvalue: {eigvals.min()}")
print(f"Eigenvector for minimum eigenvalue: {eigvecs[:,np.argmin(eigvals)]}")
Minimum eigenvalue: -2.208137504726661
Eigenvector for minimum eigenvalue: [0.3536 0.3536 0.3536 0.3536 0.3535 0.3536 0.3535 0.3535]

Katakan kita memproyeksikan HnewH_{new} ke atas subruang yang direntangi oleh empat vektor: ∣000⟩|000\rangle, ∣010⟩|010\rangle, ∣101⟩|101\rangle, dan ∣110⟩|110\rangle dan mengira nilai eigen.

x1 = np.zeros(8)
x1[0] = 1

x2 = np.zeros(8)
x2[2] = 1

x3 = np.zeros(8)
x3[5] = 1

x4 = np.zeros(8)
x4[6] = 1

H_new_s = np.array(
[
[x1.T @ H_new @ x1, x1.T @ H_new @ x2, x1.T @ H_new @ x3, x1.T @ H_new @ x4],
[x2.T @ H_new @ x1, x2.T @ H_new @ x2, x2.T @ H_new @ x3, x2.T @ H_new @ x4],
[x3.T @ H_new @ x1, x3.T @ H_new @ x2, x3.T @ H_new @ x3, x3.T @ H_new @ x4],
[x4.T @ H_new @ x1, x4.T @ H_new @ x2, x4.T @ H_new @ x3, x4.T @ H_new @ x4],
]
)
print(H_new_s)
[[-0.958 -0.2663 -0.3779 -0.0145]
[-0.2663 -0.6929 -0.0236 -0.2494]
[-0.3779 -0.0236 -0.9605 0.0137]
[-0.0145 -0.2494 0.0137 -1.1449]]
eigvals, eigvecs = eigh(H_new_s)
print(f"Minimum eigenvalue: {eigvals.min()}")
Minimum eigenvalue: -1.4266552340586673

Contoh di atas menunjukkan bahawa apabila fungsi gelombang adalah luas, dan kita tidak memasukkan keadaan basis dalam subruang, pengiraan nilai eigen menjadi tidak betul.

5. SQD berbanding VQE​

Seperti yang disebutkan sebelumnya, SQD mungkin memerlukan litar kuantum variasional dan kemas kini parameter berulang untuk menyediakan dan membuat sampel daripada sokongan keadaan asas. Kerana rutin kemas kini parameter berulang ini serupa dengan VQE, seseorang boleh bertanya bagaimana kaedah ini berbeza, dan apakah kelebihan SQD berbanding VQE? Dalam bahagian ini, kami membandingkan kaedah dan membincangkan kelebihan SQD dengan molekul N2N_2 yang diterangkan dengan set basis minimum (sto-3g) sebagai contoh.

 VQESQD
Overhead pengukuranBanyak sebutan Pauli, banyak litar pengukuran: Hamiltonian untuk molekul mempunyai 29512951 sebutan Pauli unik. Kerana sebutan Pauli boleh mengandungi sebutan XX dan YY, dan pengukuran kuantum biasa dilakukan dalam basis ZZ, kita memerlukan perubahan basis pengukuran untuk menilai sebutan tersebut. Apabila dioptimumkan untuk pengukuran, 29512951 sebutan boleh dikumpulkan kepada 11871187 kumpulan, di mana setiap kumpulan boleh dinilai menggunakan satu litar. Oleh itu, kita memerlukan sekurang-kurangnya 11871187 litar unik untuk menilai semua sebutan Pauli. Banyak shots per litar untuk varians yang lebih ketat. Sekali lagi, nilai jangkaan yang dinilai bagi setiap sebutan Pauli mempunyai varians yang bergantung songsang pada shots\sqrt{shots}. Oleh itu, untuk menganggar setiap sebutan dengan tepat, kita perlu memperuntukkan banyak shots per litar. Sebagai contoh, untuk mencapai ketepatan kimia (11 kcal/mol), biasanya kita memerlukan shots dalam lingkungan 10510^5-10710^7 per litar. Oleh itu, VQE memerlukan banyak litar pengukuran dan setiap litar dengan bilangan shots tertentu. Untuk kes praktikal, overhead pengukuran ini boleh menjadi menyekat.Dalam SQD, kita tidak memerlukan litar pengukuran yang berbeza untuk setiap sebutan Pauli yang dikumpulkan. Biasanya, kita mengukur satu litar untuk bilangan shots yang tetap. Walaupun kita mungkin menetapkan bilangan shots kepada nilai yang besar bergantung pada masalah, overhead kekal jauh lebih kecil daripada VQE. Juga, anggaran tenaga menggunakan proses pepenjuruan adalah tepat, bermakna nilai eigen yang dikira adalah tepat dalam subruang tersebut dan tidak mempunyai varians yang melekat seperti VQE. (Dalam kes pensampelan keadaan basis Krylov (Pelajaran 5), kita perlu mengukur beberapa litar, tetapi bilangan litar kekal jauh lebih kecil daripada VQE).
Had anggaran tenagaDalam VQE, anggaran tenaga tidak terbatas dan boleh lebih rendah daripada nilai minimum sebenar akibat hingar.Proses anggaran tenaga dalam SQD sentiasa menghasilkan had atas kepada tenaga keadaan asas dan tenaga yang dianggar tidak akan pernah lebih rendah daripada tenaga keadaan asas sebenar.
Toleransi hingarAnggaran tenaga VQE terdedah kepada hingar daripada komputer kuantum pra-toleransi kesalahan.SQD mempunyai toleransi hingar yang melekat. Komputer kuantum pra-toleransi kesalahan boleh menghasilkan sampel yang berhingar. Walaupun kita memasukkan sampel tersebut dalam subruang, pepenjuruan berikutnya boleh menindas sampel tersebut dengan menetapkan amplitudnya kepada sifar. Juga, kami akan membincangkan kaedah yang dipanggil pemulihan konfigurasi berkaitan dengan SQD yang meningkatkan toleransi hingar SQD dengan lebih lanjut.

6. Ringkasan​

  1. Dalam SQD, komputer kuantum menghasilkan sampel dan komputer klasik memproyeksikan Hamiltonian ke atas subruang yang direntangi oleh sampel dan memenjurukannya untuk mengira nilai eigen dan vektor eigen.

  2. Sampel yang dihasilkan mestilah daripada sokongan keadaan sasaran (asas).

  3. Bergantung pada masalah, aliran penyediaan keadaan kuantum dan penjanaan sampel boleh bersifat berulang atau tidak berulang.

  4. SQD paling berkesan untuk fungsi gelombang yang jarang. Fungsi gelombang yang luas akan memerlukan subruang yang besar untuk penyelesaian yang tepat, yang menjadikan operasi unjuran dan pepenjuruan klasik mahal.

  5. SQD mempunyai beberapa kelebihan berbanding VQE seperti overhead pengukuran yang lebih rendah dan had atas kepada tenaga keadaan asas yang dianggar, yang menjadikannya lebih mudah diskalakan.

Rujukan​

[1] J. Robledo-Moreno et al., "Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer" (2024). arXiv:quant-ph/2405.05068.