ข้ามไปยังเนื้อหาหลัก

Sample-based Quantum Diagonalization (SQD)

Sample-based quantum diagonalization (SQD) ผสานพีชคณิตเชิงเส้นแบบคลาสสิกเข้ากับพลังของควอนตัมคอมพิวติ้ง เพื่อ diagonalize Hamiltonian (เมทริกซ์) และคำนวณ eigenvalue กับ eigenvector การ diagonalize เมทริกซ์เป็นการดำเนินการทางคณิตศาสตร์ที่สำคัญ เนื่องจากปัญหาหลายอย่างในวิทยาศาสตร์ การคำนวณ และการเพิ่มประสิทธิภาพต่างใช้วิธีนี้

วิดีโอด้านล่างให้ภาพรวมของ SQD สิ่งที่กำหนดความมีประโยชน์ของมัน และสิ่งที่ทำให้มันเร็วกว่าวิธีอื่นๆ หลายแบบ ข้อความต่อจากนี้จะให้รายละเอียดเพิ่มเติม

1. บทนำและแรงจูงใจ

ลองพิจารณาสมการ eigenvalue ของพลังงานที่เป็นที่รู้จักจาก Schrödinger เป็นตัวอย่าง

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

HH คือ Hamiltonian ของระบบ ψ|\psi\rangle คือฟังก์ชันคลื่น (หรือที่รู้จักว่า eigenstate) และ EE คือ eigenvalue โดย eigenvalue ของเมทริกซ์ HH แทนระดับพลังงานของระบบ ตัวอย่างเช่น ถ้าระบบคือโมเลกุล eigenvalue ต่ำสุดแทน ground state energy ของโมเลกุลนั้น ในหลายปัญหา เราสนใจการประมาณ ground state energy

เมื่อใช้เทคนิค exact diagonalization จากพีชคณิตเชิงเส้น เราสามารถ diagonalize เมทริกซ์ HH ทั้งหมดได้ แต่วิธีนี้มีต้นทุนการคำนวณสูงมากขึ้นเรื่อยๆ (หรืออาจเป็นไปไม่ได้เลย) เมื่อเมทริกซ์ขยายใหญ่ขึ้น ตัวอย่างเช่น แม้แต่สำหรับโมเลกุลเคมีขนาดเล็ก HH ก็อาจมีขนาดใหญ่มากจนเกินจะรับมือได้ (เช่น Hamiltonian ของโมเลกุล N2N_2 ที่ใช้ฐาน cc-PVDZ มีมิติถึง 65780×65780).65780 \times 65780).

โชคดีที่เราไม่จำเป็นต้องหา eigenvalue และ eigenvector ทั้งหมดของ Hamiltonian HH เสมอไป ดังนั้น การ diagonalize เมทริกซ์ทั้งหมดจึงไม่จำเป็นในหลายกรณีปฏิบัติ เช่น สำหรับการประมาณ ground state เราสนใจเฉพาะ eigenvalue ต่ำสุดและ eigenvector ที่สอดคล้อง ซึ่งทำให้เราสามารถนำแนวคิดการฉายภาพลงบน subspace (ที่มีประโยชน์) มาใช้ได้

พิจารณาเมทริกซ์ขนาด N×NN \times N นาม HH โดยที่ปริภูมิเวกเตอร์สมบูรณ์ (Hilbert space) มีมิติ NN (NN มีขนาดใหญ่) ต่อไป เราเลือก subspace (S\mathcal{S}) ซึ่งเป็นส่วนย่อยของ Hilbert space ทั้งหมด มิติ MM โดยที่ MM มีขนาดเล็กพอ หลังจากฉาย HH ลงบน subspace นี้ เมทริกซ์ที่ฉายได้ (เรียกว่า HSH_\mathcal{S}) จะมีขนาดเล็กลง (M×MM \times M) และ HSH_\mathcal{S} ที่เล็กลงสามารถ diagonalize ได้ด้วยวิธีเชิงตัวเลขแบบคลาสสิกที่เหมาะสม พร้อมสร้าง eigenvalue และ eigenvector สำหรับ subspace นั้น

หมายเหตุว่า subspace ต้องอยู่ใน support ของ eigenstate เป้าหมาย (เช่น ground) ของเรา กล่าวอีกนัยหนึ่ง Hamiltonian ที่ฉาย HSH_\mathcal{S} ต้องอยู่ใน subspace ที่ครอบคลุม eigenvalue ต่ำสุด

