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

干し草の中の針を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° 回転して目標軸に一致します。量子アルゴリズムが「たぶん正しい」ではなく「必ず正しい」答えを返す、まれな例です。

例題

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