Skip to content

噪声模型理论 ​

量子噪声建模的理论基础,包括 CPTP 映射、Kraus 表示、量子误差通道以及 NISQ 设备的实际噪声考虑。本指南将数学形式化与 pyqpanda3 的噪声仿真能力联系起来。


噪声建模的必要性 ​

真实的量子计算机在噪声环境中运行。与经典比特不同,量子比特是脆弱的量子系统,会通过与环境的相互作用而失去其量子特性。噪声建模对于以下方面至关重要:

  1. 精确仿真:在运行实验之前预测真实硬件行为
  2. 错误缓解:设计降低噪声影响的策略
  3. 错误纠正:理解噪声以构建合适的量子纠错码
  4. 基准测试:将硬件性能与理论噪声模型进行比较

在 pyqpanda3 中,NoiseModel 类和相关的误差通道为含噪声仿真提供了完整的框架。


量子操作作为映射 ​

密度矩阵形式化 ​

在讨论噪声之前,我们需要用于描述量子态的密度矩阵形式化:

纯态(Pure State):可以写成 ket |ψ⟩ 的态。其密度矩阵为:

ρ=|ψ⟩⟨ψ|

混合态(Mixed State):纯态的统计混合 {pi,|ψi⟩}:

ρ=∑ipi|ψi⟩⟨ψi|

其中 pi≥0 且 ∑ipi=1。

有效密度矩阵的性质:

  • 厄米性(Hermitian):ρ=ρ†
  • 半正定性:ρ≥0(所有特征值 ≥0)
  • 迹为 1:Tr(ρ)=1

纯态与混合态 ​

当且仅当 Tr(ρ2)=1 时态为纯态,Tr(ρ2)<1 时为混合态。纯度(Purity) γ=Tr(ρ2) 量化态的"纯度":

  • γ=1:纯态
  • 1/d<γ<1:混合态(d 是希尔伯特空间维数)
  • γ=1/d:最大混合态 ρ=I/d

pyqpanda3 的 DensityMatrix 类提供了 purity() 方法用于此计算。


完全正保迹(CPTP)映射 ​

定义 ​

量子通道(噪声模型)在数学上由完全正保迹(Completely Positive Trace-Preserving, CPTP)映射 E 描述,它将输入密度矩阵变换为输出密度矩阵:

E:ρin↦ρout

两个要求是:

完全正性(CP):对于任意维度的任意辅助系统 dA,扩展映射 (E⊗IdA) 将正算符映射为正算符:

ρ≥0⟹(E⊗I)(ρ)≥0∀ 扩展

完全正性比单纯正性更强 — 一个正但不完全正的映射在应用于纠缠态的子系统时可能产生非物理结果。

保迹性(TP):密度矩阵的迹被保持:

Tr(E(ρ))=Tr(ρ)=1

这确保总概率守恒。

为什么是 CPTP? ​

CPTP 映射是量子噪声的正确数学框架,因为:

  1. 物理性:CPTP 映射恰好是自然界中可以发生的变换集合(根据 Stinespring 扩张定理,任何 CPTP 映射都可以通过更大系统上的幺正演化实现)
  2. 可组合性:两个 CPTP 映射的组合也是 CPTP 的 — 噪声模型可以链接
  3. 凸性:CPTP 映射的概率混合也是 CPTP 的 — 不同噪声源正确组合

Stinespring 扩张 ​

系统 HS 上的每个 CPTP 映射 E 都可以实现为更大系统上的幺正演化:

E(ρ)=TrE[USE(ρ⊗|e0⟩⟨e0|)USE†]

其中 USE 是联合系统-环境希尔伯特空间 HS⊗HE 上的幺正操作,|e0⟩ 是固定的环境态,TrE 是对环境的偏迹。

这意味着所有物理噪声都可以理解为与未观测环境的幺正演化 — 随机性来自对(忽略)环境自由度的迹运算。

mermaid
graph LR
    subgraph "Stinespring 扩张"
        S["系统 ρ"] --> US["U_SE"]
        E["环境 |e₀⟩"] --> US
        US --> SE["系统 ⊗ 环境"]
        SE --> TrE["Tr_E (求偏迹)"]
        TrE --> Out["ρ_out = ℰ(ρ)"]
    end

    style S fill:#e3f2fd,stroke:#1565c0
    style E fill:#fff3e0,stroke:#e65100
    style Out fill:#c8e6c9,stroke:#2e7d32

Kraus 表示 ​

算符和表示 ​

CPTP 映射最直观的表示是 Kraus(算符和)表示:

E(ρ)=∑iKiρKi†

其中 Kraus 算符 {Ki} 满足完备关系:

∑iKi†Ki=I

这个条件确保保迹性:

Tr(E(ρ))=Tr(∑iKiρKi†)=Tr(ρ∑iKi†Ki)=Tr(ρ)=1

Kraus 表示的性质 ​

  1. 非唯一性:同一通道可以有不同的 Kraus 表示,它们通过幺正混合关联:Ki′=∑juijKj,其中 U=(uij) 是幺正矩阵。

  2. 最小数量:所需 Kraus 算符的最小数量是通道的 Choi 秩。对于量子比特通道,该值在 1(幺正)到 4(完全去极化)之间。

  3. 单个 Kraus 算符:如果只有一个 Kraus 算符,则通道是幺正的:E(ρ)=UρU†。

常见通道的 Kraus 算符 ​

通道Kraus 算符数量Kraus 算符
幺正(U)1K0=U
比特翻转2K0=1−pI, K1=pX
相位翻转2K0=1−pI, K1=pZ
去极化4K0=1−3p/4I, K1,2,3=p/4{X,Y,Z}
振幅阻尼2K0=(1001−γ), K1=(0γ00)
相位阻尼2K0=(1001−λ), K1=(000λ)

pyqpanda3 的 quantum_info 模块中的 Kraus 类以此形式表示通道。通道还可以表示为 Chi、Choi、SuperOp 或 PTM,它们之间可以相互转换。


量子误差通道 ​

去极化通道 ​

去极化通道是最常用的噪声模型。以概率 p,态被替换为最大混合态 I/2:

Edepol(ρ)=(1−p)ρ+pI2

在 Pauli 基中展开的等价形式为:

Edepol(ρ)=(1−3p4)ρ+p4(XρX+YρY+ZρZ)

Kraus 算符(4 个算符):

K0=1−3p4I,K1=p4X,K2=p4Y,K3=p4Z

性质:

  • 对称性:平等对待三个轴
  • 均匀缩小 Bloch 矢量:r→→(1−p)r→
  • 常用作最坏情况噪声模型
  • p=1 给出完全随机态 I/2

振幅阻尼通道 ​

振幅阻尼通道建模能量耗散 — 激发态 |1⟩ 衰变到基态 |0⟩:

EAD(ρ)=K0ρK0†+K1ρK1†

Kraus 算符:

K0=(1001−γ),K1=(0γ00)

其中 γ∈[0,1] 是阻尼概率(与 T1 弛豫时间相关)。

对基态的作用:

|0⟩⟨0|→|0⟩⟨0|(基态不变)|1⟩⟨1|→(1−γ)|1⟩⟨1|+γ|0⟩⟨0|(衰变到基态)

性质:

  • 非幺正的:E(I)≠I(通道不保持恒等)
  • 驱动态趋向 |0⟩
  • 建模自发辐射、T1 衰变
  • γ=0:恒等(无阻尼);γ=1:完全弛豫到 |0⟩

与 T1 时间的关系:对于持续时间为 tg 的门:

γ=1−e−tg/T1

相位阻尼(退相干)通道 ​

相位阻尼通道建模相位相干性损失,不涉及能量损失:

EPD(ρ)=K0ρK0†+K1ρK1†

Kraus 算符:

K0=(1001−λ),K1=(000λ)

其中 λ∈[0,1] 是退相位概率。

使用 Pauli Z 的等价形式:

EPD(ρ)=(1−p2)ρ+p2ZρZ

其中 p=1−e−tg/Tϕ。

性质:

  • 幺正的:E(I)=I
  • 保持计算基:对角元素不变
  • 抑制非对角元素(相干性):ρ01→1−λρ01
  • 建模 T2 退相干
  • λ=0:恒等;λ=1:完全退相位(经典混合)

与 T2 时间的关系:

1T2=12T1+1Tϕ

其中 Tϕ 是纯退相位时间。

比特翻转通道 ​

比特翻转通道随机施加 X 门:

EBF(ρ)=(1−p)ρ+pXρX

Kraus 算符:K0=1−pI, K1=pX

Bloch 球作用:以概率 p 翻转 z 分量:rz→(1−2p)rz, ry→(1−2p)ry, rx 不变。

关联:等价于 Hadamard 基中的相位翻转:H⋅EBF⋅H=EPF。

相位翻转通道 ​

相位翻转通道随机施加 Z 门:

EPF(ρ)=(1−p)ρ+pZρZ

Kraus 算符:K0=1−pI, K1=pZ

Bloch 球作用:rz 不变, rx→(1−2p)rx, ry→(1−2p)ry。

比特-相位翻转通道 ​

比特-相位翻转通道随机施加 Y 门(同时进行比特翻转和相位翻转):

EBPF(ρ)=(1−p)ρ+pYρY

Kraus 算符:K0=1−pI, K1=pY