2. การฉายและการ Diagonalize

สมมติว่าเราต้องการหา eigenvalue ต่ำสุดและ eigenvector ที่สอดคล้องสำหรับเมทริกซ์ Hamiltonian ขนาด 8×88 \times 8 นี้คือ HH

H=[0.22350.03900.10350.08180.17460.10910.11650.01040.03900.66210.07060.19640.07820.26190.10950.00290.10350.07060.99610.17240.10670.22990.18170.15710.08180.19640.17240.17730.10190.47780.12720.04140.17460.07820.10670.10190.14180.13590.17930.07660.10910.26190.22990.47780.13590.10140.16960.05520.11650.10950.18170.12720.17930.16960.42270.27020.01040.00290.15710.04140.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}

เราจะ diagonalize เมทริกซ์ทั้งหมดพร้อมกับเวอร์ชันที่ฉายต่างๆ (HSH_\mathcal{S}) สำหรับ subspace ที่แตกต่างกัน เพื่อแสดงความสามารถในการขยายขนาดและความสำคัญของการเลือก subspace

ground state energy (eigenvalue ต่ำสุด) ของเมทริกซ์ HH คือ 0.5357-0.5357 และฟังก์ชันคลื่น ground state ที่แน่นอน (eigenvector) คือ:

GSexact=0.8011+0.6101.\text{GS}_{\text{exact}} = 0.8 * |011\rangle + 0.6 * |101\rangle.

นั่นคือ ground state ของเมทริกซ์ถูกกางออกโดย computational basis state (เวกเตอร์) สองตัวคือ 011\vert 011 \rangle และ 101\vert 101 \rangle

# 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. ]

ต่อไป เราจะฉาย HH ลงบน subspace ต่างๆ และตรวจสอบว่าเราสามารถหา ground state ที่แน่นอนได้หรือไม่ โดยเฉพาะ เราจะฉายเมทริกซ์ลงบน subspace ที่กางออกโดย:

  1. เวกเตอร์ ground state ที่แน่นอน (011\vert 011 \rangle และ 101\vert 101 \rangle)
  2. เวกเตอร์ที่ยกเว้นเวกเตอร์ ground state บางส่วนหรือทั้งหมด (เช่น 000\vert 000 \rangle, 011\vert 011 \rangle, และ 110\vert 110 \rangle)
  3. เวกเตอร์ที่รวมทั้ง ground state และ out-of-ground state (แต่ไม่ใช่เวกเตอร์ทั้งหมดที่เป็นไปได้ใน Hilbert space)

2.1 กรณีที่ 1: Subspace ครอบคลุม Ground State

สมมติว่าเราต้องการฉาย HH ลงบน subspace (S\mathcal{S}) ที่กางออกโดยเวกเตอร์สองตัวคือ x1=011x_1 = |011\rangle และ x2=101x_2 = |101\rangle Hamiltonian ที่ฉายได้นิยามโดย:

HS=[x1Hx1x1Hx2x2Hx1x2Hx2]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 @ 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]

เราสามารถสังเกตสิ่งสำคัญหลายประการได้ที่นี่

  • เนื่องจากเรากาง subspace ด้วยเวกเตอร์สองตัว มิติของเมทริกซ์ที่ฉาย (HSH_\mathcal{S}) จึงเป็น 2×22 \times 2 ซึ่งเล็กกว่าเมทริกซ์เต็ม HH (8×88 \times 8)
  • eigenvalue ต่ำสุดของเมทริกซ์ที่ฉายตรงกับ eigenvalue ของ ground state ที่แน่นอน
  • ค่าในตัวแปร eigvecs แสดง amplitude ของเวกเตอร์ที่กาง subspace และเราสามารถใช้ค่าเหล่านั้นสร้าง eigenstate (ground state) ขึ้นใหม่ได้ ในกรณีนี้ เราได้ ground state ที่แน่นอน (ถึง global phase):
ψ=(0.8011+0.6101)|\psi \rangle = - (0.8 |011\rangle + 0.6 |101\rangle)

2.2 กรณีที่ 2: Subspace ยกเว้นเวกเตอร์ Ground State บางส่วนหรือทั้งหมด

