Skip to content

量子门理论 ​

深入探讨量子门理论,包括通用门集、Clifford 层次结构、门分解和 Solovay-Kitaev 定理。本指南将理论基础与 pyqpanda3 提供的门实现联系起来。


量子门作为幺正算符 ​

作用于 n 个量子比特的量子门表示为 2n×2n 的幺正矩阵(Unitary Matrix) U,满足:

U†U=UU†=I

其中 U† 是 U 的共轭转置(伴随矩阵)。幺正性保证了:

  • 概率守恒:⟨ψ′|ψ′⟩=⟨ψ|U†U|ψ⟩=⟨ψ|ψ⟩=1
  • 操作可逆:给定 |ψ′⟩=U|ψ⟩,可以恢复 |ψ⟩=U†|ψ′⟩
  • 变换是线性的:量子力学是线性的,因此所有门操作都是态矢量上的线性变换

pyqpanda3 中的门操作 ​

pyqpanda3 中的每个 QGate 对象都支持以下源自幺正性的基本操作:

操作方法数学含义
伴随(dagger)gate.dagger()U↦U†(逆门)
幂次gate.power(k)U↦Uk(重复施加)
控制gate.control(qubit)U↦CU=|0⟩⟨0|⊗I+|1⟩⟨1|⊗U
矩阵gate.matrix()返回幺正矩阵 U
mermaid
graph LR
    U[QGate U] -->|dagger| Ud[U†]
    U -->|power k| Uk[U^k]
    U -->|control| CU[CU]
    U -->|matrix| M[Matrix repr.]
    Ud -->|dagger| U
    CU -->|clear_control| U

单量子比特门 ​

Pauli 门 ​

三个 Pauli 门是基本的单量子比特操作。它们与恒等门一起构成了单量子比特的 Pauli 群(Pauli Group)。

X 门(NOT / 比特翻转):

X=(0110),X|0⟩=|1⟩,X|1⟩=|0⟩

X 门翻转计算基态,类似于经典的 NOT 门。

Y 门:

Y=(0−ii0),Y|0⟩=i|1⟩,Y|1⟩=−i|0⟩

Y 门同时实现比特翻转和相位翻转:Y=iXZ。

Z 门(相位翻转):

Z=(100−1),Z|0⟩=|0⟩,Z|1⟩=−|1⟩

Z 门翻转 |1⟩ 的相位,同时保持 |0⟩ 不变。

恒等门(Identity Gate):

I=(1001)

恒等门保持状态不变。它常用于填充线路和表示空闲量子比特。

Pauli 群性质:Pauli 矩阵满足 X2=Y2=Z2=I 和反对易关系 {X,Y}={Y,Z}={Z,X}=0。

Hadamard 门 ​

Hadamard 门创建等概率叠加,是大多数量子算法的核心:

H=12(111−1)H|0⟩=|0⟩+|1⟩2=|+⟩,H|1⟩=|0⟩−|1⟩2=|−⟩

关键性质:

  • H=12(X+Z),连接 X 基和 Z 基
  • H2=I(自逆)
  • HXH=Z 和 HZH=X(基变换)
  • 从 {|0⟩,|1⟩} 创建 {|+⟩,|−⟩} Hadamard 基

相位门 ​

相位门在 |0⟩ 和 |1⟩ 之间引入相对相位:

S 门(相位门,Z):

S=(100i)=Z1/2

T 门(Z4):

T=(100eiπ/4)=Z1/4

P 门(通用相位):

P(ϕ)=(100eiϕ)

注意:P(π/2)=S,P(π/4)=T。

S1、X1、Y1、Z1 门(平方根变体):

S†=S−1=(100−i)X1=12(1−i−i1)=e−iπX/4=RX(π/2)Y1=12(1−111)=e−iπY/4=RY(π/2)Z1=(e−iπ/400eiπ/4)=e−iπZ/4=RZ(π/2)

旋转门 ​

旋转门提供围绕每个 Pauli 轴的连续参数单量子比特操作:

RX(θ)=e−iθX/2=(cos⁡(θ/2)−isin⁡(θ/2)−isin⁡(θ/2)cos⁡(θ/2))RY(θ)=e−iθY/2=(cos⁡(θ/2)−sin⁡(θ/2)sin⁡(θ/2)cos⁡(θ/2))RZ(θ)=e−iθZ/2=(e−iθ/200eiθ/2)

