hwakのトリビアルな雑記集

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

反復量子位相推定アルゴリズム

今回は、反復量子位相推定アルゴリズムの説明をします。Abrams氏とLloyd教授による量子位相推定の量子計算への応用可能性が示唆されてから8年後にGoranらによってより高速に計算できるようにこの方法が考案されました。このアルゴリズムは、量子位相推定における位相に対応する固有状態の情報をとれない代わりに、固有値を高速で求めることが可能です[1]。但し、こちらの方は一度にとれる固有値は全部の中から初期状態とする状態に一番近い1つのみが選ばれます。

このアルゴリズムにおける流れは次の通りです。

今回、   R_z ( \theta ) = exp ( − i \theta / 2 )  ∣0⟩⟨0∣  +  exp (  i \theta / 2 )   ∣1⟩⟨1∣      としています。

1, 1アンシラビット、計算用ビットをnビット用意します。蓄積位相の初期値はΦ(k=t)=0 です。

2, アンシラビットにHと R_z    ( 2 \pi \Phi ( k ) ) を掛けます。

3, アンシラビットを制御ビットとして C U  2^{ k - 1 }   回掛けます。

4, アンシラビットにHを掛けます。その後アンシラビットが1であれば蓄積位相Φ(k)にΦ(k−1)=Φ(k)/2−1 とします。

5, 2-4をkが0になるまで繰り返します。

6, 固有値がexpの位相2πΦ(0) として出てきます。

詳しい流れは図1にも示しました。蓄積位相は二進小数で表されます。それについてはご存じない方は「量子フーリエ変換【ソース公開有】」を参照してください。このアルゴリズムhttps://dojo.qulacs.org/ja/latest/notebooks/7.1_quantum_phase_estimation_detailed.html#%E5%8F%8D%E5%BE%A9%E7%9A%84%E4%BD%8D%E7%9B%B8%E6%8E%A8%E5%AE%9Aを参考に組みましたが、Qulacsとblueqatでは勝手が違い、大筋は同じですが変数はこちらの方でないと正しく動きません。回路自体は、やっていること自体は簡単ですが、実際の計算ではいくつかのテクニックが要求されます。

固有値を[0,2π] の範囲に入るように規格化し、定数シフトを行わなければなりません。

それは次回説明します。

図1 反復量子位相推定において使用する回路。

[1] M. Dobsicek, G. Johansson, V.S. Shumeiko, G. Wendin, arXiv[quant-ph], 0610214v3(2007)

【PR】初心者も安心のサポート充実【DMM FX】

楽天Kobo