ต่อไป เราฉาย HH ลงบน subspace ที่กางออกโดยเวกเตอร์สามตัวคือ x1=000x_1 = |000\rangle, x2=011x_2 = |011\rangle, และ x3=110x_3 = |110\rangle เราเลือกเวกเตอร์โดยตั้งใจให้ยกเว้นเวกเตอร์ ground state (101\vert 101 \rangle) Hamiltonian ที่ฉายได้นิยามโดย:

HS=[x1Hx1x1Hx2x1Hx3x2Hx1x2Hx2x2Hx3x3Hx1x3Hx2x3Hx3]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 @ 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 0.2111-0.2111 ในกรณีนี้ไม่ตรงกับ eigenvalue ต่ำสุด 0.5357-0.5357 ของ Hamiltonian เต็ม ข้อสังเกตสำคัญคือ: ถ้าเราฉายลงบน subspace ที่ยกเว้น basis state ใน target state (ground) ของเราไม่ว่าจะบางส่วนหรือทั้งหมด ground state ที่ประมาณได้จะแตกต่างจากค่าจริง

2.3 กรณีที่ 3: Subspace รวมทั้งเวกเตอร์ Ground State และ Non-Ground State

ต่อไป เราแสดงกรณีที่ subspace กางออกโดยเวกเตอร์ที่รวมทั้งเวกเตอร์ ground state ที่แน่นอนและเวกเตอร์ที่ไม่ต้องการ สมมติว่า subspace ของเรากางออกโดย x1=011x_1 = |011\rangle, x2=101x_2 = |101\rangle (มีอยู่ใน ground state ที่แน่นอน) และ x3=111x_3 = |111\rangle (ไม่มีใน 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. ]

ในกรณีนี้ เราได้ 0.5357-0.5357 เป็น eigenvalue ต่ำสุดซึ่งตรงกับเมทริกซ์เต็ม (นั่นคือ ground state ที่แน่นอน) ผลลัพธ์ที่น่าสนใจอีกอย่างคือ amplitude ของ x3x_3 ที่ได้จากกระบวนการฉายและ diagonalize โดย amplitude นั้นเท่ากับ 00 และเมื่อเราสร้าง wave function (eigenstate) ขึ้นใหม่ด้วย amplitude และเวกเตอร์ที่คำนวณได้ เราจะได้:

ψ=0.8011+0.6101+0.0111=0.8011+0.6101(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)

ดังนั้น แม้ว่า subspace ของเราจะรวมเวกเตอร์ที่ไม่ใช่เป้าหมายบางส่วน (พร้อมกับชุดเวกเตอร์เป้าหมายครบถ้วน) เราก็ยังสามารถคำนวณ eigenvalue และ eigenstate ที่ถูกต้องได้ เนื่องจากกระบวนการฉายและ diagonalize กรองเวกเตอร์ที่ไม่ใช่เป้าหมายออกโดยตั้ง amplitude เป็น 00 คุณสมบัตินี้ของ SQD ให้ความทนทานต่อสัญญาณรบกวนโดยธรรมชาติ

3. บทบาทของควอนตัมใน SQD

การวิเคราะห์ข้างต้นแสดงให้เห็นความสำคัญของเวกเตอร์ที่กาง subspace ซึ่งต้องอยู่ใน support ของ target state สิ่งนี้ทำให้เกิดคำถามสำคัญ: เราจะเลือกเวกเตอร์ที่มี target state support สำหรับการสร้าง subspace ได้อย่างไร?

นี่คือจุดที่ ควอนตัมคอมพิวเตอร์ เข้ามามีบทบาท ความร่วมมือระหว่างควอนตัมและคลาสสิกในกรอบ SQD ทำงานดังนี้:

  1. โดยใช้ quantum circuit ที่เหมาะสม เราพยายามเตรียมสถานะบนควอนตัมคอมพิวเตอร์ที่จะสร้าง basis state ซึ่ง target wave function (เช่น ground state) มี support ที่มีนัยสำคัญ basis state ที่สุ่มตัวอย่าง (bitstring) จะกาง subspace สำหรับการฉาย Hamiltonian
  2. คอมพิวเตอร์คลาสสิกฉาย Hamiltonian ลงบน subspace (ที่กางออกโดยตัวอย่าง/เวกเตอร์จากควอนตัมคอมพิวเตอร์) และ diagonalize เพื่อคำนวณ eigenvalue และ eigenvector โดยใช้วิธีเชิงตัวเลขที่เหมาะสม A diagram of quantum and classical components of SQD. In quantum, you prepare and sample from your target support, you classically project your matrix onto the sampled subspace and diagonalize your projected matrix. มีหลายวิธีที่เราสามารถเตรียมสถานะควอนตัมเช่นนี้ได้ และอาจเป็นแบบ variational หรือ non-variational ขึ้นอยู่กับปัญหา

