はじめに
この記事では,1入力1出力の基本的な量子ゲートをまとめる.
また,最初に量子ゲート・量子回路がどのようなものか触れた後,
各量子ゲートに注目する.
量子ゲートについて
量子ゲートは古典コンピュータにおける量子ビットの状態を
操作することで計算を行う.
(古典コンピュータにおけるANDやOR演算)
量子ビットの状態はベクトルで表されるので,
量子ゲートの操作は行列形式で表現される.
量子回路
量子コンピュータも古典コンピュータと同じように,
複数の量子ゲートからなる回路を用いる.
以下が回路の例である.
左端の値が初期状態である.
Xゲート(NOTゲート)
Xゲートは量子ビット反転をするゲート.
その性質からNOTゲートとも呼ばれる.
Xゲートの行列表現は以下のようになる.
X =
\left(
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix}
\right)
Xゲートをブラケット記法で表すと以下のようになる.
- $X = |0\rangle \langle 1| + |1\rangle \langle 0|$
以下はXゲートを用いた回路の例となる.
行列での計算例(Xゲート)
Xにより,量子状態$|0\rangle,|1\rangle, \frac{1}{\sqrt{2}}(|0\rangle +|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$が
どのように計算されるか以下に示す.
\displaylines{
X|0\rangle
=
\left(
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix}
\right)
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
|1\rangle
\\
X|1\rangle
=
\left(
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix}
\right)
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
|0\rangle \\
X
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
=
\left(
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle) \\
X
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
=
\left(
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
-\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
-\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
}
Zゲート
Zゲートは位相を反転するゲート.
すなわち,$|0\rangle$は変化させないが,$|1\rangle$の符号を反転させる.
Zゲートの行列表現は以下のようになる.
Z
=
\left(
\begin{matrix}
1 & 0\\
0 & -1
\end{matrix}
\right)
Zゲートをブラケット記法で表すと以下のようになる.
- $Z = |0\rangle \langle 0| - |1\rangle \langle 1| $
行列での計算例(Zゲート)
Zにより,量子状態$|0\rangle,|1\rangle, \frac{1}{\sqrt{2}}(|0\rangle +|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$が
どのように計算されるか以下に示す.
\displaylines{
Z|0\rangle
=
\left(
\begin{matrix}
1 & 0\\
0 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
|0\rangle
\\
Z|1\rangle
=
\left(
\begin{matrix}
1 & 0\\
0 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
\left(
\begin{matrix}
0 \\
-1
\end{matrix}
\right)
=
-|1\rangle \\
Z
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
=
\left(
\begin{matrix}
1 & 0\\
0 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle) \\
Z
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
=
\left(
\begin{matrix}
1 & 0\\
0 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
}
Yゲート
Yゲートは量子ビットと位相を反転するゲート.(X, Zゲートほどよく使わない)
Yゲートの行列表現は以下のようになる.
Y
=
\left(
\begin{matrix}
0 & -i\\
i & 0
\end{matrix}
\right)
Yゲートをブラケット記法で表すと以下のようになる.
- $Y = i(-|0\rangle \langle 1| + |1\rangle \langle 0|)$
行列での計算例(Yゲート)
Yにより,量子状態$|0\rangle,|1\rangle, \frac{1}{\sqrt{2}}(|0\rangle +|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$が
どのように計算されるか以下に示す.
\displaylines{
Y|0\rangle
=
\left(
\begin{matrix}
0 & -i\\
i & 0
\end{matrix}
\right)
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
\left(
\begin{matrix}
0 \\
i
\end{matrix}
\right)
=
i|1\rangle
\\
Y|1\rangle
=
\left(
\begin{matrix}
0 & -i\\
i & 0
\end{matrix}
\right)
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
\left(
\begin{matrix}
-i \\
0
\end{matrix}
\right)
=
-i|0\rangle \\
Y
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
=
\left(
\begin{matrix}
0 & -i\\
i & 0
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
\frac{-i}{\sqrt{2}} \\
\frac{i}{\sqrt{2}}
\end{matrix}
\right)
=
\frac{-i}{\sqrt{2}}(|0\rangle -|1\rangle) \\
Y
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
=
\left(
\begin{matrix}
0 & -i\\
i & 0
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
\frac{i}{\sqrt{2}} \\
\frac{i}{\sqrt{2}}
\end{matrix}
\right)
=
-\frac{i}{\sqrt{2}}(|0\rangle +|1\rangle)
}
Hゲート(Hadamardゲート, アダマールゲート)
Hゲートは0と1の重ね合わせ状態を生成するような操作をするゲート.
要するに,あらゆる場合を等確率で発生させるようにするゲートである.
Hゲートは頻出なので,しっかりと押さえておきたいゲート.
Hゲートの行列表現は以下のようになる.
H =
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 & 1\\
1 & -1
\end{matrix}
\right)
Hゲートをブラケット記法で表すと以下のようになる.
- $|+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + \langle1|) = H|0\rangle,\quad |-\rangle = \frac{1}{\sqrt{2}}(|0\rangle - \langle1|) = H|1\rangle$とする
- $H = |+\rangle \langle 0| \quad + \quad |-\rangle \langle 1|$
以下はHゲートを用いた回路の例となる.
$|0\rangle$は,0が100%の確率で観測されるということである.
しかし,Hゲートを通すことで1/2の確率(等確率)で0と1が観測されるようになる.
このように,アダマールゲートを用いることで重ね合わせ状態を生成できる.
また,逆にHゲートを用いると,$\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)$という重ね合わせ状態から,
$|0\rangle$を作ることもできる.(可逆)
行列での計算例(Hゲート)
Hにより,量子状態$|0\rangle,|1\rangle, \frac{1}{\sqrt{2}}(|0\rangle +|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$が
どのように計算されるか以下に示す.
\displaylines{
H|0\rangle
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 & 1\\
1 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 \\
1
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)\\
H|1\rangle
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 & 1\\
1 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 \\
-1
\end{matrix}
\right)
=
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)\\
H
\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 & 1\\
1 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
1 \\
0
\end{matrix}
\right)
=
|0\rangle \\
H
\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
=
\frac{1}{\sqrt{2}}
\left(
\begin{matrix}
1 & 1\\
1 & -1
\end{matrix}
\right)
\left(
\begin{matrix}
\frac{1}{\sqrt{2}} \\
-\frac{1}{\sqrt{2}}
\end{matrix}
\right)
=
\left(
\begin{matrix}
0 \\
1
\end{matrix}
\right)
=
|1\rangle
}
ブラケット記法による計算例
$|0\rangle=\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)$, $|1\rangle = \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$であることを利用すると,
量子状態$\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle), \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)$は以下のように演算できる.
(Hがケットベクトルにかかっているイメージ)
H\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle)
= \frac{1}{\sqrt{2}}(\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle) + \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle))
= \frac{1}{\sqrt{2}} (\frac{2}{\sqrt{2}}|0\rangle)
= |0\rangle
H\frac{1}{\sqrt{2}}(|0\rangle -|1\rangle)
= \frac{1}{\sqrt{2}}(\frac{1}{\sqrt{2}}(|0\rangle +|1\rangle) - \frac{1}{\sqrt{2}}(|0\rangle -|1\rangle))
= \frac{1}{\sqrt{2}} (\frac{2}{\sqrt{2}}|1\rangle)
= |1\rangle
最後に
行列演算よりも,それぞれのゲートの$|0\rangle, |1\rangle$がどのようになるかを覚えて,
ブラケット記法で演算するのが良い.
次回は,2入力2出力などの複数量子ビットを用いる量子ゲートを扱う.
位相についての理解はまた機会があれば...
参考サイト