tecktom.com

計算量クラスの理論: P, NP, BPP, BQP

2026年10月15日28分で読めますAI生成教科書『基礎理論』第1章 量子計算の基礎
目次
  1. 何を測るのか: 決定問題と多項式時間
  2. P と NP: 解けることと検証できること
  3. 乱数を許す: BPP
  4. 量子多項式時間: BQP
  5. 包含関係の全体像
  6. オラクル分離: Simon の問題
  7. 量子アルゴリズム
  8. 後処理と全体のクエリ数
  9. 古典の下界
  10. 演習
  11. 木下の層

AI 生成・木下が未勉強

量子情報入門 第1章 §1.7 ★★ Shor や Grover の「速い」を厳密な主張として述べるための言語。クラスの定義群と包含関係の全体像、そして Simon のオラクル分離までが、量子計算の理論的到達点の見取り図になる

何を測るのか: 決定問題と多項式時間

計算量理論の目的は、個々のアルゴリズムの巧拙ではなく、問題そのものの本質的な難しさを入力サイズ nn の関数として分類することにある。「どんなアルゴリズムを使っても最低これだけの資源が要る」という下界と、「このアルゴリズムならこれだけで解ける」という上界で問題を挟み、必要資源の水準ごとに問題をクラスへ組織する。本節の古典側の枠組みは N&C 第3章 § 3.2.2–3.2.4、量子側(BQP)は第4章 § 4.5.5 に対応する。

出自の異なる問題を同じ土俵で比べるため、まず問題の形を標準化する。

定義 1.4(決定問題と言語 ★)

有限長のビット列 x∈{0,1}∗x\in\{0,1\}^* を入力とし、答えが Yes/No の2値である問題を決定問題という。答えが Yes になる入力全体の集合 L⊆{0,1}∗L\subseteq\{0,1\}^* を言語と呼び、「LL を解く」とは、与えられた xx について x∈Lx\in L か否かを判定することをいう。入力サイズとはビット長 n=∣x∣n=|x| である。

答えが数値で返る問題も判定版に直せる。たとえば「NN の非自明な約数を求めよ」は、判定版「NN は kk 以下の非自明な約数を持つか」を O(log⁡N)O(\log N) 回呼ぶ二分探索で元の答えを復元できるから、決定問題への制限で難しさの分類は変わらない。

資源の主役は時間(計算のステップ数。回路モデルではゲート数)と領域(使うメモリ量)である。「効率的」の線は多項式時間 O(nk)O(n^k)に引く。この線引きには2つの理由がある。第一に合成で閉じる: 多項式時間のアルゴリズムが多項式時間のサブルーチンを呼んでも全体は多項式時間のままで、「効率的な部品の組み合わせは効率的」という直観が保たれる。第二に計算モデルに依らない: チューリング機械・RAM・論理回路といった古典モデルは互いに多項式時間の変換で行き来できるので、多項式か指数かの区別はモデルの細部に左右されない。一方 O(2n)O(2^n) の指数時間は nn が数百になった時点で現実の手に負えなくなる。素因数分解が古典で(準)指数時間、Shor で多項式時間(第1.6.3節)という対比が劇的なのは、この線を跨ぐからである。

P と NP: 解けることと検証できること

★★ 「自力で解く」と「証拠を検証する」の区別が NP の核心。P vs NP は、後で BQP の位置を論じるときの背景になる

定義 (クラス P ★★)

決定論的な(乱数も量子効果も使わない)アルゴリズムで、ある定数 kk について O(nk)O(n^k) 時間で解ける決定問題全体のクラスを P\mathrm P(Polynomial time)という。

例は整列、最短経路(Dijkstra)、行列積、線形計画法、AKS アルゴリズムによる素数判定など。「効率的に解ける」の基準クラスである。

定義 (クラス NP ★★)

決定問題 LL が NP\mathrm{NP}(Nondeterministic Polynomial time)に属するとは、多項式長の証拠(witness)と多項式時間の検証アルゴリズム VV が存在して

x∈L   ⟺   ある証拠 w について V(x,w)=Yesx\in L\ \iff\ \text{ある証拠 } w \text{ について } V(x,w)=\text{Yes}

となることをいう。証拠 ww を見つける手間は問わず、検証だけが多項式時間であればよい。

  • 巡回セールスマン問題(判定版)「長さ ≤L\le L の巡回路はあるか」。巡回路そのものが証拠で、長さの計算は多項式時間で済む。
  • 素因数分解(判定版)「NN は kk 以下の非自明な約数を持つか」。約数が証拠で、割り算1回で検証できる。
  • 充足可能性問題 SAT「この論理式を真にする変数割り当てはあるか」。割り当てが証拠で、式の評価は多項式時間。

