hwakのトリビアルな雑記集

初めまして、個人研究者のhwakです。個人的に量子アルゴリズムの研究をしております。

量子位相推定とその注意点

この記事では、量子位相推定の理論と、それを実行する際の注意点を全2回で説明します。現在NISQ計算機における研究は世界中で下火になっており、誤り耐性量子計算機の実現が嘱望されています。これを実現することで、ようやくグローバー、量子フーリエ変換、ショア、量子位相推定アルゴリズムなどの量子的優位性が発揮されるアルゴリズムが実行できます。そのうち、量子位相推定は量子化学分野で非常に期待されているアルゴリズムです。このアルゴリズムは、量子計算機を用いて状態の固有値固有ベクトルを計算し、その位相を求めるアルゴリズムです。

このアルゴリズムは行列の次元に対して   O(log_{2} N)  の速度で計算可能です。

このアルゴリズムは計算用ビットに加えて位相 を計算するためのアンシラビットが多数必要になります。

固有値固有ベクトルを計算したい演算子  exp(iHt)  として、n量子ビットを利用する場合、アンシラビットはtビットとなり、初期状態、

  \mid 0 \rangle \mid ini \rangle

を用意します。

ここで、   \mid ini \rangle  はn量子ビットの初期状態です。

アンシラビット全部にHゲートを掛け、

   \sum_{j=0}^{2^t-1}\frac{1}{\sqrt{2^t-1}}\mid j  \rangle \mid ini \rangle

とします。

それから、アンシラビットを制御ビットとして   exp(-iHt)  をその値だけ掛けます。

  \sum_{j=0}^{2^t-1}\frac{1}{\sqrt{2^t-1}}\mid j \rangle U^j\mid ini \rangle

あらゆるベクトルは固有ベクトルの和としてあらわされます。

そのため、Uの固有ベクトル  \mid \phi_k \rangle  として、

  \sum_{k=0}^{2^n-1}c_k\sum_{j=0}^{2^t-1}\frac{1}{\sqrt{2^t-1}}\mid j \lambda_k^j\mid \phi_k \rangle

となります。

k番目の状態における固有値  exp(i\omega_k)  とすると、

  \sum_{k=0}^{2^n-1}c_k \mid \phi_k \rangle \sum_{j=0}^{2^t-1}\frac{1}{\sqrt{2^t-1}}exp(i\omega_k j)\mid j \rangle

となります。アンシラビット群の逆量子フーリエ変換(IQFT)で容易に固有状態を計算でき、最終結果は、

  \sum_{k=0}^{2^n-1}c_k \mid \phi_k \rangle \mid \omega_k \rangle

となります。

ここで、位相    \omega_k  は二進小数で表されます。

従って、このアルゴリズムにおける精度はアンシラビット数tによって決まります。この一連の流れは、図1の回路であらわされます。

図1 量子位相推定の回路。

ここからが本題です。このアルゴリズムを実行する上で、精度を決めるものはアンシラビットの数です。

どのぐらいのアンシラビットがあれば望みの精度を出せるのかを求める式は所定のエラー量を [tex: 1/2a ]として、のエラー量で位相が計算できるt確率は、

  p(a,t)=1-\frac{1}{2(2^{t-a}-2)}=1- \epsilon(a,t)

です。ここで、   \epsilon  は精度指数a,アンシラビット数tにおけるエラー確率です。図2にa,tに対する   \epsilon  の常用対数を示しますように、55量子ビットあってようやく倍精度で位相と固有値が計算できる確率が出てきます。

図2 アンシラビット数tとエラー率   \epsilon  の関係。

量子位相推定は未だ兄シミュレーションでも実現するのは難しいということです。blueqatでは20量子ビットのシミュレーションが限界なので、水素でも単精度が限界です。後編では実際に計算し、その精度と計算時間を実測します。

楽天Kobo