ในสองบทเรียนถัดไป เราจะแสดงตัวอย่างเฉพาะสองกรณีของการเตรียมสถานะและสุ่มตัวอย่างจากมัน

  1. ในบทเรียนที่ 4 เราจะใช้ parameterized local unitary coupled Jastrow (LUCJ) ansatz เพื่อสร้างตัวอย่างสำหรับปัญหาเคมี (การประมาณ ground state energy ของโมเลกุล N2N_2) โดยจะกำหนดค่าเริ่มต้น LUCJ ansatz ด้วยพารามิเตอร์จากการคำนวณ classical coupled cluster singles and doubles (CCSD)
  2. ในบทเรียนที่ 5 เราจะสุ่มตัวอย่างจาก Krylov basis state เพื่อกาง subspace สำหรับปัญหาฟิสิกส์วัสดุควบแน่น วิธีนี้มีลักษณะ non-variational

นอกจากวิธีเฉพาะปัญหาข้างต้น วิธีทั่วไปสำหรับการเตรียมสถานะเกี่ยวข้องกับ variational ansatz ที่เราจะอัปเดตพารามิเตอร์ ansatz ซ้ำๆ โดยใช้ classical optimizer A flow chart from a variational quantum circuit through quantum sampling over to classical computing in which the matrix is projected and diagonalized. Then the results are fed into a classical optimizer which selects new variational parameters, and we return to the variational quantum circuit. ตัวอย่างจากควอนตัมคอมพิวเตอร์แบบ pre-fault tolerant อาจมีสัญญาณรบกวน SQD ใช้กระบวนการกู้คืนการกำหนดค่าแบบ self-consistent เพื่อแก้ไขตัวอย่างที่มีสัญญาณรบกวน [1] เราจะอธิบายกระบวนการกู้คืนการกำหนดค่าอย่างละเอียดและนำมาใช้แก้ไขตัวอย่างที่มีสัญญาณรบกวนซ้ำๆ เพื่อปรับปรุงการประมาณ ground state energy สำหรับปัญหาเคมีในบทเรียนที่ 4

3.1 หมายเหตุเกี่ยวกับ Ground State Support

อธิบายแนวคิด ground state support ให้ชัดเจนยิ่งขึ้น ground state support สามารถนิยามได้ว่าเป็นชุดของ basis state ที่ ground state มี amplitude ไม่เป็นศูนย์ (ถึง cutoff threshold)

สมมติว่า ground state ที่แน่นอนของปัญหา 33-Qubit คือ

ψ=12000+12111\vert \psi \rangle = \frac{1}{\sqrt{2}} \vert 000 \rangle + \frac{1}{\sqrt{2}} \vert 111 \rangle

ถ้าเราสุ่มตัวอย่างจากสถานะข้างต้น เราควรได้ชุด computational basis state {000\{\vert 000 \rangle, 111}\vert 111 \rangle \} (computational basis state อื่นๆ มี amplitude เป็นศูนย์ใน ground state ดังนั้นโดยอุดมคติจะไม่ปรากฏระหว่างการสุ่มตัวอย่าง)

โดยอุดมคติ ชุดของ basis vector สำหรับสถานะนี้ประกอบด้วย {000,111}\{ \vert 000 \rangle, \vert 111 \rangle \} (กล่าวอีกนัยหนึ่ง subspace ของสถานะนี้กางออกโดย basis vector ทั้งสองนี้)

ในทางปฏิบัติ เราไม่จำเป็นต้องเตรียม ground state ที่แน่นอน เนื่องจากการสุ่มตัวอย่างจากสถานะอื่นๆ หลายๆ สถานะก็สามารถให้ชุดเวกเตอร์เดียวกันได้ ตัวอย่างเช่น:

ψa=0.8000+0.6111Sampling{000,111}ψb=12000+32111Sampling{000,111}ψc=12000+12111+12101Sampling{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}