P⊆NP\mathrm P\subseteq\mathrm{NP} は自明である(自力で解けるなら、検証者は証拠を無視して自分で解けばよい)。逆向きの NP⊆P\mathrm{NP}\subseteq\mathrm P、すなわち「検証が易しい問題は必ず自力でも易しく解けるか」がP vs NP 問題(ミレニアム懸賞問題)で、P≠NP\mathrm P\neq\mathrm{NP} と広く信じられているが未解決である。NP\mathrm{NP} の中にはNP 完全と呼ばれる最難の問題群があり(SAT が代表。Cook–Levin の定理)、任意の NP 問題は多項式時間の変換で NP 完全問題に帰着する。したがって NP 完全問題が1つでも多項式時間で解ければ P=NP\mathrm P=\mathrm{NP} が従う。

領域で切ったクラスも用意しておく。PSPACE は多項式領域で解ける決定問題のクラスで、時間はいくらかかってもよい。証拠の候補 ww を1本ずつ生成しては検証し、領域を使い回せば NP 問題は多項式領域で解けるから、P⊆NP⊆PSPACE\mathrm P\subseteq\mathrm{NP}\subseteq\mathrm{PSPACE} が並ぶ。

乱数を許す: BPP

★★ 「定数の誤り確率は多数決で指数的に潰せる」が確率的クラス設計の要。BQP の 2/32/3 も同じ理屈で正当化される

乱数を資源として認めたときの「効率的」が次のクラスである。

定義 (クラス BPP ★★)

決定問題 LL が BPP\mathrm{BPP}(Bounded-error Probabilistic Polynomial time)に属するとは、一様乱数ビット(コイン投げ)を使える多項式時間アルゴリズムが存在して、すべての入力 xx に対し正答確率 ≥2/3\ge 2/3 で x∈Lx\in L か否かを答えることをいう。

2/32/3 という定数に意味はない。同じアルゴリズムを 2k+12k+1 回走らせて多数決を取れば、誤り確率は 13(8/9)k\frac13(8/9)^k 以下と指数的に減衰する(導出と具体的な反復回数は演習1)。したがって閾値は、多項式時間を保ったまま 1/2+1/nc1/2+1/n^c から 1−2−nc1-2^{-n^c} まで自由に取り替えられる。1/21/2 ちょうどでは当てずっぽうと区別が付かず増幅の足場が無いので、そこだけが本質的な境界である。

例は Miller–Rabin の確率的素数判定(のちに AKS により素数判定自体は P\mathrm P と判明)や、多項式恒等式検査(与えられた式が恒等的に 00 かを乱数代入で高確率判定する。こちらは P\mathrm P に入るかが現在も未解明の代表例)。乱数を使わないアルゴリズムはその特別な場合だから P⊆BPP\mathrm P\subseteq\mathrm{BPP}、また乱数列 2poly(n)2^{\mathrm{poly}(n)} 通りをすべて試して多数決を集計すれば(領域は使い回せる)BPP⊆PSPACE\mathrm{BPP}\subseteq\mathrm{PSPACE} である。なお擬似乱数生成器の理論から P=BPP\mathrm P=\mathrm{BPP}(乱数は実は省ける)と予想されているが、これも未解決である。

量子多項式時間: BQP

★★★ 本書の主役クラス。「一様な多項式サイズ量子回路族+有界誤差」の3点セットで定義する

量子計算での「多項式時間」は回路モデル(第1.2節)で定義する。入力長 nn ごとに回路 QnQ_n を1つ用意した族 {Qn}\{Q_n\} を使うが、このとき一様性(uniformity)を課す: 回路の記述(どのゲートをどこに置くか)が、nn を入力とする古典多項式時間アルゴリズムで生成できることを要求する。一様性を課さないと、たとえば難しい問題の答えの表を回路の設計図そのものに埋め込む反則(計算せずに表を引くのと同じ)が可能になり、クラスが計算の難しさを測らなくなる。

定義 1.8(クラス BQP ★★★)

決定問題 LL が BQP\mathrm{BQP}(Bounded-error Quantum Polynomial time)に属するとは、一様な多項式サイズの量子回路族 {Qn}\{Q_n\} が存在して、任意の入力 xx(∣x∣=n|x|=n)に対し、初期状態 ∣x⟩⊗∣0⋯0⟩\ket x\otimes\ket{0\cdots0} に QnQ_n を作用させ第1量子ビットを計算基底で測定した結果を出力とするとき

