1
応用数学解説
文献あり

量子コンピュータにおける素因数分解(3): 量子フーリエ変換

117
1

はじめに

この記事は量子コンピュータによる素因数分解のアルゴリズムである「Shorのアルゴリズム」の解説記事第3回目です。1,2回目は以下:

第3回は量子フーリエ変換(Quantum Fourier Transform, QFT)に関して書きます。前回導入したべき剰余の計算
ax mod N
を行う量子回路と共に、Shorのアルゴリズムにおいて中心的な役割を担います。

本記事ではフーリエ変換の基礎知識はあるものとして話を進めます(※深い知識は必要ないです。定義+αくらい知っていれば十分です)。ご了承ください。

本記事はRef.1を参考にしています。

量子フーリエ変換(QFT)とは

以下の変換を行う量子回路を考えます:

(1)|j12n/2k=02n1exp(2πijk/2n)|k

前回までの記事にあるように、|j (j0j<2nをみたす整数)とは、jを2進数表示した各桁をji{0,1} (i=0,1,2,,n1)として
|j:=|j0|j1|jn1
のことです(2値を取る量子状態|0,|1の存在は仮定します)。Eq.(1)の変換ができれば、j=0N1xj|jという重ね合わせの状態にこれを施すことで
j=0N1xj|jk=0N1yk|k,    yk=1Nl=0N1exp(2πikl/N)xl,  N=2n
を得ます。このようにしてxjの離散フーリエ変換yjの情報を持つ状態を作ることができます。ただし実際に量子状態を観測してyjを得るのは現実的でないことに注意してください(Ref.Nielsen P220)。この観測はQFTの速さを無意味にするほど時間がかかります。QFTの量子回路は、あくまで他のアルゴリズム(今回はShorのアルゴリズム)の部品、サブルーチンとして使うものです。

以下Eq.(1)を実現する量子回路、すなわちQFTの量子回路を構成します。

QFTを実現する量子回路の構成

QFTの量子回路において次が成立することが重要です:
12n/2k=02n1e2πijk/2n|k=12n/2k0=01k1=01kn1=01e2πij(l=1nkl1/2l)|k0|k1|kn1=12n/2(k0=01e2πijk0/21|k0)(k1=01e2πijk1/22|k1)(kn1=01e2πijkn1/2n|kn1)(2)=12n/2(|0+e2πij/21|1)(|0+e2πij/22|1)(|0+e2πij/2n|1)
最初の行ではk=k02n1+k12n2++kn120としています。

ここでjj=j02n1+j12n2++jn120のように2進数表示します。Eq.(1)の各括弧内の位相ファクターexp(2πi(j/2l))において、j/2lの整数部分は無視できます。ゆえにexpの肩は
j/21jn1/21j/22jn2/21+jn1/22j/2nj0/21+j1/22++jn1/2n
としてよいです。よって
(3)Eq.(2)=12n/2(|0+e2πi(jn1/21)|1)(|0+e2πi(jn2/21+jn1/22)|1)(|0+e2πi(j0/21+j1/22++jn1/2n)|1)
となります。よって初期状態として
|j=|j0|j1|jn1
を用意し、この各qubitをEq.(3)のように変換する量子回路を組めばフーリエ変換ができたことになります。

ここで「小数バイナリ表示」を導入します:

小数バイナリ表示

j0/21+j1/22++jn1/2n を 0.j0j1jn1 のように表す

するとEq.(3)は
(4)Eq.(3)=12n/2(|0+e2πi 0.jn1|1)(|0+e2πi 0.jn2jn1|1)(|0+e2πi 0.j0j1jn1|1)
と書けます。文献ではこの形で書くことが多いです。

Eq.(4)を実現するのに以下の2つの量子ゲートを導入します:

QFTに必要な量子ゲート
  1. アダマール(Hadamard)ゲート:
    これは1 qubitに作用するゲートであり、以下の変換を行う
    |0|0+|12,   |1|0|12
    このゲートをH^(i)で表す。iはHadamrdゲートが作用するqubitの番号。量子回路図では以下のように表す:
    Hadamardゲートの量子回路図 Hadamardゲートの量子回路図
  2. 制御Rk(controlled-Rk)ゲート:
    2 qubitに作用するゲート。1つはcontrol qubit, もうひとつがtarget qubit。control qubitが|1のとき、target qubitの|1e2πi/2kの位相をかける。このゲートをR^k(lm)で表す。ここでlはcontrol qubitの番号、mはtarget qubitの番号。量子回路図ではRk(lm)を以下のように表す:
    !FORMULA[36][-1294029051][0]の量子回路図 R^k(lm)の量子回路図

これらのゲートを用いてQFTの量子回路を作ります。ゲートの定義よりH^(i)(α|0i+β|1i)=12(α+β)|0i+12(αβ)|1i,R^k(lm)|jl(α|0m+β|1m)=|jl(α|0m+e2πijl/2kβ|1m)
が成立します。最初の式よりH^(i)|ji, ji{0,1}は以下のようにかけることがわかります:
H^(i)|ji=12(|0i+eπiji|1i)=12(|0+e2πiji/21|1)=12(|0+e2πi 0.ji|1)
これらの式から以下が成立します:
H^(0)|j0=121/2(|0+e2πi 0.j0|1),R^2(1 0)H^(0)|j0|j1=121/2(|0+e2πi 0.j0j1|1)|j1,R^3(2 0)R2(1 0)H^(0)|j0|j1|j2=121/2(|0+e2πi 0.j0j1j2|1)|j1|j2,
一般化すると以下が成立することがわかります:

Rk(i+k i)Rk1(i+k1 i)R2(i+1 i)H^(i)|j0|j1|ji1|ji|ji+1|ji+k=(|j0|j1|ji1)121/2(|0i+e2πi 0.jiji+1ji+k|1i)|ji+1|ji+2|ji+k

ここでK^(i;k)を以下のように定義します:
K^(i;k):=R^k(i+k1 i)R^k1(i+k2 i)R2(i+1 i)H^(i)
すると
(5)Eq.(4)=H^(n1)K^(n2;2)K^(1;n1)K^(0;n)|j0|j1|jn1
と書けます。

Eq.(5)を図にすると図3のようになります:
フーリエ変換を実現する量子回路図 フーリエ変換を実現する量子回路図

ちなみに図ではより左にあるゲートが先に状態に作用するのに対し、Eq.(5)ではより右にある演算子が先に状態に作用することに注意してください。

これでフーリエ変換を実現する量子回路ができました。実は 前回の記事 で述べたべき剰余を計算する量子回路とQFTの回路があれば、基本的には因数分解を高速に(=多項式時間で)行うことが可能です。これについては今後の記事で。

おしまい & つづく。

参考文献

[1]
Nielsen, M.A., Chuang, I.L., Quantum Computation and Quantum Information (10th Anniversary Edition), Cambridge University Press, 2010, 217-221
投稿日:2024811
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

bisaitama
bisaitama
142
65306

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 量子フーリエ変換(QFT)とは
  3. QFTを実現する量子回路の構成
  4. 参考文献