การเตรียมและสุ่มตัวอย่างจากสถานะใดสถานะหนึ่งข้างต้นจะสร้างเวกเตอร์ที่มี amplitude ไม่เป็นศูนย์ใน ground state และทั้งหมดนั้นมีคุณสมบัติเป็น ground state support หมายเหตุว่า การสุ่มตัวอย่าง ψc\vert \psi_c \rangle รวมเวกเตอร์พิเศษหนึ่งตัวคือ 101\vert 101 \rangle ซึ่งมี 00 amplitude ใน ground state ที่แน่นอน อย่างไรก็ตาม เราได้แสดงก่อนหน้านี้แล้วว่าการรวมเวกเตอร์ดังกล่าวใน subspace ไม่ก่อให้เกิดปัญหา เนื่องจากการดำเนินการฉายและ diagonalize ตั้ง amplitude ของเวกเตอร์ที่ไม่ต้องการเป็น 00 และเราสามารถหา eigenvalue ที่คาดหวังและสร้าง eigenstate ที่ถูกต้องขึ้นใหม่ได้

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.

ดังนั้น การเตรียมและสุ่มตัวอย่างจาก ground state ที่แน่นอนจึงไม่จำเป็น ในความเป็นจริง การทำเช่นนั้นอาจทำได้ยากเนื่องจาก ground state ที่แน่นอนไม่ทราบล่วงหน้า และมักเป็นประโยชน์ที่จะ ไม่ เตรียมและสุ่มตัวอย่างจาก ground state ที่แน่นอน โดยเฉพาะอย่างยิ่งถ้า wave function (สถานะ) เอียงโดยที่ basis state บางตัวมีความน่าจะเป็นสูงมาก พิจารณา wave function ต่อไปนี้:

ψ=0.70000.7010+0.11010.01111\vert \psi \rangle = 0.7 \vert 000 \rangle - 0.7 \vert 010 \rangle + 0.1 \vert 101 \rangle - 0.01 \vert 111 \rangle

นี่คือ wave function ที่เอียงโดยที่ basis state 000\vert 000 \rangle และ 010\vert 010 \rangle มี amplitude ใหญ่กว่ามากเมื่อเทียบกับ 101\vert 101 \rangle และ 111\vert 111 \rangle เมื่อสุ่มตัวอย่าง เราจะได้ 000\vert 000 \rangle และ 010\vert 010 \rangle บ่อยกว่า (ความน่าจะเป็นในการสุ่มตัวอย่าง=amplitude2\text{ความน่าจะเป็นในการสุ่มตัวอย่าง} = \vert \text{amplitude} \vert^{2} 49%\approx 49\% สำหรับ 000\vert 000 \rangle และ 010\vert 010 \rangle แต่ละตัว, 1%\approx 1\% สำหรับ 101\vert 101 \rangle, และ 0.01%\approx 0.01\% สำหรับ 111\vert 111 \rangle) ด้วยงบประมาณการสุ่มตัวอย่างที่จำกัด (shots) มีความน่าจะเป็นสูงมากที่ชุดตัวอย่างของเราจะมีเฉพาะ 000\vert 000 \rangle และ 010\vert 010 \rangle ดังที่แสดงก่อนหน้านี้ ถ้าเรากาง subspace ด้วยชุดดังกล่าวที่ขาดเวกเตอร์ไป เราจะไม่สามารถหา eigenvalue ต่ำสุดที่แท้จริงได้ ดังนั้น จึงเป็นประโยชน์ (และจำเป็น) ที่จะสุ่มตัวอย่างจากสถานะที่มี ground state support

3.2 กรณีต่อต้านการสุ่มตัวอย่างแบบ Uniform

อาจเกิดความอยากดึงตัวอย่างจากการแจกแจงแบบ uniform เพื่อกาง subspace แม้ว่าอาจใช้ได้กับปัญหาขนาดเล็ก แต่จะเริ่มล้มเหลวสำหรับปัญหาขนาดใหญ่และปฏิบัติจริง สำหรับปัญหาขนาดใหญ่ที่มี qubit หลายตัว Hilbert space อาจใหญ่มากจนเกินจะรับมือได้ ตัวอย่างเช่น Hilbert space ขนาด 32 qubit มี basis vector ที่เป็นไปได้มากกว่า 44 พันล้าน (232=4,294,967,2962^{32} = 4,294,967,296) ถ้าเราสุ่มตัวอย่างจากปริภูมินั้นอย่าง uniform ด้วยงบประมาณตัวอย่างที่จำกัด (สมมติว่า 1000010000 เวกเตอร์เพื่อให้กระบวนการ diagonalization ทำได้จริง) subspace อาจยกเว้นเวกเตอร์ที่มี ground state support บ่อยขึ้น เนื่องจากกระบวนการจะเป็นแบบสุ่ม ดังนั้น เราจำเป็นต้องมีวิธีการที่เป็นระบบในการสุ่มตัวอย่างจาก ground state support โดยใช้ quantum circuit