x∈L⇒Pr⁡[出力=1]≥23,x∉L⇒Pr⁡[出力=1]≤13x\in L \Rightarrow \Pr[\text{出力}=1]\ge \frac23,\qquad x\notin L \Rightarrow \Pr[\text{出力}=1]\le \frac13

を満たすことをいう。

ここでも 2/32/3 は本質的でない。回路を独立に 2k+12k+1 回走らせて多数決を取る増幅は量子でもそのまま通用する(多数決の計算は Toffoli による可逆計算として回路に含められる)。また、普遍ゲート集合をどれに取るかもクラスを変えない。Solovay–Kitaev の定理(定理1.3)により、あるゲート集合の回路は別のゲート集合で誤差 ε\varepsilon まで O(log⁡c(1/ε))O(\log^c(1/\varepsilon)) 倍のゲート数で近似できるからである。

古典多項式時間アルゴリズムが知られていない代表的な BQP 問題は次の2系統である。

  • 因数分解・離散対数・位数発見: いずれも Shor 型のアルゴリズム(第1.6.3節)で多項式時間。RSA や楕円曲線暗号を破るという応用面でも、後述の「NP 完全とは信じられていない」という理論的位置づけの面でも、BQP の看板問題である。
  • 量子系のシミュレーション: 局所ハミルトニアンによる時間発展の近似。Feynman が量子計算機を着想した動機であり、化学・物性計算への応用の中心。

Grover の探索(第1.6節)は N\sqrt N 倍の加速なので、多項式か指数かの線引きでは古典と同じ側にとどまる。BQP の外形を広げるのは上の2系統のような指数的加速である。

包含関係の全体像

★★★ 何が証明済みで何が予想かの区別が最重要。BQP と NP は、どちらも他方を含むとは思われていない

定理 1.9(基本的な包含 ★★★)

P ⊆ BPP ⊆ BQP ⊆ PSPACE.\mathrm P\ \subseteq\ \mathrm{BPP}\ \subseteq\ \mathrm{BQP}\ \subseteq\ \mathrm{PSPACE}.

3つの包含の理由を順に見る。

  • P⊆BPP\mathrm P\subseteq\mathrm{BPP}: 乱数を使わないアルゴリズムは、乱数を使えるアルゴリズムの特別な場合である。
  • BPP⊆BQP\mathrm{BPP}\subseteq\mathrm{BQP}: 材料は2つ。(i) 公平なコインは H∣0⟩H\ket0 を測定すれば作れる(測定は回路の最後まで遅らせてもよい)。(ii) 古典回路は Toffoli ゲートで可逆化して量子回路に埋め込める(第1.2節)。この2つを合わせると、BPP アルゴリズム全体が多項式サイズの一様な量子回路になる。
  • BQP⊆PSPACE\mathrm{BQP}\subseteq\mathrm{PSPACE}: ゲート数 mm の回路の出力振幅は、ゲートの間に計算基底の完全系を挟むと

⟨y∣Gm⋯G2G1∣0⋯0⟩=∑z1,…,zm−1⟨y∣Gm∣zm−1⟩⋯⟨z2∣G2∣z1⟩⟨z1∣G1∣0⋯0⟩\bra{y} G_m\cdots G_2 G_1\ket{0\cdots0} = \sum_{z_1,\ldots,z_{m-1}} \bra{y}G_m\ket{z_{m-1}}\cdots\bra{z_2}G_2\ket{z_1}\bra{z_1}G_1\ket{0\cdots0}

というFeynman 経路和になる。経路(中間状態の列 z1,…,zm−1z_1,\ldots,z_{m-1})の総数は指数個だが、1本の経路の寄与は mm 個の行列要素の積として多項式時間・多項式領域で計算でき、経路にわたる和は1本ずつ計算しては累積すれば領域を使い回せる。時間は指数的にかかるものの領域は多項式で済むから、出力確率が多項式領域で求まる。「指数個の振幅」は時間の壁ではあっても領域の壁ではない、というのがこの証明の教訓である。

注意すべきは、定理1.9のどの包含についても真の包含(≠\neq)は証明されていないことである。両端ですら P≠PSPACE\mathrm P\neq\mathrm{PSPACE} が未証明なのだから、鎖のどこかが潰れて等号になっている可能性を論理的には排除できない。「量子計算機は古典より真に強い」という主張は、現時点では定理ではなく、強く支持された予想である。