注意:Y=iXZ,因此这是比特翻转和相位翻转的组合(带有一个附加的全局相位)。

Pauli 噪声通道 ​

通用 Pauli 噪声通道以各自的概率随机施加 Pauli 算符:

EPauli(ρ)=pIρ+pXXρX+pYYρY+pZZρZ

其中 pI+pX+pY+pZ=1。

这是最通用的单量子比特 Pauli 通道,包括比特翻转、相位翻转和去极化作为特例。

热弛豫通道 ​

热弛豫通道建模 T1(振幅阻尼)和 T2(退相位)过程在门持续时间 t 内的综合效应:

Ethermal(ρ)=E0ρE0†+E1ρE1†+E2ρE2†

其中 Kraus 算符取决于弛豫时间 T1、T2 和门时间 t:

preset=1−e−t/T1pdephasing=1−e−t/T2

此通道对于超导量子比特硬件的真实仿真至关重要。

总结:误差通道比较 ​

通道参数幺正?物理来源
去极化p∈[0,1]是通用噪声
振幅阻尼γ∈[0,1]否T1 弛豫
相位阻尼λ∈[0,1]是T2 退相位
比特翻转p∈[0,0.5]是X 错误
相位翻转p∈[0,0.5]是Z 错误
比特-相位翻转p∈[0,0.5]是Y 错误
Pauli 噪声pI,pX,pY,pZ是通用 Pauli 错误
热弛豫T1,T2,t否综合弛豫
mermaid
graph TD
    All["所有误差通道"] --> Unital["幺正通道"]
    All --> NonUnital["非幺正通道"]

    Unital --> PauliCh["Pauli 通道"]
    PauliCh --> BF["比特翻转"]
    PauliCh --> PF["相位翻转"]
    PauliCh --> BPF["比特-相位翻转"]
    PauliCh --> Depol["去极化"]
    PauliCh --> General["通用 Pauli"]

    Unital --> PD["相位阻尼"]

    NonUnital --> AD["振幅阻尼"]
    NonUnital --> TR["热弛豫"]
    AD --> TR

    style Unital fill:#e3f2fd,stroke:#1565c0
    style NonUnital fill:#fff3e0,stroke:#e65100

量子通道表示 ​

单个量子通道可以用多种数学等价的方式表示。pyqpanda3 支持五种表示,均可相互转换:

Kraus 表示 ​

E(ρ)=∑iKiρKi†

最直观的形式;直接展示物理操作。

超算符(Liouville)表示 ​

通道表示为作用在矢量化密度矩阵上的 d2×d2 矩阵 S:

vec(E(ρ))=S⋅vec(ρ)

其中 vec(⋅) 将矩阵列堆叠。在 pyqpanda3 中,这是 SuperOp 类。

Chi 矩阵表示 ​

通道在 Pauli 基中展开:

E(Pj)=∑iχijPi

χ 矩阵(不要与 Choi 矩阵混淆)是基于 Pauli 基的表示。在 pyqpanda3 中,这是 Chi 类。

Choi 矩阵表示 ​

Choi 矩阵定义为:

J(E)=(E⊗I)(|Ω⟩⟨Ω|)

其中 |Ω⟩=∑i|i⟩⊗|i⟩ 是最大纠缠态。当且仅当 J(E)≥0(半正定)且 Tr1(J)=I(偏迹条件)时,通道为 CPTP 的。在 pyqpanda3 中,这是 Choi 类。

Pauli 传输矩阵(PTM) ​

PTM 表示通道对广义 Pauli 基的作用:

Rij=1dTr(PiE(Pj))

其中 {Pi} 是归一化的 Pauli 算符。对于保持厄米性的通道,PTM 是实矩阵。在 pyqpanda3 中,这是 PTM 类。

表示之间的转换 ​

在 pyqpanda3 中,所有五种表示都可以通过从一个构造另一个来相互转换:

mermaid
graph TD
    Kraus["Kraus"]
    SuperOp["SuperOp"]
    Chi["Chi"]
    Choi["Choi"]
    PTM["PTM"]

    Kraus -->|constructor| SuperOp
    Kraus -->|constructor| Chi
    Kraus -->|constructor| Choi
    Kraus -->|constructor| PTM

    SuperOp -->|constructor| Kraus
    SuperOp -->|constructor| Chi
    SuperOp -->|constructor| Choi
    SuperOp -->|constructor| PTM

    Chi -->|constructor| Kraus
    Chi -->|constructor| SuperOp
    Chi -->|constructor| Choi
    Chi -->|constructor| PTM

    Choi -->|constructor| Kraus
    Choi -->|constructor| SuperOp
    Choi -->|constructor| Chi
    Choi -->|constructor| PTM

    PTM -->|constructor| Kraus
    PTM -->|constructor| SuperOp
    PTM -->|constructor| Chi
    PTM -->|constructor| Choi

    style Kraus fill:#e3f2fd,stroke:#1565c0
    style SuperOp fill:#c8e6d4,stroke:#2e7d32
    style Chi fill:#fff3e0,stroke:#e65100
    style Choi fill:#f3e5f5,stroke:#9c27b0
    style PTM fill:#ffebee,stroke:#c62828

