この記事は量子コンピュータによる素因数分解のアルゴリズムである「Shorのアルゴリズム」の解説記事第3回目です。1,2回目は以下:
第3回は量子フーリエ変換(Quantum Fourier Transform, QFT)に関して書きます。前回導入したべき剰余の計算
を行う量子回路と共に、Shorのアルゴリズムにおいて中心的な役割を担います。
本記事ではフーリエ変換の基礎知識はあるものとして話を進めます(※深い知識は必要ないです。定義+αくらい知っていれば十分です)。ご了承ください。
本記事はRef.1を参考にしています。
以下の変換を行う量子回路を考えます:
前回までの記事にあるように、
のことです(2値を取る量子状態
を得ます。このようにして
以下Eq.(1)を実現する量子回路、すなわちQFTの量子回路を構成します。
QFTの量子回路において次が成立することが重要です:
最初の行では
ここで
としてよいです。よって
となります。よって初期状態として
を用意し、この各qubitをEq.(3)のように変換する量子回路を組めばフーリエ変換ができたことになります。
ここで「小数バイナリ表示」を導入します:
するとEq.(3)は
と書けます。文献ではこの形で書くことが多いです。
Eq.(4)を実現するのに以下の2つの量子ゲートを導入します:
これらのゲートを用いてQFTの量子回路を作ります。ゲートの定義より
が成立します。最初の式より
これらの式から以下が成立します:
一般化すると以下が成立することがわかります:
ここで
すると
と書けます。
Eq.(5)を図にすると図3のようになります:
フーリエ変換を実現する量子回路図
ちなみに図ではより左にあるゲートが先に状態に作用するのに対し、Eq.(5)ではより右にある演算子が先に状態に作用することに注意してください。
これでフーリエ変換を実現する量子回路ができました。実は 前回の記事 で述べたべき剰余を計算する量子回路とQFTの回路があれば、基本的には因数分解を高速に(=多項式時間で)行うことが可能です。これについては今後の記事で。
おしまい & つづく。