NP\mathrm{NP} との関係はさらに微妙で、どちらの向きの包含も知られていない。

  • NP⊆BQP\mathrm{NP}\subseteq\mathrm{BQP} を支持する証拠は乏しい。Grover のアルゴリズムは NP 問題の証拠探索を O(2n)O(\sqrt{2^n}) に加速するだけで多項式には届かず、しかも BBBV 下界(第1.6節)により、問題の構造を使わない探索では平方根の加速が量子の限界である。NP 完全問題を量子で多項式時間で解くには、SAT などに未発見の代数的構造が必要になる。
  • 逆の BQP⊆NP\mathrm{BQP}\subseteq\mathrm{NP} も期待されていない。Shor が解く因数分解(判定版)は NP∩coNP\mathrm{NP}\cap\mathrm{coNP} に属する(素因数分解の一意性により、完全な素因数分解を証拠とすれば Yes と No のどちら側も多項式時間で検証できる)。この位置の問題は NP 完全ではないと信じられており、因数分解は「NP の中の、完全でも P でもない中間層」の住人と目されている。量子の得意領域は NP と斜めに交わる別の領域であって、NP を覆う形にはなっていない。
図

実線の包含(P⊆BPP⊆BQP⊆PSPACE\mathrm P\subseteq\mathrm{BPP}\subseteq\mathrm{BQP}\subseteq\mathrm{PSPACE})はいずれも証明済み。NP を点線にしたのは、NP⊆PSPACE\mathrm{NP}\subseteq\mathrm{PSPACE} 自体は証明済みだが、BPP・BQP との重なり方(因数分解が BPP の外にあること、SAT が BQP の外にあること)が P≠NP\mathrm P\neq\mathrm{NP} などの未解決予想に依る描像だからである。

要点

「量子超越性」の理論的根拠は、因数分解 ∈BQP∖P\in \mathrm{BQP}\setminus \mathrm P(未証明だが広く信じられている)である。もしこれが正しければ、量子計算機には古典計算機が多項式時間では真似できない仕事が存在する。物理系のシミュレーションについても同様のクラス分離が期待されている。そして、証明済みの命題としてこの予想に最も近い位置にあるのが、次項のオラクル分離である。

オラクル分離: Simon の問題

★★★ 乱択古典に対する指数的分離を無条件に証明できる最初の例であり、Shor の位数発見の直接の原型

前小節の結論のとおり、絶対的な分離(BPP≠BQP\mathrm{BPP}\neq\mathrm{BQP} など)は現在の数学では手が届かない。そこで計算量理論は問題設定を絞る。クエリ模型(オラクル模型)では、未知の関数 ff がオラクル(中身の見えないブラックボックス)として与えられ、アルゴリズムは ff へのクエリ(問い合わせ。量子なら Uf ⁣:∣x⟩∣q⟩↦∣x⟩∣q⊕f(x)⟩U_f\colon\ket x\ket q\mapsto\ket x\ket{q\oplus f(x)} を1回使うこと)によってのみ ff の情報を得る。数える資源はクエリ回数だけである。この模型の利点は下界が実際に証明できることにあり、量子と古典の分離を予想ではなく定理として示せる。

第1.6.1節の Deutsch–Jozsa 問題はこの模型の例で、量子1回対古典決定的 2n−1+12^{n-1}+1 回という分離を与える。しかしこの分離は、乱択の古典アルゴリズムに対しては消えてしまう: ランダムに数点サンプルするだけで誤り確率を指数的に潰せるからである(演習3)。BPP 対 BQP の分離の証拠と呼ぶには、乱択にも耐える例が要る。それを初めて与えたのが Simon の問題である(N&C では第5章 § 5.4.3 の隠れ部分群問題の表と演習 5.29 で触れられている。以下の分離の議論の構成は本書のオリジナル)。

定義 1.10(Simon の問題 ★★)

関数 f:{0,1}n→{0,1}nf:\{0,1\}^n\to\{0,1\}^n は、ある s≠0⋯0s\neq 0\cdots0 について

f(x)=f(y)   ⟺   y∈{x, x⊕s}f(x)=f(y)\ \iff\ y\in\{x,\ x\oplus s\}

を満たすと約束されている(⊕\oplus はビットごとの排他的論理和)。すなわち ff は、ss だけずれた対 {x, x⊕s}\{x,\,x\oplus s\} の上でだけ値が一致する2対1関数である。ff へのクエリから、隠れた周期 ss を求めよ。

