14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

この記事について

Grover Searchのアルゴリズムでは、、
Grover Operatorを、データ数Nに対して$\sqrt{N}$回適用することで所望の状態を得てデータ検索が実現できる事がわかっています。この背景で、

  • データ数Nに対して、$O(\sqrt{N})$のオペレータ適用でデータ検索ができる!
  • 古典の線形サーチ$O(N)$よりも効率的な探索ができる!

といった説明となるのですが、、
Grover Operatorの適用回数が$\sqrt{N}$回よりも、大きくても小さくても、所望の状態を得られない。が実際であり事実であると理解しています。

つまり、いい塩梅が重要となります。

このいい塩梅がデータ数Nに対し$\sqrt{N}$回という点がわかりやすいように、実験的な記事を作ってみました。

また、他の量子コンピュータ関係の他の記事は、下記で紹介しています。

\newcommand{\bra}[1]{\left\langle #1 \right|}
\newcommand{\ket}[1]{\left| #1 \right\rangle}
\newcommand{\bracket}[2]{\left\langle #1 \middle| #2 \right\rangle}
\newcommand{\tate}[2]{\begin{bmatrix} #1 \\ #2 \end{bmatrix}}
\newcommand{\yoko}[2]{\begin{bmatrix} #1 & #2 \end{bmatrix}}
\newcommand{\mtrx}[4]{\begin{bmatrix} #1 & #2 \\ #3 & #4 \end{bmatrix}}

QuirkでGrover Search

起動してみる

本稿では、量子計算のシミュレータとしてQuirkを利用します。
Qurikを起動すると、標準サンプルとしてGrover Searchがあるのでこれを利用します。

Grover Searchを選択すると、回路が表示されます。

Grover Operatorを適正回数適用する

上述のOracleとIAMを適正回数($\sqrt{N}$回)適用したいので、下記のような回路となります。

image.png

$\sqrt{N}$回以前で観測したら、どうでしょうか?
検索対象データに対応する確率(確率振幅)は下記の通りでやはり4回目でピークを迎えます。

1回目 2回目 3回目 4回目
25% 60% 89% 99%

素朴な疑問

上記結果だけでは、Grover Operatorを適用すれば適用するほどに検索対象データに対応する確率が100%に近い状態で結果を取り出せるように見えます。
では、5回目以降はどのような確率(確率振幅)になるかが気になります。
そこで、実験的に、適正回数以上に過剰にGrover Operatorを適用してみたいと思います。

Grover Operatorを過剰に適用する

適正が4回だったのでその倍の8回、オペレータを適用してみましょう。

1回目~4回目は上記と変わらないので5~8回目について確認します。下記に示しますが、
適正回数以上にオペレータを適用すると検索対象の確率(確率振幅)は、なんと減衰します。。

5回目 6回目 7回目 8回目
85% 54% 21% 1.4%

最適なオペレータの適用回数について

Quantum Native dojo 8.2にも解説があるとおり、所望の$\ket{\beta}$に対して、$\ket{s}$が最も近づくタイミングが、計算により求められ、それが$\sqrt{N}$となります。詳細はQuantum Native dojo 8.2を参照いただければと思います。
恐縮ですが、リンクさせていただきます。

まとめ

Grover Searchの特徴ですが、下記は事実です。

  • データ数Nに対して、$O(\sqrt{N})$のオペレータ適用でデータ検索ができる!

ただし、$\sqrt{N}$で効率的にデータ探索ができるとう言葉を正しく解釈すると、所望の結果が得られるオペレータ適用回数が$\sqrt{N}$回であって、Grover Searchはいい塩梅が重要というのが本質な気がします。
中を覗き見したくても、測定したら量子状態は破壊されるので、いい塩梅まで我慢して、待って待って良いタイミングで測定する。そんな、Grover Searchのご紹介でした。

(補足)サンプルのGrover Operatorについて

Grover Searchは下記の2つの操作から構成されるGrover Operatorをデータ数Nに対して、$\sqrt{N}$回適用し解を得るアルゴリズムです。

  • データをマーキングずるためのOracle
  • マーキングしたデータに対応する振幅を増幅するためのIAM(Inversion About Mean)

これらが、Quirkのサンプル上では、下記の様の実装されています。

Oracle

Toolbox2のOracleにマウスオーバすると表示されるのですが、事前定義の回路として下記のようにOracleが定義されています。これにより検索対象に対してマーキングを行います。

Inversion About Mean(IAM)

Oracleでマーキングした検索対象に対応する確率振幅を増幅するためのIAMが必要ですが、一般的には検索対象ビットに対する$H^{\otimes N}$と位相シフトの$Controlled-Z$で構成されます。

一方で、サンプルの量子回路上でのIAM相当の部分は、下記のようになっています。

このゲートについては、https://algassert.com/post/1706 に解説があるのですが、$H$で挟まれる$Controlled-U$相当の操作が行われるゲートの様で、このゲートでIAM相当の振幅増幅ができるようです

14
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?