tecktom.com

量子アルゴリズム概観

2026年10月15日8分で読めますAI生成教科書『基礎理論』第1章 量子計算の基礎
目次
  1. Deutsch–Jozsaアルゴリズム
  2. Groverアルゴリズム(振幅増幅)
  3. 幾何学的描像
  4. Shorの因数分解アルゴリズム
  5. 補遺: の固有構造を精密に見る
  6. のユニタリ性
  7. 固有ベクトルの構成
  8. 固有ベクトルを用意できない問題とその解決
  9. 連分数展開による の復元
  10. 木下の層

AI 生成・木下が未勉強

量子情報入門 第1章 §1.6

代表的な量子アルゴリズムを、詳細な回路よりも「なぜ量子的優位性が生まれるか」に焦点を絞って概観する。

Deutsch–Jozsaアルゴリズム

関数 f:{0,1}n→{0,1}f:\{0,1\}^n\to\{0,1\} が「定数」か「バランス(00と11を半々に返す)」のどちらかであることが約束されているとき、どちらか判定したい。古典決定的アルゴリズムでは最悪 2n−1+12^{n-1}+1 回の ff の評価が必要だが、量子アルゴリズムでは1回で判定できる。鍵は、ff の値を全ての xx で同時に「重ね合わせで」計算し、Hadamard変換で干渉させることで大域的な性質を1回の測定で読み出す点にある。

Groverアルゴリズム(振幅増幅)

N=2nN=2^n 個の要素のうちマーク付き要素を1つ探す問題。古典的には最悪 NN 回、平均 N/2N/2 回のクエリが必要だが、Grover のアルゴリズムではO(N)O(\sqrt N) 回で高確率で見つかる。この2乗の高速化は、量子アルゴリズムが非構造的探索に対して達成できる最良の一般的高速化であることが知られている(BBBV下界)。

幾何学的描像

全 NN 個の状態を「マーク要素の張る部分空間」と「その直交補空間」に分けて2次元平面を考える:

∣β⟩=∣x∗⟩ (マーク要素),∣α⟩=1N−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{(非マーク)}.

初期の一様重ね合わせ

∣s⟩=1N∑x∣x⟩=cos⁡θ2∣α⟩+sin⁡θ2∣β⟩,sin⁡θ2=1N\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}

はこの2次元平面内のベクトルで、∣α⟩\ket\alpha 軸のごく近く(角度 θ/2≈1/N\theta/2\approx 1/\sqrt N)に位置する。振幅としてはマーク要素は 1/N1/\sqrt N しか含まれていない。

Groverの1反復 GG は「マーク要素の位相反転(オラクル)」と「∣s⟩\ket s に関する反転(拡散変換)」の合成で、これは幾何学的にはこの2次元平面内での角度 θ\theta の回転になる(2つの鏡映の合成は回転)。

図

∣s⟩\ket s から ∣β⟩\ket\beta に到達するまでに必要な回転角は約 π/2\pi/2。1回で θ≈2/N\theta \approx 2/\sqrt N しか回らないので、必要な反復回数は

k≈π/2θ≈π4N.k \approx \frac{\pi/2}{\theta} \approx \frac{\pi}{4}\sqrt N.

「ステップサイズ ∼1/N\sim 1/\sqrt N で目的地まで距離 ∼1\sim 1 を歩くから、N\sqrt N 歩必要」という描像である。

要点

Groverの N\sqrt N 加速は「非構造的探索」に対する加速であり、Shorのような指数的加速とは質的に異なる。指数的加速には問題に何らかの隠れた構造(周期性・群構造など)が必要で、非構造的な問題では原理的に N\sqrt N が最良である(BBBV下界)。

Shorの因数分解アルゴリズム

RSA暗号の安全性の基礎となる整数の素因数分解問題は、古典的には多項式時間アルゴリズムが知られていない(O(exp⁡(n1/3log⁡2/3n))O(\exp(n^{1/3}\log^{2/3} n)) 程度)。しかしShorのアルゴリズムは n=log⁡Nn=\log N ビットの数 NN を多項式時間 O(n3)O(n^3) で因数分解する。

構造は以下の3段階からなり、核心の量子計算は最後のQFT に集約されている:

図

各ステップの意味:

  1. 古典帰着(因数分解 → 位数発見):1<a<N1<a<N をランダムに選び、ar≡1(modN)a^r\equiv 1\pmod N を満たす最小の rr(aa の NN を法とした位数)が求められれば、rr が偶数かつ ar/2≢−1(modN)a^{r/2}\not\equiv -1\pmod N である確率が十分高く、そのとき gcd⁡(ar/2±1,N)\gcd(a^{r/2}\pm 1, N) を計算すれば NN の非自明な因数が得られる。ここまでは古典計算。
  2. 量子帰着(位数発見 → 位相推定):モジュラー乗算ユニタリ

Ua∣x⟩=∣ax mod N⟩U_a\ket x = \ket{ax\bmod N}

の固有値は e2πis/re^{2\pi i s/r}(s=0,1,…,r−1s=0,1,\ldots,r-1)の形をしている。したがって UaU_a の位相推定で s/rs/r を精度良く求めれば、連分数展開で rr が復元できる。3. 核心(位相推定 → QFT):位相推定の最終段は QFT。古典 FFT が O(Nlog⁡N)O(N\log N) なのに対し、QFT は O(log⁡2N)O(\log^2 N) ゲート — 指数的に速い。

要点