4. SQD และความเบาบางของ Wave Function

ช่องว่างระหว่าง Hilbert space เต็มและมิติ subspace ที่ทำได้จริง ทำให้เกิดแง่มุมสำคัญอีกอย่างของ SQD นั่นคือ ความเบาบางของ wave function แนวทาง SQD ทำงานได้ดีสำหรับ wave function แบบ sparse หรือ concentrated ซึ่ง basis state เพียงส่วนน้อยมี amplitude ที่ไม่อาจละเลยได้ มีสองเหตุผล:

  1. ถ้า wave function กว้าง (นั่นคือ basis state จำนวนมากมี amplitude ที่ไม่อาจละเลยได้) และเราไม่รวมเวกเตอร์ที่มี target state support ใน subspace เราอาจได้ eigenvalue และ eigenvector ที่ไม่ถูกต้อง
  2. เพื่อหลีกเลี่ยงปัญหาข้างต้น เราต้องรวมเวกเตอร์จำนวนมากใน subspace อย่างไรก็ตาม มิติของ Hamiltonian ที่ฉายสัมพันธ์โดยตรงกับมิติ subspace subspace ที่ใหญ่กว่าหมายถึง Hamiltonian ที่ใหญ่กว่า ซึ่งอาจทำ diagonalize ไม่ได้จริง

เราแสดงปัญหาด้วยเมทริกซ์ต่อไปนี้ (HnewH_{new}) eigenvalue ต่ำสุดของ HnewH_{new} คือ 2.2081-2.2081 และ wave function (eigenstate) ที่สอดคล้องนั้นกว้าง:

ψ=000+001+010+011+100+101+110+1118|\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]

สมมติว่าเราฉาย HnewH_{new} ลงบน subspace ที่กางออกโดยเวกเตอร์สี่ตัวคือ 000|000\rangle, 010|010\rangle, 101|101\rangle, และ 110|110\rangle แล้วคำนวณ eigenvalue

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

ตัวอย่างข้างต้นแสดงให้เห็นว่าเมื่อ wave function กว้างและเราไม่รวม basis state ใน subspace การคำนวณ eigenvalue จะไม่ถูกต้อง

5. SQD กับ VQE

ดังที่กล่าวไว้ก่อนหน้านี้ SQD อาจต้องใช้ variational quantum circuit และการอัปเดตพารามิเตอร์แบบ iterative เพื่อเตรียมและสุ่มตัวอย่างจาก ground state support เนื่องจากรูทีนการอัปเดตพารามิเตอร์แบบ iterative นี้คล้ายกับ VQE จึงอาจมีคำถามว่าวิธีเหล่านี้แตกต่างกันอย่างไร และ SQD มีข้อดีอะไรเหนือ VQE? ในส่วนนี้ เราเปรียบเทียบวิธีการและอภิปรายข้อดีของ SQD โดยใช้โมเลกุล N2N_2 ที่อธิบายด้วย minimal basis set (sto-3g) เป็นตัวอย่าง

 VQESQD
