量子情報入門 第1章 §1.6
代表的な量子アルゴリズムを、詳細な回路よりも「なぜ量子的優位性が生まれるか」に焦点を絞って概観する。
Deutsch–Jozsaアルゴリズム
関数 f : { 0 , 1 } n → { 0 , 1 } f:\{0,1\}^n\to\{0,1\} f : { 0 , 1 } n → { 0 , 1 } が「定数」か「バランス(0 0 0 と1 1 1 を半々に返す)」のどちらかであることが約束されているとき、どちらか判定したい。古典決定的アルゴリズムでは最悪 2 n − 1 + 1 2^{n-1}+1 2 n − 1 + 1 回の f f f の評価が必要だが、量子アルゴリズムでは1回 で判定できる。鍵は、f f f の値を全ての x x x で同時に「重ね合わせで」計算し、Hadamard変換で干渉 させることで大域的な性質を1回の測定で読み出す点にある。
Groverアルゴリズム(振幅増幅)
N = 2 n N=2^n N = 2 n 個の要素のうちマーク付き要素を1つ探す問題。古典的には最悪 N N N 回、平均 N / 2 N/2 N /2 回のクエリが必要だが、Grover のアルゴリズムではO ( N ) O(\sqrt N) O ( N ) 回 で高確率で見つかる。この2乗の高速化は、量子アルゴリズムが非構造的探索に対して達成できる最良の一般的高速化 であることが知られている(BBBV下界)。
幾何学的描像
全 N N N 個の状態を「マーク要素の張る部分空間」と「その直交補空間」に分けて2次元平面を考える:
∣ β ⟩ = ∣ x ∗ ⟩ (マーク要素) , ∣ α ⟩ = 1 N − 1 ∑ x ≠ x ∗ ∣ x ⟩ (非マーク) . \ket\beta = \ket{x_\ast}\ \text{(マーク要素)},\qquad
\ket\alpha = \frac{1}{\sqrt{N-1}}\sum_{x\neq x_\ast}\ket x\ \text{(非マーク)}. ∣ β ⟩ = ∣ x ∗ ⟩ ( マーク要素 ) , ∣ α ⟩ = N − 1 1 x = x ∗ ∑ ∣ x ⟩ ( 非マーク ) .
初期の一様重ね合わせ
∣ s ⟩ = 1 N ∑ x ∣ x ⟩ = cos θ 2 ∣ α ⟩ + sin θ 2 ∣ β ⟩ , sin θ 2 = 1 N \ket s = \frac{1}{\sqrt N}\sum_x \ket x = \cos\frac{\theta}{2}\ket\alpha + \sin\frac{\theta}{2}\ket\beta,\qquad \sin\frac\theta2 = \frac{1}{\sqrt N} ∣ s ⟩ = N 1 x ∑ ∣ x ⟩ = cos 2 θ ∣ α ⟩ + sin 2 θ ∣ β ⟩ , sin 2 θ = N 1
はこの2次元平面内のベクトルで、∣ α ⟩ \ket\alpha ∣ α ⟩ 軸のごく近く(角度 θ / 2 ≈ 1 / N \theta/2\approx 1/\sqrt N θ /2 ≈ 1/ N )に位置する。振幅としてはマーク要素は 1 / N 1/\sqrt N 1/ N しか含まれていない。
Groverの1反復 G G G は「マーク要素の位相反転(オラクル)」と「∣ s ⟩ \ket s ∣ s ⟩ に関する反転(拡散変換)」の合成で、これは幾何学的にはこの2次元平面内での角度 θ \theta θ の回転 になる(2つの鏡映の合成は回転)。
∣ s ⟩ \ket s ∣ s ⟩ から ∣ β ⟩ \ket\beta ∣ β ⟩ に到達するまでに必要な回転角は約 π / 2 \pi/2 π /2 。1回で θ ≈ 2 / N \theta \approx 2/\sqrt N θ ≈ 2/ N しか回らないので、必要な反復回数は
k ≈ π / 2 θ ≈ π 4 N . k \approx \frac{\pi/2}{\theta} \approx \frac{\pi}{4}\sqrt N. k ≈ θ π /2 ≈ 4 π N .
「ステップサイズ ∼ 1 / N \sim 1/\sqrt N ∼ 1/ N で目的地まで距離 ∼ 1 \sim 1 ∼ 1 を歩くから、N \sqrt N N 歩必要」という描像である。
要点
Groverの N \sqrt N N 加速は「非構造的探索」に対する加速であり、Shorのような指数的加速 とは質的に異なる。指数的加速には問題に何らかの隠れた構造(周期性・群構造など)が必要で、非構造的な問題では原理的に N \sqrt N N が最良である(BBBV下界)。
Shorの因数分解アルゴリズム
RSA暗号の安全性の基礎となる整数の素因数分解問題 は、古典的には多項式時間アルゴリズムが知られていない(O ( exp ( n 1 / 3 log 2 / 3 n ) ) O(\exp(n^{1/3}\log^{2/3} n)) O ( exp ( n 1/3 log 2/3 n )) 程度)。しかしShorのアルゴリズムは n = log N n=\log N n = log N ビットの数 N N N を多項式時間 O ( n 3 ) O(n^3) O ( n 3 ) で因数分解する。
構造は以下の3段階からなり、核心の量子計算は最後のQFT に集約されている :
各ステップの意味:
古典帰着(因数分解 → 位数発見) :1 < a < N 1<a<N 1 < a < N をランダムに選び、a r ≡ 1 ( m o d N ) a^r\equiv 1\pmod N a r ≡ 1 ( mod N ) を満たす最小の r r r (a a a の N N N を法とした位数 )が求められれば、r r r が偶数かつ a r / 2 ≢ − 1 ( m o d N ) a^{r/2}\not\equiv -1\pmod N a r /2 ≡ − 1 ( mod N ) である確率が十分高く、そのとき gcd ( a r / 2 ± 1 , N ) \gcd(a^{r/2}\pm 1, N) g cd( a r /2 ± 1 , N ) を計算すれば N N N の非自明な因数が得られる。ここまでは古典計算。
量子帰着(位数発見 → 位相推定) :モジュラー乗算ユニタリ
U a ∣ x ⟩ = ∣ a x m o d N ⟩ U_a\ket x = \ket{ax\bmod N} U a ∣ x ⟩ = ∣ a x mod N ⟩
の固有値は e 2 π i s / r e^{2\pi i s/r} e 2 π i s / r (s = 0 , 1 , … , r − 1 s=0,1,\ldots,r-1 s = 0 , 1 , … , r − 1 )の形をしている。したがって U a U_a U a の位相推定で s / r s/r s / r を精度良く求めれば、連分数展開で r r r が復元できる。3. 核心(位相推定 → QFT) :位相推定の最終段は QFT。古典 FFT が O ( N log N ) O(N\log N) O ( N log N ) なのに対し、QFT は O ( log 2 N ) O(\log^2 N) O ( log 2 N ) ゲート — 指数的に速い 。
要点
なぜ古典で難しく量子で速いのか 。古典では位数 r r r を求めるのに「a , a 2 , a 3 , … a, a^2, a^3,\ldots a , a 2 , a 3 , … を計算して周期を探す」しかなく、r r r は N N N 程度の大きさになりうるので指数時間を要する。一方 QFT は「関数の周期構造を、フーリエ空間の鋭いピークとして一発で拾える」。周期関数のフーリエ変換が周期に対応する位置に鋭いピークを持つのは古典 FFT でも見慣れた事実だが、その量子版が Shor の指数的加速を生む。
補遺:U a U_a U a の固有構造を精密に見る
上の段階2「位数発見 → 位相推定」を支える代数構造を詳しく調べる。以下 gcd ( a , N ) = 1 \gcd(a,N)=1 g cd( a , N ) = 1 とする(そうでなければ gcd \gcd g cd 自体が因数を与えるので量子計算は不要)。
U a U_a U a のユニタリ性
U a ∣ x ⟩ = ∣ a x m o d N ⟩ U_a\ket x=\ket{ax\bmod N} U a ∣ x ⟩ = ∣ a x mod N ⟩
は計算基底を計算基底に写す置換型の演算子である。gcd ( a , N ) = 1 \gcd(a,N)=1 g cd( a , N ) = 1 ならば a a a は m o d N \bmod\,N mod N で乗法逆元 a − 1 a^{-1} a − 1 を持ち、写像 x ↦ a x m o d N x\mapsto ax\bmod N x ↦ a x mod N は Z / N Z \mathbb Z/N\mathbb Z Z / N Z 上の全単射 になる。基底を基底に写す全単射は置換行列であり、置換行列はユニタリである。もし gcd ( a , N ) > 1 \gcd(a,N)>1 g cd( a , N ) > 1 なら写像は単射でなくなり(a x ≡ a x ′ ax\equiv ax' a x ≡ a x ′ が x ≠ x ′ x\neq x' x = x ′ で起こる)、U a U_a U a はユニタリにならない——量子回路としてそもそも実装できない。ユニタリ性は「可逆な古典計算の埋め込み」の量子力学的な表現 であり、gcd ( a , N ) = 1 \gcd(a,N)=1 g cd( a , N ) = 1 という数論的条件と正確に対応している。
固有ベクトルの構成
位数を r r r (a r ≡ 1 m o d N a^r\equiv 1\bmod N a r ≡ 1 mod N )とすると、軌道 { 1 , a , a 2 , … , a r − 1 } \{1,a,a^2,\ldots,a^{r-1}\} { 1 , a , a 2 , … , a r − 1 } ( m o d N \bmod\,N mod N )は U a U_a U a で巡回的に置換される。この r r r 次元不変部分空間の上で U a U_a U a を対角化するのが
∣ u s ⟩ ≡ 1 r ∑ k = 0 r − 1 e − 2 π i s k / r ∣ a k m o d N ⟩ , s = 0 , 1 , … , r − 1 \ket{u_s} \equiv \frac{1}{\sqrt r}\sum_{k=0}^{r-1} e^{-2\pi i sk/r}\,\ket{a^k\bmod N},\qquad s=0,1,\ldots,r-1 ∣ u s ⟩ ≡ r 1 k = 0 ∑ r − 1 e − 2 π i s k / r ∣ a k mod N ⟩ , s = 0 , 1 , … , r − 1
である。実際、
U a ∣ u s ⟩ = 1 r ∑ k = 0 r − 1 e − 2 π i s k / r ∣ a k + 1 m o d N ⟩ = e 2 π i s / r 1 r ∑ k ′ = 1 r e − 2 π i s k ′ / r ∣ a k ′ m o d N ⟩ = e 2 π i s / r ∣ u s ⟩ U_a\ket{u_s} = \frac{1}{\sqrt r}\sum_{k=0}^{r-1}e^{-2\pi isk/r}\ket{a^{k+1}\bmod N}
= e^{2\pi is/r}\,\frac{1}{\sqrt r}\sum_{k'=1}^{r}e^{-2\pi isk'/r}\ket{a^{k'}\bmod N}
= e^{2\pi is/r}\ket{u_s} U a ∣ u s ⟩ = r 1 k = 0 ∑ r − 1 e − 2 π i s k / r ∣ a k + 1 mod N ⟩ = e 2 π i s / r r 1 k ′ = 1 ∑ r e − 2 π i s k ′ / r ∣ a k ′ mod N ⟩ = e 2 π i s / r ∣ u s ⟩
となる(k ′ = k + 1 k'=k+1 k ′ = k + 1 と置換した;最後の等号で k ′ = r k'=r k ′ = r の項が a r ≡ 1 a^r\equiv 1 a r ≡ 1 により k ′ = 0 k'=0 k ′ = 0 の項と同一視できることを使った。N = 15 , a = 2 , r = 4 N=15,a=2,r=4 N = 15 , a = 2 , r = 4 で数値的にも全 s s s について確認済み)。すなわち固有値は e 2 π i s / r e^{2\pi is/r} e 2 π i s / r 、位相は φ s = s / r \varphi_s=s/r φ s = s / r である。
ここで s s s が整数 であることは仮定ではなく帰結である点に注意したい。巡回置換を対角化する位相 e i θ e^{i\theta} e i θ は、r r r 回作用させると恒等に戻る(U a r ∣ a k ⟩ = ∣ a k ⟩ U_a^r\ket{a^k}=\ket{a^k} U a r ∣ a k ⟩ = ∣ a k ⟩ )という周期性から e i r θ = 1 e^{ir\theta}=1 e i r θ = 1 を満たさねばならず、θ = 2 π s / r \theta=2\pi s/r θ = 2 π s / r (s ∈ Z s\in\mathbb Z s ∈ Z )に離散化 される。有限次元の巡回構造が位相を量子化するのであって、連続な s s s を許すには無限次元が必要になる。
固有ベクトルを用意できない問題とその解決
位相推定には固有ベクトル ∣ u s ⟩ \ket{u_s} ∣ u s ⟩ が必要だが、∣ u s ⟩ \ket{u_s} ∣ u s ⟩ を書き下すには r r r を知らねばならず、r r r こそが求めたい未知量である——一見循環している。これを破るのが恒等式
1 r ∑ s = 0 r − 1 ∣ u s ⟩ = ∣ 1 ⟩ \frac{1}{\sqrt r}\sum_{s=0}^{r-1}\ket{u_s} = \ket 1 r 1 s = 0 ∑ r − 1 ∣ u s ⟩ = ∣ 1 ⟩
である(幾何級数 ∑ s e − 2 π i s k / r = r δ k 0 \sum_s e^{-2\pi isk/r}=r\delta_{k0} ∑ s e − 2 π i s k / r = r δ k 0 による;数値確認済み)。準備が自明な状態 ∣ 1 ⟩ \ket 1 ∣ 1 ⟩ が、全固有ベクトルの一様な重ね合わせ になっている。∣ 1 ⟩ \ket 1 ∣ 1 ⟩ を入れて位相推定を走らせると、線形性により「各 ∣ u s ⟩ \ket{u_s} ∣ u s ⟩ に対する位相推定の重ね合わせ」が走り、測定するとランダムな s s s に対する φ s = s / r \varphi_s = s/r φ s = s / r の近似値が得られる。
連分数展開による r r r の復元
位相推定の出力は m / 2 t ≈ s / r m/2^t \approx s/r m / 2 t ≈ s / r という有理近似である(t t t は補助レジスタのビット数)。t t t を十分大きく(t ≥ 2 log 2 N + 1 t\ge 2\log_2 N+1 t ≥ 2 log 2 N + 1 程度)取れば、s / r s/r s / r は m / 2 t m/2^t m / 2 t の連分数展開 の近似分数(convergent)として一意に復元できる(分母 ≤ N \le N ≤ N の有理数は互いに 1 / N 2 1/N^2 1/ N 2 以上離れているため)。gcd ( s , r ) = 1 \gcd(s,r)=1 g cd( s , r ) = 1 となる s s s を引き当てれば分母がそのまま r r r を与え、そうでなくても数回の繰り返しで r r r が得られる。ここまで来れば段階1の古典後処理 gcd ( a r / 2 ± 1 , N ) \gcd(a^{r/2}\pm1,N) g cd( a r /2 ± 1 , N ) に接続して因数分解が完了する。
要点
このsubsectionの構造を振り返ると、数論(gcd \gcd g cd 、位数)→ 線形代数(置換行列の対角化)→ 量子アルゴリズム(位相キックバックとQFT)→ 数論(連分数) という往復になっている。第1.5.6 節の位相キックバックが「固有値の位相を制御レジスタに転写する」一般機構であり、Shorはそれを巡回群の表現論が保証する離散位相 s / r s/r s / r に適用した、と要約できる。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com