x↦x⊕sx\mapsto x\oplus s は群 (Z/2Z)n(\mathbb Z/2\mathbb Z)^n における「ss だけの平行移動」だから、これは(Z/2Z)n(\mathbb Z/2\mathbb Z)^n 上の周期発見である。Shor の位数発見(第1.6.3節)は同じ問いを群 Z\mathbb Z で立てたものにあたり、使う変換も Hadamard 変換((Z/2Z)n(\mathbb Z/2\mathbb Z)^n 上のフーリエ変換。第1.5節)から QFT(Z/2nZ\mathbb Z/2^n\mathbb Z 上)へ置き換わる。歴史的にも、Simon の1994年の結果を見た Shor が同年のうちに因数分解へ拡張したという直接の系譜がある。

量子アルゴリズム

2本の nn 量子ビットレジスタを使う。

∣0⋯0⟩∣0⋯0⟩ → H⊗n⊗I  12n∑x∣x⟩∣0⋯0⟩ → Uf  12n∑x∣x⟩∣f(x)⟩.\ket{0\cdots0}\ket{0\cdots0} \ \xrightarrow{\ H^{\otimes n}\otimes I\ }\ \frac{1}{\sqrt{2^n}}\sum_{x}\ket x\ket{0\cdots0} \ \xrightarrow{\ U_f\ }\ \frac{1}{\sqrt{2^n}}\sum_{x}\ket x\ket{f(x)}.

ここで第2レジスタを測定し、値 f(x0)f(x_0) が出たとする(測定は回路の最後まで遅らせても以下の分布は変わらない。n=3n=3 の数値検証では両方の描像で同じ分布になることを確かめている)。ff の逆像が {x0, x0⊕s}\{x_0,\,x_0\oplus s\} の2点であることから、第1レジスタは

∣x0⟩+∣x0⊕s⟩2\frac{\ket{x_0}+\ket{x_0\oplus s}}{\sqrt2}

に崩壊する。この状態に H⊗nH^{\otimes n} を作用させる。1量子ビットの H∣xi⟩=(∣0⟩+(−1)xi∣1⟩)/2H\ket{x_i}=(\ket0+(-1)^{x_i}\ket1)/\sqrt2 を nn 本束ねると

H⊗n∣x⟩=12n∑y(−1)x⋅y∣y⟩,x⋅y≡x1y1⊕⋯⊕xnyn ( mod  2)H^{\otimes n}\ket x=\frac{1}{\sqrt{2^n}}\sum_{y}(-1)^{x\cdot y}\ket y,\qquad x\cdot y\equiv x_1y_1\oplus\cdots\oplus x_ny_n\ (\bmod\ 2)

だから、測定直前の ∣y⟩\ket y の振幅は

12n+1[(−1)x0⋅y+(−1)(x0⊕s)⋅y]=(−1)x0⋅y2n+1[1+(−1)s⋅y]\frac{1}{\sqrt{2^{n+1}}}\Bigl[(-1)^{x_0\cdot y}+(-1)^{(x_0\oplus s)\cdot y}\Bigr] =\frac{(-1)^{x_0\cdot y}}{\sqrt{2^{n+1}}}\Bigl[1+(-1)^{s\cdot y}\Bigr]

となる。s⋅y=1s\cdot y=1 なら角括弧の中が 00、s⋅y=0s\cdot y=0 なら振幅の大きさは 2−(n−1)/22^{-(n-1)/2} である。

命題 1.11(1回の実行が返すもの ★★★)

Simon の回路を1回走らせた測定結果 yy は、部分空間

s⊥={ y∈{0,1}n: s⋅y=0 }(2n−1 点)s^\perp=\{\,y\in\{0,1\}^n:\ s\cdot y=0\,\}\qquad(2^{n-1}\ \text{点})

の上の一様分布に従う。すなわち1回の実行(クエリ1回)ごとに、未知の ss に関する線形方程式 y⋅s=0y\cdot s=0 が1本、ランダムに手に入る。

n=3n=3, s=101s=101 では s⊥={000,010,101,111}s^\perp=\{000,010,101,111\} で、6量子ビットの状態ベクトルを直接計算すると分布が正確に 1/41/4 ずつになる(検算スクリプト で検証済み。テンソル積の順序は第1.2節の規約どおり x1x_1 が最上位で、X⊗I⊗I∣000⟩=∣100⟩X\otimes I\otimes I\ket{000}=\ket{100} を先に確認してから状態計算をしている)。

後処理と全体のクエリ数

