アルゴリズム工学データベース離散最適化

量子計算(グローバーのアルゴリズム)


<グローバーのアルゴリズムについて>
これは特定の状態の確率振幅を増幅するアルゴリズムです。 例えば SAT の問題に応用できます。
n 変数の SAT は 2 の n 乗の解の候補がありますが、 それを重ね合わせてそれぞれ充足するかどうか実際に計算します。 そして充足する候補だけの振幅を増幅してそれを観測するようにするのがこのアルゴリズムです。
古典的にはN 個の候補から一つを選び出すには O(N) の計算量がかかりますが このグローバーのアルゴリズムによると O(√N) の計算量できます。

<このデモについて>
(X0|X1|X2)&...
という4変数10クローズの SAT の問題を、以下の手順で解きます。 x軸の 0 は x0=0, x1=0, x2=0, x3=0 に対応し、 充足する解の 3 (x0=1, x1=1, x2=0, x3=0) の振幅が大きくなっていきます。 √16 より小さい3ステップで計算が終了します。

Step (n)-1
正しい解の振幅にマイナスをかける。
Step (n)-2
Walsh-Hadamard (ウォルシュアダマール)変換をかける。 これは4個のビットすべてに \[ \pmatrix{ 1/\sqrt{2} & 1/\sqrt{2} \cr 1/\sqrt{2} & -1/\sqrt{2} } \] という2×2ユニタリ行列をかける操作です。
Step (n)-3
0の振幅にマイナスをかける。
Step (n)-4
Walsh-Hadamard 変換をかける。
Step (n)-5
すべての振幅にマイナスをかける。

プログラムの提供は、東京大学今井研究室 徳永さんです。

ローカルな環境で動かすには、このページ以外にも、 ../algoDemo/commonApplet.class, ../algoDemo/commonPanel.class, main.class, mainPanel.class explain.gif をディレクトリ構造ごとコピーして下さい。
土村 展之(tutimura@logopt.com)
<最終更新作成日時 1999年9月17日 >