グローバー探索:振幅を1つに集める

N 個の候補の振幅を「目印反転 → 平均まわりの反転」で 1 つに増幅し、約 √N 回で当たりが見つかる様子を体感します。

16
11
0.9 s
反復回数 t
当たりの測定確率 |aw
最適反復回数 ≈ ⌊π√N / 4⌋
古典の平均探索回数
状態ベクトルの回転(探索平面の2D投影)
各候補の振幅(高さ=振幅、当たりは緑、目印反転で負になると下向き)
探したいのは N 個の中のたった 1 つ「当たり w」。古典コンピュータは 1 個ずつ確かめ、平均で N/2 回、最悪 N 回かかります。
グローバーのアルゴリズムは、全候補を同じ振幅で重ね合わせた状態から、次の 2 ステップを繰り返します。
オラクル(目印反転)…当たりの振幅だけ符号を反転(下向きに)。
拡散(平均まわりの反転)…全振幅を「平均値」を軸に折り返す。すると下を向いていた当たりだけが大きく持ち上がる。
この組を 約 √N 回繰り返すと、当たりの測定確率がほぼ 1 になります。ボタンで 1 反復ずつ進め、振幅が 1 つに集まる様子を確かめましょう。

いま何が起きている?

ここがポイント