実行結果 y(1),…,y(n−1)y^{(1)},\ldots,y^{(n-1)} が1次独立に集まれば、連立方程式 y(i)⋅s=0y^{(i)}\cdot s=0 の解空間は {0⋯0, s}\{0\cdots0,\ s\} の2点に絞られ、約束 s≠0⋯0s\neq 0\cdots0 から ss が確定する(F2\mathbb F_2 上の Gauss 消去で多項式時間)。独立に集まるかは確率の問題だが、既に i−1i-1 本が i−1i-1 次元を張っているとき、次の1本(張られた部分空間の 2i−12^{i-1} 点を含む s⊥s^\perp 上の一様サンプル)がその中に落ちる確率は 2i−1/2n−12^{i-1}/2^{n-1} だから、n−1n-1 回の実行がそのまま s⊥s^\perp を張る確率は

∏i=1n−1(1−2i−12n−1)=∏j=1n−1(1−2−j) > ∏j=1∞(1−2−j)=0.2887… > 14\prod_{i=1}^{n-1}\Bigl(1-\frac{2^{i-1}}{2^{n-1}}\Bigr) =\prod_{j=1}^{n-1}\bigl(1-2^{-j}\bigr) \ >\ \prod_{j=1}^{\infty}\bigl(1-2^{-j}\bigr)=0.2887\ldots\ >\ \frac14

である(j=n−ij=n-i と置き換えた。無限積の値、および n=3,…,6n=3,\ldots,6 での閉形式と Monte Carlo の一致は数値確認済み)。1バッチ(n−1n-1 クエリ)の成功確率が 1/41/4 を下回らないので、失敗したら独立にやり直せば期待4バッチ以内に成功する。まとめると、期待 O(n)O(n) クエリと多項式時間の古典後処理で ss が求まる。

古典の下界

古典アルゴリズムは、乱択を許しても Ω(2n/2)\Omega(2^{n/2}) クエリを要する。核心は、ss の情報は衝突だけが運ぶことにある。約束を満たす範囲で ff の値の割り当ては任意だから、問い合わせた点の値がすべて異なっている限り、その値自体は ss について何も語らない。ss を教えるのは f(xi)=f(xj)f(x_i)=f(x_j) という衝突で、このとき xi⊕xj=sx_i\oplus x_j=s と即座に分かる。そこで ss が非零の 2n−12^n-1 通りから一様ランダムに選ばれているとしよう。相異なる mm 点を問い合わせたとき、点のペアは (m2)\binom m2 組で、各ペア {xi,xj}\{x_i,x_j\} が衝突する事象は「ss がちょうど xi⊕xjx_i\oplus x_j に等しい」ことだから、和集合の確率の上界(union bound)により

Pr⁡[どこかで衝突する] ≤ (m2) 12n−1\Pr[\text{どこかで衝突する}]\ \le\ \binom m2\,\frac{1}{2^n-1}

である(クエリを適応的に選ぶ場合も、無衝突の履歴で条件づけた ss は排除済みの候補を除いて一様のままなので、同じ評価が1問い合わせずつ通る)。この確率が定数に達するには (m2)=Ω(2n)\binom m2=\Omega(2^n)、すなわち m=Ω(2n/2)m=\Omega(2^{n/2}) が必要で、衝突を見ていないアルゴリズムは2対1の ff と単射の ff すら区別できない(n=10n=10, m=10m=10 の Monte Carlo で上界との整合を確認済み)。

要点

Simon のオラクル分離。Simon の問題は、量子なら期待 O(n)O(n) クエリ、古典は乱択を許しても Ω(2n/2)\Omega(2^{n/2}) クエリを要する。したがって「ff をオラクルとして呼べる世界」では、量子対古典乱択の指数的分離が無条件に証明済みである。クラスの言葉で言えば、あるオラクル AA に対して BPPA≠BQPA\mathrm{BPP}^A\neq\mathrm{BQP}^A が成り立つ。これは相対化された(オラクル付きの)主張であって絶対的な BPP≠BQP\mathrm{BPP}\neq\mathrm{BQP} の証明ではないが、量子加速の源泉を切り分ける最も明確な理論的証拠であり、同時に Shor のアルゴリズムという「オラクルなしの現実の問題」への設計図となった。なお、より強いオラクル分離として、BQPA⊈PHA\mathrm{BQP}^A\not\subseteq\mathrm{PH}^A となるオラクル AA の存在も知られている(Raz–Tal, 2018。PH は NP を積み重ねた「多項式階層」と呼ばれる古典クラスの塔)。

演習

