相対エントロピーから情報と物理を組み立てる 第6部 第4章 §6.4.2 ★★★ オラクル O^v と平均のまわりの反射 R^s はどちらも反射で、2つの反射の積は角 2θ の回転になる。Grover のアルゴリズムはこの回転を k 回くり返すだけである
2つの反射
すべての候補の一様な重ね合わせ
∣s⟩=N1y=0∑N−1∣y⟩=H⊗n∣0⋯0⟩(6.4.8)
から始める。H は Hadamard ゲート H∣b⟩=(∣0⟩+(−1)b∣1⟩)/2 である。∣s⟩ は「当たりについて何も知らない」状態で、計算基底で測るとどの候補も確率 1/N で出る。
位相オラクル O^v=1−2∣v⟩⟨v∣ は、∣v⟩ の成分の符号だけを反転し、∣v⟩ に直交する成分はそのまま残す。N 次元の空間で見ると、∣v⟩ に直交する超平面についての反射である。もう1つの演算子を
R^s=2∣s⟩⟨s∣−1=H⊗n(2∣0⋯0⟩⟨0⋯0∣−1)H⊗n(6.4.9)
と定める。R^s は ∣s⟩ の成分を残し、∣s⟩ に直交する成分の符号を反転するので、∣s⟩ を通る直線についての反射である。成分で書くと (R^sc)y=2cˉ−cy(cˉ=N1∑ycy は振幅の平均)で、各振幅を平均のまわりに折り返す操作になっている。Grover の1回の反復を
G^v=R^sO^v(6.4.10)
と定める。1回の反復でオラクルを1回使う。
2次元の平面に閉じる
当たり ∣v⟩ と、当たり以外の一様な重ね合わせ
∣r⟩=N−11y=v∑∣y⟩(6.4.11)
は直交する単位ベクトルで、∣s⟩ は
∣s⟩=sinθ∣v⟩+cosθ∣r⟩,sinθ=N1(6.4.12)
と、この2つで張られる平面の中にある。O^v は ∣v⟩ と ∣r⟩ をそれぞれ −∣v⟩ と ∣r⟩ に写し、R^s は R^s∣ϕ⟩=2⟨s∣ϕ⟩∣s⟩−∣ϕ⟩ なので ∣s⟩ を含む平面の中のベクトルを同じ平面の中に写す。したがってG^v はこの平面を保つ。∣s⟩ から始めれば、状態はいつまでもこの2次元の平面の中にとどまる。N 次元の問題が、平面の中の幾何の問題になった。
補題 6.4.1(2つの反射の積 ★★★)
平面の中で、原点を通る直線 ℓ1 についての反射を F^1、ℓ1 から角 α だけ回った直線 ℓ2 についての反射を F^2 とする。積 F^2F^1 は、ℓ1 から ℓ2 へ向かう向きに角 2α だけ回す回転である。
証明
直線 ℓ1 を横軸に取り、角 β の向きの直線についての反射を行列で書くと F(β)=(cos2βsin2βsin2β−cos2β) である(角 β の単位ベクトルを動かさず、それに直交する単位ベクトルの符号を反転することを、直接代入して確かめられる)。積を計算すると
F(α)F(0)=(cos2αsin2αsin2α−cos2α)(100−1)=(cos2αsin2α−sin2αcos2α),
これは角 2α の回転の行列である。
平面の中で O^v は ∣r⟩ の直線についての反射、R^s は ∣s⟩ の直線についての反射で、2つの直線は角 θ をなす。補題から次が従う。
定理 6.4.2(Grover の反復は回転 ★★★)
平面 span{∣r⟩,∣v⟩} の中で、G^v は ∣r⟩ から ∣v⟩ へ向かう向きの角 2θ の回転である。したがって
G^vk∣s⟩=sin((2k+1)θ)∣v⟩+cos((2k+1)θ)∣r⟩,(6.4.13)
k 回の反復の後に計算基底で測って当たりが出る確率は
Pk=sin2((2k+1)θ)(6.4.14)
である。
∣s⟩ は ∣r⟩ から角 θ の向きにあり、反復のたびに 2θ ずつ ∣v⟩ のほうへ回る。k 回の後の角は (2k+1)θ で、これが π/2 に届けば状態は ∣v⟩ そのものになる。図 6.4.1 にこの様子を描いた。振幅の言葉で言い直すと、O^v が当たりの振幅だけを負にし、R^s が平均のまわりで折り返すので、平均より大きく下に飛び出した当たりの振幅が、折り返されて平均より大きく上に出る。当たりの振幅は1回の反復で 1/N の約2倍ずつ増え、当たりの確率は振幅の2乗なので、k 回の後には (2k+1)2/N ほどになる。古典の成功確率 (6.4.1) が k に比例するのに対し、量子の成功確率は k2 に比例して増える。

図 6.4.1 Grover の反復を平面 span{∣r⟩,∣v⟩} の中で見る。O^v は ∣r⟩ の直線について折り返し(赤)、R^s は ∣s⟩ の直線について折り返す。2つの反射の積 G^v は角 2θ の回転で、状態は反復のたびに ∣v⟩ のほうへ 2θ ずつ回る。図は θ=14∘(N≈17)で描いた。
回路で書く
R^s の中の 2∣0⋯0⟩⟨0⋯0∣−1 は、全体の符号 −1 を除けば「すべての量子ビットが 0 のときだけ符号を反転する」ゲートである。全体の符号は測定の確率を変えないので無視してよい。これは各量子ビットを X で挟んだ多重制御 Z ゲートで作れて、多重制御のゲートは補助の量子ビットと Toffoli ゲートを n に比例する数だけ使って組める(第6部第1章)。したがって1回の反復の手間はオラクル1回と n=log2N に比例する数のゲートで、全体の手間は問い合わせの回数で決まる。
例題 6.4.2 4つの候補なら1回で当たる ★★
オリジナルN=4、当たりを v=1 とする。
- θ を求め、1回の反復の後の成功確率を式 (6.4.14) から求めよ。
- 振幅のベクトル c=(c0,c1,c2,c3) に O^1 と R^s を順にかけ、1回の反復で ∣s⟩ が ∣1⟩ に移ることを直接確かめよ。
- 古典の手順で1回の問い合わせを使ったときの成功確率と比べよ。
解答
(1) sinθ=1/2 なので θ=π/6。1回の後の角は 3θ=π/2 で、P1=sin2(π/2)=1 である。
(2) ∣s⟩ の振幅は 21(1,1,1,1)。O^1 をかけると 21(1,−1,1,1) で、振幅の平均は cˉ=41⋅21(1−1+1+1)=41。R^s は各振幅を 2cˉ−cy に写すので、2cˉ=21 から (21−21, 21+21, 21−21, 21−21)=(0,1,0,0)、すなわち ∣1⟩ になる。当たりの振幅 −21 が平均 41 のまわりで折り返されて 1 になり、ほかの振幅 21 は 0 になった。
(3) 式 (6.4.1) から P1cl=2/4=1/2 である。古典の手順で確実に当てるには3回の問い合わせが要る。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com