RPHI(θ,λ) 门是一种关于 Bloch 球赤道平面轴的通用旋转门:

RPHI(θ,λ)=RZ(λ)⋅RX(θ)⋅RZ(−λ)=(cos⁡(θ/2)−ie−iλsin⁡(θ/2)−ieiλsin⁡(θ/2)cos⁡(θ/2))

通用幺正门(U1、U2、U3、U4) ​

U 系列门提供逐渐通用的单量子比特幺正操作:

U1(λ) — 等价于 P(λ):

U1(λ)=(100eiλ)

U2(ϕ, λ):

U2(ϕ,λ)=12(1−eiλeiϕei(ϕ+λ))

U3(θ, ϕ, λ) — 最通用的单量子比特幺正操作(除全局相位外):

U3(θ,ϕ,λ)=(cos⁡(θ/2)−eiλsin⁡(θ/2)eiϕsin⁡(θ/2)ei(ϕ+λ)cos⁡(θ/2))

U4(θ, ϕ, λ, γ) — 包含全局相位的最通用单量子比特幺正操作:

U4(θ,ϕ,λ,γ)=eiθ⋅RZ(ϕ)⋅RY(λ)⋅RZ(γ)

其显式矩阵为:

U4(θ,ϕ,λ,γ)=(ei(θ−(ϕ+γ)/2)cos⁡(λ/2)−ei(θ−(ϕ−γ)/2)sin⁡(λ/2)ei(θ+(ϕ−γ)/2)sin⁡(λ/2)ei(θ+(ϕ+γ)/2)cos⁡(λ/2))

ZYZ 分解:任何单量子比特幺正操作都可以分解为 U=eiαRZ(β)RY(γ)RZ(δ),其中 α,β,γ,δ 为角度。这意味着 U3(或等价地,三个旋转门)足以实现任何单量子比特门。


双量子比特门 ​

CNOT(受控非门) ​

CNOT 门是最广泛使用的双量子比特门,对于创建纠缠态至关重要:

CNOT=|0⟩⟨0|⊗I+|1⟩⟨1|⊗X=(1000010000010010)

当控制量子比特为 |1⟩ 时,目标量子比特被翻转。CNOT 门可以从直积态创建 Bell 态:

CNOT⋅(H⊗I)|00⟩=|00⟩+|11⟩2

CZ(受控 Z 门) ​

CZ=|0⟩⟨0|⊗I+|1⟩⟨1|⊗Z=(100001000010000−1)

CZ 门是对称的 — 控制和目标量子比特可以互换。当两个量子比特都为 |1⟩ 时,它施加 −1 的相位。

受控旋转门 ​

pyqpanda3 提供旋转门的受控变体:

  • CP(ϕ):受控相位门 — 当控制比特为 |1⟩ 时对目标施加 P(ϕ)
  • CRX(θ):受控 RX 旋转
  • CRY(θ):受控 RY 旋转
  • CRZ(θ):受控 RZ 旋转

参数化双量子比特旋转门 ​

这些对称的双量子比特门由 Pauli 张量积的指数定义:

RXX(θ)=e−iθX⊗X/2RYY(θ)=e−iθY⊗Y/2RZZ(θ)=e−iθZ⊗Z/2RZX(θ)=e−iθZ⊗X/2

这些门在变分量子算法和量子模拟中尤为重要(例如,Ising 模型的 Trotter 化时间演化使用 RZZ 门)。

SWAP 系列 ​

SWAP:交换两个量子比特的状态。

SWAP=(1000001001000001)

分解:SWAP=CNOT12⋅CNOT21⋅CNOT12(3 个 CNOT 门)。

iSWAP:带有附加相位的 SWAP:

iSWAP=(100000i00i000001)

SQiSWAP(iSWAP):iSWAP 的平方根,是一些超导平台的原生门。

SQiSWAP=(100001/2i/200i/21/200001)

多量子比特门与特殊门 ​

Toffoli 门(CCX) ​

Toffoli 门是双重受控非门:

CCX|a,b,c⟩=|a,b,c⊕(a⋅b)⟩

当且仅当两个控制量子比特 a 和 b 都为 |1⟩ 时,目标量子比特 c 被翻转。Toffoli 门对经典可逆计算是通用的,在许多量子算法中起关键作用。

分解:Toffoli 门分解为 {CNOT, T, H} 时需要 6 个 CNOT 门和若干单量子比特门。

Molmer-Sorensen (MS) 门 ​

MS 门是离子阱量子计算机的原生双量子比特门:

MS(ϕ1,ϕ2)=e−i(ϕ1X⊗X+ϕ2Y⊗Y)/2

当 ϕ1=ϕ2=π/4 时的标准 MS 门可以从直积态生成最大纠缠态。

ORACLE 门 ​

pyqpanda3 支持任意幺正 oracle 门:

Uf|x⟩=(−1)f(x)|x⟩

其中 f:{0,1}n→{0,1} 是布尔函数。Oracle 是 Grover 搜索和 Deutsch-Jozsa 等算法的核心。

BARRIER、IDLE、ECHO ​

这些是用于线路控制的非幺正操作:

  • BARRIER:阻止优化过程中门越过屏障重排序。在转译过程中维持线路结构时必不可少。
  • IDLE:表示量子比特处于空闲状态(无操作)。
  • ECHO:用于动态解耦序列。

通用门集 ​

通用性定义 ​

一个量子门集 G 是通用的(Universal),如果可以使用 G 中的有限序列门以任意精度近似 n 个量子比特上的任何幺正操作。

更形式化地说,G 是通用的,如果对于任何幺正矩阵 U 和任何 ϵ>0,存在一个由 G 中门组成的线路 C,使得:

|U−C|<ϵ

其中 |⋅| 是算子范数。

标准通用门集: ​

最常见的通用门集是 {H,T,CNOT}:

  • H:创建叠加态,实现量子并行性
  • T:提供非 Clifford 相位旋转(进入 Clifford 层次结构的第三层)
  • CNOT:在量子比特之间创建纠缠

为什么这个集合是通用的:任何单量子比特幺正操作都可以用 {H,T} 近似(通过 Solovay-Kitaev 定理),CNOT 实现多量子比特操作。这种组合可以近似任意数量量子比特上的任何幺正操作。

其他通用门集 ​

实践中还有几个重要的替代通用门集:

通用门集备注
{H,S,T,CNOT}标准 Clifford+T 集合
{RX,RY,RZ,CNOT}基于旋转的集合(用于变分算法)
{U3,CNOT}IBM 的原生门集
{X,CNOT,T}替代 Clifford+T
{RZ,X,CNOT}部分超导平台使用
{RX,RZ,iSWAP}部分架构的原生门集
{RXX,RZ}部分离子阱平台的原生门集

通用性证明概要 ​

证明 {H,T,CNOT} 是通用的过程分为三步:

  1. 单量子比特通用性:任何单量子比特幺正操作可以写成 U=eiαRZ(β)RY(γ)RZ(δ)(ZYZ Euler 分解)。H 和 T 门可以以任意精度近似旋转。

  2. 二阶幺正分解:任何 n 量子比特幺正操作可以分解为二阶幺正操作的乘积(仅在 2D 子空间上非平凡作用的幺正操作)。

  3. 通过 CNOT 实现多量子比特分解:每个二阶幺正操作可以用 CNOT 门和单量子比特门实现。


Clifford 层次结构 ​

Clifford 层次结构(Clifford Hierarchy) 是一组嵌套的门集合,按其共轭作用如何变换 Pauli 算符来组织:

第 1 层:Pauli 群 C1 ​

C1=⟨X,Y,Z,I⟩/{±1,±i}

Pauli 群由所有 Pauli 矩阵的张量积与全局相位组成。单量子比特 Pauli 群有 4 个元素(模相位):{I,X,Y,Z}。

第 2 层:Clifford 群 C2 ​

C2={U:UPU†∈C1,∀P∈C1}

Clifford 群是 Pauli 群的正规化子(Normalizer) — 它通过共轭将 Pauli 算符映射为 Pauli 算符。n 量子比特上的 Clifford 群由以下门生成:

C2=⟨H,S,CNOT⟩

关键性质:

  • 可通过 Gottesman-Knill 定理 高效模拟:具有计算基输入和测量的 Clifford 线路可以在经典计算机上以多项式时间模拟
  • 足以进行量子纠错(稳定子码在 Clifford 框架中定义)
  • 不足以实现通用量子计算 — 仅 Clifford 线路可以被经典高效模拟

第 3 层及更高层 Ck ​

Ck={U:UPU†∈Ck−1,∀P∈C1}

T 门在 C3∖C2 中。层次结构的更高层提供具有越来越复杂的 Pauli 共轭模式的门。

mermaid
graph TD
    C1["Level 1: Pauli Group<br/>{I, X, Y, Z}"] --> C2["Level 2: Clifford Group<br/>{H, S, CNOT}"]
    C2 --> C3["Level 3: Clifford + T<br/>{H, S, CNOT, T}"]
    C3 --> Ck["Level k: ..."]

    C1 -.->|Gottesman-Knill| Sim["Classically simulable"]
    C2 -.->|Gottesman-Knill| Sim
    C3 -.->|Universal| Univ["Quantum advantage"]

    style C1 fill:#e3f2fd,stroke:#1565c0
    style C2 fill:#e3f2fd,stroke:#1565c0
    style C3 fill:#fff3e0,stroke:#e65100
    style Sim fill:#c8e6c9,stroke:#2e7d32
    style Univ fill:#fce4ec,stroke:#c62828

为什么非 Clifford 门能实现量子优势 ​

T 门(T=diag(1,eiπ/4))是最简单的非 Clifford 门。将 T 门添加到 Clifford 群中可以实现:

  1. 通用性:{H,S,CNOT,T} 是通用门集
  2. 非稳定子态:T 门创建稳定子形式之外的态(魔力态,Magic State)
  3. 量子加速:因式分解(Shor 算法)等问题需要非 Clifford 操作

T 门的资源开销通常是容错量子计算的瓶颈,因此引入了 T 计数(T-count)(T 门数量)作为关键线路度量。

魔力态蒸馏 ​

由于 T 门在容错设置中代价昂贵,常见方法是:

  1. 直接执行所有 Clifford 操作(在纠错码中代价较低)
  2. 通过蒸馏协议离线制备高保真"魔力态" |T⟩=T|+⟩
  3. 使用门传送注入 T 门:T=H⋅CNOT⋅(I⊗|T⟩)

这将问题分为 Clifford 操作(可高效实现)和魔力态制备(资源密集型)。


门分解 ​

Euler 分解(单量子比特) ​

任何单量子比特幺正操作都可以用三个旋转分解。ZYZ 分解为:

U=eiαRZ(β)RY(γ)RZ(δ)

其中 α 是全局相位,(β,γ,δ) 是 Euler 角。

ZXZ 分解是替代方案:

U=eiαRZ(β)RX(γ)RZ(δ)

pyqpanda3 的 U3 门直接实现 ZYZ 分解:

U3(θ,ϕ,λ)=RZ(ϕ)⋅RY(θ)⋅RZ(λ)

KAK 分解(双量子比特) ​

任何双量子比特幺正操作都可以用 KAK(Cartan)分解:

U=(A1⊗A2)⋅exp⁡(i∑jcjσj⊗σj)⋅(A3⊗A4)

其中 A1,A2,A3,A4 是单量子比特幺正操作,(c1,c2,c3) 是"相互作用系数"(Cartan 坐标)。

标准双量子比特分解需要:

  • 3 个 CNOT 门用于任意双量子比特幺正操作
  • 2 个 CNOT 门用于一些特殊情况(如受控幺正)
  • 1 个 CNOT 门用于有限类别(如 CNOT、CZ、SWAP)

量子 Shannon 分解 ​

对于 n 量子比特线路,量子 Shannon 分解(QSD) 递归地分解幺正操作:

  1. 将 n 量子比特幺正操作拆分为 n−1 量子比特上的受控操作
  2. 递归分解受控操作
  3. 基本情况:单量子比特 Euler 分解

QSD 对 n 量子比特幺正操作需要 916⋅4n−32⋅2n 个 CNOT 门。