例題

多数決増幅: 誤り確率の指数的減衰 ★★オリジナルすべての入力で正答確率がちょうど 2/32/3 の BPP 型アルゴリズムを、同じ入力に対して独立に 2k+12k+1 回走らせ、多数決で答えを決める。

  • (1) 多数決が誤る確率が

err(k)=∑i=k+12k+1(2k+1i)(13)i(23)2k+1−i\mathrm{err}(k)=\sum_{i=k+1}^{2k+1}\binom{2k+1}{i}\Bigl(\frac13\Bigr)^{i}\Bigl(\frac23\Bigr)^{2k+1-i}

で与えられることを説明せよ。

  • (2) err(k)≤13(89)k\mathrm{err}(k)\le \frac13\bigl(\frac89\bigr)^k を示せ。
  • (3) (2) の上界を使い、誤り確率を 10−310^{-3} 未満にするのに十分な反復回数を見積もれ。

(1) 各回は独立に確率 1/31/3 で誤答する。多数決が誤るのは 2k+12k+1 回のうち誤答が過半数、すなわち k+1k+1 回以上のときで、誤答回数は二項分布に従うから、その裾の和が err(k)\mathrm{err}(k) になる。

(2) 和の各項について、i≥k+1i\ge k+1 の範囲では

(13)i(23)2k+1−i=(23)2k+12−i≤(23)2k+12−(k+1)\Bigl(\frac13\Bigr)^{i}\Bigl(\frac23\Bigr)^{2k+1-i} =\Bigl(\frac23\Bigr)^{2k+1} 2^{-i} \le \Bigl(\frac23\Bigr)^{2k+1} 2^{-(k+1)}

と、ii に依らない量で押さえられる。一方、二項係数の対称性 (2k+1i)=(2k+12k+1−i)\binom{2k+1}{i}=\binom{2k+1}{2k+1-i} により、i≥k+1i\ge k+1 の側の二項係数の和は全体 22k+12^{2k+1} のちょうど半分で

∑i=k+12k+1(2k+1i)=22k.\sum_{i=k+1}^{2k+1}\binom{2k+1}{i}=2^{2k}.

掛け合わせて

err(k) ≤ 22k (23)2k+12−(k+1)=13⋅23k32k=13(89)k.\mathrm{err}(k)\ \le\ 2^{2k}\,\Bigl(\frac23\Bigr)^{2k+1} 2^{-(k+1)} =\frac13\cdot\frac{2^{3k}}{3^{2k}} =\frac13\Bigl(\frac89\Bigr)^{k}.

(3) 13(8/9)k<10−3\frac13(8/9)^k<10^{-3} を解くと k>ln⁡(1000/3)/ln⁡(9/8)≈49.3k>\ln(1000/3)/\ln(9/8)\approx 49.3、つまり k=50k=50(反復 101101 回)で十分である。参考までに err(k)\mathrm{err}(k) を分数のまま厳密に計算すると、実際には 8181 回で 10−310^{-3} を、193193 回で 10−610^{-6} を切る(上界はやや損をしているが、指数的減衰という結論は同じ)。検算として k=1k=1(3回)では err(1)=(32)(13)223+(33)(13)3=727≈0.259\mathrm{err}(1)=\binom32(\frac13)^2\frac23+\binom33(\frac13)^3=\frac{7}{27}\approx0.259 で、1回のときの 13\frac13 より既に小さい。

例題

Simon のアルゴリズムを n=3n=3 で手計算で追う ★★★オリジナルn=3n=3 の関数 f:{0,1}3→{0,1}3f:\{0,1\}^3\to\{0,1\}^3 を次の表で定める。

xx000000001001010010011011100100101101110110111111
f(x)f(x)011011110110000000101101110110011011101101000000
  • (1) ff が Simon の約束を満たすことを確かめ、表から直接 ss を読み取れ。
  • (2) Simon の回路を1回走らせたときの第1レジスタの測定分布を求めよ。
  • (3) 独立な2回の実行で y=010y=010 と y=111y=111 を得た。ss を復元せよ。
  • (4) 独立な2回の実行だけで ss が確定する確率を求めよ。

(1) 値ごとに逆像をまとめるとf−1(011)={000,101}f^{-1}(011)=\{000,101\}、f−1(110)={001,100}f^{-1}(110)=\{001,100\}、f−1(000)={010,111}f^{-1}(000)=\{010,111\}、f−1(101)={011,110}f^{-1}(101)=\{011,110\}。どの対も2点の XOR が 101101 だから、ff は s=101s=101 を周期とする2対1関数である。

