HHLアルゴリズム
はじめに
今回は、連立一次方程式を量子コンピュータを用いて解く際に使われるHHL(Harrow-Hassidim-Lloyd)アルゴリズムを紹介する。
一般的な解法
最初に一般的な解法を示す。次元ベクトルの間に次式が成り立っているとする。
は、のユニタリー行列である。このとき
が成り立ち、ベクトルをで展開することができる。
式(4)を式(2)に代入すると
式(3)より
これを式(5)に代入して
を得る。ここまでの式変形を量子コンピュータ上で行う手順を次に示す。
HHLアルゴリズム
最初に、を振幅エンコーディングする。
振幅エンコーディングについてはこことここにまとめてある。あとの区別のため、エンコード先をAレジスタと呼ぶことにする。これは複数の量子ビットから構成された量子状態である。さて、量子コンピュータでは顕に固有状態を求める必要がないことに注意する。式(7)を得た時点でそれを固有状態による展開と同一視することができる。
ここが古典論との大きな違いである。次に、を考える。をユニタリー行列としたからもユニタリー行列であり、次式が成り立つ。
固有値を求めるため、量子位相推定(QPE)を行う。QPEを行うため、複数の量子ビットからなるBレジスタを追加する(0で初期化)。
次に、複数ビットからなるCレジスタを追加し、Bレジスタの値を用いた算術演算()を行い、結果をCレジスタに入れる。
次に、1ビットからなるDレジスタを追加し、Cレジスタの各ビットを制御ビットとしてDレジスタに回転ゲートを施す。このあたりの詳細な式変形はここにまとめてある。
Dレジスタを測定し0が得られたとき、次の状態に収縮する。
ここで、は規格化定数である。B,Cレジスタにそれぞれの逆演算を施し初期化する。
Aレジスタに式(6)が再現されている。