第54話 Grover検索・量子アルゴリズム



今回は数式だらけですが淡々と規則どおりにやっているだけです。前回のフローチャートを机上計算してみます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233808.jpg
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233827.jpg
以下のStep3、Step4を繰り返す。(Grover Iteration)回数は Nの平方根 程度    
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233841.jpg

以下でこのStep3,4のGrover Iterationを詳しく見てみます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233850.jpg
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233854.jpg
と置くと、
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233901.jpg
ここで、
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233905.jpg
なので、
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233909.jpg
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233915.jpg
これが1回目のGrover Iterationの結果です。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233920.jpg

この結果は非常に印象的です。それは元の量子状態
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233812.jpg
と対比するとよく分かります。注目すべき点は量子状態kの観測確率は最初、
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233818.jpg
ですがGrover Iterationの結果
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804233824.jpg
となっている点です。

Grover検索アルゴリズムは、上記操作からわかるように取り出したい状態の確率振幅は大きくなり無関係なデータの確率振幅は小さくなり正解を得る確率が高くなります。ただ無関係なデータの確率振幅は小さいが一般にはゼロにはならない値として残るのでたまたまその状態を観測した場合に無関係なデータを取り出してしまう可能性もありますが確率は非常に小さくなっています。またアルゴリズムが効率的なため無関係なデータを得たとしてもやり直せば良いだけです。さらにやり直しは多くても数回で済むはずです。そのためのGrover Iterationです。