0
応用数学解説
文献あり

量子コンピュータにおける素因数分解(5): 位数推定と量子干渉

173
0

はじめに

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

本記事では位数の推定と量子干渉との関係を、Ref.EkertHosoyaに従って議論します。Shorの元論文はRef.Shorです。

前回の記事で述べたように、量子回路で
(1)xr=1 mod N   (整数xNは互いに素x<N)
を満たすr(そのうち最小のrは位数と呼ばれる)が多項式時間で計算可能ならば、素因数分解は古典コンピュータより本質的に高速で計算できます。ここで「多項式時間で計算可能」とは、整数Nを2進数表示したとき、計算量がその桁数の多項式で表されるという意味です。すなわち計算量があるkNに対しO((log2N)k)であるということです。

これが可能であることを以下見ます。そのために本記事では本シリーズの最初の3記事で議論した

  1. べき剰余xa mod Nを計算する量子回路
  2. 離散フーリエ変換 DFTq : |j1qk=0q1exp(2πijk/q)|kの量子回路

を用います。これらについて知りたい方は上記のリンクをご参照ください。また前回までの記事にあるように、|j (j0j<2nをみたす整数)とは、jを2進数表示した各桁をji{0,1} (i=0,1,2,,n1)として
|j:=|j0|j1|jn1
のことです(2値をとる量子状態|0,|1の存在は仮定します)。

位数の決定

改めて以下の問題を解くことを考えます:

ある整数Nと互いに素なx (<N)に対し
xr1 mod N
を満たすrを見つける

まずq=2LN2なる、2のべき乗であるqを導入します。さらにLビットの|0を用意します。これにDFTq(前章の2.参照)を作用させれば

(1)1qa=0q1|a

を得ます。さらに別のレジスターを用意し、これにxa mod Nを作る量子回路を作用させることで

(2)1qa=0q1|a|xa mod N

を得ます。

|xa mod Nのレジスターを観測します。ここでrxmod Nに関する位数とします。このときxlxjr+l mod Nj=0,1,2,,(ql1)/r)です。ここでaは床関数であり、「aを超えない最大の整数」を表します。ここでl<rは実際には観測により確率的に選ばれます。l<r<NまたqO(N2)なので(ql1)/rq/rです。|xa mod Nを観測したのちの状態は

(3)|ϕl=1A+1j=0(ql1)/r|jr+l

となります。

この状態からrの情報を得ることを考えます。もしもlを固定できるなら、この状態自体を観測してもrはわかるはずです。なぜなら観測されるjr+lは最初にlだけのインターバルがありその後rの幅で存在するからです(図1)。lを固定して何度も観測を続ければ、得られたjr+llのインターバルを除いた部分の幅からrを推定できます。しかしながらlを固定することはできないし、また何度も観測を繰り返さなくてはなりません。

Eq.(3)の状態を観測した際に得られる!FORMULA[51][1131983543][0]の値の分布 Eq.(3)の状態を観測した際に得られるjr+lの値の分布

そこでEq.(3)にDFTqを施します。

q/rが整数の場合

まずは分かり易さと直感的な理解のため、q/rが整数の場合を考えます。(l+1)/r1より、このとき(ql1)/r=q/r1となります。よって

|ϕl=rqj=0q/r1|jr+l=a=0q1f(a)|a,f(a)=rqδa,jr+l,   j=0,1,,q/r1

と表せます。Eq.(3)にDFTqを施すと

DFTq|ϕl=cf~(c)|c,f~(c)=rqj=0q/r1exp(2πi(jr+l)cq)=rq[j=0q/r1exp(2πijrcq)]exp(2πilcq)(4)=rq[j=0M1exp(2πijcM)]exp(2πilcq)

になります。ここでM:=q/rNです。方程式zn=1の解をすべて足すとゼロになることから、大括弧の中はcMの倍数でない限りゼロになります。すなわち

