Sample-based Quantum Diagonalization (SQD)
Sample-based quantum diagonalization (SQD) menggabungkan aljabar linear klasik dan kekuatan komputasi kuantum untuk mendiagonalisasi Hamiltonian (matriks) dan menghitung eigenvalue serta eigenvector-nya. Diagonalisasi matriks adalah operasi matematika yang penting karena banyak masalah dalam sains, komputasi, dan optimisasi menggunakan metode ini.
Video di bawah memberikan gambaran umum tentang SQD, apa yang menentukan kegunaannya, dan apa yang membuatnya lebih cepat dari banyak pendekatan lain. Teks setelahnya memberikan lebih banyak detail.
1. Pengenalan dan motivasiβ
Pertimbangkan persamaan eigenvalue energi yang terkenal dari SchrΓΆdinger, sebagai contoh.
adalah Hamiltonian suatu sistem, adalah fungsi gelombang (dikenal juga sebagai eigenstate), dan adalah eigenvalue. Eigenvalue dari matriks mewakili tingkat energi sistem. Misalnya, jika sistemnya adalah molekul, eigenvalue terendah mewakili energi ground state molekul tersebut. Dalam banyak masalah, kita tertarik pada estimasi energi ground state.
Dengan menerapkan teknik diagonalisasi eksak dari aljabar linear, kita bisa mendiagonalisasi matriks penuh. Namun, pendekatan ini menjadi mahal secara komputasi (bahkan tidak mungkin) seiring matriks yang semakin besar. Misalnya, bahkan untuk molekul kimia kecil sekalipun, bisa sangat besar (contohnya, Hamiltonian untuk molekul dengan basis cc-PVDZ memiliki dimensi
Untungnya, kita tidak selalu membutuhkan semua eigenvalue dan eigenvector dari Hamiltonian , sehingga diagonalisasi matriks penuh tidak diperlukan dalam banyak kasus praktis. Misalnya, dalam estimasi ground state, kita hanya tertarik pada eigenvalue terendah dan eigenvector yang bersesuaian. Hal ini memungkinkan kita menerapkan konsep proyeksi ke suatu subspace (yang berguna).
Pertimbangkan matriks , , di mana ruang vektor lengkap (ruang Hilbert) memiliki dimensi ( besar). Selanjutnya, kita pilih sebuah subspace () - yang merupakan himpunan bagian dari ruang Hilbert penuh - dengan dimensi , di mana cukup kecil. Setelah memproyeksikan ke subspace ini, matriks yang diproyeksikan (misalnya, ) akan lebih kecil (). yang lebih kecil ini bisa didiagonalisasi menggunakan metode numerik klasik yang sesuai, dan menghasilkan eigenvalue serta eigenvector untuk subspace tersebut.
Perhatikan bahwa subspace harus dalam support dari target (misalnya, ground) eigenstate kita. Dengan kata lain, Hamiltonian yang diproyeksikan harus berada dalam subspace yang mencakup eigenvalue terendah.
2. Proyeksi dan Diagonalisasiβ
Misalkan kita ingin mencari eigenvalue terendah dan eigenvector yang bersesuaian untuk matriks Hamiltonian berikut, .
Kita akan mendiagonalisasi matriks penuh beserta berbagai versi yang diproyeksikan () untuk subspace yang berbeda-beda guna mendemonstrasikan skalabilitas dan pentingnya pemilihan subspace.
Energi ground state (eigenvalue minimum) dari matriks adalah dan fungsi gelombang ground state yang eksak (eigenvector) adalah:
yaitu, ground state dari matriks tersebut direntangkan oleh dua computational basis state (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. ]
Selanjutnya, kita akan memproyeksikan matriks ke berbagai subspace dan memeriksa apakah kita bisa mendapatkan ground state yang eksak. Secara khusus, kita akan memproyeksikan matriks ke subspace yang direntangkan oleh:
- vektor ground state eksak ( dan ).
- vektor yang tidak mencakup sebagian atau semua vektor ground state eksak (misalnya, , , dan ).
- vektor yang mencakup ground state eksak maupun yang bukan ground state (tetapi tidak semua vektor yang mungkin ada dalam ruang Hilbert).
2.1 Kasus-1: Subspace mencakup ground stateβ
Misalkan kita ingin memproyeksikan dalam subspace () yang direntangkan oleh dua vektor dan . Hamiltonian yang diproyeksikan didefinisikan 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 bisa membuat beberapa observasi kunci di sini.
- Karena kita merentangkan subspace dengan dua vektor, dimensi matriks yang diproyeksikan () adalah , yang lebih kecil dari matriks penuh ().
- Eigenvalue minimum dari matriks yang diproyeksikan cocok dengan eigenvalue ground state eksak.
- Nilai dalam variabel
eigvecsmenunjukkan amplitudo dari vektor-vektor penyusun subspace, dan menggunakannya kita bisa merekonstruksi eigenstate (ground state). Dalam kasus ini, kita mendapatkan ground state eksak (hingga fase global):
2.2 Kasus-2: Subspace tidak mencakup sebagian atau semua vektor ground stateβ
Selanjutnya, kita memproyeksikan ke subspace yang direntangkan oleh tiga vektor , , dan . Kita sengaja memilih vektor-vektor sedemikian sehingga tidak mencakup sebuah vektor ground state (). Hamiltonian yang diproyeksikan didefinisikan 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
Eigenvalue dalam kasus ini tidak cocok dengan eigenvalue minimum dari Hamiltonian penuh. Observasi kunci di sini adalah: jika kita memproyeksikan ke subspace yang tidak mencakup basis state dalam target (ground) state kita β baik sebagian maupun sepenuhnya β ground state yang diestimasi akan berbeda dari yang eksak.
2.3 Kasus-3: Subspace mencakup vektor ground state dan non-ground stateβ
Selanjutnya, kita tunjukkan kasus di mana subspace direntangkan oleh vektor-vektor yang mencakup vektor ground state eksak beserta vektor-vektor yang tidak diinginkan. Misalkan subspace kita direntangkan oleh , (ada dalam ground state eksak), dan (tidak ada dalam ground state eksak).
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 kasus ini, kita kembali mendapatkan sebagai eigenvalue minimum yang cocok dengan matriks penuh (yaitu, ground state eksak). Hasil menarik lainnya adalah amplitudo dari yang dikembalikan oleh proses proyeksi dan diagonalisasi. Amplitudonya adalah , dan ketika kita merekonstruksi fungsi gelombang (eigenstate) dengan amplitudo dan vektor yang dihitung, kita mendapatkan:
Jadi, bahkan jika subspace kita mencakup beberapa vektor non-target (bersama dengan set lengkap vektor target), kita tetap bisa menghitung eigenvalue dan eigenstate yang benar karena proses proyeksi dan diagonalisasi menyaring vektor non-target dengan mengatur amplitudonya ke . Sifat SQD ini memberikan toleransi noise yang inheren.
3. Peran kuantum dalam SQDβ
Analisis di atas menetapkan pentingnya vektor-vektor penyusun subspace, yang harus berada dalam support dari state target. Ini menimbulkan pertanyaan penting: Bagaimana cara kita memilih vektor dengan support state target untuk konstruksi subspace?
Di sinilah komputer kuantum berperan. Sinergi kuantum-klasik bekerja sebagai berikut dalam paradigma SQD:
- Menggunakan Circuit kuantum yang sesuai, kita coba menyiapkan state pada komputer kuantum yang akan menghasilkan basis state di mana fungsi gelombang target (misalnya, ground state) memiliki support yang signifikan. Basis state yang disampling (bitstring) akan merentangkan subspace untuk proyeksi Hamiltonian.
- Komputer klasik memproyeksikan Hamiltonian ke subspace (yang direntangkan oleh sampel/vektor dari komputer kuantum) dan mendiagonalisasinya untuk menghitung eigenvalue dan eigenvector menggunakan metode numerik yang sesuai.
Ada beberapa cara untuk menyiapkan state kuantum seperti itu, dan bisa bersifat variasional atau non-variasional tergantung masalahnya.
Dalam dua pelajaran berikutnya, kita akan menunjukkan dua contoh spesifik penyiapan state dan sampling dari state tersebut.
- Dalam Pelajaran 4, kita akan menggunakan ansatz local unitary coupled Jastrow (LUCJ) yang diparameterisasi untuk menghasilkan sampel bagi masalah kimia (estimasi energi ground state molekul ). Kita akan menginisialisasi ansatz LUCJ dengan parameter dari komputasi coupled cluster singles and doubles (CCSD) klasik.
- Dalam Pelajaran 5, kita akan melakukan sampling dari basis state Krylov untuk merentangkan subspace bagi masalah fisika materi terkondensasi. Pendekatan ini bersifat non-variasional.
Selain pendekatan yang spesifik untuk masalah di atas, pendekatan umum untuk penyiapan state melibatkan ansatz variasional, di mana kita akan memperbarui parameter ansatz secara iteratif menggunakan optimizer klasik.
Sampel dari komputer kuantum pre-fault tolerant bisa mengandung noise. SQD menggunakan proses pemulihan konfigurasi yang self-consistent untuk memperbaiki sampel yang mengandung noise [1]. Kita akan membahas proses pemulihan konfigurasi lebih detail dan menerapkannya untuk memperbaiki sampel yang mengandung noise secara iteratif guna menyempurnakan estimasi energi ground state bagi masalah kimia di Pelajaran 4.
3.1 Catatan tentang ground state supportβ
Mari kita jelaskan konsep ground state support lebih lanjut. Ground state support bisa didefinisikan sebagai himpunan basis state di mana ground state memiliki amplitudo non-zero (hingga batas cutoff tertentu).
Misalkan ground state eksak dari masalah -Qubit adalah
Jika kita melakukan sampling dari state di atas, kita seharusnya mendapatkan himpunan computational basis state , (basis state komputasi lainnya memiliki amplitudo nol dalam ground state, dan karena itu, idealnya tidak akan muncul saat sampling).
Idealnya, himpunan vektor basis untuk state ini terdiri dari (dengan kata lain, subspace dari state ini direntangkan oleh kedua vektor basis ini).
Dalam praktiknya, kita tidak perlu menyiapkan ground state eksak karena sampling dari banyak state lain bisa memberikan himpunan vektor yang sama. Misalnya:
Menyiapkan dan melakukan sampling dari salah satu state di atas akan menghasilkan vektor-vektor yang memiliki amplitudo non-zero dalam ground state, dan semuanya memenuhi syarat untuk memiliki ground state support. Perlu dicatat bahwa, sampling menyertakan satu vektor ekstra yang memiliki amplitudo dalam ground state eksak. Namun, sebelumnya kita telah menunjukkan bahwa menyertakan vektor-vektor seperti itu dalam subspace tidak menjadi masalah karena operasi proyeksi dan diagonalisasi mengatur amplitudo vektor yang tidak diinginkan ke , dan kita bisa mendapatkan eigenvalue yang diharapkan serta merekonstruksi eigenstate yang benar.

Jadi, menyiapkan dan sampling dari ground state eksak tidak diperlukan. Bahkan, melakukannya bisa jadi sulit karena ground state eksak tidak diketahui a priori, dan seringkali lebih baik untuk tidak menyiapkan dan sampling dari ground state eksak, terutama jika fungsi gelombang (state) condong dengan beberapa basis state yang memiliki probabilitas sangat tinggi. Pertimbangkan fungsi gelombang berikut:
Ini adalah fungsi gelombang yang condong di mana basis state dan memiliki amplitudo yang jauh lebih besar dibandingkan dan . Ketika disampling, kita akan mendapatkan dan lebih sering ( untuk dan masing-masing, untuk , dan untuk ). Dengan anggaran sampling yang terbatas (shots), sangat mungkin himpunan yang kita sampling hanya berisi dan . Seperti yang ditunjukkan sebelumnya, jika kita merentangkan subspace dengan himpunan seperti itu yang memiliki vektor yang hilang, kita tidak akan bisa menemukan eigenvalue minimum yang sebenarnya. Oleh karena itu, akan lebih menguntungkan (dan diperlukan) untuk melakukan sampling dari state yang memiliki ground state support.
3.2 Alasan menghindari uniform samplingβ
Mungkin ada godaan untuk mengambil sampel dari distribusi seragam untuk merentangkan subspace. Meskipun mungkin berhasil untuk masalah kecil, pendekatan ini akan mulai gagal untuk masalah yang lebih besar dan lebih praktis. Untuk masalah besar dengan banyak Qubit, ruang Hilbert bisa sangat besar. Misalnya, ruang Hilbert 32-Qubit memiliki lebih dari miliar kemungkinan vektor basis (). Jika kita melakukan uniform sampling dari ruang tersebut dengan anggaran sampel terbatas (katakanlah vektor agar proses diagonalisasi tetap layak), subspace mungkin lebih sering mengecualikan vektor dengan ground state support karena prosesnya bersifat acak. Oleh karena itu, kita membutuhkan cara yang sistematis untuk melakukan sampling dari ground state support dengan memanfaatkan Circuit kuantum.
4. SQD dan Sparsity fungsi gelombangβ
Kesenjangan antara dimensi ruang Hilbert penuh dan dimensi subspace yang layak, membawa aspek penting lain dari SQD, yaitu sparsity dari fungsi gelombang. Pendekatan SQD bekerja dengan baik untuk fungsi gelombang yang sparse atau terkonsentrasi di mana sebagian kecil dari basis state memiliki amplitudo yang tidak dapat diabaikan. Ada dua alasan di baliknya:
- Jika fungsi gelombang lebar (yaitu, banyak basis state memiliki amplitudo yang tidak dapat diabaikan), dan kita tidak menyertakan vektor dengan target state support dalam subspace, kita mungkin berakhir dengan eigenvalue dan eigenvector yang tidak benar.
- Untuk menghindari masalah di atas, kita perlu menyertakan banyak vektor dalam subspace. Namun, dimensi Hamiltonian yang diproyeksikan berkaitan langsung dengan dimensi subspace. Subspace yang lebih besar berarti Hamiltonian yang lebih besar, yang mungkin tidak layak untuk didiagonalisasi.
Kita demonstrasikan masalah ini dengan matriks berikut (). Eigenvalue terendah dari adalah , dan fungsi gelombang (eigenstate) yang bersesuaian bersifat lebar:
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]
Misalkan kita memproyeksikan ke subspace yang direntangkan oleh empat vektor: , , , dan lalu menghitung eigenvalue-nya.
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 bahwa ketika fungsi gelombang bersifat lebar, dan kita tidak menyertakan basis state dalam subspace, komputasi eigenvalue menjadi tidak benar.
5. SQD vs. VQEβ
Seperti yang dicatat sebelumnya, SQD mungkin memerlukan Circuit kuantum variasional dan pembaruan parameter iteratif untuk menyiapkan dan melakukan sampling dari ground state support. Karena rutinitas pembaruan parameter iteratif ini mirip dengan VQE, seseorang bisa bertanya bagaimana metode-metode ini berbeda, dan apa keunggulan SQD dibandingkan VQE? Dalam bagian ini, kita membandingkan metode-metode tersebut dan mendiskusikan keunggulan SQD dengan molekul yang dijelaskan dengan basis set minimal (sto-3g) sebagai contoh.
| Β | VQE | SQD |
|---|---|---|
| Overhead pengukuran | Banyak istilah Pauli, banyak Circuit pengukuran: Hamiltonian untuk molekul memiliki istilah Pauli unik. Karena istilah Pauli bisa mengandung istilah dan , dan pengukuran kuantum biasanya dilakukan dalam basis , kita perlu mengubah basis pengukuran untuk mengevaluasi istilah-istilah tersebut. Ketika dioptimalkan untuk pengukuran, istilah tersebut bisa dikelompokkan menjadi grup, di mana setiap grup bisa dievaluasi menggunakan satu Circuit. Jadi, kita memerlukan setidaknya Circuit unik untuk mengevaluasi semua istilah Pauli. Banyak shots per Circuit untuk varians yang lebih ketat. Selain itu, nilai ekspektasi yang dievaluasi dari setiap istilah Pauli memiliki varians yang bergantung secara terbalik pada . Oleh karena itu, untuk memperkirakan setiap istilah secara akurat, kita perlu mengalokasikan banyak shots per Circuit. Misalnya, untuk mencapai akurasi kimia ( kcal/mol), biasanya kita memerlukan shots dalam orde - per Circuit. Jadi, VQE memerlukan banyak Circuit pengukuran dan setiap Circuit dengan jumlah shots tertentu. Untuk kasus praktis, overhead pengukuran ini bisa sangat membatasi. | Dalam SQD, kita tidak memerlukan Circuit pengukuran yang berbeda untuk setiap grup istilah Pauli. Biasanya, kita mengukur satu Circuit untuk jumlah shots yang tetap. Meskipun kita mungkin mengatur jumlah shots ke nilai yang besar tergantung masalahnya, overhead tetap jauh lebih kecil dari VQE. Juga, estimasi energi menggunakan proses diagonalisasi bersifat eksak, artinya eigenvalue yang dihitung adalah eksak dalam subspace tersebut dan tidak memiliki varians yang melekat seperti VQE. (Dalam kasus sampling basis state Krylov (Pelajaran 5), kita perlu mengukur beberapa Circuit, tetapi jumlah Circuit tetap jauh lebih kecil dari VQE). |
| Batas estimasi energi | Dalam VQE, estimasi energi tidak dibatasi dan bisa lebih rendah dari nilai minimum sebenarnya karena noise. | Proses estimasi energi dalam SQD selalu menghasilkan batas atas untuk energi ground state dan energi yang diestimasi tidak akan pernah lebih rendah dari energi ground state yang sebenarnya. |
| Toleransi noise | Estimasi energi VQE rentan terhadap noise dari komputer kuantum pre-fault-tolerant. | SQD memiliki toleransi noise yang inheren. Komputer kuantum pre-fault-tolerant bisa menghasilkan sampel yang mengandung noise. Bahkan jika kita menyertakan sampel-sampel tersebut dalam subspace, diagonalisasi selanjutnya bisa menekan sampel-sampel tersebut dengan mengatur amplitudonya ke nol. Juga, kita akan mendiskusikan metode yang disebut configuration recovery terkait SQD yang meningkatkan toleransi noise SQD lebih lanjut. |
6. Ringkasanβ
- Dalam SQD, komputer kuantum menghasilkan sampel dan komputer klasik memproyeksikan Hamiltonian ke subspace yang direntangkan oleh sampel tersebut lalu mendiagonalisasinya untuk menghitung eigenvalue dan eigenvector.
- Sampel yang dihasilkan harus berasal dari support state target (ground state).
- Bergantung pada masalahnya, alur penyiapan state kuantum dan pembuatan sampel bisa bersifat iteratif atau non-iteratif.
- SQD bekerja paling baik untuk fungsi gelombang yang sparse. Fungsi gelombang yang lebar akan memerlukan subspace yang besar untuk solusi yang akurat, yang membuat operasi proyeksi dan diagonalisasi klasik menjadi mahal.
- SQD memiliki beberapa keunggulan dibandingkan VQE seperti overhead pengukuran yang lebih rendah dan batas atas untuk energi ground state yang diestimasi, yang membuatnya lebih skalabel.
Referensiβ
[1] J. Robledo-Moreno et al., "Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer" (2024). arXiv:quant-ph/2405.05068.