ต้นทุนการวัดPauli term จำนวนมาก, circuit วัดจำนวนมาก: Hamiltonian สำหรับโมเลกุลมี Pauli term ที่ไม่ซ้ำกัน 29512951 term เนื่องจาก Pauli term อาจมี term ที่เป็น XX และ YY และการวัดควอนตัมปกติทำในฐาน ZZ เราจึงต้องเปลี่ยนฐานการวัดเพื่อประเมิน term เหล่านั้น เมื่อเพิ่มประสิทธิภาพสำหรับการวัด 29512951 term สามารถจัดกลุ่มเป็น 11871187 กลุ่ม โดยแต่ละกลุ่มสามารถประเมินได้ด้วย circuit เดียว ดังนั้น เราต้องใช้อย่างน้อย 11871187 circuit ที่ไม่ซ้ำกันเพื่อประเมิน Pauli term ทั้งหมด Shots จำนวนมากต่อ circuit เพื่อลด variance อีกครั้ง ค่าความคาดหวังที่ประเมินได้ของแต่ละ Pauli term มี variance แนบมาซึ่งสัมพันธ์กับค่าผกผันของ shots\sqrt{shots} ดังนั้น เพื่อประมาณแต่ละ term อย่างแม่นยำ เราต้องจัดสรร shots จำนวนมากต่อ circuit ตัวอย่างเช่น เพื่อให้บรรลุความแม่นยำทางเคมี (11 kcal/mol) โดยทั่วไปเราต้องการ shots ในระดับ 10510^5-10710^7 ต่อ circuit ดังนั้น VQE ต้องการ circuit วัดจำนวนมากและแต่ละ circuit มี shots จำนวนหนึ่ง สำหรับกรณีปฏิบัติจริง ต้นทุนการวัดนี้อาจเป็นข้อจำกัดใน SQD เราไม่ต้องการ circuit วัดที่แตกต่างกันสำหรับแต่ละกลุ่ม Pauli term โดยทั่วไป เราวัด circuit เดียวด้วย shots จำนวนคงที่ แม้ว่าเราอาจตั้งค่า shots เป็นจำนวนมากขึ้นอยู่กับปัญหา แต่ต้นทุนยังคงน้อยกว่า VQE มาก นอกจากนี้ การประมาณพลังงานด้วยกระบวนการ diagonalization นั้นแม่นยำ หมายความว่า eigenvalue ที่คำนวณได้แม่นยำใน subspace นั้นและไม่มี variance แนบมาเหมือน VQE (ในกรณีของการสุ่มตัวอย่าง Krylov basis state (บทเรียนที่ 5) เราต้องวัด circuit หลายตัว แต่จำนวน circuit ยังคงน้อยกว่า VQE มาก)
ขอบเขตพลังงานที่ประมาณใน VQE การประมาณพลังงานไม่มีขอบเขตและอาจต่ำกว่าค่าต่ำสุดที่แท้จริงเนื่องจากสัญญาณรบกวนกระบวนการประมาณพลังงานใน SQD มักให้ค่าขอบบนสำหรับ ground state energy เสมอ และพลังงานที่ประมาณได้จะไม่ต่ำกว่า ground state energy ที่แท้จริง
ความทนทานต่อสัญญาณรบกวนการประมาณพลังงานของ VQE มีความอ่อนไหวต่อสัญญาณรบกวนจากควอนตัมคอมพิวเตอร์แบบ pre-fault-tolerantSQD มีความทนทานต่อสัญญาณรบกวนโดยธรรมชาติ ควอนตัมคอมพิวเตอร์แบบ pre-fault-tolerant สามารถสร้างตัวอย่างที่มีสัญญาณรบกวน แม้ว่าเราจะรวมตัวอย่างเหล่านั้นใน subspace แต่การ diagonalization ที่ตามมาก็สามารถระงับตัวอย่างเหล่านั้นโดยตั้ง amplitude เป็นศูนย์ได้ นอกจากนี้ เราจะอภิปรายวิธีที่เรียกว่า configuration recovery ที่เกี่ยวข้องกับ SQD ซึ่งเพิ่มความทนทานต่อสัญญาณรบกวนของ SQD ยิ่งขึ้น

6. สรุป

  1. ใน SQD ควอนตัมคอมพิวเตอร์สร้างตัวอย่างและคอมพิวเตอร์คลาสสิกฉาย Hamiltonian ลงบน subspace ที่กางออกโดยตัวอย่างและ diagonalize เพื่อคำนวณ eigenvalue และ eigenvector
  2. ตัวอย่างที่สร้างขึ้นควรมาจาก target (ground) state support
  3. ขึ้นอยู่กับปัญหา กระบวนการเตรียมสถานะควอนตัมและการสร้างตัวอย่างอาจเป็นแบบ iterative หรือ non-iterative
  4. SQD ทำงานได้ดีที่สุดสำหรับ wave function แบบ sparse wave function ที่กว้างจะต้องการ subspace ขนาดใหญ่สำหรับการแก้ปัญหาที่แม่นยำ ซึ่งทำให้การดำเนินการฉายและ diagonalization แบบคลาสสิกมีค่าใช้จ่ายสูง
  5. SQD มีข้อดีหลายประการเหนือ VQE เช่น ต้นทุนการวัดที่ต่ำกว่าและขอบบนของ ground state energy ที่ประมาณ ซึ่งทำให้มีความสามารถในการขยายขนาดมากกว่า

References

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

Source: IBM Quantum docs — updated 25 มี.ค. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of approx. 26 มี.ค. 2569