انتقل إلى المحتوى الرئيسي

القطرنة الكمومية القائمة على العينات (SQD)

القطرنة الكمومية القائمة على العينات (SQD) تجمع بين الجبر الخطي الكلاسيكي وقوة الحوسبة الكمومية لتقطير مصفوفة هاميلتونية وحساب قيمها الذاتية ومتجهاتها الذاتية. تقطير المصفوفات عملية رياضية مهمة تُستخدم في مسائل كثيرة من العلوم والحوسبة والتحسين.

يوفر الفيديو التالي نظرة عامة على SQD وما يحدد مدى فائدتها وما يجعلها أسرع من كثير من الأساليب الأخرى. يُقدّم النص التالي مزيداً من التفاصيل.

1. المقدمة والدوافع

لنتأمل معادلة القيمة الذاتية للطاقة التي اشتهرت بها معادلة شرودنغر كمثال:

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

HH هو الهاميلتوني للنظام، وψ|\psi\rangle هي دالة الموجة (المعروفة أيضاً بالحالة الذاتية)، وEE هي القيمة الذاتية. تمثل القيم الذاتية للمصفوفة HH مستويات الطاقة في النظام. فمثلاً إذا كان النظام جزيئاً، فإن أصغر قيمة ذاتية تمثل طاقة الحالة الأساسية للجزيء. وفي كثير من المسائل، نهتم بتقدير طاقة الحالة الأساسية.

بتطبيق تقنيات التقطير الدقيق من الجبر الخطي، يمكننا تقطير المصفوفة HH الكاملة. غير أن هذا الأسلوب يصبح مكلفاً حاسوبياً (بل مستحيلاً) كلما كبرت المصفوفة. فمثلاً، حتى للجزيئات الكيميائية الصغيرة، يمكن أن تكون HH كبيرة جداً (هاميلتوني جزيء N2N_2 باستخدام أساس cc-PVDZ مثلاً له أبعاد 65780×6578065780 \times 65780).

لحسن الحظ، لا نحتاج دائماً إلى جميع القيم الذاتية والمتجهات الذاتية للهاميلتوني HH، وبالتالي لا يُشترط تقطير المصفوفة الكاملة في كثير من الحالات العملية. فعند تقدير الحالة الأساسية مثلاً، نهتم بأصغر قيمة ذاتية والمتجه الذاتي المقابل لها. وهذا يتيح لنا تطبيق مفهوم الإسقاط على فضاء جزئي (مفيد).

لنفترض مصفوفة N×NN \times N، هي HH، يمتلك فيها الفضاء المتجهي الكامل (فضاء هيلبرت) بُعداً مقداره NN (حيث NN كبير). نختار بعد ذلك فضاءً جزئياً (S\mathcal{S}) — وهو مجموعة فرعية من فضاء هيلبرت الكامل — بعده MM، حيث MM صغير بما يكفي. بعد إسقاط HH على هذا الفضاء الجزئي، تكون المصفوفة المُسقَطة (لنسمها HSH_\mathcal{S}) أصغر حجماً (M×MM \times M). ويمكن تقطير HSH_\mathcal{S} الأصغر باستخدام طريقة عددية كلاسيكية مناسبة لإنتاج قيم ذاتية ومتجهات ذاتية لذلك الفضاء الجزئي.

لاحظ أن الفضاء الجزئي يجب أن يكون في مجال دعم حالتنا الهدف (مثل الحالة الأساسية). بمعنى آخر، يجب أن يكون الهاميلتوني المُسقَط HSH_\mathcal{S} في فضاء جزئي يتضمن أصغر قيمة ذاتية.

2. الإسقاط والتقطير

لنفترض أننا نريد إيجاد أصغر قيمة ذاتية والمتجه الذاتي المقابل لها لمصفوفة هاميلتونية HH بأبعاد 8×88 \times 8 كالتالي:

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}

سنقطّر المصفوفة الكاملة إلى جانب نسخ مُسقَطة مختلفة (HSH_\mathcal{S}) لفضاءات جزئية متنوعة، لتوضيح قابلية التوسع وأهمية اختيار الفضاء الجزئي.

