Квантова діагоналізація Крилова
У цьому уроці про квантову діагоналізацію Крилова (KQD) ми дамо відповіді на такі запитання:
- Що таке метод Крилова загалом?
- Чому метод Крилова працює і за яких умов?
- Яку роль відіграють квантові обчислення?
Квантова частина обчислень значною мірою ґрунтується на роботі з Ref [1].
Відеозапис нижче дає огляд методів Крилова в класичних обчисленнях, мотивує їх застосування та пояснює, яку роль у цьому процесі можуть відіграти квантові обчислення. Наступний текст містить детальніші пояснення й реалізує метод Крилова як класично, так і за допомогою квантового комп'ютера.
1. Вступ до методів Крилова
Метод підпростору Крилова може стосуватися будь-якого з кількох методів, побудованих навколо так званого підпростору Крилова. Повний огляд цих методів виходить за межі цього уроку, але Ref [2-4] може дати значно більше контексту. Тут ми зосередимося на тому, що таке підпростір Крилова, як і чому він корисний для розв'язання задач на власні значення, і нарешті — як його можна реалізувати на квантовому комп'ютері. Означення: Нехай задано симетричну, додатно напіввизначену матрицю . Простір Крилова порядку — це простір, натягнутий на век тори, отримані множенням вищих степенів матриці , аж до , на референтний вектор .
Хоча вектори вище натягують те, що ми називаємо підпростором Крилова, немає жодних підстав вважати, що вони будуть ортогональними. Зазвичай застосовується ітеративний процес ортонормалізації, схожий на ортогоналізацію Грама–Шмідта. Тут процес дещо відрізняється: кожен новий вектор ортогоналізується до решти в міру свого породження. У цьому контексті процес називається ітерацією Арнольді. Починаючи з початкового вектора , породжуємо наступний вектор , а потім забезпечуємо ортогональність цього другого вектора до першого, віднімаючи його проєкцію на . Тобто
Тепер легко бачити, що оскільки
Робимо те саме для наступного вектора, забезпечуючи його ортогональність до обох попередніх:
Якщо повторити цей процес для всіх векторів, отримаємо повний ортонормований базис для простору Крилова. Зауваж, що процес ортогоналізації дасть нуль, як тільки , оскільки ортогональних векторів неодмінно натягують увесь простір. Процес також дасть нуль, якщо будь-який вектор є власним вектором , — адже всі наступні вектори будуть кратні цьому вектору.
1.1 Простий приклад: метод Крилова «вручну»
Давай крок за кроком пройдемося побудовою підпростору Крилова на тривіально малій матриці, щоб наочно побачити процес. Почнімо з початкової матриц і , що нас цікавить:
Для такого маленького прикладу власні вектори та власні значення можна легко знайти навіть вручну. Наведемо числове розв'язання.
# Added by doQumentation — required packages for this notebook
!pip install -q matplotlib numpy qiskit qiskit-ibm-runtime scipy sympy
# One might use linalg.eigh here, but later matrices may not be Hermitian. So we use linalg.eig in this lesson.
import numpy as np
A = np.array([[4, -1, 0], [-1, 4, -1], [0, -1, 4]])
eigenvalues, eigenvectors = np.linalg.eig(A)
print("The eigenvalues are ", eigenvalues)
print("The eigenvectors are ", eigenvectors)
The eigenvalues are [2.58578644 4. 5.41421356]
The eigenvectors are [[ 5.00000000e-01 -7.07106781e-01 5.00000000e-01]
[ 7.07106781e-01 1.37464400e-16 -7.07106781e-01]
[ 5.00000000e-01 7.07106781e-01 5.00000000e-01]]
Запишемо їх тут для подальшого порівняння: