2ノードの量子ウォーク

投稿者: | 2017年6月2日

$$
\newcommand\ket[1]{|{#1}\rangle}
\newcommand\bra[1]{\langle{#1}|}
$$

概要

  • 量子ウォークの不思議な性質をシンプルな2ノード間の移動で調べてみる

量子ウォーク

量子ウォークとは簡単に言ってしまえば、ランダムウォークの量子版です。

コインが裏なら左に、表なら右に移動することを繰り返すランダムウォークと同じように、 量子的なコインを振って、裏なら左に、表なら右にという進み方をします。

○量子状態

各試行における量子ウォークの状態は、コインの裏表と、その時の場所の2つで決まりますから、 \[
\ket{\psi} = \ket{p}\otimes\ket{c}=\ket{p}\ket{c}
\]
のように、コインの裏表\(\ket{c}\)と位置\(\ket{p}\)で表されます。

○一歩の動き

一歩動く時には、まずコインを振り進む向きを決めます。コインを振る操作は\(H\)で表すと、 \[
\ket{c’} = H\ket{c}
\]
が新しいコインの状態になります。

次に、コインが裏なら左に、表なら右に、現在いる位置\(\ket{p}\)から移動します。 \[
\ket{p’}\ket{c’} = S \ket{p’}\ket{c}
\]
\(S\)はコインの裏表をもとに位置を進める操作を表します。

上の操作をまとめて表すと、 \[
\ket{p’}\ket{c’} = S \cdot (I\otimes H) \ket{p}\ket{c} = U \ket{p}\ket{c}
\]
が一歩の動きとなります。ただし、\(U=S\cdot(I\otimes H)\)で、\(I\)は恒等操作を表します。

2ノード量子ウォーク

量子ウォークを下の図のような2ノードのグラフ上で行う場合を考えてみます。 二つのノードには0,1と名前をつけており、コインが裏なら0から1に、コインが表から1から0に移動します。 1にいる時にコインが裏なら、これ以上右にいけないので、1に留まります。 同様に、0にいる時にコインが表なら、0に留まります。

コインを振る操作\(H\)\[
H = \begin{pmatrix}
\cos(\theta) & \sin(\theta) \\
\sin(\theta) & -\cos(\theta)
\end{pmatrix}
\]
とし、位置を移動する操作\(S\)\[
S = \ket{0}\ket{L}\bra{0}\bra{L} + \ket{0}\ket{L}\bra{1}\bra{L} + \ket{1}\ket{R}\bra{1}\bra{R} + \ket{1}\ket{R}\bra{0}\bra{R}
\]
とします。コインの裏表は進む方向と対応付けて左\(\ket{L}\)、右\(\ket{R}\)で表し、位置は図中の番号を用いて\(\ket{0},\ket{1}\)で表すこととします。

アダマールウォーク \((\theta = \frac{\pi}{4})\)

コインを振る操作\(H\)中の\(\theta\)の値は、コインの裏表の出やすさの偏りを決める値ですが、 ここでは、裏表に偏りのない\(\theta = \frac{\pi}{4}\)の場合を考えます。 この時、\(H\)はアダマール行列となり、このような\(H\)を用いた量子ウォークはアダマールウォークと呼ばれます。

それでは、初期状態を\(\ket{0}\ket{L}\)、つまり、左側に進んで0の位置にいる時から始めて、 量子ウォークで進んでみます。

上にプロットした棒グラフは量子ウォークで1歩,2歩,3歩,4歩進んだ時の場所0,1の確率振幅を表しています。 1ステップ目では量子コインを振ることで、コインの状態が裏表が半々で重ね合わさった状態となるので、 それに伴って移動した後の位置も0,1で半々に重ね合わさった状態となる。 古典的なランダムウォークでも、0,1に進む確率は50%であり、この結果は容易に納得できる。 3ステップ目も同じ状況になっている。

問題は2ステップ目や4ステップ目である。 2ノードの古典的なランダムウォークでは、どのステップであっても、0,1にそれぞれ50%の確率で存在することになる。 ところが、量子ウォークの結果は0に100%(数値誤差がなければ)で、1に0%で存在するという偏ったものになっている。

干渉

上のような結果になったのは、コインを振る操作\(H\)を重ね合わせの状態に対して行った際に干渉が生じたためである。 重ね合わせでない\(\ket{L},\ket{R}\)\(H\)を作用させると、L,Rが50%ずつに重ね合わされた \[
H\ket{L} = \frac{1}{\sqrt{2}}\ket{L} + \frac{1}{\sqrt{2}}\ket{R} \\
H\ket{R} = \frac{1}{\sqrt{2}}\ket{L} – \frac{1}{\sqrt{2}}\ket{R}
\]
となる。 \(\ket{L},\ket{R}\)の重ね合わせの場合には、上式の和の形(係数付き)になるが、\(\ket{R}\)項が打ち消し合う。 これによって、左側、つまり、0に偏って進むことになる。

ソースコード(関数定義)


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です