common.title

Docs
Quantum Circuit
TYTAN CLOUD

Quantum Apps

Quantum Business Magazine


Overview
Contact
Event
Project
Research

Terms of service (Web service)

Terms of service (Quantum and ML Cloud service)

Privacy policy


Sign in
Sign up
common.title

量子ゲートとSU(2)

Yuichiro Minato

2025/09/27 00:07

2

1. 量子ビットと SU(2)

  • 1 量子ビットの状態は 2 次元複素ベクトル空間の正規化されたベクトル:

    |\psi\rangle = \alpha |0\rangle + \beta |1\rangle, \quad |\alpha|^2 + |\beta|^2 = 1
  • この空間に作用する変換のうち、確率を保存するのは ユニタリ演算子 U (U^\dagger U = I)

  • 特に、1量子ビットの演算は SU(2) の要素として表現できる

2. なぜ SU(2) なのか?

  • 一般の 2×2 ユニタリ行列は U(2) に属します。

  • ところが U(2) は次のように分解できます:

    U(2) \cong U(1) \times SU(2)
  • このうち U(1) 部分(グローバル位相) は観測に影響を与えません。

  • したがって、物理的に本質なのは SU(2) の部分です。

  • 結論:任意の1量子ビット操作は SU(2) の行列で表せる。

3. 具体例:基本ゲートと SU(2)

(a) パウリゲート

  • X, Y, Z は SU(2) の生成子:

    X = \begin{pmatrix}0 & 1 \\ 1 & 0\end{pmatrix},\quad Y = \begin{pmatrix}0 & -i \\ i & 0\end{pmatrix},\quad Z = \begin{pmatrix}1 & 0 \\ 0 & -1\end{pmatrix}
  • これらは回転演算子

    R_n(\theta) = e^{-i\frac{\theta}{2}\, \hat{n}\cdot \vec{\sigma}}

    の特殊な場合です(π回転)。

少しpythonで確認をしてみます。

import numpy as np
from scipy.linalg import expm

# パウリ行列
X = np.array([[0, 1], [1, 0]], dtype=complex)
Y = np.array([[0, -1j], [1j, 0]], dtype=complex)
Z = np.array([[1, 0], [0, -1]], dtype=complex)

# 回転演算子 R_n(theta) = exp(-i theta/2 * n・σ)
def rotation(n, theta):
    # n は単位ベクトル
    nx, ny, nz = n
    sigma = nx * X + ny * Y + nz * Z
    return expm(-1j * theta/2 * sigma)

theta = np.pi

# x軸回りのπ回転
Rx_pi = rotation([1,0,0], theta)
print("Rx(pi):")
print(Rx_pi)
print("X:\n", X)

# y軸回りのπ回転
Ry_pi = rotation([0,1,0], theta)
print("\nRy(pi):")
print(Ry_pi)
print("Y:\n", Y)

# z軸回りのπ回転
Rz_pi = rotation([0,0,1], theta)
print("\nRz(pi):")
print(Rz_pi)
print("Z:\n", Z)

答えは、

Rx(pi):
[[0.+0.j 0.-1.j]
 [0.-1.j 0.+0.j]]
X:
 [[0.+0.j 1.+0.j]
 [1.+0.j 0.+0.j]]

Ry(pi):
[[ 0.+0.j -1.+0.j]
 [ 1.+0.j  0.+0.j]]
Y:
 [[ 0.+0.j -0.-1.j]
 [ 0.+1.j  0.+0.j]]

Rz(pi):
[[6.123234e-17-1.j 0.000000e+00+0.j]
 [0.000000e+00+0.j 6.123234e-17+1.j]]
Z:
 [[ 1.+0.j  0.+0.j]
 [ 0.+0.j -1.+0.j]]

となりました。パウリ行列 = π 回転の回転演算子 × グローバル位相となっているのが確認できます。上記ではRθに-iをかけるとパウリ行列になっています。

(b) アダマールゲート (H)

  • Bloch 球で「X 軸と Z 軸の間の回転」を表す SU(2) 行列:

    H = \frac{1}{\sqrt{2}}\begin{pmatrix}1 & 1 \\ 1 & -1\end{pmatrix}

(c) 位相ゲート (S, T)

  • Z 軸周りの回転:

    S = \begin{pmatrix}1 & 0 \\ 0 & i\end{pmatrix} = R_z\!\left(\frac{\pi}{2}\right)
    T = \begin{pmatrix}1 & 0 \\ 0 & e^{i\pi/4}\end{pmatrix} = R_z\!\left(\frac{\pi}{4}\right)

4. Bloch 球と SU(2)

  • 1量子ビットの純粋状態は Bloch 球の表面の点として表せる。
  • SU(2) の作用は、Bloch 球上のベクトルを回転させる操作。
  • このとき「2π 回転で -1 倍、4π 回転で完全に戻る」というスピン1/2 の性質も Bloch 球で理解できる。

5. まとめ

  • 1量子ビットゲート = SU(2) の要素
  • 物理的に無意味なグローバル位相を除くと、U(2) の代わりに SU(2) で十分。
  • Pauli, Hadamard, Phase などの基本ゲートは、すべて SU(2) の具体例。
  • SU(2) の回転表現が、そのまま Bloch 球上の量子状態の操作と対応する。

© 2025, blueqat Inc. All rights reserved