4
1

More than 3 years have passed since last update.

量子ゲートの復習(Rxゲート)

Last updated at Posted at 2020-05-24

はじめに

そういえば量子コンピュータのRxゲート(を含む回転ゲート)ってよく理解してないかも。
ゆっくり見てみよう。

Rxゲート

MDR株式会社がBlueqatというOSSのPython用量子コンピュータライブラリを公開している。チュートリアルが豊富で、その中にRxゲートの説明もあるのでそれを元にする。

上記リンク先直下の「チュートリアル」の「007 任意回転ゲート」(*1)の中に説明がある。
*1: 2020/5/24時点。最近ページを改善しているようなので、番号や名前は変わる可能性がある。

Rx,Ry,Rzゲートは「ビットを各軸周りに回転させるゲートです。」とのこと。

動きはIBM Quantum ExperienceのRxゲートのアニメーションがわかりやすい。

行列

Rxゲートの行列は以下のようだ。

Rx(\theta) = \left(\begin{matrix}
\cos(\frac{\theta}{2}) & -i\sin(\frac{\theta}{2}) \\
-i\sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2})
\end{matrix}\right)

わかったこと

  • 対称行列である。ユニタリ行列である。エルミート行列ではない。
  • パラメータは一つ、$\theta$。回転角のようだ。行列内の三角関数の回転角が$\frac{\theta}{2}$になってるのはなぜだろう?

ベクトルに行列をかける

Z基底のベクトル$\{|0\rangle, |1\rangle\}$にゲートをかけてみる。

Rx(\theta)|0\rangle = cos(\frac{\theta}{2})|0\rangle
-i\sin(\frac{\theta}{2})|1\rangle \\
Rx(\theta)|1\rangle = cos(\frac{\theta}{2})|1\rangle
-i\sin(\frac{\theta}{2})|0\rangle \\

$Rx(\theta)|1\rangle$は意図的に$|1\rangle, |0\rangle$の順に書いた。

わかったこと

  • $Rx(\theta)|1\rangle$の式の形は$Rx(\theta)|0\rangle$と同じだが、$|0\rangle, |1\rangle$が反転している。つまり以下の関係になっている。
Rx(\theta)|1\rangle (= Rx(\theta)X|0\rangle) = XRx(\theta)|0\rangle

えーっと、
$|1\rangle = X|0\rangle$なわけだが、ぞれぞれのビットに$Rx(\theta)$をかけても$Rx(\theta)|1\rangle = XRx(\theta)|0\rangle$となり、反転(X)関係は変わらない。
要するにブロッホ球自体を回転させるような感じだろうか?

  • $|0\rangle$が$|0\rangle$と$|1\rangle$の重ね合わせに変わる。確率振幅は$\theta$によって変わるようだ。
  • 重ね合わせ状態では元の基底と反転した基底の位相は$-i$ずれている。 位相差$-i$は、えっと...
-i = 0 + i(-1) = \cos(-\frac{\pi}{2}) + i\sin(-\frac{\pi}{2}) = e^{-\frac{\pi}{2}i}

角度で$-\frac{\pi}{2}$だ。

具体的に計算

式だけではイメージできないので具体的な角度で計算してみる。

$\theta$ Rxゲート $|0\rangle$ $|1\rangle$
0 $\left(\begin{matrix}1 & 0\\0 & 1\end{matrix}\right)$ $|0\rangle$ $|1\rangle$
$\frac{\pi}{2}$ $\frac{1}{\sqrt{2}}\left(\begin{matrix}1 & -i\\-i & 1\end{matrix}\right)$ $\frac{1}{\sqrt{2}}(|0\rangle - i|1\rangle)$ $-i\frac{1}{\sqrt{2}}(|0\rangle + i|1\rangle)$
$\pi$ $\left(\begin{matrix}0 & -i\\-i & 0\end{matrix}\right)$ $-i|1\rangle$ $-i|0\rangle$
$\frac{3}{2}\pi$ $\frac{1}{\sqrt{2}}\left(\begin{matrix}-1 & -i\\-i & -1\end{matrix}\right)$ $-\frac{1}{\sqrt{2}}(|0\rangle + i|1\rangle)$ $-i\frac{1}{\sqrt{2}}(|0\rangle - i|1\rangle)$

グローバル位相を無視して考えると、ビットは角度が$\frac{\pi}{2}$変わるごとに次のように変わるようだ。
(無視して考えていいのかはよくわかっていない)