طاقة الحالة الأساسية (أصغر قيمة ذاتية) للمصفوفة HH هي 0.5357-0.5357، ودالة الموجة الدقيقة للحالة الأساسية (المتجه الذاتي) هي:

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

أي أن الحالة الأساسية للمصفوفة تتمتد على حالتي الأساس الحسابي (المتجهين) 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 على فضاءات جزئية مختلفة للتحقق من إمكانية الحصول على الحالة الأساسية الدقيقة. تحديداً، سنُسقط المصفوفة على فضاء جزئي يتمتد على:

  1. متجهات الحالة الأساسية الدقيقة (011\vert 011 \rangle و101\vert 101 \rangle).
  2. متجهات تستبعد بعض أو جميع متجهات الحالة الأساسية الدقيقة (مثل 000\vert 000 \rangle و011\vert 011 \rangle و110\vert 110 \rangle).
  3. متجهات تشمل كلاً من متجهات الحالة الأساسية ومتجهات خارجها (لكن ليس جميع المتجهات الممكنة في فضاء هيلبرت).

2.1 الحالة الأولى: الفضاء الجزئي يشمل الحالة الأساسية

لنفترض أننا نريد إسقاط HH على فضاء جزئي (S\mathcal{S}) يتمتد على متجهين x1=011x_1 = |011\rangle وx2=101x_2 = |101\rangle. يُعرَّف الهاميلتوني المُسقَط بـ:

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]

يمكننا استخلاص عدة ملاحظات جوهرية هنا:

  • بما أن الفضاء الجزئي يتمتد على متجهين، يكون بُعد المصفوفة المُسقَطة (HSH_\mathcal{S}) هو 2×22 \times 2، وهو أصغر من المصفوفة الكاملة HH (8×88 \times 8).
  • تتطابق أصغر قيمة ذاتية للمصفوفة المُسقَطة مع القيمة الذاتية للحالة الأساسية الدقيقة.
  • تمثل القيم في المتغير eigvecs سعة (إسهام) متجهات الفضاء الجزئي، ويمكننا استخدامها لإعادة بناء الحالة الذاتية (الحالة الأساسية). وفي هذه الحالة نحصل على الحالة الأساسية الدقيقة (حتى مرحلة كمّية كلية):
ψ=(0.8011+0.6101)|\psi \rangle = - (0.8 |011\rangle + 0.6 |101\rangle)

2.2 الحالة الثانية: الفضاء الجزئي يستبعد بعض أو كل متجهات الحالة الأساسية

بعد ذلك، نُسقط HH على فضاء جزئي يتمتد على ثلاثة متجهات x1=000x_1 = |000\rangle وx2=011x_2 = |011\rangle وx3=110x_3 = |110\rangle. نختار هذه المتجهات بحيث تستبعد متجه الحالة الأساسية (101\vert 101 \rangle). يُعرَّف الهاميلتوني المُسقَط بـ:

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

القيمة الذاتية 0.2111-0.2111 في هذه الحالة لا تتطابق مع أصغر قيمة ذاتية 0.5357-0.5357 للهاميلتوني الكامل. الملاحظة الجوهرية هنا: إذا أسقطنا على فضاء جزئي يستبعد حالات الأساس الموجودة في حالتنا الهدف (الأساسية) — سواء جزئياً أو كلياً — فإن الحالة الأساسية المقدَّرة ستختلف عن الدقيقة.

2.3 الحالة الثالثة: الفضاء الجزئي يشمل متجهات الحالة الأساسية وغيرها

نستعرض الآن حالة يتمتد فيها الفضاء الجزئي على متجهات تشمل متجهات الحالة الأساسية الدقيقة إلى جانب متجهات غير مرغوب بها. لنفترض أن فضاءنا الجزئي يتمتد على x1=011x_1 = |011\rangle وx2=101x_2 = |101\rangle (موجودان في الحالة الأساسية الدقيقة) وx3=111x_3 = |111\rangle (غائب عن الحالة الأساسية الدقيقة).

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 كأصغر قيمة ذاتية، وهو ما يتطابق مع المصفوفة الكاملة (أي الحالة الأساسية الدقيقة). ونتيجة مثيرة أخرى هي سعة x3x_3 التي تُعيدها عملية الإسقاط والتقطير؛ فهي 00. وعند إعادة بناء دالة الموجة (الحالة الذاتية) بالسعات والمتجهات المحسوبة، نحصل على:

ψ=0.8011+0.6101+0.0111=0.8011+0.6101(الحالة الأساسية الدقيقة)\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{الحالة الأساسية الدقيقة} \right)

وهكذا، حتى لو تضمّن الفضاء الجزئي لدينا بعض المتجهات غير الهدف (مع المجموعة الكاملة من المتجهات الهدف)، يمكننا حساب القيمة الذاتية والحالة الذاتية الصحيحتين؛ إذ تُرشّح عملية الإسقاط والتقطير المتجهات غير الهدف بجعل سعاتها 00. توفر هذه الخاصية في SQD تحملاً للضوضاء متأصلاً في الأسلوب.

3. دور الكم في SQD

تُرسّخ التحليلات السابقة أهمية متجهات الفضاء الجزئي، التي يجب أن تكون في مجال دعم الحالة الهدف. وهذا يثير تساؤلاً جوهرياً: كيف نختار المتجهات التي تمتلك مجال دعم الحالة الهدف لبناء الفضاء الجزئي؟

هنا يأتي دور الحواسيب الكمومية. يعمل التعاون الكم-كلاسيكي في نموذج SQD كالتالي:

  1. باستخدام دائرة كمومية مناسبة، نحاول تهيئة حالة على حاسوب كمومي تُولّد حالات أساس تمتلك دعماً كبيراً لدالة الموجة الهدف (مثل الحالة الأساسية). ستمتد حالات الأساس المأخوذة كعينات (سلاسل البتات) على الفضاء الجزئي لإسقاط الهاميلتوني.
  2. يُسقط الحاسوب الكلاسيكي الهاميلتوني على الفضاء الجزئي (الممتد على العينات/المتجهات من الحاسوب الكمومي) ويُقطّره لحساب القيم الذاتية والمتجهات الذاتية باستخدام أساليب عددية مناسبة.

مخطط يوضح المكونات الكمومية والكلاسيكية في SQD. كمومياً، تُهيِّئ وتأخذ عينات من مجال الدعم المستهدف؛ وكلاسيكياً، تُسقط مصفوفتك على الفضاء الجزئي المأخوذ عينات منه وتُقطّر مصفوفتك المُسقَطة.

ثمة طرق عدة لتهيئة مثل هذه الحالة الكمومية، وقد تكون تباينية أو غير تباينية بحسب المسألة.

في الدرسين القادمين، سنعرض مثالين محددين لتهيئة الحالات وأخذ العينات منها:

  1. في الدرس الرابع، سنستخدم دارة أنساتز LUCJ (المقترن جاستروف الموحد المحلي المُعلمَت) لإنتاج العينات لمسألة كيميائية (تقدير طاقة الحالة الأساسية لجزيء N2N_2). سنُهيئ أنساتز LUCJ بمعاملات مأخوذة من الحساب الكلاسيكي لمفردات وأزواج الحلقات المترابطة (CCSD).
  2. في الدرس الخامس، سنأخذ عينات من حالات أساس كريلوف لتوسيع نطاق الفضاء الجزئي لمسألة في فيزياء المواد المكثفة. وهذا الأسلوب غير تباينيّ بطبيعته.

بالإضافة إلى الأساليب الخاصة بالمسائل أعلاه، يتضمن الأسلوب العام لتهيئة الحالة دارة أنساتز تباينية، نُحدّث فيها معاملات الأنساتز تدريجياً باستخدام مُحسِّن كلاسيكي.

مخطط انسيابي يبدأ من دائرة كمومية تباينية، مروراً بأخذ عينات كمومية، وصولاً إلى الحوسبة الكلاسيكية حيث تُسقَط المصفوفة وتُقطَّر. ثم تُغذَّى النتائج إلى مُحسِّن كلاسيكي يختار معاملات تباينية جديدة، فنعود إلى الدائرة الكمومية التباينية.

العينات المأخوذة من الحواسيب الكمومية ما قبل التسامح مع الأخطاء قد تكون مشوشة. يعتمد SQD عملية استرداد تهيئة ذاتية الاتساق لتصحيح العينات المشوشة [1]. سنناقش عملية استرداد التهيئة بمزيد من التفصيل وسنطبقها لتصحيح العينات المشوشة تدريجياً لتحسين تقدير طاقة الحالة الأساسية لمسألة كيميائية في الدرس الرابع.

3.1 ملاحظات حول مجال دعم الحالة الأساسية

لنشرح مفهوم مجال دعم الحالة الأساسية بمزيد من التفصيل. يمكن تعريف مجال دعم الحالة الأساسية بأنه مجموعة حالات الأساس التي تمتلك سعة غير صفرية في الحالة الأساسية (حتى عتبة قطع معينة).

لنفترض أن الحالة الأساسية الدقيقة لمسألة بـ 33 كيوبت هي:

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

لو أخذنا عينات من الحالة أعلاه، ينبغي أن نحصل على مجموعة من حالات الأساس الحسابي {000\{\vert 000 \rangle، 111}\vert 111 \rangle \} (حالات الأساس الأخرى لها سعة صفرية في الحالة الأساسية، وبالتالي لن تظهر أثناء أخذ العينات في الحالة المثالية).

من الناحية المثالية، تتكون مجموعة متجهات الأساس لهذه الحالة من {000,111}\{ \vert 000 \rangle, \vert 111 \rangle \} (بمعنى آخر، الفضاء الجزئي لهذه الحالة يتمتد على هذين المتجهين الأساسيين).

في الواقع العملي، لا نحتاج إلى تهيئة الحالة الأساسية الدقيقة إذ يمكن لأخذ عينات من حالات أخرى كثيرة أن يمنحنا نفس مجموعة المتجهات. مثلاً:

ψ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}

تهيئة أيٍّ من الحالات أعلاه وأخذ عينات منها سيولّد متجهات ذات سعة غير صفرية في الحالة الأساسية، وجميعها تمتلك مجال دعم الحالة الأساسية. لاحظ أن أخذ عينات من ψc\vert \psi_c \rangle يتضمن متجهاً إضافياً 101\vert 101 \rangle له سعة 00 في الحالة الأساسية الدقيقة. غير أننا أثبتنا سابقاً أن تضمين مثل هذه المتجهات في الفضاء الجزئي لا يُشكّل مشكلة؛ إذ تضع عملية الإسقاط والتقطير سعة المتجهات غير المرغوب بها عند 00، فنحصل على القيمة الذاتية المتوقعة ونُعيد بناء الحالة الذاتية الصحيحة.

مخططات أنساتز جيد وأنساتز رديء. الأنساتز الجيد يمتلك مجال دعم يشمل مجال دعم الحالة الأساسية بالكامل. أما الأنساتز الرديء فيشمل جزءاً فقط من مجال دعم الحالة الأساسية أو لا يشمل منه شيئاً.

وهكذا، تهيئة الحالة الأساسية الدقيقة والأخذ منها ليست ضرورة. بل إن ذلك قد يكون صعباً نظراً لأن الحالة الأساسية الدقيقة غير معروفة مسبقاً، وكثيراً ما يكون من المفيد عدم تهيئة الحالة الأساسية الدقيقة والأخذ منها، خاصة إذا كانت دالة الموجة (الحالة) منحرفة بحيث تمتلك بعض حالات الأساس احتمالات عالية جداً. تأمل دالة الموجة التالية:

ψ=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

هذه دالة موجة منحرفة حيث تمتلك حالتا الأساس 000\vert 000 \rangle و010\vert 010 \rangle سعات أكبر بكثير مقارنةً بـ 101\vert 101 \rangle و111\vert 111 \rangle. عند أخذ العينات، ستظهر 000\vert 000 \rangle و010\vert 010 \rangle بتكرار أعلى (احتمال أخذ العينة=السعة2\text{احتمال أخذ العينة} = \vert \text{السعة} \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). مع ميزانية عينات محدودة (لقطات)، من المرجح جداً أن تحتوي مجموعة العينات لدينا على 000\vert 000 \rangle و010\vert 010 \rangle فحسب. وكما رأينا سابقاً، إذا امتد الفضاء الجزئي على مثل هذه المجموعة الناقصة للمتجهات، لن نتمكن من إيجاد أصغر قيمة ذاتية حقيقية. لذلك سيكون من المفيد (والضروري) أخذ العينات من حالة تمتلك مجال دعم الحالة الأساسية.

