量子計算と量子情報
量子ゲート
古典計算機科学と同様に、量子ビットに対する操作はゲートで記述できます。中でも特に重要なのが、3 つのいわゆる パウリゲート(X ゲート、Y ゲート、Z ゲート とも呼ばれます)とアダマールゲートです。数学的には、状態遷移は ユニタリ行列 で記述されます。たとえば次のとおりです。
U = \begin{pmatrix}a & b \\ c & d \end{pmatrix}
これは、単一量子ビットに対する単純なゲートにも、複数の量子ビットからなるより複雑な系にも当てはまります。
ゲート U を量子ビット \ket{\psi} に適用することは、次のように記述されます。
新しい状態 \ket{\psi'} を計算するには、ゲートに対応する行列を、量子ビットの初期状態 \ket{\psi} に左から掛けます。
U \ket{\psi} = \begin{pmatrix}a & b \\ c & d \end{pmatrix} \cdot \begin{pmatrix} \alpha \\ \beta \end{pmatrix} = \begin{pmatrix}a \cdot \alpha + b \cdot \beta \\ c \cdot \alpha + d \cdot \beta \end{pmatrix} = \begin{pmatrix} \alpha' \\ \beta' \end{pmatrix} = \ket{\psi'}
幾何学的には、単一量子ビットへのゲートの適用は、ブロッホ球内のある軸のまわりでの状態ベクトルの回転とみなすことができます。
パウリゲート
X ゲート
X ゲート(NOT ゲート)は、古典ビットに対する NOT ゲートと同じような振る舞いをします。これはブロッホ球の x 軸のまわりの角度 \pi の回転を記述します。回路では次のように表されます。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; x q[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
ユニタリ行列としての表現は次のとおりです。
X = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix}
したがって、これを \ket{0} と \ket{1} に適用すると、次のようになります。
X \ket{0} = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \end{pmatrix}
X \ket{1} = \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \end{pmatrix}
ディラック記法では、次のように書きます。
X\ket{0} =\ket{1}\qquad X \ket{1} = \ket{0}
この行列は、前節と同様に、入力と出力をブラケット記法(\ket{out}\bra{in})で対応づけることによっても導出できます。そのために、基底ベクトルに対するすべての可能な出力の行列を足し合わせます。
この行列は、前節と同様に、入力と出力をブラケット記法(\ket{out}\bra{in})で対応づけることによっても導出できます。そのために、基底ベクトルに対するすべての可能な出力の行列を足し合わせます。
X = \ket{0}\bra{1}+\ket{1}\bra{0}
=\begin{pmatrix} 1 \\ 0 \end{pmatrix}\begin{pmatrix} 0 & 1 \end{pmatrix} + \begin{pmatrix} 0 \\ 1 \end{pmatrix}\begin{pmatrix} 1 & 0 \end{pmatrix}
= \begin{pmatrix}0 & 1 \\ 0 & 0 \end{pmatrix}+\begin{pmatrix}0 & 0 \\ 1 & 0 \end{pmatrix}= \begin{pmatrix}0 & 1 \\ 1 & 0 \end{pmatrix}
Y ゲート
ブロッホ球において、Y ゲートは y 軸のまわりの角度 \pi の回転を記述します。
回路では次のように表されます。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; y q[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
ユニタリ行列としての表現は次のとおりです。\ket{0} と \ket{1} に適用すると、次のようになります。
Y = \begin{pmatrix}0 & -i \\ i & 0 \end{pmatrix}
これを \ket{0} と \ket{1} に適用すると、次のようになります。
Y \ket{0} = \begin{pmatrix}0 & -i \\ i & 0 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ i \end{pmatrix}
Y \ket{1} = \begin{pmatrix}0 & -i \\ i & 0 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} -i \\ 0 \end{pmatrix}
ディラック記法では、次のように書きます。
Y\ket{0} =i\ket{1}\qquad Y \ket{1} = -i\ket{0}
Z ゲート
ブロッホ球において、Z ゲートは z 軸のまわりの角度 \pi の回転を記述します。
回路では次のように表されます。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; z q[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
ユニタリ行列としての表現は次のとおりです。
Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}
これを \ket{0} と \ket{1} に適用すると、次のようになります。
Z \ket{0} = \begin{pmatrix}1 & 0 \\ 0 & -1 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} \qquad
Z \ket{1} = \begin{pmatrix}1 & 0 \\ 0 & -1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 0 \\ -1 \end{pmatrix}
ディラック記法では、次のように書きます。
Z\ket{0} =\ket{0}\qquad Z \ket{1} = -\ket{1}
パウリゲートの性質
パウリゲートは、単位行列とともに、4 次元複素ベクトル空間 の基底をなします。この空間は、すべての複素 2 \times 2 行列からなる空間です。これは、あらゆる複素 2\times 2 行列がこれら 4 つの行列の線形結合で表せることを意味します。さらに、3 つのパウリゲートは自己逆元です。すなわち XX = I; YY = I; ZZ = I
アダマールゲート
アダマールゲートは、フランスの数学者ジャック・アダマールにちなんで名付けられたゲートで、量子ビットを「古典的な」基底状態から 重ね合わせ 状態へ移すことができるため、量子計算において重要な役割を果たします。たとえば、状態 \ket{0} にアダマールゲートを適用すると、均等な重ね合わせが得られます。このとき \ket{0} と \ket{1} の振幅が等しくなり、測定すると量子ビットはそれぞれ 50% の確率で状態 \ket{0} または \ket{1} に観測されます。ブロッホ球では、このゲートは z 軸のまわりの \pi の回転と、それに続く y 軸のまわりの \frac{\pi}{2} の回転を記述します。
回路では次のように表されます。\ket{0} と \ket{1} について、次が得られます。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; h q[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
ユニタリ行列は次のように与えられます。
H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} = \begin{pmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{pmatrix}
これを \ket{0} と \ket{1} に適用すると、次が得られます。
H \ket{0} = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \cdot \begin{pmatrix} 1 \\ 0 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ 1 \end{pmatrix}
\qquad
H \ket{1} = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 \\ -1 \end{pmatrix}
ディラック記法では、次のように書きます。
H\ket{0} =\frac{1}{\sqrt{2}}(\ket{0}+\ket{1})\qquad H \ket{1} = \frac{1}{\sqrt{2}}(\ket{0}-\ket{1})
任意回転ゲート
量子ビットは、ブロッホ球面上のあらゆる状態に「到達」できるよう、任意の角度と軸で回転させることもできます。文献には、これを実現するのに十分な、いわゆる万能ゲートセットがいくつも存在します。ここでは回転ゲート R_x(\theta)、R_y(\theta)、R_z(\theta) を用います。これらは次のように定義されます。
R_A(\theta) = e^{-i \frac{\theta}{2} A} = \cos\left(\frac{\theta}{2}\right) I - i \cdot \sin\left(\frac{\theta}{2}\right) A; \quad A\in \{X,Y,Z\}$$\ket{0} または \ket{1} が量子ビットの状態に応じた確率で得られます。この過程はゲートとして表すこともできます。
これにより、次の回転行列が得られます。
\begin{aligned}
R_x(\theta) &= \cos(\frac{\theta}{2}) I - i \cdot \sin(\frac{\theta}{2}) X = \begin{pmatrix} \cos(\frac{\theta}{2}) & -i\sin(\frac{\theta}{2}) \\ -i\sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) \end{pmatrix}\\
R_y(\theta) &= \cos(\frac{\theta}{2}) I - i \cdot \sin(\frac{\theta}{2}) Y = \begin{pmatrix} \cos(\frac{\theta}{2}) & -\sin(\frac{\theta}{2}) \\ \sin(\frac{\theta}{2}) & \cos(\frac{\theta}{2}) \end{pmatrix}\\
R_z(\theta) &= \cos(\frac{\theta}{2}) I - i \cdot \sin(\frac{\theta}{2}) Z =
\begin{pmatrix} \cos(\frac{\theta}{2})-i\sin(\frac{\theta}{2}) & 0 \\ 0 & \cos(\frac{\theta}{2})+i\sin(\frac{\theta}{2}) \end{pmatrix} =
\begin{pmatrix} e^{-i\frac{\theta}{2}} & 0 \\ 0 & e^{i\frac{\theta}{2}} \end{pmatrix}
\end{aligned}
回路の言葉では、これらのゲートは次のようになります。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; rx(pi/2) q[0]; ry(pi/2) q[0]; rz(pi/2) q[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
測定
量子ビットを測定すると、その状態に応じた確率で、対応する(2 値の)結果 \ket{0} または \ket{1} が得られます。この過程はゲートとして表すこともできます。
OpenQASM
OPENQASM 2.0; include "qelib1.inc"; qreg q[1]; creg c[1]; measure q[0] -> c[0];
Der interaktive QASM-Playground ist auf PhotonQ verfügbar. Diesen Abschnitt auf PhotonQ öffnen
測定には行列表現がありません。測定は他の操作と同じような演算ではなく、量子ビットから 1 ビットの古典情報を読み出すものだからです。さらに、これまでのゲートとは対照的に、測定は可逆ではありません。回路では、古典ビットを量子ビットと区別するために二重線を描きます。
測定についてのより詳しい説明は こちら: 量子ビットの測定