なぜ古典で難しく量子で速いのか。古典では位数 rr を求めるのに「a,a2,a3,…a, a^2, a^3,\ldots を計算して周期を探す」しかなく、rr は NN 程度の大きさになりうるので指数時間を要する。一方 QFT は「関数の周期構造を、フーリエ空間の鋭いピークとして一発で拾える」。周期関数のフーリエ変換が周期に対応する位置に鋭いピークを持つのは古典 FFT でも見慣れた事実だが、その量子版が Shor の指数的加速を生む。

補遺:UaU_a の固有構造を精密に見る

上の段階2「位数発見 → 位相推定」を支える代数構造を詳しく調べる。以下 gcd⁡(a,N)=1\gcd(a,N)=1 とする(そうでなければ gcd⁡\gcd 自体が因数を与えるので量子計算は不要)。

UaU_a のユニタリ性

Ua∣x⟩=∣ax mod N⟩U_a\ket x=\ket{ax\bmod N}

は計算基底を計算基底に写す置換型の演算子である。gcd⁡(a,N)=1\gcd(a,N)=1 ならば aa は  mod  N\bmod\,N で乗法逆元 a−1a^{-1} を持ち、写像 x↦ax mod Nx\mapsto ax\bmod N は Z/NZ\mathbb Z/N\mathbb Z 上の全単射になる。基底を基底に写す全単射は置換行列であり、置換行列はユニタリである。もし gcd⁡(a,N)>1\gcd(a,N)>1 なら写像は単射でなくなり(ax≡ax′ax\equiv ax' が x≠x′x\neq x' で起こる)、UaU_a はユニタリにならない——量子回路としてそもそも実装できない。ユニタリ性は「可逆な古典計算の埋め込み」の量子力学的な表現であり、gcd⁡(a,N)=1\gcd(a,N)=1 という数論的条件と正確に対応している。

固有ベクトルの構成

位数を rr(ar≡1 mod Na^r\equiv 1\bmod N)とすると、軌道 {1,a,a2,…,ar−1}\{1,a,a^2,\ldots,a^{r-1}\}( mod  N\bmod\,N)は UaU_a で巡回的に置換される。この rr 次元不変部分空間の上で UaU_a を対角化するのが

∣us⟩≡1r∑k=0r−1e−2πisk/r ∣ak mod 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

である。実際、

Ua∣us⟩=1r∑k=0r−1e−2πisk/r∣ak+1 mod N⟩=e2πis/r 1r∑k′=1re−2πisk′/r∣ak′ mod N⟩=e2πis/r∣us⟩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}

となる(k′=k+1k'=k+1 と置換した;最後の等号で k′=rk'=r の項が ar≡1a^r\equiv 1 により k′=0k'=0 の項と同一視できることを使った。N=15,a=2,r=4N=15,a=2,r=4 で数値的にも全 ss について確認済み)。すなわち固有値は e2πis/re^{2\pi is/r}、位相は φs=s/r\varphi_s=s/r である。

ここで ss が整数であることは仮定ではなく帰結である点に注意したい。巡回置換を対角化する位相 eiθe^{i\theta} は、rr 回作用させると恒等に戻る(Uar∣ak⟩=∣ak⟩U_a^r\ket{a^k}=\ket{a^k})という周期性から eirθ=1e^{ir\theta}=1 を満たさねばならず、θ=2πs/r\theta=2\pi s/r(s∈Zs\in\mathbb Z)に離散化される。有限次元の巡回構造が位相を量子化するのであって、連続な ss を許すには無限次元が必要になる。

固有ベクトルを用意できない問題とその解決

位相推定には固有ベクトル ∣us⟩\ket{u_s} が必要だが、∣us⟩\ket{u_s} を書き下すには rr を知らねばならず、rr こそが求めたい未知量である——一見循環している。これを破るのが恒等式

1r∑s=0r−1∣us⟩=∣1⟩\frac{1}{\sqrt r}\sum_{s=0}^{r-1}\ket{u_s} = \ket 1

である(幾何級数 ∑se−2πisk/r=rδk0\sum_s e^{-2\pi isk/r}=r\delta_{k0} による;数値確認済み)。準備が自明な状態 ∣1⟩\ket 1 が、全固有ベクトルの一様な重ね合わせになっている。∣1⟩\ket 1 を入れて位相推定を走らせると、線形性により「各 ∣us⟩\ket{u_s} に対する位相推定の重ね合わせ」が走り、測定するとランダムな ss に対する φs=s/r\varphi_s = s/r の近似値が得られる。

連分数展開による rr の復元

位相推定の出力は m/2t≈s/rm/2^t \approx s/r という有理近似である(tt は補助レジスタのビット数)。tt を十分大きく(t≥2log⁡2N+1t\ge 2\log_2 N+1 程度)取れば、s/rs/r は m/2tm/2^t の連分数展開の近似分数(convergent)として一意に復元できる(分母 ≤N\le N の有理数は互いに 1/N21/N^2 以上離れているため)。gcd⁡(s,r)=1\gcd(s,r)=1 となる ss を引き当てれば分母がそのまま rr を与え、そうでなくても数回の繰り返しで rr が得られる。ここまで来れば段階1の古典後処理 gcd⁡(ar/2±1,N)\gcd(a^{r/2}\pm1,N) に接続して因数分解が完了する。

要点

このsubsectionの構造を振り返ると、数論(gcd⁡\gcd、位数)→ 線形代数(置換行列の対角化)→ 量子アルゴリズム(位相キックバックとQFT)→ 数論(連分数)という往復になっている。第1.5.6節の位相キックバックが「固有値の位相を制御レジスタに転写する」一般機構であり、Shorはそれを巡回群の表現論が保証する離散位相 s/rs/r に適用した、と要約できる。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『基礎理論』の記事一覧へ