Uゲート
量子コンピューティングにおいて、Uゲートは最も重要で最も基本的な単一量子ビットの量子ゲートです。すべての単一量子ビットのユニタリ量子ゲートは、Uゲートの特別な場合とみなすことができます。OpenQASM チュートリアルのこの章では、量子ビットに Uゲートを適用する方法について学びます。
OpenQASM において Uゲートは組み込みゲートであり、そのため OpenQASM は量子ビットに Uゲートを適用するための構文を提供しています。Uゲートは θ、φ、λ の 3 つのパラメータを持ちます。
パラメータ θ、φ、λ を持つ Uゲートは、次の操作 RZ(φ) RY(θ) RZ(λ) と等価であるとみなすことができます。
ここで、RZ(x) はブロッホ球上の Z 軸まわりの x ラジアンの回転であり、RY(x) はブロッホ球上の Y 軸まわりの x ラジアンの回転です。
パラメータ θ、φ、λ を持つ Uゲートは、次の行列で表すことができます。
U(\theta,\phi,\lambda) = \begin{pmatrix}
\cos(\theta/2) & -e^{-i\lambda} \sin(\theta/2)\\
e^{i\phi} \sin(\theta/2) & e^{i(\theta+\delta)} \cos(\theta/2)
\end{pmatrix}
例えば、Hゲートは θ = π/2、φ = 0、λ = π のときの Uゲートの特別な場合です。
パラメータ θ、φ、λ の値は、0(を含む)から 4π(を含まない)までの範囲を取り得ます。
Uゲート
Uゲートは任意の量子ビットに適用できます。
量子ビット quantum_register[index] にパラメータ theta、phi、lambda を持つ Uゲートを適用するには、次の構文を使用します。
U(theta, phi, lambda) quantum_register[index]; 注意: U は組み込みゲートであるため、u は予約語です。
例
以下は、量子レジスタ qubits の最初の量子ビットに、パラメータ θ = π/2、φ = 0、λ = π で Uゲートを適用する例です。これらのパラメータで Uゲートを適用することは、その量子ビットに Hゲートを適用することと等価です。
OPENQASM 2.0;
include "qelib1.inc";
// Define quantum registers
qreg qubits[1];
// Applying H gate on the first Qubit of Quantum Register
u(pi/2, 0, pi) qubits[0];
量子レジスタへの Uゲート
特定のパラメータの組を持つ Uゲートを、量子レジスタのすべての量子ビットに一度に適用することも可能です。
量子レジスタ quantum_register のすべての量子ビットに、パラメータ theta、phi、lambda を持つ Uゲートを一度に適用するには、次の構文を使用します。
u(theta, phi, lambda) quantum_register;
例
以下は、量子レジスタ qubits のすべての量子ビットに、パラメータ θ = π/2、φ = 0、λ = π で Uゲートを適用する例です。実質的には、量子レジスタ qubits のすべての量子ビットに Hゲートを適用しています。
// Applying H gate on all Qubits of the Quantum Register
u(pi/2, 0, pi) qubits;