f~(c)={exp(2πilc/q)/rc が M の倍数0それ以外

となります。ゆえにEq.(4)の状態において、ある値cを観測する確率は Bornの規則 より

|f~(c)|2={1/rc が M の倍数  0それ以外

です。これから明らかなように、観測されるcにはEq.(3)に存在したlの依存性がなくなっています(図2参照)。q/rが整数の場合はこのような完全な量子干渉が起きます。そして
cq=λr   (λ は整数)
であり、q,cは与えられているので、もしもλrが互いに素ならばλrが求まります。もしそうでなければ、もう一度xを選び直して観測をやりなおします。

Eq.(4)の状態を観測した際に得られる!FORMULA[77][37701][0]の値の分布 Eq.(4)の状態を観測した際に得られるcの値の分布

一般のq/r

次に一般の(整数とは限らない)q/rを考えます。このときEq.(1)の和の上限は(ql1)/rですが、ここではこれをq/r1とします。こうしても本質的な違いはなく、また議論が明確になります。このときEq.(4)においてMは整数ではないです。ゆえに、前章ではexpの和は対称性から消えたのに対し、Eq.(4)ではそのような正確な相殺は起こりません。

ここでrc=αq+β,  α,βZ0, 0βq1のように書いておきます。これを用いてEq.(4)を書き換えると

f~(c)=rqj=0q/r1exp(2πi(j(αq+β)+lc)/q)=rqexp(2πilc/q)j=0q/r1exp(2πijβ/q)

となります。β=rc mod qなので

=rqexp(2πilc/q)j=0q/r1exp(2πij(rc mod q)/q)

です。ゆえにcを観測する確率Prob(c)

(5)Prob(c)=|f~(c)|2=rq2|j=0q/r1exp(2πij(rc mod q)/q)|2

です。

ここでEq.(5)のexp内のc

(6)r/2rc mod qr/2

を満たす場合を考えます。このときexpの各項は複素平面上の半円の中に存在するため、その和は小さくはならないです。また、Eq.(6)をみたすcはちょうどrコ存在することに注意してください。これは以下の図からわかります:

Eq.(6)を満たす!FORMULA[97][37701][0]の値の数が!FORMULA[98][38166][0]コであることの説明の図 Eq.(6)を満たすcの値の数がrコであることの説明の図

青い点線はqの倍数(0,1,2,,(r1)q)であり、これをrの倍数(0,r,2r,(q1)r)に重ねています。rの倍数は間隔rで存在しているのだから、点線から幅r/2の間(緑のアーチ)に存在するrの倍数は当然唯一つです。青い点線はrコ存在するから、Eq.(6)を満たすcrコ存在します。

Prob(c)の大きさを、Eq.(6)を満たすcに対して見積ります。θc=2π(rc mod q)/qを定義すると、Prob(c)expiθcの比をもつ等比級数からできています。この級数はθcが増加するにつれて減るので、Prob(c)θcが大きくなると減ります。よって

Prob(c)Prob(θc を最大にするc)

が成立します。ここでEq.(6)よりθcπr/qです。等号が成立するとき、和は初項が1、公比がexp(iπr/q)、項数はq/r1+1=q/rである等比級数なので

Prob(c)rq2|1exp(iπrqqr)1exp(iπrq)|2=rq2|21exp(iπrq)|2=rq24(1exp(iπrq))(1exp(iπrq))=rq221cos(πrq)=rq21sin2(πr2q)rq21π2r24q2=4π21r

となります(※q/rは整数ではないですが、小数部分の影響は軽微です)。ここでq/rが小さいとしてsinπr/2qπr/2qとしました。よって、rコ存在するそのようなcに対して、Eq.(6)をみたすcを観測する確率は4/π20.4より大きいことがわかります。すなわちEq.(6)を満たすcを観測する可能性は十分大きいです。

rの決定と連分数展開

Eq.(6)を満たすcが与えられたとき、rの情報を引き出すことを考えます。これを行うには、Eq.(6)が、ある0cr1を満たすcに対して

(7)|rccq|r/2

と書き直せることを用います。この式は次のように解釈できます: cqとは図1におけるq軸にプロットした点のことであり、rcとは図1におけるr軸にプロットした青点線からr/2の範囲にある点のことです。このことからわかるように、Eq.(6)を満たすrコのcに対してちょうど1つづつ対応するcが存在します。ゆえにcのそれぞれの値に対しcと同様

Prob(c)4π21r

となります。Eq.(5)は以下のように書けます:

(8)|cqcr|12q

ここでc,qはわかっていて、またrN, qN2です。Eq.(8)は、与えられたc/qをこの不等式を満たすある有理数c/rで近似せよ、ただしその分母はN未満である、ということを言っています。Eq.(8)の範囲には分母がN以下であるc/rが最大で1つ存在します。すなわち観測からcが得られれば、c/rr<N)が唯一に定まります。

ただしcrが互いに素である必要があります。0cr1のうちrと互いに素なcの個数は、 前回の記事 で導入したオイラー関数φ(r)コです。よってそのようなcを得る確率は上で求めたProb(c)φ(r)をかけて
(9)Prob(c)4π2φ(r)r
となります。

crを決定するには連分数展開を用います。連分数展開に関しては この記事 noteにまとめました。具体的な計算法等の詳細はこれを読んでもらうことにして(すぐ読めます)、ここではc,qが与えられたとき、Eq.(8)を満たすc/rを連分数展開を用いて具体的に求めてみます。以下Ref.Hosoyaにある例です:

N=15を因数分解する際のrの決定を考えます。ここではq=28=256>N2=225に選びます。観測した結果c=18を得たとします。このときc/q=18/256です。これに近い分数でEq.(8)を満たす数を求めるため、18/256を連分数展開します:
18256=114+14+12
これを[14,4,2]のように書きます(最初に0をつけて[0,14,4,2]と書くこともあります)。

この展開を1/14までで止めると(c=1,r=14r<Nが満たされています。また
|18256114|=1896<12256
なのでEq.(8)も満たされています。こうしてr=14を得ます。

一方18/256[14,4]=4/57とすると分母がNを超えてしまうので、rとしては不適切です。

Ref.Hosoyaの練習問題にはc=77,149の場合のrを求めよという問題が載っています。これも解いておきます:

  • c=77の場合
    77/256=[3,3,12,2]です。77/2561/3ではEq.(8)は満たされません。
    一方77/256[3,3]=3/10だと|77/2563/10|=1/1280でありEq.(8)が満たされます。
    77/256[3,3,12]=37/123だと分母がNを超えてしまい不適切です。
    ゆえにc=3,r=10を得ます。
  • c=149の場合
    149/256=[1,1,2,1,1,4,1,3]です。149/256[1,1,2,1,1]=7/12で近似すると|149/2567/12|=1/768<1/(2256)であり適切です。
    これより短い連分数で近似するとEq.(8)が満たされず、これより長い連分数で近似すると分母がNを超えるため、どちらも不適切です。
    ゆえにc=7,r=12を得ます。

本来rは、Nと互いに素なある数xに関してEq.(1)を満たす数です。 前回の記事 で見たように、xr/2±1がどちらもNの倍数でない限り、gcd(xr/2±1,N)のどちらかはNの因数を与えます。「xr/2±1がどちらもNの倍数でない」は満たされない可能性があるので古典計算機でチェックします。条件が満たされなかった場合はもう一度xを選び直して同様なことを繰り返します。

計算量の見積もり

最後にrの推定における計算量を大雑把に見積もっておきます。

Shorのアルゴリズムでは以下の計算が行われます:

  1. Eq.(1)のDFTq
  2. Eq.(2)のべき剰余の計算
  3. Eq.(4)のDFTq
  4. Eq.(8)を満たし、rと互いに素なcを得る試行
  5. 適切なxを選ぶ試行。すなわちxが適切なr:「rが偶数かつxr/2±1がどちらもNの倍数でない」 を持つものを選び出す

まず量子フーリエ変換ですが、必要なゲート数がNの桁数の2乗程度です。すなわち(i)(iii)どちらも(log2N)2程度の計算量です。(ii)のべき剰余の計算はlog2N程度の計算量です。

(iv)に関しては上記したように4φ(r)/(π2r)程度の確率で起きます。φ(r)/rはおよそ1/loglog(r)程度であることが知られています( 前回の記事 の定理2参照)。すなわち4φ(r)/(π2r)は十分高い確率であるので、この試行を繰り返す計算量はほぼ無視できることがわかります。(v)に関しても 前回の記事 の定理3で見たように非常に高い確率で起きます。すなわち(i)-(iii)以外の過程は計算量としては殆ど無視できると言えます。

ということで、Shorのアルゴリズムでは多項式時間でrを推定することができ、ひいては素因数分解を行うことが可能です。

おしまい & つづく。

参考文献

[1]
Ekert, A., Jozsa, R., Quantum computation and Shor’s factoring algorithm, Rev. Mod. Phys., 1996, 733-753
[2]
細谷 暁夫, 量子コンピュータの基礎 [第2版], SCライブラリー69, サイエンス社, 2009, 62-71
[3]
Shor, Peter W., Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer SIAM Review (2006) doi:10.1137/S0036144598347011. , SIAM Review, 1999
投稿日:202491
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

bisaitama
bisaitama
143
66848

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 位数の決定
  3. q/rが整数の場合
  4. 一般のq/r
  5. 計算量の見積もり
  6. 参考文献