量子位相推定
量子位相推定回路
量子位相推定回路の作り方・使い方
量子位相推定回路の仕組みの前に、回路の作り方と使い方を具体的に見ていきましょう。 ここでは例として
量子位相推定回路には入力と出力が必要です。 入力として、固有位相を取り出したい QPU 命令 (今回は
量子位相推定回路: 入力と前半
量子位相推定回路の入力と前半は次のようになります。 最初の 4
量子ビットは求めた固有位相を書き出すためのもので、必要なビット数は求める精度によって変化します
(ビット数の決めかたは最後に説明します)。 最後の 1 量子ビットは入力用で、固有位相を取り出したい QPU
命令 (今回は
量子位相推定回路の前半では、最初に出力用ビットを
量子位相推定回路: 後半と測定
量子位相推定回路の後半は逆 QFT 回路そのままです。 最後に出力用の 4
量子ビットをすべて測定し、固有位相を読み出します。
量子位相推定を動かしてみよう
どんな値が出力として得られるか、
量子位相推定の出力を解釈する
出力の 8 を固有位相として解釈するには、出力用量子ビットの数が 4 つであることを使います。 出力用量子ビットのビット数は出力する固有位相角度の分解能を表します。 たとえば 4 ビットの場合 16 通りの値が表せるので、4 ビットで表現できる角度は 360° を 16 分割した 360/16 = 22.5° 刻みとなります。
π = 180° を 22.5° の倍数で表現すると、22.5° x 8 = 180° なので、8 でぴったり 180° が表現できます。
出力用量子ビット数を増やせば分解能も高まります。 出力用量子ビットを 1 増やすごとに刻み幅は 1/2 になるので、より微妙な角度も表現しやすくなります。
精度を高める
測定結果は 68.8% で 011 (10 進数で 3) となります。 3 量子ビットの場合、分解能は 45° 刻みなので、011 は 45° x 3 = 135° と読み取ることができます。 これは実際の値 120° と比較すると、誤差が +15° あります。
出力用量子ビットを 4 にして精度を上げてみましょう。
精度は上がっているでしょうか? 測定結果は 68.5% で 0101 (10 進数で 5) となります。 4 量子ビットの場合、分解能は 22.5° 刻みなので、0101 は 22.5° x 5 = 112.5° と読み取ることができます。 これは実際の固有位相 120° と比較すると誤差が -7.5° であり、3 量子ビットでの誤差 +15° よりも小さくなっています。 確かに、出力用量子ビット数を増やすことで精度が上がりました。
出力用量子ビット数を増やすと、実は精度だけでなく固有位相の近似値が測定できる確率も改善します。 4 量子ビットの例では、最も高い確率で測定できる 0101 (68.5%) の右隣 0110 は 17.2% の確率で測定できます。 0110 (10 進数で 6) は 22.5° x 6 = 135° なので、これは 3 量子ビットでの最良値と同じ値です。 これはつまり、4 量子ビットの場合には、3 量子ビットでの最良値と同じ (135°) かそれより良い値 (112.5°) が測定できていることになります。 135° (0110) と 112.5° (0101) の確率を足すと 17.2% + 68.5% = 85.7% なので、3 量子ビットでの最良値が測定できる確率 68.8% よりも高まっています。 このように、精度を 3 量子ビット (45° 刻み) で考えた時、4 量子ビットでは固有位相の近似値の精度と、近似値が測定できる確率も改善します。
一般に、精度を \(n\) ビットに指定したとき、少なくとも \(1 - \epsilon\) の確率で固有位相の近似値を得るために必要な量子位相推定回路の量子ビット数 \(t\) は、次の式で計算できることが知られています。
\(t = n + \left\lceil \log \left(2 + \frac{1}{2\epsilon} \right) \right\rceil\)
まとめ
量子位相推定回路の作り方と使い方を見てきました。 作り方は、前半の位相キックバック (次回に仕組みを説明します) と後半の逆 QFT を組合わせるだけです。 使う時の注意点として、入力として固有位相に対応する固有状態が必要です。 また、出力用の量子ビット数を増やすほど取り出せる相対位相の精度と成功確率を上げることができます。