グローバーの検索アルゴリズム

干し草の中の針をNではなく√Nステップで見つける

インタラクティブシミュレーションを読み込んでいます...

なぜ√Nであり、もっと速くないのか? 🖖

グローバーのアルゴリズムはO(√N)クエリを達成し、これが最適であることが証明されています。各反復は状態をθ ≈ 2/√Nラジアン回転させます。

正しい答えが増幅される仕組み 🖖

均等な重ね合わせでは、どの候補も同じごく小さな振幅から始まります。各ラウンドは二つの操作を行います。まずオラクルが目標の振幅の符号を反転させ、次に「平均値まわりの反転」がすべての振幅を平均を軸に折り返します。すると符号を変えた振幅は伸び、残りは縮みます。繰り返すほど目標の確率は1に近づきます。N = 1,000,000 のリストなら、古典的な探索は平均で 500,000 件を調べますが、Grover はおよそ 1,000 回で足ります。

4個・1回・確実 🖖

N = 4、つまり2量子ビットの探索では、Grover は速いだけでなく厳密です。たった1回の反復で目標を 100% の確率で当てます。回転角は sin(θ/2) = 1/√N = 1/2 を満たすので θ = 60°、1ステップ後には状態がちょうど (2·1+1)·30° = 90° 回転して目標軸に一致します。量子アルゴリズムが「たぶん正しい」ではなく「必ず正しい」答えを返す、まれな例です。

全プロセスの詳細解説

  1. 8個の中からマークされたアイテムを見つけるための2回の反復 5 ステップ

    グローバーのアルゴリズムは、8 個の要素からマークされた項目を 2 回のイテレーションで見つけ出します。その 2 という数値がどこから来るのか、アンド 3 回目を実行すると何が起きるかを解き明かしましょう。

    |s′⟩ |w⟩ θ = 20.70° k = 0 12.50% k = 1 78.12% k = 2 94.53% k = 3 33.01%
    1. 処理が実行される前の状態は一様重ね合わせ状態です。すべての項目が等しい確率を持つため、マークされた項目が占める確率は 1/8 となります。これは古典的なランダム推測と同じであり、パネルにはその点を明確にするために両方が表示されます。

    2. グローバーの各イテレーションは、マークされた状態とそれ以外のすべての状態によって張られる 2 次元平面内での固定角の回転です。その角度は振幅に由来し、N = 8 の場合は約 20.7° になります。

    3. したがって、確率は上昇して平坦になる曲線ではなく、正弦の 2 乗であり、急激に上昇します:12.5%、続いて 78.1%、そして 94.5% となります。

    4. 最適な停止ポイントは、回転が 90° に最も近くなる位置であり、これは N の平方根の π/4 倍となります。8 個の項目ではそれが 2.22 となり、イテレーションを小数回行うことはできないため、2 回となります。

    5. 3 回目を実行すると回転が行き過ぎてしまいます。確率は 33.0% に低下し、これは 1 回のイテレーション後よりも悪く、初期状態に向かって逆戻りします。

    解答

    初期の重ね合わせでも、古典的にN個から1個を探す場合でも、ツールには12.50%と表示されます。自動実行は2回で止まりますが、ステップ実行や最後まで進む操作を使えば5回まで進められます。意外なのは、最適な回数を越えるとかえって成功確率が下がることです。反復回数を増やすほど悪くなります。振幅増幅は回転なので、回し続ければ元の向きへ戻ってくるからです。グローバー探索による高速化が指数的ではなく二次的なのも、同じ理由によります。90°に達するにはおよそ√N回の回転が必要で、8個なら2回、100万個なら785回です。確かに有用ですが、「量子探索」という言葉から想像されるような指数的優位性とはまったく異なります。

参考文献 (1)

例題

  • N = 4 - N=4個のアイテム — ターゲットを見つけるのに必要なグローバー反復はわずか1回
  • N = 8 - N=8個のアイテム — 最適な反復回数は約2回、定番のデモサイズ
  • N = 16 - N=16個のアイテム — 最適な反復回数は3回、O(√N)が確認できる
  • N = 32 - N=32個のアイテム — 約4回の反復で、2次的な優位性が見える