相対エントロピーから情報と物理を組み立てる 第6部 第4章 §6.4.3 ★★★ 成功確率 sin 2 ( ( 2 k + 1 ) θ ) \sin^2((2k+1)\theta) sin 2 (( 2 k + 1 ) θ ) を最大にする回数は約 ( π / 4 ) N / M (\pi/4)\sqrt{N/M} ( π /4 ) N / M 。回しすぎると下がるので、当たりの数を知らないときは回数を乱数で選ぶ。同じ回転は任意の手順の成功確率を上げる(振幅増幅)
最適な回数
成功確率 (6.4.14) は、角 ( 2 k + 1 ) θ (2k+1)\theta ( 2 k + 1 ) θ が π / 2 \pi/2 π /2 に最も近いときに最大になる。
k ∗ = ⌊ π 4 θ ⌋ (6.4.15) k_*=\Bigl\lfloor\frac{\pi}{4\theta}\Bigr\rfloor\tag{6.4.15} k ∗ = ⌊ 4 θ π ⌋ ( 6.4.15 )
と選ぶと、π 4 θ − 1 < k ∗ ≤ π 4 θ \frac\pi{4\theta}-1<k_*\le\frac\pi{4\theta} 4 θ π − 1 < k ∗ ≤ 4 θ π から ( 2 k ∗ + 1 ) θ (2k_*+1)\theta ( 2 k ∗ + 1 ) θ は π / 2 − θ \pi/2-\theta π /2 − θ より大きく π / 2 + θ \pi/2+\theta π /2 + θ 以下になり、
P k ∗ ≥ cos 2 θ = 1 − 1 N (6.4.16) P_{k_*}\ge\cos^2\theta=1-\frac1N\tag{6.4.16} P k ∗ ≥ cos 2 θ = 1 − N 1 ( 6.4.16 )
が成り立つ。N N N が大きいと θ = arcsin ( 1 / N ) = 1 / N + O ( N − 3 / 2 ) \theta=\arcsin(1/\sqrt N)=1/\sqrt N+\mathcal{O}(N^{-3/2}) θ = arcsin ( 1/ N ) = 1/ N + O ( N − 3/2 ) なので k ∗ ≈ ( π / 4 ) N k_*\approx(\pi/4)\sqrt N k ∗ ≈ ( π /4 ) N である。
成功確率は k k k の単調な関数ではない。k ∗ k_* k ∗ を過ぎても回し続けると、状態は ∣ v ⟩ | v \rangle ∣ v ⟩ を通り越して反対側へ回り、成功確率は下がっていく。およそ 2 k ∗ 2k_* 2 k ∗ 回で状態は − ∣ s ⟩ -| s \rangle − ∣ s ⟩ の近くに戻り、成功確率は 1 / N 1/N 1/ N 程度まで落ちる。古典の探索では問い合わせを増やして損をすることはないので、ここは量子の探索に特有の性質である。図 6.4.2 に N = 64 N=64 N = 64 の成功確率を古典の (6.4.1) と並べて示す。
図 6.4.2 N = 64 N=64 N = 64 での成功確率。丸は Grover の反復 k k k 回の後の sin 2 ( ( 2 k + 1 ) θ ) \sin^2((2k+1)\theta) sin 2 (( 2 k + 1 ) θ ) (点線は k k k を連続にした曲線)、四角は古典の手順の ( k + 1 ) / N (k+1)/N ( k + 1 ) / N 。どちらも厳密な値である。量子は k ∗ = 6 k_*=6 k ∗ = 6 で 0.9966 0.9966 0.9966 に達した後、回しすぎると下がる。古典は同じ6回で 0.109 0.109 0.109 。
当たりが複数あるとき
当たりが M M M 個あるとき(1 ≤ M < N 1\le M<N 1 ≤ M < N )は、∣ v ⟩ | v \rangle ∣ v ⟩ を当たりの一様な重ね合わせ ∣ g o o d ⟩ = M − 1 / 2 ∑ f ( y ) = 1 ∣ y ⟩ | \mathrm{good} \rangle =M^{-1/2}\sum_{f(y)=1}| y \rangle ∣ good ⟩ = M − 1/2 ∑ f ( y ) = 1 ∣ y ⟩ に、∣ r ⟩ | r \rangle ∣ r ⟩ を外れの一様な重ね合わせ ∣ b a d ⟩ | \mathrm{bad} \rangle ∣ bad ⟩ に置き換え、オラクルを O ^ f = ∑ y ( − 1 ) f ( y ) ∣ y ⟩ ⟨ y ∣ \hat O_f=\sum_y(-1)^{f(y)}| y \rangle \langle y | O ^ f = ∑ y ( − 1 ) f ( y ) ∣ y ⟩ ⟨ y ∣ にすれば、前の節の議論がそのまま通る。∣ s ⟩ = sin θ ∣ g o o d ⟩ + cos θ ∣ b a d ⟩ | s \rangle =\sin\theta| \mathrm{good} \rangle +\cos\theta| \mathrm{bad} \rangle ∣ s ⟩ = sin θ ∣ good ⟩ + cos θ ∣ bad ⟩ で
sin θ = M N , (6.4.17) \sin\theta=\sqrt{\frac MN},\tag{6.4.17} sin θ = N M , ( 6.4.17 )
成功確率(当たりのどれかが出る確率)は sin 2 ( ( 2 k + 1 ) θ ) \sin^2((2k+1)\theta) sin 2 (( 2 k + 1 ) θ ) 、最適な回数は ⌊ π / ( 4 θ ) ⌋ ≈ ( π / 4 ) N / M \lfloor\pi/(4\theta)\rfloor\approx(\pi/4)\sqrt{N/M} ⌊ π / ( 4 θ )⌋ ≈ ( π /4 ) N / M である。当たりの割合が 1 / 4 1/4 1/4 のときは θ = π / 6 \theta=\pi/6 θ = π /6 で、1回の反復で確実に当たる(例題 6.4.2 と同じ角)。割合が 1 / 2 1/2 1/2 を超えると θ > π / 4 \theta>\pi/4 θ > π /4 で、反復するとかえって悪くなるので、そのときは反復せずに測ればよい。
当たりの数を知らないとき
最適な回数は M M M によるので、M M M を知らないと回数を決められない。M = 1 M=1 M = 1 のつもりで ( π / 4 ) N (\pi/4)\sqrt N ( π /4 ) N 回まわすと、本当は M M M が大きかった場合に大きく回しすぎてしまう。M. Boyer・G. Brassard・P. Høyer・A. Tapp は、回数を乱数で選べばこの問題を避けられることを示した1 1 M. Boyer, G. Brassard, P. Høyer and A. Tapp (1998), Fortschr. Phys. 46, 493。 。回数 k k k を { 0 , 1 , … , m − 1 } \{0,1,\dots,m-1\} { 0 , 1 , … , m − 1 } から一様に選ぶと、平均の成功確率は
P ‾ m = 1 m ∑ k = 0 m − 1 sin 2 ( ( 2 k + 1 ) θ ) = 1 2 − sin ( 4 m θ ) 4 m sin 2 θ (6.4.18) \overline{P}_m=\frac1m\sum_{k=0}^{m-1}\sin^2\bigl((2k+1)\theta\bigr)=\frac12-\frac{\sin(4m\theta)}{4m\sin2\theta}\tag{6.4.18} P m = m 1 k = 0 ∑ m − 1 sin 2 ( ( 2 k + 1 ) θ ) = 2 1 − 4 m sin 2 θ sin ( 4 m θ ) ( 6.4.18 )
になる(sin 2 x = 1 2 ( 1 − cos 2 x ) \sin^2x=\frac12(1-\cos2x) sin 2 x = 2 1 ( 1 − cos 2 x ) と、等差に並んだ角の余弦の和 ∑ k = 0 m − 1 cos ( ( 2 k + 1 ) φ ) = sin ( 2 m φ ) / ( 2 sin φ ) \sum_{k=0}^{m-1}\cos((2k+1)\varphi)=\sin(2m\varphi)/(2\sin\varphi) ∑ k = 0 m − 1 cos (( 2 k + 1 ) φ ) = sin ( 2 m φ ) / ( 2 sin φ ) を φ = 2 θ \varphi=2\theta φ = 2 θ で使う)。m ≥ 1 / sin 2 θ m\ge1/\sin2\theta m ≥ 1/ sin 2 θ なら第2項の絶対値は 1 / 4 1/4 1/4 以下なので、P ‾ m ≥ 1 / 4 \overline P_m\ge1/4 P m ≥ 1/4 である。M M M を知らないまま m m m を 1 1 1 から始めて一定の比で増やしていき、そのたびに乱数の回数だけ回して測り、当たりが出たら止める。この手順の問い合わせの回数の期待値は O ( N / M ) \mathcal{O}(\sqrt{N/M}) O ( N / M ) で、M M M を知っている場合と同じ程度で済む。
振幅増幅
Grover の反復は、探索に限らない形に一般化できる。ある量子の手順 A ^ \hat A A ^ が、初期状態から
A ^ ∣ 0 ⋯ 0 ⟩ = a ∣ g o o d ⟩ + 1 − a ∣ b a d ⟩ (6.4.19) \hat A| 0\cdots0 \rangle =\sqrt a\,| \mathrm{good} \rangle +\sqrt{1-a}\,| \mathrm{bad} \rangle\tag{6.4.19} A ^ ∣0 ⋯ 0 ⟩ = a ∣ good ⟩ + 1 − a ∣ bad ⟩ ( 6.4.19 )
を作り、成功の部分 ∣ g o o d ⟩ | \mathrm{good} \rangle ∣ good ⟩ を見分ける位相オラクル O ^ g o o d \hat O_{\mathrm{good}} O ^ good が使えるとする。∣ s ⟩ | s \rangle ∣ s ⟩ を A ^ ∣ 0 ⋯ 0 ⟩ \hat A| 0\cdots0 \rangle A ^ ∣0 ⋯ 0 ⟩ に、R ^ s \hat R_s R ^ s を A ^ ( 2 ∣ 0 ⋯ 0 ⟩ ⟨ 0 ⋯ 0 ∣ − 1 ) A ^ † \hat A(2| 0\cdots0 \rangle \langle 0\cdots0 |-\mathbf 1)\hat A^\dagger A ^ ( 2∣0 ⋯ 0 ⟩ ⟨ 0 ⋯ 0∣ − 1 ) A ^ † に置き換えた反復 Q ^ = A ^ ( 2 ∣ 0 ⋯ 0 ⟩ ⟨ 0 ⋯ 0 ∣ − 1 ) A ^ † O ^ g o o d \hat Q=\hat A(2| 0\cdots0 \rangle \langle 0\cdots0 |-\mathbf 1)\hat A^\dagger\hat O_{\mathrm{good}} Q ^ = A ^ ( 2∣0 ⋯ 0 ⟩ ⟨ 0 ⋯ 0∣ − 1 ) A ^ † O ^ good は、平面 span { ∣ g o o d ⟩ , ∣ b a d ⟩ } \operatorname{span}\{| \mathrm{good} \rangle ,| \mathrm{bad} \rangle \} span { ∣ good ⟩ , ∣ bad ⟩} の中で角 2 θ a 2\theta_a 2 θ a (sin 2 θ a = a \sin^2\theta_a=a sin 2 θ a = a )の回転になる(証明は補題 6.4.1 と同じ)。成功確率を 1 1 1 に近づけるには、A ^ \hat A A ^ と A ^ † \hat A^\dagger A ^ † を約 π / ( 4 a ) \pi/(4\sqrt a) π / ( 4 a ) 回ずつ使えばよい。手順をくり返して成功を待つ古典の方法では約 1 / a 1/a 1/ a 回かかるので、ここでも2乗の速さが得られる。これを振幅増幅 と呼ぶ2 2 G. Brassard, P. Høyer, M. Mosca and A. Tapp (2002), Contemp. Math. 305, 53。 。Grover のアルゴリズムは A ^ = H ⊗ n \hat A=H^{\otimes n} A ^ = H ⊗ n 、a = M / N a=M/N a = M / N の場合である。
振幅増幅を使うと、成功確率を正確に 1 1 1 にすることもできる。k = ⌈ π / ( 4 θ ) − 1 / 2 ⌉ k=\lceil\pi/(4\theta)-1/2\rceil k = ⌈ π / ( 4 θ ) − 1/2 ⌉ 回まわすと決め、角を少し小さい θ ′ = π / ( 2 ( 2 k + 1 ) ) ≤ θ \theta'=\pi/(2(2k+1))\le\theta θ ′ = π / ( 2 ( 2 k + 1 )) ≤ θ に直せば、( 2 k + 1 ) θ ′ = π / 2 (2k+1)\theta'=\pi/2 ( 2 k + 1 ) θ ′ = π /2 で確実に当たる。角を小さくするには、補助の量子ビットを1つ足し、それを c ∣ 1 ⟩ + 1 − c ∣ 0 ⟩ \sqrt c| 1 \rangle +\sqrt{1-c}| 0 \rangle c ∣1 ⟩ + 1 − c ∣0 ⟩ (c = sin 2 θ ′ / sin 2 θ c=\sin^2\theta'/\sin^2\theta c = sin 2 θ ′ / sin 2 θ )に回してから、「当たりで、しかも補助の量子ビットが 1 1 1 」を新しい成功とみなせばよい。成功の確率が a a a から c a = sin 2 θ ′ ca=\sin^2\theta' c a = sin 2 θ ′ に下がり、角が θ ′ \theta' θ ′ になる。
当たりの数を数える
平面の中の回転 G ^ \hat G G ^ の固有値は e ± 2 i θ \mathrm{e}^{\pm2\mathrm{i}\theta} e ± 2 i θ で、∣ s ⟩ | s \rangle ∣ s ⟩ は2つの固有ベクトルの重みが 1 / 2 1/2 1/2 ずつの重ね合わせである。そこで、G ^ \hat G G ^ を制御つきでかける位相推定(第6部第2章 )で固有値の位相 ± θ / π \pm\theta/\pi ± θ / π を読めば、M = N sin 2 θ M=N\sin^2\theta M = N sin 2 θ から当たりの数が分かる。これを量子計数と呼ぶ。位相推定は2つの固有値のどちらかを確率 1 / 2 1/2 1/2 ずつで読むが、sin 2 \sin^2 sin 2 は符号によらないので、どちらを読んでも同じ M M M が出る。
例題 6.4.3 当たりの数を間違えると ★★
オリジナル N = 1024 N=1024 N = 1024 、当たりの数 M = 16 M=16 M = 16 とする。
最適な回数 k ∗ k_* k ∗ と、そのときの成功確率を求めよ。
M = 1 M=1 M = 1 と思い込んで ⌊ ( π / 4 ) N ⌋ \lfloor(\pi/4)\sqrt N\rfloor ⌊( π /4 ) N ⌋ 回まわしたときの成功確率を求めよ。
回数を { 0 , … , m − 1 } \{0,\dots,m-1\} { 0 , … , m − 1 } から一様に選ぶ方法で、m = ⌈ 1 / sin 2 θ ⌉ m=\lceil1/\sin2\theta\rceil m = ⌈ 1/ sin 2 θ ⌉ としたときの平均の成功確率を式 (6.4.18) から求めよ。
解答 (1) sin θ = 16 / 1024 = 1 / 8 \sin\theta=\sqrt{16/1024}=1/8 sin θ = 16/1024 = 1/8 から θ = 0.12533 \theta=0.12533 θ = 0.12533 。π / ( 4 θ ) = 6.267 \pi/(4\theta)=6.267 π / ( 4 θ ) = 6.267 なので k ∗ = 6 k_*=6 k ∗ = 6 、成功確率は sin 2 ( 13 θ ) = sin 2 ( 1.6293 ) = 0.9966 \sin^2(13\theta)=\sin^2(1.6293)=0.9966 sin 2 ( 13 θ ) = sin 2 ( 1.6293 ) = 0.9966 である。
(2) ⌊ ( π / 4 ) × 32 ⌋ = 25 \lfloor(\pi/4)\times32\rfloor=25 ⌊( π /4 ) × 32 ⌋ = 25 回まわすと、角は 51 θ = 6.392 51\theta=6.392 51 θ = 6.392 で、2 π 2\pi 2 π をわずかに超えたところにある。成功確率は sin 2 ( 6.392 ) = 0.0117 \sin^2(6.392)=0.0117 sin 2 ( 6.392 ) = 0.0117 で、反復しない場合の M / N = 0.0156 M/N=0.0156 M / N = 0.0156 よりも低い。状態は平面の中で約1周して、∣ s ⟩ | s \rangle ∣ s ⟩ の近くに戻ってしまった。
(3) 1 / sin 2 θ = 1 / sin ( 0.25066 ) = 4.032 1/\sin2\theta=1/\sin(0.25066)=4.032 1/ sin 2 θ = 1/ sin ( 0.25066 ) = 4.032 なので m = 5 m=5 m = 5 。式 (6.4.18) からP ‾ 5 = 1 2 − sin ( 20 θ ) 20 sin 2 θ = 1 2 − sin ( 2.5066 ) 20 × 0.24804 = 0.3804 \overline P_5=\frac12-\frac{\sin(20\theta)}{20\sin2\theta}=\frac12-\frac{\sin(2.5066)}{20\times0.24804}=0.3804 P 5 = 2 1 − 20 s i n 2 θ s i n ( 20 θ ) = 2 1 − 20 × 0.24804 s i n ( 2.5066 ) = 0.3804 で、1 / 4 1/4 1/4 を上回る。k = 0 , … , 4 k=0,\dots,4 k = 0 , … , 4 の成功確率 0.0156 , 0.1348 , 0.3439 , 0.5914 , 0.8164 0.0156,\,0.1348,\,0.3439,\,0.5914,\,0.8164 0.0156 , 0.1348 , 0.3439 , 0.5914 , 0.8164 を平均しても同じ値になる。
1 M. Boyer, G. Brassard, P. Høyer and A. Tapp (1998), Fortschr. Phys. 46, 493。
2 G. Brassard, P. Høyer, M. Mosca and A. Tapp (2002), Contemp. Math. 305, 53。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com