第53話 Groverのアルゴリズムの概要(Grover Iteration)



量子コンピュータ用のグローバーアルゴリズムの核心はGrover Iteratinにあります。この操作はNの平方根のオーダー繰り返す操作になります。この繰り返しは量子オラク拡散変換という操作の組み合わせになります。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233734.jpg


量子オラクルQuantum Oracle
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233738.jpg
という変換です。これは丁度、今欲しいデータの確率振幅(波動関数の係数)が反転する事を意味します。波で言えば位相が180度変わる事になります。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233742.jpg
量子オラクル自体は次のように書くことが出来ます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233747.jpg
これは次のようにして確かめられます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233751.jpg
拡散変換(Diffusion Transform)は次のような変換です。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233755.jpg
と置くと、
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233800.jpg
と書くことが出来ます。この拡散変換は後日詳しく見ますが反転した確率振幅を増幅してそうでない確率振幅を低くする機能があります。量子オラクルと拡散変換まとめると
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233804.jpg
という変換Gとして定義できます。そして変換Gを繰り返す事をGrover Iterationと言います。これによって欲しい部分の確率振幅が次々と増幅され不要な確率振幅が低下していきます。この事がまさにGroverのアルゴリズムの素晴らしいアイデアです。

次回はこのGroverのアルゴリズムを各ステップ毎にもう少し詳しく見ていきたいと思います。