2. 量子模拟的物理与数学基础

分布式量子模拟系统的工程实现,最终都要落到一组明确的数学对象上:量子态、哈密顿量、时间演化算符、可观测量,以及衡量模拟是否可信的精度指标。理解这五者之间的映射关系,是后续设计分片策略、通信协议和误差控制机制的前提。本节从物理定义出发,逐步过渡到工程中可直接使用的表示与判据。

量子态:从物理对象到可存储的数据结构

一个 n 量子比特的纯态可写为计算基的线性组合:

|ψ⟩ = Σ_{x∈{0,1}^n} α_x |x⟩,   Σ_x |α_x|² = 1

其中 α_x 为复数振幅,|x⟩ 是 n 位二进制串对应的基态。对 n=30 的系统,振幅数量为 2³⁰ ≈ 1.07×10⁹,每个复数按双精度 16 字节计,单份态向量约 17 GB。这正是分布式模拟必须切分状态的根本原因:单机内存无法容纳,必须按振幅索引区间或按张量网络结构拆分到多个进程。

工程上常用三种表示:全振幅向量(适合态制备、测量概率计算)、张量网络(适合低纠缠电路,存储量随纠缠熵增长)、稳定子表(仅适用于 Clifford 电路,多项式存储)。选择哪种表示,取决于电路纠缠结构与精度要求,而非单纯看比特数。

哈密顿量:决定演化规律的算符

哈密顿量 H 是厄米算符,决定系统的时间演化。在量子模拟中,H 通常写成局部相互作用之和:

H = Σ_k h_k P_k

P_k 是作用在少数几个量子比特上的泡利串(如 X⊗Y⊗I),h_k 为实系数。例如横场伊辛模型:

H = -J Σ_{⟨i,j⟩} Z_i Z_j - h Σ_i X_i

其中 J 为耦合强度,h 为横场强度,⟨i,j⟩ 表示近邻对。这种“局部项求和”结构对分布式实现极为关键:每个 P_k 只涉及少数比特,因此作用在态向量上时只需访问局部索引,便于按比特分组做并行计算与通信。

时间演化:从连续算符到可执行门序列

封闭系统的时间演化由薛定谔方程给出,形式解为:

|ψ(t)⟩ = e^{-iHt} |ψ(0)⟩

直接对 2ⁿ 维矩阵做指数运算不可行。工程上采用Trotter-Suzuki 分解,把 H 拆成若干局部项,按小步长 Δt 交替作用:

e^{-iHΔt} ≈ Π_k e^{-i h_k P_k Δt} + O(Δt²)

每一步 e^{-i h_k P_k Δt} 对泡利串而言就是一次旋转门,可直接映射为量子门序列。二阶分解可将误差降到 O(Δt³)。在分布式系统中,跨节点的两比特门需要通信,因此 Trotter 步的排列顺序会直接影响通信轮数——把同一节点内的项尽量排在一起,可显著减少跨节点门数量。

量子模拟五要素关系与精度传递链 量子态 |ψ⟩ 振幅向量 / 张量网络 哈密顿量 H Σ hₖPₖ 局部项 时间演化 U(t) Trotter 门序列 可观测量 ⟨O⟩ 测量与采样 模拟精度指标 态保真度 F · 能量误差 ΔE · 可观测偏差 |Δ⟨O⟩| Trotter 误差 · 截断误差 · 通信舍入误差 精度不达标 → 调整 Δt / 分片策略 / 表示方法 迭代直至 F ≥ 0.99 且 |Δ⟨O⟩| ≤ 容差

可观测量:从算符到可统计的数值

可观测量 O 是厄米算符,其期望值为:

⟨O⟩ = ⟨ψ|O|ψ⟩

在模拟中,O 通常也分解为泡利串之和,O = Σ_m c_m Q_m。对每个 Q_m,可在计算基下做多次测量采样,用测量结果的 ±1 本征值加权平均估计 ⟨Q_m⟩,再线性组合得到 ⟨O⟩。采样次数 N 带来的统计误差约为 1/√N,因此若要求 ⟨O⟩ 的绝对误差 ≤ ε,单次估计的采样数需满足 N ≳ (Σ|c_m| / ε)²。分布式环境下,各节点可独立采样后汇总,但需保证随机种子独立,否则误差不会按 1/√N 下降。

精度指标:判断模拟是否可信

工程中至少需要同时跟踪三类指标:

  • 态保真度 F = |⟨ψ_exact|ψ_sim⟩|²,衡量整体态偏差,F ≥ 0.99 通常视为可接受。
  • 能量误差 ΔE = |⟨H⟩_sim − E_exact|,对基态模拟尤为关键,常以化学精度 1.6×10⁻³ Ha 为参照。
  • 可观测偏差 |Δ⟨O⟩| = |⟨O⟩_sim − ⟨O⟩_exact|,直接对应物理结论是否可靠。

误差来源需分层归因:Trotter 截断误差随 Δt² 下降;态向量截断误差取决于丢弃的振幅总量;分布式通信中的浮点舍入误差随节点数缓慢累积。实践中建议先在小规模(如 n=20)上标定 Δt 与误差的关系曲线,再外推到目标规模,而不是直接在大规模上试错。

参照约定:本文及图示中,时间演化取 U(t)=e^{-iHt}(自然单位 ħ=1),泡利算符本征值为 ±1,测量采样按计算基 Z 进行。若改用 e^{+iHt} 约定,所有相位符号需整体取反,但精度指标定义不变。

一个可执行的小规模标定示例

以 4 比特横场伊辛模型为例,J=1.0,h=0.5,目标演化时间 t=2.0。可按如下流程标定 Trotter 步长:

# 伪代码:Trotter 步长标定
for dt in [0.2, 0.1, 0.05, 0.025]:
    steps = int(t / dt)
    psi = initial_state()          # |0000⟩
    for s in range(steps):
        psi = apply_ZZ_terms(psi, J, dt)
        psi = apply_X_terms(psi, h, dt)
    F = fidelity(psi, exact_evolve(t))
    print(dt, steps, F)

预期观察:dt 减半时,Trotter 误差约降为原来的 1/4(二阶分解),F 逐步趋近 1。若 F 不随 dt 减小而改善,说明误差主因不是 Trotter 截断,而应检查态表示截断或通信舍入。这一判断逻辑在分布式扩展后同样适用:先定位误差主因,再决定优化方向,避免盲目增加节点或减小步长。

常见误区:把“增加采样次数”当作万能精度手段。采样只降低统计误差,无法修正 Trotter 截断、态截断或通信舍入带来的系统性偏差。若 ⟨O⟩ 的偏差不随 N 增大而收敛,应优先排查演化算符与态表示的实现,而非继续加采样。

综上,量子态、哈密顿量、时间演化、可观测量与精度指标构成一条完整的工程链:态是数据,H 是规则,演化是计算,可观测量是输出,精度指标是验收标准。分布式设计中的分片、通信与并行策略,都必须围绕这条链上的误差传递关系来权衡,而不是孤立地优化某一环。