Skip to content

量子信息理论 ​

量子信息理论基础,涵盖态表示、熵、保真度、距离度量和量子通道表示。本指南将理论形式化与 pyqpanda3 的 quantum_info 模块提供的类和函数联系起来。


量子态表示 ​

态矢量 ​

n 个量子比特的纯量子态(Pure Quantum State)是希尔伯特空间 H=C2n 中的归一化矢量:

|ψ⟩=∑i=02n−1αi|i⟩,∑i|αi|2=1

其中 {|i⟩} 是计算基,αi∈C 是概率振幅。

性质:

  • 归一化:⟨ψ|ψ⟩=1
  • 全局相位:|ψ⟩ 和 eiϕ|ψ⟩ 表示相同的物理态
  • 叠加:一个态可以同时处于多个基态的叠加中

pyqpanda3 的 StateVector 类表示纯态并提供:

  • 从数组、线路或计算基态构建
  • 通过量子线路演化:sv.evolve(circuit)
  • 转换为密度矩阵:sv.get_density_matrix()
  • 纯度计算:sv.purity()

密度矩阵 ​

混合量子态(Mixed Quantum State)由密度矩阵(密度算符)描述:

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

其中 {pi,|ψi⟩} 是纯态系综,满足 pi≥0 且 ∑ipi=1。

等价定义:密度矩阵是满足以下条件的任何矩阵 ρ:

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

Bloch 球(单量子比特):任何单量子比特密度矩阵可以写成:

ρ=12(I+r→⋅σ→)=12(1+rzrx−iryrx+iry1−rz)

其中 r→=(rx,ry,rz) 是 Bloch 矢量,满足 |r→|≤1。

  • 纯态:|r→|=1(在 Bloch 球面上)
  • 混合态:|r→|<1(在 Bloch 球内部)
  • 最大混合态:r→=0→,ρ=I/2(球心)

pyqpanda3 的 DensityMatrix 类提供:

  • 从矩阵、态矢量或线路构建
  • 通过量子线路演化:dm.evolve(circuit);通过量子通道演化:使用通道自身的 channel.evolve(dm) 方法
  • 纯度:dm.purity()
  • 转换为态矢量(如果是纯态):dm.to_statevector()

纯态与混合态 ​

性质纯态混合态
表示|ψ⟩ρ=∑ipi|ψi⟩⟨ψi|
纯度Tr(ρ2)=1Tr(ρ2)<1
Bloch 矢量|r→|=1|r→|<1
幂等性ρ2=ρρ2≠ρ
von Neumann 熵S(ρ)=0S(ρ)>0
示例|0⟩, |0⟩+|1⟩2I2, 12|0⟩⟨0|+12|1⟩⟨1|

偏迹与约化态 ​

对于二分系统 ρAB,对子系统 B 的偏迹(Partial Trace)给出约化密度矩阵:

ρA=TrB(ρAB)=∑i⟨iB|ρAB|iB⟩

约化态 ρA 包含了仅通过测量子系统 A 可获取的所有信息。

可分性:态 ρAB 是可分的(Separable),如果可以写成:

ρAB=∑ipiρA(i)⊗ρB(i)

否则,该态是纠缠的(Entangled)。


von Neumann 熵 ​

定义 ​

量子态 ρ 的 von Neumann 熵为:

S(ρ)=−Tr(ρlog2⁡ρ)=−∑iλilog2⁡λi

其中 {λi} 是 ρ 的特征值。

这是 Shannon 熵 H(X)=−∑ipilog2⁡pi 的量子推广。

性质 ​

1. 非负性:

S(ρ)≥0

当且仅当 ρ 是纯态时等号成立。

2. 最大熵:

S(ρ)≤log2⁡d

其中 d 是希尔伯特空间维数。对于最大混合态 ρ=I/d 时等号成立。

3. 幺正不变性:

S(UρU†)=S(ρ)

幺正演化保持熵不变(信息守恒)。

4. 凹性:

S(∑ipiρi)≥∑ipiS(ρi)

混合态增加熵。

5. 次可加性:

S(ρAB)≤S(ρA)+S(ρB)

6. 强次可加性(最强的不等式):

S(ρABC)+S(ρB)≤S(ρAB)+S(ρBC)

纠缠熵 ​

对于纯二分态 |ψ⟩AB,纠缠熵为:

E(|ψ⟩AB)=S(ρA)=S(ρB)

其中 ρA=TrB(|ψ⟩⟨ψ|),ρB=TrA(|ψ⟩⟨ψ|)。

注意,对于纯二分态,S(ρA)=S(ρB) — 纠缠是对称的。

