אלכסון קוונטי מבוסס דגימה (SQD)
אלכסון קוונטי מבוסס דגימה (SQD) משלב אלגברה לינארית קלאסית עם עוצמת המחשוב הקוונטי כדי לאלכסן המילטוניאן (מטריצה) ולחשב את הערכים העצמיים ואת הווקטורים העצ מיים שלו. אלכסון מטריצות הוא פעולה מתמטית חשובה, שכן בעיות רבות במדע, במחשוב ובאופטימיזציה משתמשות בה.
הסרטון הבא נותן סקירה של SQD, מה קובע את תועלתו, ומה הופך אותו למהיר יותר מגישות רבות אחרות. הטקסט שאחריו מפרט יותר.
1. מבוא ומוטיבציה
נשתמש במשוואת ערכי האנרגיה העצמיים שהפכה מפורסמת בזכות שרדינגר כדוגמה.
הוא ההמילטוניאן של מערכת, היא פונקציית הגל (המוכרת גם כמצב עצמי), ו- הוא ערך עצמי. הערכים העצמיים של המטריצה מייצגים את רמות האנרגיה של המערכת. למשל, אם המערכת היא מולקולה, הערך העצמי הנמוך ביותר מייצג את אנרגיית המצב הבסיסי של המולקולה. בבעיות רבות אנו מתעניינים באמידת אנרגיית המצב הבסיסי.
על ידי שימוש בטכניקות אלכסון מדויק מאלגברה לינארית, נוכל לאלכסן את מטריצת המלאה. אולם גישה זו הופכת לכבדה חישובית (ואף בלתי אפשרית) ככל שהמטריצה גדלה. למשל, גם עבור מולקולות כימיות קטנות, יכולה להיות גדולה באופן בעייתי (לדוגמה, ההמילטוניאן של מולקולת עם בסיס cc-PVDZ הוא בעל ממד
למרבה המזל, לא תמיד נחוצים לנו כל הערכים העצמיים והווקטורים העצמיים של המילטוניאן , ולכן, במקרים מעשיים רבים אין צורך לאלכסן את המטריצה המלאה. לדוגמה, במקרה של אמידת מצב בסיסי, אנו מתעניינים בערך העצמי הנמוך ביותר ובווקטור העצמי המתאים. זה מאפשר לנו להשתמש במושג ההיטל על תת-מרחב (שימושי).
נשקול מטריצה , , שבה למרחב הווקטורי המלא (מרחב הילברט) יש ממד ( גדול). לאחר מכן נבחר תת-מרחב () — שהוא תת-קבוצה של מרחב הילברט המלא — בעל ממד , כאשר קטן מספיק. לאחר היטל על תת-מרחב זה, המטריצה המוטלת (נקרא לה ) תהיה קטנה יותר (). ניתן לאלכסן את הקטנה יותר בשיטה מספרית קלאסית מתאימה, ולהפיק ערכים עצמיים ווקטורים עצמיים עבור אותו תת-מרחב.
שים לב שתת-המרחב חייב להיות ב_תמיכה_ של המצב העצמי המטרה שלנו (לדוגמה, מצב בסיסי). במילים אחרות, ההמילטוניאן המוטל חייב להיות בתת-מרחב הכולל את הערך העצמי הנמוך ביותר.
2. היטל ואלכסון
נניח שאנו רוצים למצוא את הערך העצמי הנמוך ביותר ואת הווקטור העצמי המתאים עבור מטריצת ההמילטוניאן בגודל הבאה.
נאלכסן את המטריצה המלאה יחד עם גרסאות מוטלות שונות () עבור תת-מרחבים שונים, כדי להדגים את מדרגיות השיטה ואת חשיבות בחירת תת-המרחב.
אנרגיית המצב הבסיסי (ערך עצמי מינימלי) של המטריצה היא ופונקציית הגל של המצב הבסיסי ה_מדויקת_ (ווקטור עצמי) היא:
כלומר, המצב הבסיסי של המטריצה נפרש על ידי שני וקטורי בסיס חישוביים (ווקטורים) ו-.
# 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. ]
לאחר מכן, נטיל את המטריצה על תת-מרחבים שונים ונבדוק אם נוכל לקבל את המצב הבסיסי המדויק. בפרט, נטיל את המטריצה על תת-מרחב הנפרש על ידי:
- ווקטורי המצב הבסיסי המדויקים ( ו-).
- ווקטורים שאינם כוללים חלק מווקטורי המצב הבסיסי המדויקים או את כולם (לדוגמה, , , ו-).
- ווקטורים הכוללים גם ווקטורי מצב בסיסי מדויקים וגם ווקטורים שאינם שייכים למצב הבסיסי (אך לא את כל הווקטורים האפשריים במרחב הילברט).
2.1 מקרה 1: תת-המרחב כולל את המצב הבסיסי
נניח שאנו רוצים להטיל את על תת-מרחב () הנפרש על ידי שני ווקטורים ו-. ההמילטוניאן המוטל מוגדר על ידי:
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]
ניתן להסיק מכאן מספר תצפיות מפתח.
- מאחר שפרסנו את תת-המרחב בשני ווקטורים, הממד של המטריצה המוטלת () הוא , שהוא קטן מהמטריצה המלאה ().
- הערך העצמי המינימלי של המטריצה המוטלת תואם את ערך האנרגיה המדויק של המצב הבסיסי.
- הערכים במשתנה
eigvecsמציינים את האמפליטודה של ווקטורי הפרישה של תת-המרחב, ובעזרתם נוכל לשחזר את המצב העצמי (המצב הבסיסי). במקרה זה נגיע למצב הבסיסי המדויק (עד פאזה גלובלית):
2.2 מקרה 2: תת-המרחב לא כולל חלק מווקטורי המצב הבסיסי או את כולם
לאחר מכן, נטיל את על תת-מרחב הנפרש על ידי שלושה ווקטורים , , ו-. אנחנו בוחרים בכוונה ווקטורים שאינם כוללים ווקטור מצב בסיסי (). ההמילטוניאן המוטל מוגדר על ידי:
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
הערך העצמי במקרה זה אינו תואם את הערך העצמי המינימלי של ההמילטוניאן המלא. התצפית המרכזית כאן היא: אם נטיל על תת-מרחב שאינו כולל מצבי בסיס של המצב המטרה (הבסיסי) שלנו — בין אם חלקית ובין אם לחלוטין — אנרגיית המצב הבסיסי המשוערת תהיה שונה מהמדויקת.
2.3 מקרה 3: תת-המרחב כולל גם ווקטורי מצב בסיסי וגם ווקטורים שאינם שייכים למצב הבסיסי
לאחר מכן, נציג מקרה שבו תת-המרחב נפרש על ידי ווקטורים הכוללים ווקטורי מצב בסיסי מדויקים לצד ווקטורים בלתי רצויים. נניח שתת-המרחב שלנו נפרש על ידי , (קיימים במצב הבסיסי המדויק), ו- (נעדר מהמצב הבסיסי המדויק).
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. ]
במקרה זה, אנו מקבלים שוב כערך עצמי מינימלי, התואם את המטריצה המלאה (כלומר, המצב הבסיסי המדויק). תוצאה מעניינת נוספת היא האמפליטודה של שמחזיר תהליך ההיטל והאלכסון. האמפליטודה היא , וכשאנו משחזרים את פונקציית הגל (המצב העצמי) עם האמפליטודות והווקטורים המחושבים, אנו מקבלים:
כך, גם אם תת-המרחב שלנו כולל ווקטורים שאינם ממטרה (לצד הקבוצה המלאה של ווקטורי המטרה), נוכל לחשב את הערך העצמי והמצב העצמי הנכונים, שכן תהליך ההיטל והאלכסון מסנן ווקטורים שאינם ממטרה על ידי הגדרת אמפליטודותיהם ל-. תכונה זו של SQD מספקת סבילות רעש טבועה.
3. תפקיד המחשוב הקוונטי ב-SQD
הניתוחים שלעיל מבססים את החשיבות של וקטורי פריסת תת-המרחב, אשר חייבים להיות בתמיכה של המצב המטרה. זה מעלה שאלה חשובה: כיצד בוחרים וקטורים עם תמיכת מצב המטרה לבניית תת-המרחב?
כאן מחשבים קוונט יים נכנסים לתמונה. הסינרגיה הקוונטית-קלאסית פועלת כך בפרדיגמת SQD:
- באמצעות Circuit קוונטי מתאים, אנו מנסים להכין מצב במחשב קוונטי שייצר מצבי בסיס שבהם לפונקציית הגל המטרה (למשל, מצב היסוד) יש תמיכה משמעותית. מצבי הבסיס הנדגמים (ביטסטרינגים) יפרסו את תת-המרחב לטובת הטלת ה-Hamiltonian.
- מחשב קלאסי מטיל את ה-Hamiltonian על תת-המרחב (הנפרס על ידי דגימות/וקטורים מהמחשב הקוונטי) ומלכסן אותו כדי לחשב ערכי עצמי ווקטורי עצמי באמצעות שיטות נומריות מתאימות.
יש כמה דרכים להכין מצב קוונטי כזה, והן יכולות להיות וריאציוניות או לא-וריאציוניות בהתאם לבעיה.
בשני השיעורים הבאים נציג שני דוגמאות ספציפיות להכנת מצבים ודגימה מהם.
- בשיעור 4, נשתמש ב-ansatz לוקאלי אוניטרי קשור ג'סטרו (LUCJ) עם פרמטרים כדי לייצר דגימות לבעיית כימיה (אומדן אנרגיית מצב יסוד של מולקולת ). נאתחל את ה-LUCJ ansatz עם פרמטרים מחישוב קלאסי של coupled cluster singles and doubles (CCSD).
- בשיעור 5, נדגום ממצבי בסיס של Krylov כדי לפרוס את תת-המרחב לבעיית פיזיקה של חומר מעובה. גישה זו אינה וריאציונית באופייה.
מעבר לגישות הספציפיות לבעיה לעיל, גישה גנרית להכנת מצב כוללת ansatz וריאציוני, שבו נעדכן פרמטרי ansatz בצורה איטרטיבית באמצעות מייעל קלאסי.
דגימות ממחשבים קוונטיים לפני סבילות לתקלות עלולות להיות רועשות. SQD משתמש בתה ליך שחזור תצורה עצמי-עקבי לתיקון דגימות רועשות [1]. נדון בתהליך שחזור התצורה בפירוט רב יותר ונישם אותו לתיקון דגימות רועשות בצורה איטרטיבית כדי לחדד את אומדן אנרגיית מצב היסוד לבעיית כימיה בשיעור 4.
3.1 הערות על תמיכת מצב היסוד
בואו נסביר את המושג תמיכת מצב היסוד ביתר פירוט. ניתן להגדיר תמיכת מצב יסוד כקבוצת מצבי הבסיס שבהם למצב היסוד יש משרעת שאינה אפס (עד לסף גזירה).
נניח שמצב היסוד המדויק של בעיית -Qubit הוא
אם נדגום את המצב לעיל, אנו אמורים לקבל קבוצה של מצבי בסיס חישובי , (למצבי בסיס חישובי אחרים יש משרעת אפס במצב היסוד, ולכן, באופן אידיאלי, לא יופיעו בדגימה).
באופן אידיאלי, קבוצת וקטורי הבסיס למצב זה מורכבת מ- (במילים אחרות, תת-המרחב של מצב זה נפרס על ידי שני וקטורי בסיס אלה).
בפועל, אין צורך להכין את מצב היסוד המדויק, שכן דגימה ממצבים רבים אחרים יכולה לתת לנו את אותה קבוצת וקטורים. לדוגמה:
הכנה ודגימה מכל אחד מהמצבים לעיל תייצר וקטורים בעלי משרעת שאינה אפס במצב היסוד, וכולם כשירים לכך שיש להם תמיכת מצב יסוד. שימו לב שדגימה מ- כוללת וקטור נוסף אחד שיש לו משרעת במצב היסוד המדויק. אולם, כפי שהראינו קודם, הכללת וקטורים כאלה בתת-המרחב אינה בעייתית שכן פעולת ההטלה והלכסון מציבה את המשרעת של הוקטורים הבלתי רצויים ל-, וניתן לקבל את ערך העצמי הצפוי ולשחזר את מצב העצמי הנכון.