3.2 الحجة ضد أخذ العينات الموحدة

قد يغري المرء أخذ العينات من توزيع موحد لتوسيع نطاق الفضاء الجزئي. وبينما قد يُجدي هذا الأسلوب للمسائل الصغيرة، إلا أنه سيُخفق في المسائل الأكبر والأكثر عملية. فللمسائل الكبيرة ذات الكيوبتات الكثيرة، قد يكون فضاء هيلبرت ضخماً للغاية. فمثلاً، يحتوي فضاء هيلبرت لـ 32 كيوبت على أكثر من 44 مليارات متجه أساس ممكن (232=4,294,967,2962^{32} = 4,294,967,296). لو أخذنا عينات موحدة من هذا الفضاء بميزانية عينات محدودة (لنقل 1000010000 متجه للإبقاء على عملية التقطير قابلة للتنفيذ)، فقد يستبعد الفضاء الجزئي المتجهات ذات مجال دعم الحالة الأساسية في كثير من الأحيان نظراً لعشوائية العملية. لذلك نحتاج إلى طريقة منهجية لأخذ عينات من مجال دعم الحالة الأساسية باستخدام الدوائر الكمومية.

4. SQD وتناثر دالة الموجة

تُبرز الفجوة بين أبعاد فضاء هيلبرت الكامل وأبعاد الفضاء الجزئي القابل للتنفيذ جانباً مهماً آخر من SQD، وهو تناثر دالة الموجة. يعمل أسلوب SQD بكفاءة مع دوال الموجة المتناثرة أو المركّزة حيث يمتلك جزء صغير فقط من حالات الأساس سعات لا يمكن إهمالها. ويعود ذلك لسببين:

  1. إذا كانت دالة الموجة واسعة الانتشار (أي أن حالات الأساس الكثيرة تمتلك سعات لا يمكن إهمالها)، وأغفلنا تضمين متجهات ذات مجال دعم الحالة الهدف في الفضاء الجزئي، فقد ينتهي بنا الأمر إلى قيم ذاتية ومتجهات ذاتية غير صحيحة.
  2. لتجنب المشكلة أعلاه، نحتاج إلى تضمين متجهات كثيرة في الفضاء الجزئي. غير أن بُعد الهاميلتوني المُسقَط يرتبط مباشرةً ببُعد الفضاء الجزئي. فضاء جزئي أكبر يعني هاميلتونياً أكبر، مما قد يجعل عملية التقطير غير قابلة للتنفيذ.

نوضح هذه الإشكالية بالمصفوفة التالية (HnewH_{new}). أصغر قيمة ذاتية لـ HnewH_{new} هي 2.2081-2.2081، ودالة الموجة المقابلة (الحالة الذاتية) واسعة الانتشار:

ψ=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} على فضاء جزئي يتمتد على أربعة متجهات: 000|000\rangle و010|010\rangle و101|101\rangle و110|110\rangle ثم نحسب القيمة الذاتية.

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

يُثبت المثال أعلاه أنه عندما تكون دالة الموجة واسعة الانتشار ولا نضمّن حالات الأساس في الفضاء الجزئي، يصبح حساب القيمة الذاتية غير صحيح.

5. SQD مقابل VQE

كما أشرنا سابقاً، قد يحتاج SQD إلى دارة كمومية تباينية وتحديثات دورية للمعاملات لتهيئة الحالة وأخذ العينات من مجال دعم الحالة الأساسية. وبما أن هذا الإجراء التكراري لتحديث المعاملات يشبه VQE، يجدر التساؤل: كيف يختلف الأسلوبان؟ وما مزايا SQD على VQE؟ في هذا القسم، نقارن الأسلوبين ونناقش مزايا SQD باستخدام جزيء N2N_2 الموصوف بمجموعة الأساس الصغرى (sto-3g) كمثال.

 VQESQD
