4. 密度矩阵模拟与混合态演化

纯态矢量模拟假设系统与外界完全隔离,而真实量子处理器始终与热环境、控制线路和测量装置耦合。当系统与环境发生纠缠后,系统本身不再能用单一态矢量描述,必须改用密度矩阵 ρ。密度矩阵是厄米、半正定、迹为 1 的算符,对角元给出各基态的布居概率,非对角元给出相干性。混合态的核心特征是纯度为 Tr(ρ²) ≤ 1,纯态取等号。本节围绕密度矩阵的表示、开放系统演化、噪声通道建模以及资源开销展开。

密度矩阵的表示与演化方程

对 n 个量子比特,密度矩阵是 2ⁿ×2ⁿ 的复矩阵。单比特情形可写成布洛赫形式:ρ = (I + rₓX + r_yY + r_zZ)/2,其中 (rₓ, r_y, r_z) 是布洛赫矢量,纯态满足 |r| = 1,混合态满足 |r| < 1,完全混态对应 r = 0。这一几何图像对理解噪声非常直观:噪声通道的作用就是把布洛赫矢量缩短或平移。

封闭系统的演化由冯·诺依曼方程描述:dρ/dt = -i[H, ρ]。当系统与环境耦合时,在马尔可夫近似、弱耦合和快环境弛豫假设下,可导出林德布拉德主方程:

dρ/dt = -i[H, ρ] + Σ_k γ_k ( L_k ρ L_k† - ½{L_k†L_k, ρ} )

其中:
  H      : 系统哈密顿量
  L_k    : 第 k 个跳跃算符(Lindblad 算符)
  γ_k    : 对应衰减率(≥ 0)
  {A,B}  : 反对易子 AB + BA

第一项是幺正演化,第二项是耗散项。跳跃算符刻画具体噪声类型:L = σ₋ 对应振幅阻尼(能量弛豫),L = σ_z 对应退相位,L = √γ σ₋ 配合热占据数可描述有限温度弛豫。数值上,直接对 2ⁿ×2ⁿ 矩阵做时间步进,每步需要 O(4ⁿ) 存储和 O(8ⁿ) 量级的矩阵乘法,这是密度矩阵模拟的根本开销来源。

噪声通道的算符和表示

离散时间下,噪声通道用 Kraus 算符表示:ρ' = Σ_i K_i ρ K_i†,且满足完备性 Σ_i K_i†K_i = I。常见通道及其 Kraus 算符如下表。参数 p 表示噪声强度,示例取 p = 0.05 便于观察。

通道物理含义Kraus 算符对布洛赫矢量的作用
比特翻转X 方向随机翻转K₀=√(1-p)I, K₁=√p Xrₓ 不变,r_y、r_z 乘 (1-2p)
相位翻转Z 方向随机翻转K₀=√(1-p)I, K₁=√p Zr_z 不变,rₓ、r_y 乘 (1-2p)
退相位相干性指数衰减K₀=√(1-p/2)I, K₁=√(p/2) Zrₓ、r_y 乘 (1-p)
振幅阻尼|1⟩→|0⟩ 能量弛豫K₀=[[1,0],[0,√(1-γ)]], K₁=[[0,√γ],[0,0]]r_z → (1-γ)r_z + γ,横向乘 √(1-γ)
去极化各方向等概率随机化K₀=√(1-3p/4)I, K₁=√(p/4)X, K₂=√(p/4)Y, K₃=√(p/4)Z整个 r 乘 (1-p)

以去极化通道为例,p = 0.05 时布洛赫矢量长度从 1 缩到 0.95,纯度为 Tr(ρ²) = (1 + |r|²)/2 = (1 + 0.9025)/2 ≈ 0.951。若连续施加 20 次,|r| = 0.95²⁰ ≈ 0.358,纯度降到约 0.564,相干性显著损失。这说明噪声通道的复合效应可以用布洛赫矢量的收缩因子连乘来快速估算,无需每次都做完整矩阵运算。