示例:

  • 直积态 |0⟩A⊗|0⟩B:E=0(无纠缠)
  • Bell 态 |00⟩+|11⟩2:E=1(最大纠缠,1 ebit)
  • GHZ 态 |000⟩+|111⟩2:E=1(对任何二分为 1 ebit)

量子互信息 ​

量子互信息衡量两个系统之间的总关联:

I(A:B)=S(ρA)+S(ρB)−S(ρAB)
  • I(A:B)=0:A 和 B 无关联(ρAB=ρA⊗ρB)
  • I(A:B)>0:A 和 B 有关联(包括经典关联和量子关联)

条件熵 ​

量子条件熵:

S(A|B)=S(ρAB)−S(ρB)

与经典情况不同,量子条件熵可以是负数:

  • S(A|B)<0 表明存在量子纠缠
  • 这种负性具有操作意义:它对应量子态合并(利用纠缠传输量子信息的能力)

量子保真度 ​

定义 ​

两个量子态 ρ 和 σ 之间的保真度(Fidelity)为:

F(ρ,σ)=(Trρσρ)2

对于纯态 |ψ⟩ 和 |ϕ⟩:

F(|ψ⟩,|ϕ⟩)=|⟨ψ|ϕ⟩|2

对于纯态 |ψ⟩ 和混合态 ρ:

F(|ψ⟩,ρ)=⟨ψ|ρ|ψ⟩

Uhlmann 定理 ​

保真度可以用纯化表示:

F(ρ,σ)=max|ψ⟩,|ϕ⟩|⟨ψ|ϕ⟩|2

其中 |ψ⟩ 和 |ϕ⟩ 分别是 ρ 和 σ 的纯化。这提供了几何解释:保真度是两个态的任意纯化之间的最大重叠。

性质 ​

1. 对称性:F(ρ,σ)=F(σ,ρ)

2. 界:0≤F(ρ,σ)≤1

  • F=1:相同态(ρ=σ)
  • F=0:正交态

3. 张量积下的乘性:

F(ρ1⊗ρ2,σ1⊗σ2)=F(ρ1,σ1)⋅F(ρ2,σ2)

4. CPTP 映射下的单调性:

F(E(ρ),E(σ))≥F(ρ,σ)

量子通道不能降低保真度。

Bures 距离 ​

Bures 距离与保真度相关:

DB(ρ,σ)=2(1−F(ρ,σ))

它是密度矩阵空间上的真度量,满足三角不等式。

在 pyqpanda3 中计算 ​

上面的公式都可以用 pyqpanda3.quantum_info.state_fidelity() 直接计算。该函数支持密度矩阵与态矢量两两组合的四种输入,密度矩阵用 Uhlmann 定义,态矢量用 |⟨ψ2|ψ1⟩|2:

python
from pyqpanda3.quantum_info import state_fidelity

plus = [[0.5, 0.5], [0.5, 0.5]]   # |+><+|(密度矩阵)
zero = [[1.0, 0.0], [0.0, 0.0]]   # |0><0|

print(round(state_fidelity(plus, zero), 6))   # 0.5(上式 F(rho,sigma))
print(round(state_fidelity(zero, [1.0, 0.0]), 6))   # 1.0(纯态与自身)

完整签名与 validate 参数说明见 分析 API 参考。


距离度量 ​

pyqpanda3 提供用于计算概率分布之间的 Hellinger 距离、Hellinger 保真度和 KL 散度的函数,以及量子态之间迹距离的理论定义。

Hellinger 距离 ​

两个离散概率分布 P 和 Q 之间的 Hellinger 距离:

H(P,Q)=12|P−Q|2=12∑x(P(x)−Q(x))2

性质:

  • 0≤H(P,Q)≤1
  • H(P,Q)=0⟺P=Q
  • 对称性:H(P,Q)=H(Q,P)
  • 与 Bhattacharyya 系数相关:H=1−BC(P,Q)

pyqpanda3 实现:

python
from pyqpanda3.quantum_info import hellinger_distance

# 使用整数键
p = {0: 0.5, 1: 0.3, 2: 0.2}
q = {0: 0.4, 1: 0.4, 2: 0.2}
print(hellinger_distance(p, q))  # 0.079851380615908

# 使用字符串键
p = {"00": 0.25, "01": 0.25, "10": 0.25, "11": 0.25}
q = {"00": 0.5, "01": 0.0, "10": 0.0, "11": 0.5}
print(hellinger_distance(p, q))  # 0.541196100146197

Hellinger 保真度 ​

Hellinger 保真度从 Hellinger 距离导出:

FH(P,Q)=(1−H(P,Q)2)2=(∑xP(x)Q(x))2

性质:

  • 0≤FH(P,Q)≤1
  • FH=1⟺P=Q
  • 与 Bhattacharyya 系数相关:FH=BC2

pyqpanda3 实现:

python
from pyqpanda3.quantum_info import hellinger_fidelity

p = {0: 0.5, 1: 0.5}
q = {0: 0.5, 1: 0.5}
fid = hellinger_fidelity(p, q)  # 1.0(相同分布)

Kullback-Leibler (KL) 散度 ​

KL 散度衡量使用 Q 代替 P 时的信息增益:

离散分布:

DKL(P|Q)=∑xP(x)log2⁡P(x)Q(x)

连续分布:

DKL(p|q)=∫p(x)log2⁡p(x)q(x)dx

性质:

  • DKL(P|Q)≥0(Gibbs 不等式)
  • DKL(P|Q)=0⟺P=Q(几乎处处)
  • 不对称:一般情况下 DKL(P|Q)≠DKL(Q|P)
  • 不是度量:不满足三角不等式

pyqpanda3 支持离散和连续 KL 散度:

python
from pyqpanda3.quantum_info import KL_divergence

# 离散分布(列表)
p = [0.5, 0.3, 0.2]
q = [0.4, 0.4, 0.2]
print(KL_divergence(p, q))  # 0.02526715392157057

# 连续分布(函数)
import numpy as np
print(KL_divergence(
    p_pdf=lambda x: np.exp(-x),  # 指数分布
    q_pdf=lambda x: np.exp(-x**2/2) / np.sqrt(2*np.pi),  # 高斯分布
    x_start=0.0,
    x_end=10.0,
    dx=1e-4
))  # 0.9166728583819906

迹距离 ​

两个密度矩阵之间的迹距离(Trace Distance):

T(ρ,σ)=12|ρ−σ|1=12Tr(ρ−σ)†(ρ−σ)

性质:

  • 0≤T(ρ,σ)≤1
  • 真度量(对称、三角不等式)
  • 与区分 ρ 和 σ 的最优概率相关:
Pcorrect=1+T(ρ,σ)2
  • 对于量子比特:T(ρ,σ)=12|r→ρ−r→σ|(Bloch 矢量间欧氏距离的一半)

距离度量比较 ​

度量类型对称?是度量?范围
Hellinger 距离经典分布是是[0,1]
Hellinger 保真度经典分布是否[0,1]
KL 散度经典分布否否[0,∞)
迹距离量子态是是[0,1]
保真度量子态是否[0,1]
Bures 距离量子态是是[0,2]

关系:

1−F(ρ,σ)≤T(ρ,σ)≤1−F(ρ,σ)T(ρ,σ)≤DB(ρ,σ)≤2⋅T(ρ,σ)

量子通道表示 ​

量子通道(CPTP 映射)可以用多种等价形式表示。pyqpanda3 的 quantum_info 模块提供五种可相互转换的表示。

Kraus 表示 ​

E(ρ)=∑iKiρKi†,∑iKi†Ki=I

最直观的物理表示 — 每个 Kraus 算符 Ki 代表一个以概率 pi=Tr(KiρKi†) 发生的"量子跃迁"。

pyqpanda3 类:Kraus

超算符(Liouville)表示 ​

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

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

矢量化 vec(ρ) 将 ρ 的列堆叠成矢量。超算符为:

S=∑iKi∗⊗Ki

其中 Ki∗ 是复共轭(不是伴随)。

pyqpanda3 类:SuperOp

Chi(过程矩阵)表示 ​

通道在归一化 Pauli 基 {Pi/d} 中展开:

E(ρ)=∑i,jχijPiρPj

χ 矩阵(在某些文献中也称为"过程矩阵")在 Pauli 基中完全表征通道。

pyqpanda3 类:Chi

Choi 矩阵表示 ​

Choi 矩阵通过将通道作用于最大纠缠态的一半获得:

J(E)=(E⊗Id)(|Ω⟩⟨Ω|)=∑i,j|i⟩⟨j|⊗E(|i⟩⟨j|)

其中 |Ω⟩=1d∑i|i⟩⊗|i⟩。

Choi-Jamiolkowski 同构:CPTP 映射与满足 Tr1(J)=I 的半正定矩阵 J 之间存在双射。

pyqpanda3 类:Choi

Pauli 传输矩阵(PTM) ​

PTM 在 Pauli 基中表示通道:

Rij=1dTr(Pi⋅E(Pj))

其中 {Pi} 是归一化的 Pauli 算符(包括恒等)。对于任何保持厄米性的通道,PTM 是实值矩阵。

