Penepatan Kuantum Berasaskan Pensampelan (SQD)
Penepatan kuantum berasaskan pensampelan (SQD) menggabungkan aljabar linear klasik dan kuasa pengkomputeran kuantum untuk mentepati Hamiltonian (matriks) dan mengira nilai eigen serta vektor eigennya. Penepatan 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.
ialah Hamiltonian sesuatu sistem, ialah fungsi gelombang (juga dikenali sebagai eigen-keadaan), dan ialah nilai eigen. Nilai eigen matriks 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 penepatan tepat daripada aljabar linear, kita boleh mentepati matriks penuh. Walau bagaimanapun, pendekatan ini menjadi mahal secara pengkomputeran (malah mustahil) apabila matriks semakin besar. Sebagai contoh, walaupun untuk molekul kimia kecil, boleh menjadi terlalu besar (contohnya, Hamiltonian untuk molekul dengan asas cc-PVDZ mempunyai dimensi
Nasib baik, kita tidak sentiasa memerlukan semua nilai eigen dan vektor eigen Hamiltonian , dan oleh itu, penepatan 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 , , di mana ruang vektor lengkap (ruang Hilbert) mempunyai dimensi ( adalah besar). Seterusnya, kita memilih subruang () - yang merupakan subset ruang Hilbert penuh - berdimensi , di mana cukup kecil. Setelah memproyeksikan ke atas subruang ini, matriks yang diproyeksikan (katakan, ) akan lebih kecil (). yang lebih kecil boleh ditepati 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 mesti berada dalam subruang yang merangkumi nilai eigen terendah.
2. Unjuran dan Penepatanβ
Katakan kita ingin mencari nilai eigen terendah dan vektor eigen yang sepadan untuk matriks Hamiltonian berikut .
Kami akan mentepati matriks penuh bersama-sama dengan versi yang diproyeksikan secara berbeza () untuk subruang yang berbeza bagi menunjukkan kebolehskalaan dan kepentingan pemilihan subruang.
Tenaga keadaan asas (nilai eigen minimum) matriks ialah dan fungsi gelombang keadaan asas tepat (vektor eigen) ialah:
iaitu, keadaan asas matriks direntangi oleh dua keadaan asas pengkomputeran (vektor) dan .
# 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. ]
Seterusnya, kami akan memproyeksikan matriks 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:
- vektor keadaan asas tepat ( dan ).
- vektor yang mengecualikan sebahagian atau semua vektor keadaan asas tepat (contohnya, , , dan ).
- 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 dalam subruang () yang direntangi oleh dua vektor dan . Hamiltonian yang diproyeksikan ditakrifkan oleh:
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]
Kita boleh membuat beberapa pemerhatian utama di sini.
- Kerana kita merentangi subruang dengan dua vektor, dimensi matriks yang diproyeksikan () ialah , yang lebih kecil daripada matriks penuh ().
- Nilai eigen minimum matriks yang diproyeksikan sepadan dengan nilai eigen keadaan asas tepat.
- Nilai dalam pemboleh ubah
eigvecsmenandakan 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):
2.2 Kes-2: Subruang mengecualikan sebahagian atau semua vektor keadaan asasβ
Seterusnya, kami memproyeksikan ke atas subruang yang direntangi oleh tiga vektor , , dan . Kami sengaja memilih vektor supaya ia mengecualikan vektor keadaan asas (). Hamiltonian yang diproyeksikan ditakrifkan oleh:
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
Nilai eigen dalam kes ini tidak sepadan dengan nilai eigen minimum Hamiltonian penuh. Pemerhatian utama di sini ialah: jika kita memproyeksikan ke atas subruang yang mengecualikan keadaan asas dalam keadaan sasaran (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 , (hadir dalam keadaan asas tepat), dan (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 @ 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. ]
Dalam kes ini, kita sekali lagi mendapat sebagai nilai eigen minimum yang sepadan dengan matriks penuh (iaitu, keadaan asas tepat). Keputusan menarik lain ialah amplitud yang dikembalikan oleh proses unjuran dan penepatan. Amplitudnya ialah , dan apabila kita membina semula fungsi gelombang (eigen-keadaan) dengan amplitud dan vektor yang dikira, kita mendapat:
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 penepatan menapis vektor bukan sasaran dengan menetapkan amplitudnya kepada . Sifat SQD ini memberikan toleransi bunyi 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:
- Menggunakan Circuit kuantum yang sesuai, kita cuba menyediakan keadaan pada komputer kuantum yang akan menghasilkan keadaan asas di mana fungsi gelombang sasaran (contohnya, keadaan asas) mempunyai sokongan yang signifikan. Keadaan asas yang disampling (rentetan bit) akan merentangi subruang untuk unjuran Hamiltonian.
- Komputer klasik memproyeksikan Hamiltonian ke atas subruang (direntangi oleh sampel/vektor daripada komputer kuantum) dan mentepatinya untuk mengira nilai eigen dan vektor eigen menggunakan kaedah berangka yang sesuai.
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.
- Dalam Pelajaran 4, kami akan menggunakan ansatz Jastrow bersatu setempat berparameter (LUCJ) untuk menghasilkan sampel bagi masalah kimia (anggaran tenaga keadaan asas molekul ). Kami akan memulakan ansatz LUCJ dengan parameter daripada pengiraan coupled cluster tunggal dan ganda (CCSD) klasik.
- Dalam Pelajaran 5, kami akan membuat sampel daripada keadaan asas 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.
Sampel daripada komputer kuantum pra-toleransi kesalahan boleh menjadi bising. SQD menggunakan proses pemulihan konfigurasi sendiri-konsisten untuk membetulkan sampel yang bising [1]. Kami akan membincangkan proses pemulihan konfigurasi dengan lebih terperinci dan menggunakannya untuk membetulkan sampel bising secara berulang bagi memperhalusi anggaran tenaga keadaan asas untuk 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 asas di mana keadaan asas mempunyai amplitud bukan sifar (sehingga ambang potongan).
Katakan keadaan asas tepat masalah -Qubit ialah
Jika kita membuat sampel keadaan di atas, kita sepatutnya mendapat set keadaan asas pengkomputeran , (keadaan asas pengkomputeran lain mempunyai amplitud sifar dalam keadaan asas, dan oleh itu, secara ideal tidak akan muncul semasa pensampelan).
Secara ideal, set vektor asas untuk keadaan ini terdiri daripada (dengan kata lain, subruang keadaan ini direntangi oleh kedua-dua vektor asas ini).
Dalam praktik, kita tidak perlu menyediakan keadaan asas tepat kerana pensampelan banyak keadaan lain boleh memberikan kita set vektor yang sama. Sebagai contoh:
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 merangkumi satu vektor tambahan yang mempunyai amplitud dalam keadaan asas tepat. Walau bagaimanapun, sebelum ini kita telah menunjukkan bahawa memasukkan vektor sedemikian dalam subruang tidak bermasalah kerana operasi unjuran dan penepatan menetapkan amplitud vektor yang tidak diinginkan kepada , dan kita boleh mendapatkan nilai eigen yang dijangkakan dan membina semula eigen-keadaan yang betul.

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 asas mempunyai kebarangkalian yang sangat tinggi. Pertimbangkan fungsi gelombang berikut:
Ini adalah fungsi gelombang condong di mana keadaan asas dan mempunyai amplitud yang jauh lebih besar berbanding dan . Apabila disampling, kita akan mendapat dan lebih kerap ( untuk dan masing-masing, untuk , dan untuk ). Dengan bajet pensampelan terhad (shots), kemungkinan besar set yang disampling hanya mengandungi dan . 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 bilion vektor asas yang mungkin (). Jika kita membuat sampel secara seragam daripada ruang tersebut dengan bajet sampel terhad (katakan vektor untuk memastikan proses penepatan 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 asas mempunyai amplitud yang tidak boleh diabaikan. Terdapat dua sebab di sebaliknya:
- Jika fungsi gelombang adalah luas (iaitu, banyak keadaan asas 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.
- 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 ditepati.
Kami menunjukkan masalah dengan matriks berikut (). Nilai eigen terendah ialah , dan fungsi gelombang (eigen-keadaan) yang sepadan adalah luas:
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 ke atas subruang yang direntangi oleh empat vektor: , , , dan 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 @ H_new @ x1.T, x1 @ H_new @ x2.T, x1 @ H_new @ x3.T, x1 @ H_new @ x4.T],
[x2 @ H_new @ x1.T, x2 @ H_new @ x2.T, x2 @ H_new @ x3.T, x2 @ H_new @ x4.T],
[x3 @ H_new @ x1.T, x3 @ H_new @ x2.T, x3 @ H_new @ x3.T, x3 @ H_new @ x4.T],
[x4 @ H_new @ x1.T, x4 @ H_new @ x2.T, x4 @ H_new @ x3.T, x4 @ H_new @ x4.T],
]
)
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 asas dalam subruang, pengiraan nilai eigen menjadi tidak betul.
5. SQD berbanding VQEβ
Seperti yang disebutkan sebelumnya, SQD mungkin memerlukan Circuit 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 yang diterangkan dengan set asas minimum (sto-3g) sebagai contoh.
| Β | VQE | SQD |
|---|---|---|
| Overhead pengukuran | Banyak sebutan Pauli, banyak Circuit pengukuran: Hamiltonian untuk molekul mempunyai sebutan Pauli unik. Kerana sebutan Pauli boleh mengandungi sebutan dan , dan pengukuran kuantum biasa dilakukan dalam asas , kita memerlukan perubahan asas pengukuran untuk menilai sebutan tersebut. Apabila dioptimumkan untuk pengukuran, sebutan boleh dikumpulkan kepada kumpulan, di mana setiap kumpulan boleh dinilai menggunakan satu Circuit. Oleh itu, kita memerlukan sekurang-kurangnya Circuit unik untuk menilai semua sebutan Pauli. Banyak shots per Circuit untuk varians yang lebih ketat. Sekali lagi, nilai jangkaan yang dinilai bagi setiap sebutan Pauli mempunyai varians yang bergantung songsang pada . Oleh itu, untuk menganggar setiap sebutan dengan tepat, kita perlu memperuntukkan banyak shots per Circuit. Sebagai contoh, untuk mencapai ketepatan kimia ( kcal/mol), biasanya kita memerlukan shots dalam lingkungan - per Circuit. Oleh itu, VQE memerlukan banyak Circuit pengukuran dan setiap Circuit dengan bilangan shots tertentu. Untuk kes praktikal, overhead pengukuran ini boleh menjadi menyekat. | Dalam SQD, kita tidak memerlukan Circuit pengukuran yang berbeza untuk setiap sebutan Pauli yang dikumpulkan. Biasanya, kita mengukur satu Circuit 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 penepatan adalah tepat, bermakna nilai eigen yang dikira adalah tepat dalam subruang tersebut dan tidak mempunyai varians yang melekat seperti VQE. (Dalam kes pensampelan keadaan asas Krylov (Pelajaran 5), kita perlu mengukur beberapa Circuit, tetapi bilangan Circuit kekal jauh lebih kecil daripada VQE). |
| Had anggaran tenaga | Dalam VQE, anggaran tenaga tidak terbatas dan boleh lebih rendah daripada nilai minimum sebenar akibat bunyi. | 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 bunyi | Anggaran tenaga VQE terdedah kepada bunyi daripada komputer kuantum pra-toleransi kesalahan. | SQD mempunyai toleransi bunyi yang melekat. Komputer kuantum pra-toleransi kesalahan boleh menghasilkan sampel yang bising. Walaupun kita memasukkan sampel tersebut dalam subruang, penepatan 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 bunyi SQD dengan lebih lanjut. |
6. Ringkasanβ
- Dalam SQD, komputer kuantum menghasilkan sampel dan komputer klasik memproyeksikan Hamiltonian ke atas subruang yang direntangi oleh sampel dan mentepatinya untuk mengira nilai eigen dan vektor eigen.
- Sampel yang dihasilkan mestilah daripada sokongan keadaan sasaran (asas).
- Bergantung pada masalah, aliran penyediaan keadaan kuantum dan penjanaan sampel boleh bersifat berulang atau tidak berulang.
- SQD berfungsi terbaik untuk fungsi gelombang yang jarang. Fungsi gelombang yang luas akan memerlukan subruang yang besar untuk penyelesaian yang tepat, yang menjadikan operasi unjuran dan penepatan klasik mahal.
- SQD mempunyai beberapa kelebihan berbanding VQE seperti overhead pengukuran yang lebih rendah dan had atas kepada tenaga keadaan asas yang dianggar, yang menjadikannya lebih berskala.
Rujukanβ
[1] J. Robledo-Moreno et al., "Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer" (2024). arXiv:quant-ph/2405.05068.