在 pyqpanda3 中使用 decompose() ​

pyqpanda3 提供 decompose() 函数将线路和幺正操作分解为基本门集:

python
from pyqpanda3.core import QProg, QCircuit
from pyqpanda3.transpilation import decompose

# 将线路分解为 {CNOT, RZ, X1}
prog = QProg()
# ... 构建线路 ...
result = decompose(prog, basic_gates=["CNOT", "RZ", "X1"])

# 分解幺正矩阵
import numpy as np
matrix = np.array([[1, 0, 0, 0],
                   [0, 1, 0, 0],
                   [0, 0, 0, 1],
                   [0, 0, 1, 0]], dtype=complex)
circuit = decompose(matrix, qubits=[0, 1], basic_gates=["CNOT", "U3"])

完整 API 参考请参见 decompose。


Solovay-Kitaev 定理 ​

陈述 ​

Solovay-Kitaev 定理保证任何单量子比特门都可以使用有限通用门集高效近似:

定理(Solovay-Kitaev):设 G 是 SU(2) 中生成稠密子群的有限门集。那么对于任何 U∈SU(2) 和任何 ϵ>0,存在一个由 G 中门组成的线路 C,使得 |U−C|≤ϵ,且 C 的长度为 O(logc⁡(1/ϵ)),其中 c≈3.97。

近似界限 ​

该定理意味着以精度 ϵ 近似幺正操作所需的门数按多项式对数尺度增长:

门数=O(log3.97⁡(1ϵ))

对于 Clifford+T 的特定情况:

T 计数=O(log⁡(1ϵ))(使用最优合成)

这比朴素网格搜索高效得多,后者需要 O(1/ϵ) 个门。

实际意义 ​

  1. 无精度损失:我们可以仅以多项式开销就指数级精度近似任何门
  2. Clifford+T 编译:T 门是唯一需要的非 Clifford 门;开销按 O(log⁡(1/ϵ)) 缩放
  3. 门集之间的权衡:更丰富的门集(例如包含中等精度旋转门)可以减少近似开销

Solovay-Kitaev 算法 ​

SK 算法递归地构造近似:

SK(U, n):
    if n == 0:
        return U 的最佳网格近似
    else:
        U_prev = SK(U, n-1)
        Δ = U · U_prev†  (误差幺正)
        分解 Δ = V · W (群换位子)
        V_approx = SK(V, n-1)
        W_approx = SK(W, n-1)
        return U_prev · V_approx · W_approx · V_approx† · W_approx†

每次递归将近似误差减少一个常数因子。


总结:pyqpanda3 中的门分类 ​

mermaid
graph TD
    All["所有 pyqpanda3 门"] --> SQ["单量子比特门"]
    All --> TQ["双量子比特门"]
    All --> MQ["多量子比特门 / 特殊门"]

    SQ --> Pauli["Pauli: I, X, Y, Z"]
    SQ --> Had["Hadamard: H"]
    SQ --> Phase["相位: S, T, P, S†, X1, Y1, Z1"]
    SQ --> Rot["旋转: RX, RY, RZ, RPHI"]
    SQ --> Gen["通用: U1, U2, U3, U4"]

    TQ --> Ctrl["受控: CNOT, CZ, CU"]
    TQ --> CRL["受控旋转: CP, CRX, CRY, CRZ"]
    TQ --> Swp["SWAP 系列: SWAP, iSWAP, SQiSWAP"]
    TQ --> Para["参数化: RXX, RYY, RZZ, RZX"]

    MQ --> Toff["Toffoli (CCX)"]
    MQ --> MSg["MS (Molmer-Sorensen)"]
    MQ --> Ora["ORACLE"]
    MQ --> Bar["BARRIER, IDLE, ECHO"]

    Pauli --> Cliff["Clifford (第 2 层)"]
    Had --> Cliff
    Phase --> Cliff
    Ctrl --> Cliff

    Gen --> Univ["通用 (第 3 层+)"]
    Rot --> Univ
    Para --> Univ
    Toff --> Univ

    style Cliff fill:#e3f2fd,stroke:#1565c0
    style Univ fill:#fff3e0,stroke:#e65100

另请参阅 ​

Released under the MIT License.