Перейти до основного вмісту

Квантова діагоналізація на основі вибірок (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×65780).65780 \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 Випадок 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 Випадок 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 Випадок 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(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)

Таким чином, навіть якщо підпростір містить деякі нецільові вектори (разом з повним набором цільових векторів), ми все одно можемо обчислити правильне власне значення та власний стан — процес проєкції та діагоналізації відфільтровує нецільові вектори, встановлюючи їхні амплітуди рівними 00. Ця властивість SQD забезпечує вроджену стійкість до шуму.

3. Роль квантових обчислень у SQD

Наведений вище аналіз підкреслює важливість векторів, що розкладають підпростір, — вони мають бути в носії цільового стану. Це ставить важливе запитання: Як обирати вектори з носієм цільового стану для побудови підпростору?

Саме тут у гру вступають квантові комп'ютери. Квантово-класична синергія в парадигмі SQD працює так:

  1. За допомогою відповідної квантової схеми ми намагаємось підготувати стан на квантовому комп'ютері, який генеруватиме базисні стани зі значним носієм цільової хвильової функції (наприклад, основного стану). Відібрані базисні стани (бітові рядки) розкладатимуть підпростір для проекції гамільтоніана.
  2. Класичний комп'ютер проектує гамільтоніан на підпростір (розкладений зразками/векторами з квантового комп'ютера) і діагоналізує його, обчислюючи власні значення та власні вектори відповідними чисельними методами. Діаграма квантової та класичної складових SQD. У квантовій частині ти готуєш і відбираєш зразки з носія цільового стану; класично — проектуєш матрицю на відібраний підпростір і діагоналізуєш проектовану матрицю. Підготовити такий квантовий стан можна різними способами — варіаційними або неваріаційними залежно від задачі.

У наступних двох уроках ми розглянемо два конкретні приклади підготовки станів та відбору зразків з них.

  1. У Уроці 4 ми використаємо параметризований ансац локального унітарного зв'язаного Яструва (LUCJ) для генерації зразків у хімічній задачі (оцінка енергії основного стану молекули N2N_2). Параметри ансацу LUCJ ми ініціалізуємо з класичного розрахунку зв'язаних кластерів з одинарними та подвійними збудженнями (CCSD).
  2. У Уроці 5 ми відбиратимемо зразки з базисних станів Крилова для розкладу підпростору в задачі фізики конденсованого стану. Цей підхід є неваріаційним за своєю природою.

Крім зазначених проблемно-специфічних підходів, загальний підхід до підготовки стану передбачає варіаційний ансац, у якому ми ітеративно оновлюємо параметри ансацу за допомогою класичного оптимізатора. Блок-схема від варіаційної квантової схеми через квантовий відбір зразків до класичних обчислень, у яких матриця проектується та діагоналізується. Потім результати передаються до класичного оптимізатора, який обирає нові варіаційні параметри, після чого ми повертаємось до варіаційної квантової схеми. Зразки з дофолтно-толерантних квантових комп'ютерів можуть містити шуми. SQD використовує самоузгоджений процес відновлення конфігурацій для корекції зашумлених зразків [1]. Процес відновлення конфігурацій ми розглянемо детальніше та застосуємо його для ітеративного виправлення зашумлених зразків і уточнення оцінки енергії основного стану в хімічній задачі в Уроці 4.

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, що дозволяє отримати очікуване власне значення та відновити правильний власний стан.

Діаграми хорошого та поганого носіїв ансацу. Хороший ансац має носій, що повністю містить носій основного стану. Поганий ансац містить лише частину носія основного стану або не містить його взагалі.

Таким чином, підготовка і відбір зразків з точного основного стану не є обов'язковими. Насправді це може бути складно, оскільки точний основний стан невідомий апріорі, і часто вигідніше не готувати і не відбирати зразки з точного основного стану — особливо коли хвильова функція (стан) є скошеною, тобто деякі базисні стани мають дуже великі ймовірності. Розглянемо таку хвильову функцію:

ψ=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). При обмеженому бюджеті вимірювань (shots) дуже ймовірно, що відібрана множина міститиме лише 000\vert 000 \rangle і 010\vert 010 \rangle. Як показано раніше, якщо розкладати підпростір такою неповною множиною, ми не зможемо знайти справжнє мінімальне власне значення. Тому необхідно відбирати зразки зі стану, що має носій основного стану.

3.2 Аргумент проти рівномірного відбору зразків

Може здатися привабливим ідея відбирати зразки з рівномірного розподілу для розкладу підпростору. Хоча для малих задач це може спрацювати, для більших і практичніших задач цей підхід почне давати збої. Для великих задач з багатьма кубітами простір Гільберта може бути непомірно великим. Наприклад, 32-кубітний простір Гільберта має більше 44 мільярдів можливих базисних векторів (232=42949672962^{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 унікальних схем для обчислення всіх членів Паулі. Багато вимірювань на схему для зменшення дисперсії. Крім того, оцінене математичне сподівання кожного члена Паулі має дисперсію, яка обернено пропорційна shots\sqrt{\text{shots}}. Тому для точного оцінення кожного члена необхідно виділяти багато вимірювань на схему. Наприклад, для досягнення хімічної точності (11 ккал/моль) зазвичай потрібно від 10510^5 до 10710^7 вимірювань на схему. Таким чином, VQE вимагає багатьох вимірювальних схем, кожна з певною кількістю вимірювань. У практичних задачах ці накладні витрати можуть бути суттєвим обмеженням.У SQD не потрібні різні вимірювальні схеми для кожної групи членів Паулі. Зазвичай вимірюється одна схема з фіксованою кількістю вимірювань. Хоча кількість вимірювань може бути великою залежно від задачі, накладні витрати залишаються значно меншими, ніж у VQE. Крім того, оцінки енергії за допомогою процесу діагоналізації є точними: обчислені власні значення є точними в цьому підпросторі і не мають дисперсії на відміну від VQE. (У випадку відбору зразків з базисних станів Крилова (Урок 5) потрібно виміряти кілька схем, але їх кількість залишається значно меншою, ніж у 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.