量子ゲートとは、量子ビット(量子状態)に対する操作の手順を表します。量子回路では、量子ビットに量子ゲートを作用させることで演算を行います。以下は主な量子ゲートについて紹介します。
ユニタリゲート
回転ゲートとは、量子ビットをある軸の周りに一定の角度回転させる操作です。例えば、y軸周りに90度回転させる場合は以下の図になります。
①($\ket{0}$)に対して90度の回転を2回行うと③($\ket{1}$)になります。さらに、④に対し90度の回転を2回行うと元の①に戻ります。
一般に量子ビットは $\ket{0}$ と $\ket{1}$ の重ね合わせになるため、
$$\ket{\psi}=c_0\ket{0}+c_1\ket{1} \to \ket{\psi’}=c’_0\ket{0}+c’_1\ket{1}$$
ユニタリゲートによる変換は2階の行列 $U$ で表されます。
$$\ket{\psi’}=U\ket{\psi}$$
$$\left(\begin{array}{cc} c’_0 \\ c’_1 \end{array}\right)=U\left(\begin{array}{cc} c_0 \\ c_1 \end{array}\right)$$
主なユニタリゲートは、パウリゲートとアダマールゲートです。
パウリゲート
パウリゲート($U_x,U_y,U_z$)は、パウリの3つのスピン行列と同じ働きをするユニタリゲートです。
$$\ket{\psi’}=U_x\ket{\psi}=\left(\begin{array}{cc} 0 & 1 \\
1 & 0 \end{array}\right)\ket{\psi}$$
$$\ket{\psi’}=U_y\ket{\psi}=\left(\begin{array}{cc} 0 & -i \\
i & 0 \end{array}\right)\ket{\psi}$$
$$\ket{\psi’}=U_z\ket{\psi}=\left(\begin{array}{cc} 1 & 0 \\
0 & -1 \end{array}\right)\ket{\psi}$$
アダマールゲート
アダマールゲート($U_H$)は、x軸とz軸の中間の軸を中心に回転させる変換に相当します。
$$\ket{\psi’}=U_H\ket{\psi}=\frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 & 1 \\
1 & -1 \end{array}\right)\ket{\psi}$$
このとき、各ビットは以下のように変換されます。
$$\ket{0} \to \frac{1}{\sqrt{2}}(\ket{0}+\ket{1})$$$$\ket{1} \to \frac{1}{\sqrt{2}}(\ket{0}-\ket{1})$$
制御NOTゲート
制御NOTゲート(CNOT)は、制御ビットと信号ビットと呼ばれる2つの量子ビットの入力に対して、2つの量子ビットを出力します。
制御ビットが「1」(オン)の場合に信号ビットを反転させ、「0」(オフ)の場合は信号ビットは変化しません。制御NOTゲートの真理値表は以下になります。
a | b | c | d |
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 |
一般に量子ビットは $\ket{0}$ と $\ket{1}$ の重ね合わせになるため、入力側ビットを、
$$\ket{a}=c_0\ket{0}+c_1\ket{1} , \ket{b}=c_2\ket{0}+c_3\ket{1}$$
である場合、2量子ビットの重ね合わせとして表されるため、
$$(c_0\ket{0}+c_1\ket{1})\otimes(c_2\ket{0}+c_3\ket{1})$$$$=c_0c_2\ket{00}+c_0c_3\ket{01}+c_1c_2\ket{10}+c_1c_3\ket{11}$$
この状態に対し制御NOTゲートを通すと、制御ビットが「1」のときに信号ビットが反転するため、この右辺は以下の下線部のように変換されます。
$$c_0c_2\ket{00}+c_0c_3\ket{01}+c_1c_2\ket{1\underline{1}}+c_1c_3\ket{1\underline{0}}$$
制御回転ゲート
制御回転ゲートとは、制御ビットが $\ket{0}$ の場合は、信号ビットはそのまま通過し、制御ビットが $\ket{1}$ の場合は、信号ビットは以下のような変換を行う量子ゲートです。
$$\ket{0} \to \ket{0}$$$$\ket{1} \to e^{2\pi i/2^n}\ket{1}$$
制御ユニタリゲート
制御ユニタリゲートとは、制御ビットによって制御されたユニタリ変換です。制御ビットが $\ket{0}$ の場合は、信号ビットはそのまま通過し、制御ビットが $\ket{1}$ の場合は、信号ビットはユニタリ変換されます。
尚、制御NOTゲートは、制御ユニタリゲートでパウリゲート $U_x$ の場合に相当します。
逆量子フーリエ変換
逆量子フーリエ変換は、量子フーリエ変換の逆変換を量子回路で実現した量子ゲートです。量子位相推定(位数計算)などで利用されます。