לפיכך, הכנה ודגימה ממצב היסוד המדויק אינן הכרחיות. למעשה, עשות כן יכולה להיות קשה שכן מצב היסוד המדויק אינו ידוע מראש, ולעיתים קרובות מועיל לא להכין ולדגום ממצב היסוד המדויק, במיוחד אם פונקציית הגל ( המצב) מוטה כאשר לחלק ממצבי הבסיס יש הסתברויות גבוהות מאוד. שקלו את פונקציית הגל הבאה:
זוהי פונקציית גל מוטה שבה למצבי הבסיס ו- יש משרעות גדולות בהרבה בהשוואה ל- ו-. כאשר דוגמים, נקבל את ו- לעיתים קרובות יותר ( עבור ו- כל אחד, עבור , ו- עבור ). עם תקציב דגימה מוגבל (shots), סביר מאוד שהקבוצה הנדגמת שלנו תכיל רק את ו-. כפי שהראינו קודם, אם נפרוס את תת-המרחב עם קבוצה כזו שחסרים בה וקטורים, לא נוכל למצוא את ערך העצמי המינימלי האמיתי. לכן, יהיה מועיל (ונחוץ) לדגום ממצב בעל תמיכת מצב יסוד.
3.2 טיעון נגד דגימה אחידה
עלול להיות מפתה לשאוב דגימות מהתפלגות אחידה כדי לפרוס את תת-המרחב. בעוד שזה עשוי לעבוד עבור בעיות קטנות, זה יתחיל להיכשל עבור בעיות גדולות ומעשיות יותר. לבעיות גדולות עם Qubits רבים, מרחב הילברט יכול להיות גדול בצורה שאינה ניתנת לטיפול. לדוגמה, מרחב הילברט של 32-Qubit מכיל יותר מ- מיליארד וקטורי בסיס אפשריים (). אם נדגום באופן אחיד מאותו מרחב עם תקציב דגימה מוגבל (נניח וקטורים כדי לשמור על ישימות תהליך הלכסון), תת-המרחב עלול לא לכלול וקטורים עם תמיכת מצב יסוד לעיתים קרובות יותר שכן התהליך יהיה אקראי. לכן, אנחנו צריכים דרך שיטתית לדגום מתמיכת מצב היסוד תוך ניצול Circuit-ים קוונטיים.
4. SQD ודלילות פונקציית הגל
הפער בין מרחב הילברט המלא לממדי תת-המרחב הישימים מביא היבט חשוב נוסף של SQD, והוא דלילות פונקציית הגל. גישת SQD עובדת היטב עבור פונקציות גל דלילות או מרוכזות שבהן חלק קטן ממצבי הבסיס בעל משרעות שאינן זניחות. ישנן שתי סיבות לכך:
- אם פונקציית הגל רחבה (כלומר, למצבי בסיס רבים יש משרעות שאינן זניחות), ואנחנו מחמיצים וקטורים עם תמיכת מצב המטרה בתת-המרחב, אנחנו עלולים לקבל ערכי עצמי ווקטורי עצמי שגויים.
- כדי להימנע מהבעיה לעיל, צריך לכלול וקטורים רבים בתת-המרחב. אולם, הממד של ה-Hamiltonian המוטל קשור ישירות לממד תת-המרחב. תת-מרחב גדול יותר יאמר Hamiltonian גדול יותר, שעלול להפוך ללא ישים ללכסון.
אנחנו מדגימים את הבעיה עם המטריצה הבאה (). ערך העצמי הנמוך ביותר של הוא , ופונקציית הגל המתאימה (מצב עצמי) היא רחבה:
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]
נניח שאנחנו מטילים את על תת-מרחב הנפרס על ידי ארבעה וקטורים: , , , ו- ומחשבים את ערך העצמי.
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 עשוי להזדקק ל-Circuit קוונטי וריאציוני ועדכוני פרמטרים איטרטיביים כדי להכין ולדגום מתמיכת מצב היסוד. מכיוון שנוהל עדכון הפרמטרים האיטרטיבי הזה דומה ל-VQE, אפשר לשאול כיצד שיטות אלה שונות, ומה היתרונות של SQD על VQE? בסעיף זה, אנחנו משווים את השיטות ודנים ביתרונות של SQD עם מולקולת המתוארת עם קבוצת בסיס מינימלית (sto-3g) כדוגמה.
| VQE | SQD | |
|---|---|---|
| עלות מדידה | מונחי Pauli רבים, Circuit-ים מדידה רבים: ל-Hamiltonian של המולקולה יש מונחי Pauli ייחודיים. מאחר שמונחי Pauli יכולים להכיל מונחי ו-, ומדידות קוונטיות טיפוסיות נעשות בבסיס , אנחנו צריכים שינוי בסיס מדידה כדי להעריך מונחים אלה. כשמאופטם למדידות, ניתן לקבץ את המונחים ל- קבוצות, כשכל קבוצה יכולה להיות מוערכת באמצעות Circuit בודד. כך, אנחנו צריכים לפחות Circuit-ים ייחודיים להערכת כל מונחי Pauli. shots רבים לכל Circuit לשונות קטנה יותר. שוב, לערך הציפייה המוערך של כל מונח Pauli יש שונות הצמודה לו שתלויה ביחוס הפוך ב-. לכן, כדי לאמוד בדיוק כל מונח, אנחנו צריכים להקצות shots רבים לכל Circuit. לדוגמה, כדי להשיג דיוק כימי ( kcal/mol), בדרך כלל אנחנו צריכים shots בסדר גודל של - לכל Circuit. לפיכך, VQE צריך Circuit-ים מדידה רבים וכל Circuit עם מספר מסוים של shots. במקרים מעשיים, עלות מדידה זו יכולה להיות מגבילה. | ב-SQD, איננו צריכים Circuit-ים מדידה שונים לכל מונחי Pauli המקובצים. בדרך כלל, אנחנו מודדים Circuit בודד עבור מספר קבוע של shots. בעוד שאנחנו עשויים להגדיר את מספר ה-shots לערך גדול בהתאם לבעיה, העלות נשארת קטנה בהרבה מ-VQE. כמו כן, אומדני האנרגיה באמצעות תהליך הלכסון הם מדויקים, כלומר ערכי העצמי המחושבים מדויקים בתת-המרחב הזה ואין להם שונות כמו ב-VQE. (במקרה של דגימת מצבי בסיס של Krylov (שיעור 5), אנחנו צריכים למדוד Circuit-ים מרובים, אך מספר ה-Circuit-ים נשאר קטן בהרבה מ-VQE). |
| חסם אנרגיה מוערכת | ב-VQE, אומדני אנרגיה אינם חסומים ועלולים להיות נמוכים מהערכים המינימליים האמיתיים עקב רעש. | תהליך אומדן האנרגיה ב-SQD תמיד מייצר חסם עליון לאנרגיית מצב היסוד, והאנרגיה המוערכת לעולם לא תהיה נמוכה מאנרגיית מצב היסוד האמיתית. |
| סבילות לרעש | אומדן אנרגיית VQE רגיש לרעש ממחשבים קוונטיים לפני סבילות לתקלות. | ל-SQD יש סבילות מובנית לרעש. מחשבים קוונטיים לפני סבילות לתקלות יכולים לייצר דגימות רועשות. גם אם נכלול את הדגימות האלה בתת-המרחב, הלכסון הבא יכול לדכא דגימות אלה על ידי הצבת המשרעות שלהן לאפס. כמו כן, נדון בשיטה הנקראת שחזור תצורה בהקשר ל-SQD שמשפרת את סבילות SQD לרעש עוד יותר. |
6. סיכום
- ב-SQD, מחשב קוונטי מייצר דגימות ומחשב קלאסי מטיל Hamiltonian על תת-מרחב הנפרס על ידי הדגימות ומלכסן אותו לחישוב ערכי עצמי ווקטורי עצמי.
- הדגימות שנוצרו צריכות להיות מתמיכת מצב המטרה (היסוד).
- בהתאם לבעיה, זרימת הכנת המצב הקוונטי וייצור הדגימות יכולה להיות איטרטיבית או לא-איטרטיבית.
- SQD עובד בצורה הטובה ביותר עבור פונקציות גל דלילות. פונקציית גל רחבה תדרוש תת-מרחב גדול לפתרונות מדויקים, מה שהופך את פעולת ההטלה והלכסון הקלאסית ליקרה.
- ל-SQD יש מספר יתרונות על VQE כגון עלות מדידה נמוכה יותר וחסם עליון לאנרגיית מצב היסוד המוערכת, מה שהופך אותו לניתן יותר לסקלאביליות.
מקורות
[1] J. Robledo-Moreno et al., "Chemistry Beyond Exact Solutions on a Quantum-Centric Supercomputer" (2024). arXiv:quant-ph/2405.05068.