この記事では、量子位相推定の理論と、それを実行する際の注意点を全2回で説明します。現在NISQ計算機における研究は世界中で下火になっており、誤り耐性量子計算機の実現が嘱望されています。これを実現することで、ようやくグローバー、量子フーリエ変換、ショア、量子位相推定アルゴリズムなどの量子的優位性が発揮されるアルゴリズムが実行できます。そのうち、量子位相推定は量子化学分野で非常に期待されているアルゴリズムです。このアルゴリズムは、量子計算機を用いて状態の固有値と固有ベクトルを計算し、その位相を求めるアルゴリズムです。
このアルゴリズムは行列の次元に対して の速度で計算可能です。
このアルゴリズムは計算用ビットに加えて位相 を計算するためのアンシラビットが多数必要になります。
固有値、固有ベクトルを計算したい演算子を として、n量子ビットを利用する場合、アンシラビットはtビットとなり、初期状態、
を用意します。
ここで、 はn量子ビットの初期状態です。
アンシラビット全部にHゲートを掛け、
とします。
それから、アンシラビットを制御ビットとして をその値だけ掛けます。
あらゆるベクトルは固有ベクトルの和としてあらわされます。
そのため、Uの固有ベクトルを として、
となります。
k番目の状態における固有値を とすると、
となります。アンシラビット群の逆量子フーリエ変換(IQFT)で容易に固有状態を計算でき、最終結果は、
となります。
ここで、位相 は二進小数で表されます。
従って、このアルゴリズムにおける精度はアンシラビット数tによって決まります。この一連の流れは、図1の回路であらわされます。
図1 量子位相推定の回路。
ここからが本題です。このアルゴリズムを実行する上で、精度を決めるものはアンシラビットの数です。
どのぐらいのアンシラビットがあれば望みの精度を出せるのかを求める式は所定のエラー量を [tex: 1/2a ]として、のエラー量で位相が計算できるt確率は、
です。ここで、 は精度指数a,アンシラビット数tにおけるエラー確率です。図2にa,tに対する の常用対数を示しますように、55量子ビットあってようやく倍精度で位相と固有値が計算できる確率が出てきます。
図2 アンシラビット数tとエラー率 の関係。
量子位相推定は未だ兄シミュレーションでも実現するのは難しいということです。blueqatでは20量子ビットのシミュレーションが限界なので、水素でも単精度が限界です。後編では実際に計算し、その精度と計算時間を実測します。