(2) 命題1.11により、分布は s⊥={y: y⋅s=0}s^\perp=\{y:\ y\cdot s=0\} 上の一様分布になる。y⋅101=y1⊕y3y\cdot 101=y_1\oplus y_3 だから、y1⊕y3=0y_1\oplus y_3=0 を満たす y∈{000,010,101,111}y\in\{000,010,101,111\} の4点がそれぞれ確率 1/41/4、残り(y1⊕y3=1y_1\oplus y_3=1 の4点)は確率 00 である。

(3) y⋅s=0y\cdot s=0 を2本並べる。y=010y=010 からは s2=0s_2=0。y=111y=111 からは s1⊕s2⊕s3=0s_1\oplus s_2\oplus s_3=0 で、s2=0s_2=0 を代入すると s1=s3s_1=s_3。よって s∈{000, 101}s\in\{000,\,101\} に絞られ、約束 s≠000s\neq000 から s=101s=101 と確定する。

(4) s⊥s^\perp は F2\mathbb F_2 上の2次元空間(44点)である。1本目 y(1)y^{(1)} が役に立つには y(1)≠000y^{(1)}\neq000 が必要で確率 3/43/4、2本目はそれと独立(つまり {000,y(1)}\{000,y^{(1)}\} の外)であればよく確率 2/4=1/22/4=1/2。よって

34×12=38.\frac34\times\frac12=\frac38.

本文の一般式 ∏j=1n−1(1−2−j)\prod_{j=1}^{n-1}(1-2^{-j}) に n=3n=3 を入れた (1−12)(1−14)=38(1-\frac12)(1-\frac14)=\frac38 と一致する。

例題

Deutsch–Jozsa の古典計算量と、Simon との違い ★★オリジナル関数 f:{0,1}n→{0,1}f:\{0,1\}^n\to\{0,1\} は、定数か、またはバランス(00 と 11 をちょうど半々に返す)のどちらかであると約束されている(第1.6.1節)。

  • (1) 決定的アルゴリズムは、最悪 2n−1+12^{n-1}+1 回 ff を評価しなければ判定できないことを示せ。
  • (2) 乱択アルゴリズム「xx を独立一様に kk 個引いて ff を評価し、値がすべて一致したら定数、異なる値が現れたらバランスと答える」の誤り確率が 21−k2^{1-k} 以下であることを示せ。
  • (3) (2) を踏まえ、Deutsch–Jozsa 問題が量子対古典乱択の指数的分離を与えないこと、そして Simon の問題(第1.7.6節)がその弱点をどう埋めるかを説明せよ。

(1) アルゴリズムがどの 2n−12^{n-1} 点を(適応的にでも)評価しても、値がすべて 00 という観測は、「ff は定数 00」とも「評価済みの 2n−12^{n-1} 点で 00、残りの 2n−12^{n-1} 点で 11 を取るバランス関数」とも整合する。残りの点数はちょうど 2n−12^{n-1} だから後者は約束の範囲内にある(n=3n=3 では、44 点の選び方 (84)=70\binom84=70 通りのすべてでこの反例が組めることを全数探索で確認済み)。ゆえに 2n−12^{n-1} 回の評価では答えを確定できず、最悪 2n−1+12^{n-1}+1 回必要である。逆に 2n−1+12^{n-1}+1 回評価すれば、バランス関数なら鳩の巣原理で必ず両方の値が現れるから、この回数で十分でもある。

(2) ff が定数なら値は常に一致し、このアルゴリズムは誤らない。ff がバランスなら、一様な xx に対する f(x)f(x) は確率 1/21/2 ずつの独立なコイン投げだから、kk 個の値がすべて一致する(そして「定数」と誤答する)確率は、1個目の値に残り k−1k-1 個が揃う確率として 2−(k−1)=21−k2^{-(k-1)}=2^{1-k} である。

(3) (2) により、乱択を許した古典は定数回の評価で誤り確率を好きな定数未満にできる(k=11k=11 で 2−10<10−32^{-10}<10^{-3})。量子の「1回」との差は指数的どころか定数倍にとどまるから、Deutsch–Jozsa が分離するのは「誤りを一切許さない決定的計算」との差だけである。これに対し Simon の問題は、乱択を許した古典にも Ω(2n/2)\Omega(2^{n/2}) クエリの下界が成り立つ点で質的に強く、BPP 対 BQP に対応するオラクル設定での指数的分離を初めて与えた。

木下の勉強ステータス

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

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

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