
書記が物理やるだけ#326 Groverのアルゴリズム
探索アルゴリズムを量子コンピュータで解く方法として,Groverのアルゴリズムを見ていく。
問題

説明
Groverのアルゴリズムは,1996年にLov Groverによって開発されたもので,O(√N)の計算時間しか消費せず,未整序データベース探索を行う量子アルゴリズムの中で最も速い。

解答
例えば線形検索では,O(N)の計算量を要する。

Groverのアルゴリズムの手順について,まずは重ね合わせ状態を作る。

次に,解をマーキングするために以下のオラクルを通す。

ここで以下のような変換を考えることで,状態を解に近づけていく。これらの手順を一定数回繰り返すことで,確率的に解を得ることができる。

実際に8個のデータから検索する問題を計算しておく。

実装例は以下の通りで,1回の繰り返しでも十分高い確率が得られている。

本記事のもくじはこちら: