tecktom.com

授業で習った形との対応

2026年10月15日4分で読めますAI生成教科書『虎の巻』第6部 第4章 Grover と探索の下界

AI 生成・木下が未勉強

相対エントロピーから情報と物理を組み立てる 第6部 第4章 §6.4.6 ★★ 量子計算の授業の Grover の演算子・回転角・反復回数の式と、この章の G^v=R^sO^v\hat G_v=\hat R_s\hat O_v・θ\theta・k∗k_* を並べる。角の定義が2倍ずれる流儀に注意

量子計算の授業や教科書では、Grover の反復を

G=H⊗n(2∣0⟩⟨0∣−1)H⊗nO=(2∣s⟩⟨s∣−1) O(6.4.32)G=H^{\otimes n}\bigl(2| 0 \rangle \langle 0 |-\mathbf 1\bigr)H^{\otimes n}O=(2| s \rangle \langle s |-\mathbf 1)\,O\tag{6.4.32}

と書き、「拡散変換」「平均のまわりの反転」と呼ぶことが多い。これはこの章の G^v=R^sO^v\hat G_v=\hat R_s\hat O_v そのもので、式 (6.4.9) の書き方に当たる。「2∣0⟩⟨0∣−12| 0 \rangle \langle 0 |-\mathbf 1 の代わりに 1−2∣0⟩⟨0∣\mathbf 1-2| 0 \rangle \langle 0 | を使う」流儀もあり、その場合は反復ごとに全体の符号 −1-1 が付くだけで、測定の確率は変わらない。

回転角の書き方には2つの流儀がある。この章は ∣s⟩| s \rangle と ∣r⟩| r \rangle のなす角を θ\theta(sin⁡θ=M/N\sin\theta=\sqrt{M/N})とし、1回の反復の回転角を 2θ2\theta とした。回転角そのものを θ\theta と呼び、sin⁡(θ/2)=M/N\sin(\theta/2)=\sqrt{M/N} と書く教科書もある。その流儀では成功確率は sin⁡2((2k+1)θ/2)\sin^2((2k+1)\theta/2)、反復の回数は

R=round(arccos⁡M/Nθ)(6.4.33)R=\mathrm{round}\Bigl(\frac{\arccos\sqrt{M/N}}{\theta}\Bigr)\tag{6.4.33}

と書かれる。この章の記号に直すと(教科書の θ\theta を 2θ2\theta に置き換えて)arccos⁡(sin⁡θ)/(2θ)=(π/2−θ)/(2θ)=π/(4θ)−1/2\arccos(\sin\theta)/(2\theta)=(\pi/2-\theta)/(2\theta)=\pi/(4\theta)-1/2 で、これを四捨五入した値は、π/(4θ)\pi/(4\theta) がちょうど整数のときを除いて k∗=⌊π/(4θ)⌋k_*=\lfloor\pi/(4\theta)\rfloor と一致する。どちらの書き方でも、状態を ∣good⟩| \mathrm{good} \rangle に最も近づける回数を選んでいる。

「Grover のアルゴリズムは O(N)\mathcal{O}(\sqrt N) 回の問い合わせで探索する」「これ以上速くはならない」という授業の2つの主張は、それぞれ式 (6.4.16) と系 6.4.5 に当たる。授業では下界を結果だけ述べることが多いが、この章では Δk≤4k2\Delta_k\le4k^2 と Δk≳N\Delta_k\gtrsim N の2つの不等式から導いた。

古典の計算量の授業で習う「整列していないデータの探索は O(N)\mathcal{O}(N)」との対応にも注意が要る。量子の速さは問い合わせの回数についての主張で、データを量子の重ね合わせとして読み出す装置(量子 RAM)の手間や、1回の問い合わせにかかる時間は含んでいない。問い合わせ1回の時間が古典より長ければ、NN が大きくなるまで量子の方が速くはならない(例題 6.4.6)。Grover のアルゴリズムが実際に役立つのは、オラクルが「候補が条件を満たすかを計算する回路」として書ける場合で、データベースを引く場面ではない。

例題 6.4.6 問い合わせの時間を含めた比較 ★★

オリジナル

  1. N=240N=2^{40} の候補から1つの当たりを探す。Grover の最適な回数 k∗k_* と、古典の手順で成功確率 1/21/2 に要る回数(約 N/2N/2)を求めよ。
  2. 古典の問い合わせが 1 ns1\,\mathrm{ns}、量子の問い合わせ(オラクル1回と反射 R^s\hat R_s の1回)が 1 μs1\,\mu\mathrm s かかるとする。N=240N=2^{40} でそれぞれの所要時間を求めよ。
  3. 量子が古典より速くなる NN の目安を、(π/4)N×1 μs=(N/2)×1 ns(\pi/4)\sqrt N\times1\,\mu\mathrm s=(N/2)\times1\,\mathrm{ns} から求めよ。
解答

(1) θ=arcsin⁡(2−20)\theta=\arcsin(2^{-20})、π/(4θ)=(π/4)×220=823549.7\pi/(4\theta)=(\pi/4)\times2^{20}=823549.7 なので k∗=823549k_*=823549。古典は 239=5.50×10112^{39}=5.50\times10^{11} 回である。

(2) 量子は 823549×1 μs=0.824 s823549\times1\,\mu\mathrm s=0.824\,\mathrm s、古典は 5.50×1011×1 ns=550 s5.50\times10^{11}\times1\,\mathrm{ns}=550\,\mathrm s。

(3) N=(π/2)×103\sqrt N=(\pi/2)\times10^3 から N=2.47×106N=2.47\times10^6。これより小さい NN では、問い合わせ1回の時間の差(1000倍)が回数の差を上回り、古典の方が速い。

木下の勉強ステータス

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

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

← AI生成教科書『虎の巻』の記事一覧へ