この記事の目的
量子コンピューティングの理論の一つに量子振幅増幅があります。
量子振幅増幅とは、**Quantum Amplitude Amplifier(QAA)**と呼ばれます。
本記事では量子振幅増幅の原理と、実際にどのように振幅されるのかをグラフで確認できるシミュレータの使い方を紹介します。
※本記事は、令和3年3月29日に執筆しています。
量子振幅増幅とは
量子振幅増幅とは、書いて文字の通り振幅を増幅させるものです。
増幅させるものは確率振幅です。確率振幅とは以下の(式1)の$\alpha$,$\beta$を指します。
|\psi〉=\alpha|0〉+\beta|1〉\quad...\;(式1)
上記の式は1量子ビットの例です。確率振幅は自身の2乗が確率を表し、全ての確率振幅の絶対値の2乗を合計すると1となります。これを確率原則と言います。
|\alpha|^2+|\beta|^2=1\quad...\;(式2)
2量子ビットの場合を見てみましょう。
2量子ビットの場合の一般的な量子状態は
|\psi〉=\alpha|00〉+\beta|01〉+\gamma|10〉+\delta|11〉\quad...\;(式3)
と表されます。
確率振幅$\alpha$,$\beta$,$\gamma$,$\delta$は確率原則より以下となります。
|\alpha|^2+|\beta|^2+|\gamma|^2+|\delta|^2=1\quad...\;(式4)
確率振幅の増幅とは$\alpha$,$\beta$,$\gamma$,$\delta$のうち、どれか一つを増幅させます。つまり、値を大きくします。
値を大きくすることでその絶対値の2乗も大きくなります。すなわち確率が大きくなります。
確率が大きくなることで、最終的に測定を行った際にその確率振幅項が解として現れることを期待するものです。
振幅増幅の仕方
では、実際に振幅を増幅させてみましょう。
例として、2量子ビットを取り上げます。
2量子ビットの場合は(式3)より項数が4つであるとわかっていますので、具体的に$\alpha$,$\beta$,$\gamma$,$\delta$を以下のように決定します。
|\psi〉=\frac{1}{2}|00〉+\frac{1}{2}|01〉+\frac{1}{2}|10〉+\frac{1}{2}|11〉\quad...\;(式5)
次に、増幅させたい確率振幅項に印を付けます。
印を付けるとは、具体的には位相を反転させることを意味します。今回の例として、|10〉の確率振幅項に印を付けてみます。
|\psi〉=\frac{1}{2}|00〉+\frac{1}{2}|01〉\color{red}{-}\frac{1}{2}|10〉+\frac{1}{2}|11〉\quad...\;(式6)
量子ゲート回路において、この印を付ける方法は以下の操作で行うことができます。
なお、以下の回路では(式5)の状態を生成する手順も含んでおり、そのように回路中に記載しています。
|10〉に印を付ける場合
また|01〉以外の場合のついても印を付ける操作は以下となります。
|00〉に印を付ける場合
|01〉に印を付ける場合
|11〉に印を付ける場合
振幅させたい確率振幅項に印を付けたら、次は確率振幅の平均値<av>を計算します。
(式6)より以下となります。
\begin{align}
<av>&=\frac{\frac{1}{2}+\frac{1}{2}-\frac{1}{2}+\frac{1}{2}}{4}\\
&=\frac{1}{4}
\end{align}
この場合の確率振幅項の値と平均値をグラフにしてみます。
平均値を求めたら、平均値を軸にして各振幅値を反転させます。これを拡散変換と言います。
グラフで確認すると以下のようになります。
上記のように拡散変換を行うことで、印の付いた確率振幅が増幅されることがわかります。
これが確率振幅の仕組みです。
拡散変換を行った後で観測を行うことで、印の付いた確率振幅項が|10〉であることがわかります。
本記事では2量子ビットの例を示しましたが、3量子ビットやそれ以上の量子ビットも同様に計算できます。
以下に確率振幅増幅をシミュレーションできるツールをWEB上に公開しました。
増幅させたい確率振幅項に印を付けて拡散変換させ、グラフを表示させることができるツールで、2~5量子ビットで確率振幅増幅を試すことができます。
ぜひお試し頂けると幸いです。
量子振幅増幅シミュレーター
https://amplitude-amplifier.herokuapp.com/index.html
関連情報
量子振幅増幅シミュレーター
https://amplitude-amplifier.herokuapp.com/index.html
ご意見など
ご意見、間違い訂正などございましたらお寄せ下さい。