相対エントロピーから情報と物理を組み立てる 第6部 第4章 §6.4.1 ★★★ 探索問題を問い合わせの回数で測る。k k k 回問い合わせた後の状態を、当たりの印がついたオラクルと空のオラクルとで比べ、その差の2乗和 Δ k \Delta_k Δ k を章全体の物差しにする
N N N 個の候補の中に1つだけ当たりがあり、候補 y y y が当たりかどうかは「問い合わせ」を1回使えば分かるとする。候補の並びに何の手がかりも無ければ、古典の計算機は候補を1つずつ試すしかなく、半分の確率で当てるにも N / 2 N/2 N /2 回ほどの問い合わせが要る。L. K. Grover は、量子の計算機なら約 ( π / 4 ) N (\pi/4)\sqrt N ( π /4 ) N 回の問い合わせで、ほぼ確実に当たりを見つけられることを示した1 1 L. K. Grover (1997), Phys. Rev. Lett. 79, 325。会議録の版は Proc. 28th Annual ACM Symposium on Theory of Computing (1996), p. 212。 。同じ頃、C. H. Bennett・E. Bernstein・G. Brassard・U. Vazirani は、どんな量子アルゴリズムも N \sqrt N N に比例する数より少ない問い合わせでは当たりを見つけられないことを示していた2 2 C. H. Bennett, E. Bernstein, G. Brassard and U. Vazirani (1997), SIAM J. Comput. 26, 1510。4人の頭文字をとって BBBV と呼ぶ。 。上界と下界が N \sqrt N N で一致するので、構造の無い探索について量子計算が得る速さは2乗の分だけで、それ以上ではない。
この章では、この2つの結果を同じ道具で読む。比べる2つの状態は、当たり v v v の印がついたオラクル(問い合わせの箱)で k k k 回問い合わせた後の状態 ∣ ψ k v ⟩ | \psi_k^v \rangle ∣ ψ k v ⟩ と、何の印もない空のオラクルで同じ手順を走らせた後の状態 ∣ ψ k ⟩ | \psi_k \rangle ∣ ψ k ⟩ である。アルゴリズムの仕事は、N N N 個の ∣ ψ k v ⟩ | \psi_k^v \rangle ∣ ψ k v ⟩ を互いに見分けられるほど ∣ ψ k ⟩ | \psi_k \rangle ∣ ψ k ⟩ から引き離すことで、1回の問い合わせで引き離せる量には上限がある。当てる道具は2つある。1つは「平面の中の2つの反射の積は回転である」という幾何の事実で、Grover のアルゴリズムはこれだけで書くことができる。もう1つは、引き離した量を問い合わせごとに足し上げる三角不等式で、下界はこれから導かれる。出てくるものは3つである。1つ目は成功確率 sin 2 ( ( 2 k + 1 ) θ ) \sin^2((2k+1)\theta) sin 2 (( 2 k + 1 ) θ ) (sin θ = 1 / N \sin\theta=1/\sqrt N sin θ = 1/ N )と、それを一般化した振幅増幅、2つ目は N \sqrt N N が最適であること(BBBV の下界)、3つ目は情報の側から見た読み方で、k k k 回の問い合わせで得られる情報量が Holevo 量によって ( 4 k 2 / N ) ln N (4k^2/N)\ln N ( 4 k 2 / N ) ln N 程度に押さえられることである。古典の問い合わせでは情報量が k k k に比例して増えるのに対し、量子の問い合わせでは k 2 k^2 k 2 に比例して増える。N \sqrt N N の速さはこの違いによる。
この章では次のように約束する。量子情報の章の流儀に従って Pauli 行列を X , Y , Z X,Y,Z X , Y , Z 、恒等演算子を 1 \mathbf 1 1 と書き、Hadamard ゲートは第3部・第6部第1章と同じく斜体の H H H と書く。Shannon エントロピーはいつも引数つきの H ( V ) H(V) H ( V ) ・H ( V ∣ V ^ ) H(V\,|\,\hat V) H ( V ∣ V ^ ) で現れるので区別できる。sans の H \mathsf H H は第3部第9章の検査行列に取ってある。探索の対象の演算子(オラクル・反射・回転)には帽子を付ける。当たりの候補を v v v 、それを確率変数とみたものを V V V 、アルゴリズムの答えを V ^ \hat V V ^ と書く(第1部第6章 の Fano の不等式と同じ書き方)。対数は自然対数で、情報量の単位は nat である。候補の数を数える場面ではビットのほうが読みやすいので、ln 2 \ln2 ln 2 で割ってビットでも示す。
探索問題と問い合わせの回数
N = 2 n N=2^n N = 2 n 個の候補 y ∈ { 0 , 1 , … , N − 1 } y\in\{0,1,\dots,N-1\} y ∈ { 0 , 1 , … , N − 1 } と、関数 f : { 0 , … , N − 1 } → { 0 , 1 } f:\{0,\dots,N-1\}\to\{0,1\} f : { 0 , … , N − 1 } → { 0 , 1 } が与えられている。f ( y ) = 1 f(y)=1 f ( y ) = 1 となる y y y を当たり と呼ぶ。まずは当たりがちょうど1つ(v v v とする)の場合を考える。f f f の中身は見えず、使えるのは「y y y を入れると f ( y ) f(y) f ( y ) を返す箱」だけである。この箱をオラクル 、箱を1回使うことを1回の問い合わせ と呼ぶ。探索の難しさは、計算の手間全体でなく、問い合わせの回数で測る。オラクルの中で何が起きているかを問わず、箱を使う回数だけを数えるので、下界の議論が「どれほど賢い手順でも」という形で書くことができる。
古典の場合を先に片づける。k k k 回の問い合わせで異なる k k k 個の候補を調べ、当たりが見つからなければ残りの N − k N-k N − k 個から1つを当てずっぽうで選ぶとする。v v v が一様に分布しているなら、成功する確率は
P k c l = k N + ( 1 − k N ) 1 N − k = k + 1 N (6.4.1) P_k^{\mathrm{cl}}=\frac kN+\Bigl(1-\frac kN\Bigr)\frac1{N-k}=\frac{k+1}N\tag{6.4.1} P k cl = N k + ( 1 − N k ) N − k 1 = N k + 1 ( 6.4.1 )
で、問い合わせの回数に比例して増える。乱数を使っても、問い合わせの順番を工夫しても、この値は上がらない。k k k 回の問い合わせで調べられる候補は高々 k k k 個で、どの候補が当たりかについて事前に何の手がかりも無いからである。
量子のオラクル
量子の計算機でオラクルを使うには、それをユニタリ演算子にしておく必要がある。候補を入れる n n n 量子ビットのレジスタと、答えを書き込む1量子ビットを用意して
U ^ f ∣ y ⟩ ∣ b ⟩ = ∣ y ⟩ ∣ b ⊕ f ( y ) ⟩ ( b ∈ { 0 , 1 } ) (6.4.2) \hat U_f| y \rangle | b \rangle =| y \rangle | b\oplus f(y) \rangle \qquad(b\in\{0,1\})\tag{6.4.2} U ^ f ∣ y ⟩ ∣ b ⟩ = ∣ y ⟩ ∣ b ⊕ f ( y )⟩ ( b ∈ { 0 , 1 }) ( 6.4.2 )
と定める。⊕ \oplus ⊕ は2を法とする足し算である。U ^ f \hat U_f U ^ f は計算基底を置換するだけなのでユニタリで、2回使うと元に戻る。答えのビットを ∣ − ⟩ = ( ∣ 0 ⟩ − ∣ 1 ⟩ ) / 2 | - \rangle =(| 0 \rangle -| 1 \rangle )/\sqrt2 ∣ − ⟩ = ( ∣0 ⟩ − ∣1 ⟩) / 2 に用意すると、∣ 0 ⊕ f ( y ) ⟩ − ∣ 1 ⊕ f ( y ) ⟩ = ( − 1 ) f ( y ) ( ∣ 0 ⟩ − ∣ 1 ⟩ ) | 0\oplus f(y) \rangle -| 1\oplus f(y) \rangle =(-1)^{f(y)}(| 0 \rangle -| 1 \rangle ) ∣0 ⊕ f ( y )⟩ − ∣1 ⊕ f ( y )⟩ = ( − 1 ) f ( y ) ( ∣0 ⟩ − ∣1 ⟩) なので
U ^ f ∣ y ⟩ ∣ − ⟩ = ( − 1 ) f ( y ) ∣ y ⟩ ∣ − ⟩ . (6.4.3) \hat U_f| y \rangle | - \rangle =(-1)^{f(y)}| y \rangle | - \rangle .\tag{6.4.3} U ^ f ∣ y ⟩ ∣ − ⟩ = ( − 1 ) f ( y ) ∣ y ⟩ ∣ − ⟩ . ( 6.4.3 )
答えのビットは変わらず、当たりの候補にだけ符号 − 1 -1 − 1 が付く。この現象を位相キックバックと呼ぶ(第6部第2章 の位相推定でも同じ仕組みを使った)。答えのビットを省いて候補のレジスタだけを見ると、オラクルは
O ^ v = 1 − 2 ∣ v ⟩ ⟨ v ∣ (6.4.4) \hat O_v=\mathbf 1-2| v \rangle \langle v |\tag{6.4.4} O ^ v = 1 − 2∣ v ⟩ ⟨ v ∣ ( 6.4.4 )
と書ける。これを位相オラクルと呼ぶ。以下ではもっぱら O ^ v \hat O_v O ^ v を使う。何の印もない空のオラクルは O ^ ∅ = 1 \hat O_\varnothing=\mathbf 1 O ^ ∅ = 1 である。
一般の量子アルゴリズムの形
k k k 回問い合わせる量子アルゴリズムは、どれも次の形に書くことができる。候補のレジスタと作業用のレジスタを合わせた空間で、決まった初期状態 ∣ ψ 0 ⟩ | \psi_0 \rangle ∣ ψ 0 ⟩ から始め、オラクルと、オラクルに依らないユニタリ U ^ 1 , … , U ^ k \hat U_1,\dots,\hat U_k U ^ 1 , … , U ^ k を交互にかける。オラクルは候補のレジスタにだけ作用し、作業用のレジスタには恒等演算子として作用する。最後に候補のレジスタを計算基底で測り、出た値を答え V ^ \hat V V ^ とする。当たりが v v v のとき、k k k 回問い合わせた後の状態は
∣ ψ k v ⟩ = U ^ k O ^ v U ^ k − 1 O ^ v ⋯ U ^ 1 O ^ v ∣ ψ 0 ⟩ (6.4.5) | \psi_k^v \rangle =\hat U_k\hat O_v\hat U_{k-1}\hat O_v\cdots\hat U_1\hat O_v| \psi_0 \rangle\tag{6.4.5} ∣ ψ k v ⟩ = U ^ k O ^ v U ^ k − 1 O ^ v ⋯ U ^ 1 O ^ v ∣ ψ 0 ⟩ ( 6.4.5 )
で、空のオラクルを使った場合は ∣ ψ k ⟩ = U ^ k ⋯ U ^ 1 ∣ ψ 0 ⟩ | \psi_k \rangle =\hat U_k\cdots\hat U_1| \psi_0 \rangle ∣ ψ k ⟩ = U ^ k ⋯ U ^ 1 ∣ ψ 0 ⟩ である。測定の途中に挟んでもよい測定や古典の処理は、補助の量子ビットを足せばユニタリの中に入れられるので、この形で一般性は失われない。
アルゴリズムが成功するには、v v v ごとに異なる N N N 個の状態 ∣ ψ k v ⟩ | \psi_k^v \rangle ∣ ψ k v ⟩ を、測定で見分けられる程度に互いに離す必要がある。ところが、どの ∣ ψ k v ⟩ | \psi_k^v \rangle ∣ ψ k v ⟩ も問い合わせをする前は同じ ∣ ψ 0 ⟩ | \psi_0 \rangle ∣ ψ 0 ⟩ で、v v v の違いはオラクルを通してしか入らない。そこで、この章で比べる2つの状態を
∣ ψ k v ⟩ (当たり v の印がついたオラクル) と ∣ ψ k ⟩ (空のオラクル) (6.4.6) | \psi_k^v \rangle \ \text{(当たり }{v}\text{ の印がついたオラクル)}\qquad\text{と}\qquad| \psi_k \rangle \ \text{(空のオラクル)}\tag{6.4.6} ∣ ψ k v ⟩ (当たり v の印がついたオラクル) と ∣ ψ k ⟩ (空のオラクル) ( 6.4.6 )
に取り、その離れ方を
d k v = ∥ ∣ ψ k v ⟩ − ∣ ψ k ⟩ ∥ , Δ k = ∑ v = 0 N − 1 ( d k v ) 2 (6.4.7) d_k^v=\lVert | \psi_k^v \rangle -| \psi_k \rangle \rVert ,\qquad\Delta_k=\sum_{v=0}^{N-1}\bigl(d_k^v\bigr)^2\tag{6.4.7} d k v = ∥ ∣ ψ k v ⟩ − ∣ ψ k ⟩∥ , Δ k = v = 0 ∑ N − 1 ( d k v ) 2 ( 6.4.7 )
で測る。Δ k \Delta_k Δ k は「k k k 回の問い合わせで、N N N 通りの当たりの状態を空の状態から合わせてどれだけ引き離したか」を表す量である。6.4.4 節で、1回の問い合わせで Δ k \Delta_k Δ k を増やせる量に上限があること(Δ k ≤ 4 k 2 \Delta_k\le4k^2 Δ k ≤ 4 k 2 )と、成功には Δ k ≳ N \Delta_k\gtrsim N Δ k ≳ N が要ることを示す。2つを合わせると k ≳ N / 2 k\gtrsim\sqrt N/2 k ≳ N /2 になる。
ベクトルの距離で比べる理由を一言述べておく。2つの純粋状態 ∣ ϕ ⟩ , ∣ ϕ ′ ⟩ | \phi \rangle ,| \phi' \rangle ∣ ϕ ⟩ , ∣ ϕ ′ ⟩ を等確率で渡されて当てるとき、誤りの確率の最小値は1 2 ( 1 − 1 − ∣ ⟨ ϕ ∣ ϕ ′ ⟩ ∣ 2 ) \frac12\bigl(1-\sqrt{1-\lvert \langle \phi | \phi' \rangle \rvert ^2}\bigr) 2 1 ( 1 − 1 − ∣⟨ ϕ ∣ ϕ ′ ⟩ ∣ 2 ) である(Helstrom の限界。第3部第8章 )。∥ ∣ ϕ ⟩ − ∣ ϕ ′ ⟩ ∥ 2 = 2 − 2 Re ⟨ ϕ ∣ ϕ ′ ⟩ \lVert | \phi \rangle -| \phi' \rangle \rVert ^2=2-2\operatorname{Re}\langle \phi | \phi' \rangle ∥ ∣ ϕ ⟩ − ∣ ϕ ′ ⟩ ∥ 2 = 2 − 2 Re ⟨ ϕ ∣ ϕ ′ ⟩ が小さければ ∣ ⟨ ϕ ∣ ϕ ′ ⟩ ∣ \lvert \langle \phi | \phi' \rangle \rvert ∣⟨ ϕ ∣ ϕ ′ ⟩∣ は 1 1 1 に近く、2つの状態はほとんど見分けられない。状態どうしの相対エントロピーは純粋状態どうしでは発散してしまうので、この章では見分けやすさをベクトルの距離で測り、相対エントロピーは 6.4.5 節で混合状態(平均の状態)に対して使う。
例題 6.4.1 位相キックバックと古典の探索 ★★
オリジナル
式 (6.4.2) のオラクルを、候補のレジスタが重ね合わせ ∑ y c y ∣ y ⟩ \sum_y c_y| y \rangle ∑ y c y ∣ y ⟩ で答えのビットが ∣ − ⟩ | - \rangle ∣ − ⟩ の状態にかけると、どうなるか。答えのビットを ∣ 0 ⟩ | 0 \rangle ∣0 ⟩ に用意した場合と比べよ。
N = 2 20 N=2^{20} N = 2 20 の候補から古典の手順で当たりを探す。成功の確率を 1 / 2 1/2 1/2 以上にするのに要る問い合わせの最小の回数を求めよ。
解答 (1) 線形性と式 (6.4.3) から
U ^ f ( ∑ y c y ∣ y ⟩ ) ∣ − ⟩ = ( ∑ y ( − 1 ) f ( y ) c y ∣ y ⟩ ) ∣ − ⟩ = ( O ^ v ∑ y c y ∣ y ⟩ ) ∣ − ⟩ . \hat U_f\Bigl(\sum_yc_y| y \rangle \Bigr)| - \rangle =\Bigl(\sum_y(-1)^{f(y)}c_y| y \rangle \Bigr)| - \rangle =\bigl(\hat O_v{\textstyle\sum_y}c_y| y \rangle \bigr)| - \rangle . U ^ f ( y ∑ c y ∣ y ⟩ ) ∣ − ⟩ = ( y ∑ ( − 1 ) f ( y ) c y ∣ y ⟩ ) ∣ − ⟩ = ( O ^ v ∑ y c y ∣ y ⟩ ) ∣ − ⟩ .
答えのビットは候補のレジスタと積の形のまま残るので、候補のレジスタには純粋な位相の変化 O ^ v \hat O_v O ^ v だけが残る。答えのビットを ∣ 0 ⟩ | 0 \rangle ∣0 ⟩ に用意すると、∑ y c y ∣ y ⟩ ∣ f ( y ) ⟩ = ∑ y ≠ v c y ∣ y ⟩ ∣ 0 ⟩ + c v ∣ v ⟩ ∣ 1 ⟩ \sum_yc_y| y \rangle | f(y) \rangle =\sum_{y\neq v}c_y| y \rangle | 0 \rangle +c_v| v \rangle | 1 \rangle ∑ y c y ∣ y ⟩ ∣ f ( y )⟩ = ∑ y = v c y ∣ y ⟩ ∣0 ⟩ + c v ∣ v ⟩ ∣1 ⟩ となって、答えのビットが候補のレジスタともつれる。答えのビットを捨てると候補のレジスタは ∣ v ⟩ | v \rangle ∣ v ⟩ との干渉を失った混合状態になるので、次の節の干渉の手順には使えない。
(2) 式 (6.4.1) から ( k + 1 ) / N ≥ 1 / 2 (k+1)/N\ge1/2 ( k + 1 ) / N ≥ 1/2 、すなわち k ≥ N / 2 − 1 = 524287 k\ge N/2-1=524287 k ≥ N /2 − 1 = 524287 回である。どの順番で調べても、乱数を使っても、これより少なくはできない。
1 L. K. Grover (1997), Phys. Rev. Lett. 79, 325。会議録の版は Proc. 28th Annual ACM Symposium on Theory of Computing (1996), p. 212。
2 C. H. Bennett, E. Bernstein, G. Brassard and U. Vazirani (1997), SIAM J. Comput. 26, 1510。4人の頭文字をとって BBBV と呼ぶ。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com