物理解释:Rij 告诉你当输入 Pauli Pj 时,输出中出现多少 Pauli Pi。对于无噪声恒等通道,R=I(恒等矩阵)。

pyqpanda3 类:PTM

转换关系 ​

所有五种表示编码相同的信息,可以自由转换:

mermaid
graph TD
    K["Kraus<br/>K_i ρ K_i†"] -->|"reshape K_i"| S["SuperOp<br/>S 矩阵"]
    K -->|"Pauli 分解"| C["Chi<br/>χ 矩阵"]
    K -->|"J = Σ |i⟩⟨j| ⊗ E(|i⟩⟨j|)"| Ch["Choi<br/>J 矩阵"]
    K -->|"R_ij = Tr(P_i E(P_j))/d"| P["PTM<br/>R 矩阵"]

    S --> K
    S --> C
    S --> Ch
    S --> P

    C --> K
    C --> S
    C --> Ch
    C --> P

    Ch --> K
    Ch --> S
    Ch --> C
    Ch --> P

    P --> K
    P --> S
    P --> C
    P --> Ch

    style K fill:#e3f2fd,stroke:#1565c0
    style S fill:#c8e6c9,stroke:#2e7d32
    style C fill:#fff3e0,stroke:#e65100
    style Ch fill:#f3e5f5,stroke:#9c27b0
    style P fill:#ffebee,stroke:#c62828

在 pyqpanda3 中,转换通过从一个类构造另一个类完成:

python
from pyqpanda3.quantum_info import Kraus, Choi, SuperOp, Chi, PTM

# 从 Kraus 算符创建通道
kraus = Kraus([...])

# 转换为其他表示
choi = Choi(kraus)
superop = SuperOp(kraus)
chi = Chi(kraus)
ptm = PTM(kraus)

# 所有表示都可以演化量子态
from pyqpanda3.quantum_info import DensityMatrix, StateVector
dm = DensityMatrix(...)
evolved = choi.evolve(dm)   # 返回 DensityMatrix
evolved = kraus.evolve(dm)  # 相同结果

表示比较 ​

表示大小实值?最适用于
Krausr×d×d否(复数)物理解释、噪声模型
SuperOpd2×d2否(复数)通道组合、矩阵运算
Chid2×d2否(复数)过程层析
Choid2×d2否(复数)半正定性检查、通道距离
PTMd2×d2是门基准测试、RB 分析

通道组合 ​

通道通过其表示进行组合:

Kraus:组合 E2∘E1 的 Kraus 算符为 {Ki(2)Kj(1)}i,j

SuperOp:SE2∘E1=SE2⋅SE1(矩阵乘法)

PTM:RE2∘E1=RE2⋅RE1(矩阵乘法,实值)

Choi:JE2∘E1=(E2⊗I)(JE1)

通道距离与保真度 ​

两个通道之间的菱形范数距离:

|E1−E2|⋄=supρ|(E1⊗Ik)(ρ)−(E2⊗Ik)(ρ)|1

其中上确界遍历所有输入维度 k。菱形范数是量子通道的标准距离度量。

过程保真度:

Fproc(E,I)=1d2Tr(JEJI)

这衡量通道 E 与恒等 I 的接近程度,与随机基准测试误差率相关。


总结 ​

mermaid
graph TD
    QIT["量子信息理论"] --> States["态表示"]
    QIT --> Entropy["熵度量"]
    QIT --> Dist["距离度量"]
    QIT --> Channels["通道表示"]

    States --> SV["StateVector<br/>(纯态)"]
    States --> DM["DensityMatrix<br/>(混合态)"]

    Entropy --> VN["Von Neumann S(ρ)"]
    Entropy --> MI["互信息 I(A:B)"]
    Entropy --> EE["纠缠熵"]

    Dist --> HD["Hellinger 距离"]
    Dist --> HF["Hellinger 保真度"]
    Dist --> KL["KL 散度"]
    Dist --> TD["迹距离"]
    Dist --> QF["量子保真度"]

    Channels --> Kr["Kraus"]
    Channels --> SO["SuperOp"]
    Channels --> Ch["Chi"]
    Channels --> Co["Choi"]
    Channels --> PTM["PTM"]

    style QIT fill:#1a1a2e,stroke:#1a1a2e,fontColor:#ffffff
    style States fill:#e3f2fd,stroke:#1565c0
    style Entropy fill:#fff3e0,stroke:#e65100
    style Dist fill:#c8e6c9,stroke:#2e7d32
    style Channels fill:#f3e5f5,stroke:#9673a6

另请参阅 ​

Released under the MIT License.