解析
では、グローバーのアルゴリズムを分析し、その仕組みを理解しよう。 私たちはまず、グローバー演算( )が特定の状態に対してどのように作用するかを計算する、 記号的解析とでも言うべきものから始める。そして、この記号的解析を、アルゴリズムがどのように機能するかを視覚化するのに役立つ幾何学的な図と結びつける。
解決策と非解決策
まず、2組の文字列を定義することから始めよう。
集合 には、探索問題に対するすべての解が含まれ、 には、解ではない文字列が含まれる(都合のいいときには、これを非解と呼ぶことができる)。 これらの2つのセットは、 と を満たしている。
次に、解と非解の集合に対する一様な重ね合わせを表す2つの単位ベクトルを定義する。
形式的に言えば、これらの各ベクトルは、対応する集合が空でない場合にのみ定義されるが、以下では、 も も空でない場合に焦点を当てる。 、 。
余談だが、ここで使われている表記法は一般的なものだ。有限で空でない集合 があるときはいつでも、 と書けば、 の要素に一様な量子状態ベクトルを表すことができる。
また、 を、すべての -bit文字列にわたる一様な量子状態と定義しよう:
そうすると
また、 、 は、グローバーのアルゴリズムのステップ1での初期化後のレジスタ の状態を表している。
このことは、ステップ2で の反復が起こる直前に、 の状態は と によってスパンされる2次元ベクトル空間に含まれ、さらにこれらのベクトルの係数は実数であることを意味する。 これからわかるように、 の状態は、ステップ2の操作 を何回繰り返しても、常にこれらの特性、つまり と の実線型結合を持つ。
グローバー作戦に関する所見
次にグローバーの作戦に注目しよう
という興味深い見解から始まった。
関数 を、 とNOT関数の合成、言い換えれば、 の出力ビットを反転させることで得られる関数に置き換えたとしよう。 この新しい関数を と呼ぶことにし、記号を使っていくつかの方法で表現することができる。
そうすると
すべての文字列に対して 、したがって
つまり、もし関数 を関数 で置き換えたとしても、グローバーのアルゴリズムは何も変わらないということだ。なぜなら、この2つのケースでアルゴリズムから得られる状態は、大局的な位相までは必ず等価だからである。
これは問題ない! 直感的に言えば、アルゴリズムはどの文字列が解でどの文字列が非解であるかを気にしません。正しく動作するために解と非解を区別できれば十分です。
グローバー作戦の行動
ここで、量子状態ベクトル と の作用を考えてみよう。
まず、 という操作が、 と
次に、次の操作がある。 演算 は次のように定義される。
、この操作を表す便利な代替方法は次のようなものだ:
この式が の定義と一致していることを確認する簡単な方法は、標準的な基底状態に対する作用を評価することである。
したがって、 :
-bitの文字列を一様に重ね合わせる場合に使用したのと同じ表記法、 。
これで、 に対する の作用を計算するのに必要なものが揃った。 まず、 。
次に、 の作用を計算してみよう。
どちらの場合も、次の方程式を使う
という表現とともに
その後に続く。
要約すると
すでに述べたように、ステップ2の直前の の状態は、 と によってスパンされる2次元空間に含まれており、 がこの空間内の任意のベクトルを同じ空間内の別のベクトルにマッピングすることを証明したばかりである。 つまり、分析のためには、この部分空間だけに注目すればいいのだ。
この2次元空間の中で起こっていることをよりよく理解するために、この空間に対する の作用を行列として表現してみよう、
その1行目と2列目はそれぞれ と に対応している。 このシリーズではこれまで、常に行列の行と列をシステムの古典的な状態と結びつけてきたが、行列は今回のように、異なるベース上の線形写像の作用を記述するためにも使うことができる。
一見しただけではまったくわからないが、行列 は、より単純に見える行列を 2乗することで得られるものである。
マトリックス
は回転行列である
の場合
この角度( )は、この後の分析で非常に重要な役割を果たすことになるので、ここで初めてその重要性を強調しておきたい。
このマトリックスの表現に照らし合わせると、次のようになる
これは、 の角度で2回回転することは、 の角度で回転することと等価だからである。 このことを理解するもう一つの方法は、次のような代替表現を使うことである。
を三角法の二重角度の公式と合わせて使う:
要約すると、ステップ2の開始時のレジスタ の状態は次のようになる
そして、この状態に を適用する効果は、 と でスパンされる空間内で角度 だけ回転させることである。 したがって、例えば
そして一般的に
幾何学的な絵
さて、先ほどの分析を幾何学的な絵に繋げてみよう。 は2つの反射の積である、 そして そして、2つの反射を行う正味の効果は回転を行うことである。
始めよう すでに述べたように
によってスパンされる2次元ベクトル空間内で、 と に平行な線に対する反射である。 この反射が、仮想的な単位ベクトル の実線型結合であると仮定する。
次に、 という操作がある
これも反射であり、今度はベクトルに平行な線 。 単位ベクトルに対するこの反射の作用を表した図がこれだ。
これらの2つの反射を合成すると、この図が示すように、反射線間の角度の2倍の回転が得られる。
このことは、幾何学的な用語で、なぜグローバー・オペレーションの効果が、 と の直線的な組み合わせを、以下の角度だけ回転させることになるのかを説明している。