تكلفة القياسمصطلحات باولي كثيرة، دوائر قياس كثيرة: يمتلك هاميلتوني الجزيء 29512951 مصطلح باولي فريداً. وبما أن مصطلحات باولي قد تحتوي على حدود XX وYY، وأن القياسات الكمومية تُجرى عادةً في الأساس ZZ، فنحتاج إلى تغيير أساس القياس لتقييم تلك الحدود. عند التحسين للقياسات، يمكن تجميع الـ 29512951 مصطلحاً في 11871187 مجموعة، يمكن تقييم كل مجموعة باستخدام دارة واحدة. وبالتالي نحتاج إلى 11871187 دارة فريدة على الأقل لتقييم جميع مصطلحات باولي. لقطات كثيرة لكل دارة لتقليل التباين. كذلك، فإن قيمة التوقع المقدَّرة لكل مصطلح باولي ترتبط بتباين يعتمد عكسياً على اللقطات\sqrt{\text{اللقطات}}. لذلك، لتقدير كل مصطلح بدقة، نحتاج إلى تخصيص لقطات كثيرة لكل دارة. فمثلاً، لتحقيق الدقة الكيميائية (11 kcal/mol)، نحتاج عادةً إلى لقطات بترتيب 10510^5-10710^7 لكل دارة. وهكذا يحتاج VQE إلى دوائر قياس كثيرة مع عدد محدد من اللقطات لكل دارة. في الحالات العملية، قد تكون هذه التكلفة قياسية مقيِّدة.في SQD، لا نحتاج إلى دوائر قياس مختلفة لكل مجموعة مصطلحات باولي. عادةً، نقيس دارة واحدة لعدد محدد من اللقطات. وبينما قد نضبط عدد اللقطات على قيمة كبيرة بحسب المسألة، تبقى التكلفة أقل بكثير من VQE. كذلك، فإن تقديرات الطاقة باستخدام عملية التقطير دقيقة بمعنى أن القيم الذاتية المحسوبة دقيقة في ذلك الفضاء الجزئي وليس لها تباين مثل VQE. (في حالة أخذ العينات من حالات أساس كريلوف في الدرس الخامس، نحتاج إلى قياس دوائر متعددة، لكن عدد الدوائر يبقى أقل بكثير من VQE).
حد تقدير الطاقةفي VQE، تقديرات الطاقة غير محدودة وقد تكون أدنى من القيم الدنيا الحقيقية بسبب الضوضاء.عملية تقدير الطاقة في SQD تُنتج دائماً حداً أعلى لطاقة الحالة الأساسية، ولن تكون الطاقة المقدَّرة أبداً أقل من طاقة الحالة الأساسية الحقيقية.
التحمل للضوضاءتقدير طاقة VQE عرضة للضوضاء من الحواسيب الكمومية ما قبل التسامح مع الأخطاء.SQD لديه تحمل متأصل للضوضاء. يمكن للحواسيب الكمومية ما قبل التسامح مع الأخطاء أن تُنتج عينات مشوشة. حتى لو أدرجنا تلك العينات في الفضاء الجزئي، يمكن لعملية التقطير اللاحقة أن تُقمع تلك العينات بجعل سعاتها صفراً. كذلك، سنناقش أسلوباً يُسمى استرداد التهيئة المرتبط بـ SQD والذي يُحسّن تحمل SQD للضوضاء أكثر.

6. الخلاصة

  1. في SQD، يُولّد الحاسوب الكمومي عينات ويُسقط الحاسوب الكلاسيكي الهاميلتوني على فضاء جزئي يتمتد على العينات ويُقطّره لحساب القيم الذاتية والمتجهات الذاتية.
  2. يجب أن تكون العينات المولَّدة من مجال دعم الحالة الهدف (الأساسية).
  3. بحسب المسألة، قد يكون سير عمل تهيئة الحالة الكمومية وتوليد العينات تكرارياً أو غير تكراري.
  4. يعمل SQD بكفاءة أكبر مع دوال الموجة المتناثرة. دالة الموجة الواسعة الانتشار تتطلب فضاءً جزئياً كبيراً للحصول على حلول دقيقة، مما يُكلّف عملية الإسقاط والتقطير الكلاسيكية.
  5. يمتلك SQD عدة مزايا على VQE كتكلفة قياس أقل وحد أعلى لطاقة الحالة الأساسية المقدَّرة، مما يجعله أكثر قابلية للتوسع.

المراجع

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