基本量子门¶
基本量子门实现单量子比特和多量子比特的标准量子门操作。
概述¶
算子 |
操作 |
幺正类 |
|---|---|---|
|
Pauli-X(比特翻转) |
SelfAdjoint |
|
Pauli-Y |
SelfAdjoint |
|
Pauli-Z(相位翻转) |
SelfAdjoint |
|
S 门(π/2 相位) |
SelfAdjoint |
|
T 门(π/4 相位) |
SelfAdjoint |
|
任意相位 e^{iλ} |
BaseOperator |
|
X 轴旋转 |
SelfAdjoint |
|
Y 轴旋转 |
SelfAdjoint |
|
Z 轴旋转 |
SelfAdjoint |
|
√X 门 |
SelfAdjoint |
|
通用单量子比特门(2 参数) |
BaseOperator |
|
通用单量子比特门(3 参数) |
BaseOperator |
类型约束¶
所有量子门要求:
寄存器类型:``Boolean``(单量子比特门)
位索引:必须在寄存器大小范围内 [0, size)
# 正确:Boolean 类型用于单量子比特门
ps.System.add_register("qubit", ps.Boolean, 1)
ps.Xgate_Bool("qubit", 0)(state)
# 错误:位索引超出范围
# ps.Xgate_Bool("qubit", 1)(state) # 抛出异常!
---
Pauli 门¶
Xgate_Bool(Pauli-X / NOT)¶
操作: 比特翻转 |0⟩ ↔ |1⟩
矩阵:
\[\begin{split}X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\end{split}\]
import pysparq as ps
ps.System.clear()
ps.System.add_register("q", ps.Boolean, 1)
state = ps.SparseState()
# 初始 |q=0⟩
ps.Xgate_Bool("q", 0)(state)
# |q=1⟩
# 再次应用恢复原状态(自伴)
ps.Xgate_Bool("q", 0)(state)
# |q=0⟩
Ygate_Bool(Pauli-Y)¶
矩阵:
\[\begin{split}Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}\end{split}\]
ps.Ygate_Bool("q", 0)(state)
Zgate_Bool(Pauli-Z)¶
操作: 相位翻转 |1⟩ → -|1⟩
矩阵:
\[\begin{split}Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}\end{split}\]
ps.Zgate_Bool("q", 0)(state)
---
相位门¶
Sgate_Bool(S 门)¶
操作: 相位旋转 π/2
矩阵:
\[\begin{split}S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}\end{split}\]
ps.Sgate_Bool("q", 0)(state)
Tgate_Bool(T 门)¶
操作: 相位旋转 π/4
矩阵:
\[\begin{split}T = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix}\end{split}\]
ps.Tgate_Bool("q", 0)(state)
Phase_Bool(任意相位)¶
操作: 相位旋转 e^{iλ}
Dagger: 相位旋转 e^{-iλ}
# 相位旋转 π/3
op = ps.Phase_Bool("q", 0, np.pi / 3)
op(state)
# 撤销
op.dag(state)
---
旋转门¶
RXgate_Bool(X 轴旋转)¶
矩阵:
\[\begin{split}R_X(\theta) = \begin{pmatrix} \cos\frac{\theta}{2} & -i\sin\frac{\theta}{2} \\ -i\sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{pmatrix}\end{split}\]
import numpy as np
# X 轴旋转 π/2
ps.RXgate_Bool("q", np.pi / 2)(state)
RYgate_Bool(Y 轴旋转)¶
矩阵:
\[\begin{split}R_Y(\theta) = \begin{pmatrix} \cos\frac{\theta}{2} & -\sin\frac{\theta}{2} \\ \sin\frac{\theta}{2} & \cos\frac{\theta}{2} \end{pmatrix}\end{split}\]
ps.RYgate_Bool("q", np.pi / 2)(state)
RZgate_Bool(Z 轴旋转)¶
矩阵:
\[\begin{split}R_Z(\theta) = \begin{pmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{pmatrix}\end{split}\]
ps.RZgate_Bool("q", np.pi / 2)(state)
SXgate_Bool(√X 门)¶
操作: X^{1/2}
ps.SXgate_Bool("q", 0)(state)
---
通用门¶
U2gate_Bool(2 参数通用门)¶
矩阵:
\[\begin{split}U_2(\phi, \lambda) = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & -e^{i\lambda} \\ e^{i\phi} & e^{i(\phi+\lambda)} \end{pmatrix}\end{split}\]
U3gate_Bool(3 参数通用门)¶
矩阵:
\[\begin{split}U_3(\theta, \phi, \lambda) = \begin{pmatrix} \cos\frac{\theta}{2} & -e^{i\lambda}\sin\frac{\theta}{2} \\ e^{i\phi}\sin\frac{\theta}{2} & e^{i(\phi+\lambda)}\cos\frac{\theta}{2} \end{pmatrix}\end{split}\]
import numpy as np
op = ps.U3gate_Bool("q", np.pi/4, np.pi/2, 0)
op(state)
# 撤销
op.dag(state)
---
其他门¶
Rot_Bool(通用旋转)¶
操作: 应用任意 2×2 幺正矩阵
import numpy as np
# 定义 2x2 矩阵
matrix = np.array([
[np.cos(np.pi/4), -np.sin(np.pi/4)],
[np.sin(np.pi/4), np.cos(np.pi/4)]
])
ps.Rot_Bool("q", matrix)(state)
Reflection_Bool(反射门)¶
操作: 反射操作(Grover 算法中的扩散算子)