NISQ 设备中的噪声 ​

NISQ 噪声的特征 ​

当前的含噪声中等规模量子(NISQ)设备表现出多种类型的噪声:

1. 门误差:不完美的门实现导致幺正误差和过度/不足旋转:

  • 单量子比特门误差率:∼10−4 到 10−3
  • 双量子比特门误差率:∼10−3 到 10−2
  • 通常建模为去极化或相干旋转误差

2. 测量误差:读出(SPAM — 态制备和测量)误差:

  • 分配误差率:∼1% 到 5%
  • P(读出 0|态 1) 和 P(读出 1|态 0) 可能不对称
  • 建模为经典混淆矩阵

3. 退相干:量子比特随时间失去量子信息:

  • T1(弛豫时间):能量衰变,通常 20μs 到 200μs
  • T2(退相位时间):相位相干性损失,通常 10μs 到 150μs
  • 门时间:∼20ns 到 200ns

4. 串扰:操作期间量子比特之间不需要的耦合:

  • 频谱串扰:同时门操作相互干扰
  • 常开耦合:相邻量子比特之间的残余相互作用

5. 泄漏:量子比特态逃逸出计算子空间:

  • 在 |2⟩ 或更高能级上的布居数
  • 对超导 transmon 量子比特尤其成问题

使用 pyqpanda3 建模噪声 ​

pyqpanda3 的 NoiseModel 类支持为真实仿真配置噪声:

python
from pyqpanda3.core import CPUQVM, NoiseModel, QProg, QGate
from pyqpanda3.core import H, CNOT, measure, depolarizing_error, GateType

# 创建噪声模型
noise = NoiseModel()

# 为所有单量子比特门添加去极化噪声
error_1q = depolarizing_error(0.001)
noise.add_all_qubit_quantum_error(error_1q, GateType.H)

# 为所有双量子比特门添加去极化噪声
error_2q = depolarizing_error(0.01)
noise.add_all_qubit_quantum_error(error_2q, GateType.CNOT)

# 运行含噪声仿真
qvm = CPUQVM()
prog = QProg()
prog << H(0) << CNOT(0, 1) << measure([0, 1], [0, 1])
qvm.run(prog, shots=1000, model=noise)
result = qvm.result()

噪声感知线路设计 ​

设计抗噪声线路的原则:

  1. 最小化双量子比特门:它们的误差率最高
  2. 最小化线路深度:误差随每个时间步累积
  3. 使用噪声感知转译:将线路映射到具有最佳连接性和相干性的量子比特
  4. 利用对称性:设计噪声可以抵消的线路(如动态解耦)

错误缓解技术 ​

错误缓解在不完全纠错的情况下减少噪声的影响:

零噪声外推(ZNE):

  • 在多个噪声水平运行线路(通过折叠门来放大噪声)
  • 将结果外推到零噪声极限
  • 通常使用线性或指数拟合

概率错误消除(PEC):

  • 表征噪声通道 E
  • 概率性地施加逆通道 E−1
  • 以增加采样为代价产生无偏估计

测量误差缓解:

  • 表征读出误差矩阵 M
  • 将 M−1 应用于观测概率分布
  • 需要为每个测量基进行校准运行

旋转读出误差消除(TREX):

  • 在测量前随机翻转量子比特(旋转)
  • 将相关的读出误差转换为更简单的对角形式
  • 更容易求逆

数学总结 ​

关键关系 ​

CPTP 映射⟷Kraus 算符⟷Choi 矩阵⟷SuperOp⟷PTM

Bloch 球图像 ​

对于单量子比特通道,CPTP 映射对 Bloch 矢量 r→ 的作用为仿射变换:

r→′=Mr→+t→

其中 M 是 3×3 实矩阵,t→ 是平移矢量。

通道类型Mt→
去极化(p)(1−p)I0→
比特翻转(p)diag(1,1−2p,1−2p)0→
振幅阻尼(γ)(1−γ0001−γ0001−γ)(0,0,γ)
相位阻尼(λ)diag(1−λ,1−λ,1)0→

幺正通道(t→=0→)保持最大混合态,仅缩小/旋转 Bloch 球。非幺正通道(t→≠0→)同时平移 Bloch 球,驱动它趋向一个优先态。


另请参阅 ​

Released under the MIT License.