开放量子系统:从纯态到混合态的演化链 纯态 |ψ⟩ ρ = |ψ⟩⟨ψ| Tr(ρ²) = 1 |r| = 1 耦合环境 环境 / 热库 Lindblad 算符 L_k 衰减率 γ_k 马尔可夫近似 耗散 混合态 ρ Tr(ρ²) < 1 |r| < 1 相干性衰减 林德布拉德主方程 dρ/dt = -i[H, ρ] + Σ_k γ_k ( L_k ρ L_k† − ½{L_k†L_k, ρ} ) 典型噪声通道对布洛赫矢量的作用(p = 0.05) 比特翻转 K₀=√(1-p)I K₁=√p X r_y, r_z × 0.90 rₓ 不变 退相位 K₀=√(1-p/2)I K₁=√(p/2) Z rₓ, r_y × 0.95 r_z 不变 振幅阻尼 K₀=[[1,0],[0,√(1-γ)]] K₁=[[0,√γ],[0,0]] r_z → (1-γ)r_z+γ 横向 × √(1-γ) 去极化 K₀=√(1-3p/4)I K₁..₃=√(p/4)X,Y,Z 整个 r × (1-p) 纯度 → 0.951

资源开销分析

密度矩阵模拟的开销远高于态矢量模拟。态矢量只需 2ⁿ 个复数,密度矩阵需要 4ⁿ 个复数。以双精度复数 16 字节计,n = 10 时态矢量约 16 KB,密度矩阵约 16 MB;n = 15 时态矢量约 512 KB,密度矩阵约 16 GB,已超出单机内存。这是密度矩阵方法只能处理约 10~12 个量子比特的根本原因。

时间开销方面,单步主方程演化涉及矩阵乘法,复杂度约 O(8ⁿ)。若用 Kraus 算符逐个作用,每个通道有 m 个算符,单步约 O(m·4ⁿ)。对于 n = 10、m = 4 的去极化通道,单步约 4×10⁶ 次复数乘法,在普通 CPU 上约毫秒量级;但若模拟 1000 个时间步,累计约秒级。若改用蒙特卡洛量子轨迹方法,用 N 条轨迹近似密度矩阵,每条轨迹只维护 2ⁿ 态矢量,单步 O(2ⁿ),总开销 O(N·2ⁿ·T)。当 N 取 1000 时,n = 10 的轨迹法约 10⁶ 量级,反而比直接密度矩阵快,代价是统计误差约 1/√N ≈ 3%。

选择策略:小规模(n ≤ 10)且需要精确相干性时用密度矩阵;中等规模(n = 10~20)且可接受统计误差时用量子轨迹;大规模(n > 20)时需借助张量网络或 GPU 并行,将密度矩阵按局域算符分解为矩阵乘积算符(MPO),利用噪声的局域性压缩存储。

实操示例:单比特振幅阻尼的数值演化

下面用 Python/NumPy 演示单比特振幅阻尼通道的密度矩阵演化,初始态为 |1⟩,弛豫率 γ = 0.1,演化 20 步。该示例为教学演示,参数为合理假设值。

import numpy as np

# 初始态 |1><1|
rho = np.array([[0, 0], [0, 1]], dtype=complex)

# 振幅阻尼 Kraus 算符,gamma = 0.1
g = 0.1
K0 = np.array([[1, 0], [0, np.sqrt(1-g)]], dtype=complex)
K1 = np.array([[0, np.sqrt(g)], [0, 0]], dtype=complex)

for step in range(20):
    rho = K0 @ rho @ K0.conj().T + K1 @ rho @ K1.conj().T
    pop1 = rho[1, 1].real
    purity = np.trace(rho @ rho).real
    print(f"step {step+1:2d}  P(|1>)={pop1:.4f}  purity={purity:.4f}")

预期输出中,P(|1⟩) 从 1 逐步衰减到约 0.12((1-γ)²⁰ ≈ 0.122),纯度从 1 降到约 0.55。判断依据:若 P(|1⟩) 单调下降且纯度同步下降,说明振幅阻尼通道实现正确;若纯度始终为 1,则说明只做了幺正演化,漏掉了耗散项。这一检查可用于验证密度矩阵模拟器的正确性。

常见错误:把 Kraus 算符作用写成 K @ rho @ K 而非 K @ rho @ K†。后者才保证结果厄米且迹为 1。另外,多个通道串联时顺序不可交换,去极化后再退相位与退相位后再去极化结果不同,需按物理时序排列。

总结来看,密度矩阵模拟是研究开放量子系统和噪声影响的必要工具。理解布洛赫矢量收缩、Kraus 算符作用和主方程耗散项,是正确建模噪声的前提;而 4ⁿ 的存储和 8ⁿ 的时间开销,决定了必须根据规模在密度矩阵、量子轨迹和张量网络之间做出权衡。