|0\rangle \rightarrow |-i\rangle \rightarrow |1\rangle \rightarrow |+i\rangle \\
|1\rangle \rightarrow |+i\rangle \rightarrow |0\rangle \rightarrow |-i\rangle \\

ここで$|-i\rangle, |+i\rangle$は次のものとする。

|-i\rangle = \frac{1}{\sqrt{2}}(|0\rangle - i|1\rangle), 
|+i\rangle = \frac{1}{\sqrt{2}}(|0\rangle + i|1\rangle)

わかったこと

  • $|0\rangle, |1\rangle$に対して$\theta$を+方向に変えることは、ビットをブロッホ球のZY平面の大きさ1の円上で回転させることに相当するようだ。 これはX軸を中心に$|+\rangle$方向を上として右回りに$\theta$回転させることに相当する。
  • $\theta =\pi$のとき、グローバル位相を無視すれば、ビットはブロッホ球上で丁度反転(=$\pi$回転)する。行列の三角関数の中が$\frac{\theta}{2}$になっているのは、この関係を実現するためのようだ。

演算子

行列をゲートの演算に書き直してみる。

\begin{align}
Rx(\theta)
& = \left(\begin{matrix}
\cos(\frac{\theta}{2}) & -i\sin(\frac{\theta}{2}) \\
-i\sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2})
\end{matrix}\right) \\
& = \cos(\frac{\theta}{2})\left(\begin{matrix}1 & 0\\0 & 1\end{matrix}\right) -i\sin(\frac{\theta}{2})\left(\begin{matrix}0 & 1\\1 & 0\end{matrix}\right)\\
& = \cos(\frac{\theta}{2})I -i\sin(\frac{\theta}{2})X \\
& = \cos(\frac{\theta}{2})(|0\rangle\langle0| + |1\rangle\langle1|) -i\sin(\frac{\theta}{2})(|1\rangle\langle0| + |0\rangle\langle1|)
\end{align}

わかったこと

  • 4番目の式だと、ブラケット計算で$|0\rangle$から$|0\rangle, |1\rangle$の重ね合わせになるのがわかりやすい。
  • 3番目の式は「ビットを反転(Xゲート)して位相を$-i$ずらしたものとの重ね合わせにする」と読める。
  • 今頃になって式の読み方がすこし分かった(笑)。

他のゲートで実現

$Rx(\frac{\pi}{2})$がビットをX軸周りに右回りで$\frac{\pi}{2}$回転させるならば、$H$ゲート + $S^\dagger$ゲートでも同じ状態になるのでは?

\begin{align}
Rx(\frac{\pi}{2}) & = \left(\begin{matrix}
\cos(\frac{\pi}{4}) & -i\sin(\frac{\pi}{4}) \\
-i\sin(\frac{\pi}{4}) & \cos(\frac{\pi}{4})
\end{matrix}\right) \\
& = \frac{1}{\sqrt{2}}\left(\begin{matrix}1 & -i\\-i & 1\end{matrix}\right) \\

S^\dagger H & = \left(\begin{matrix}1 & 0\\0 & -i\end{matrix}\right) \frac{1}{\sqrt{2}}\left(\begin{matrix}1 & 1\\1 & -1\end{matrix}\right) \\
& = \frac{1}{\sqrt{2}}\left(\begin{matrix}1 & 1\\-i & i\end{matrix}\right)
\end{align}

わかったこと

  • $|0\rangle$は、両方とも同じ$\frac{1}{\sqrt{2}}(|0\rangle -i|1\rangle$になった。
  • $|1\rangle$は形が違う…。が、$Rx(\frac{\pi}{2})$の方から$-i$をグローバル位相として外に出せば、状態は$\frac{1}{\sqrt{2}}(|0\rangle +i|1\rangle$で同じになる。(この考え方でいいんだろうか?)
  • 重ね合わせ状態で$|0\rangle$に位相が付くとよくわからなくなる。

最後に

回転ゲートの見方がちょっとわかった。

  • $\theta$に$0, \frac{\pi}{2}, \pi$を入れてみてどんな行列になるのか見る。
  • 基底が$\theta$によってブロッホ球のどの位置に移動するのかを見る。
  • 演算子で書いてみて動きをイメージする。
  • ケットで計算するときは、$|0\rangle$の位相が1になるように変換するとわかりやすいかもしれない。
4
1
1

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
4
1