VQE 详解:变分量子本征求解器与 UCC 拟设


VQE(Variational Quantum Eigensolver,变分量子本征求解器)由 Alberto Peruzzo 等人于 2014 年提出,是 NISQ(近期含噪中等规模量子)时代最具影响力的量子-经典混合算法。它通过参数化量子电路(拟设,Ansatz)搜索哈密顿量的基态能量,是量子化学、材料模拟的核心工具。

问题背景

量子化学的核心问题是求解分子哈密顿量的基态能量:

$$E_0 = \min_{|\psi\rangle} \langle\psi|H|\psi\rangle$$

这是量子力学变分原理的直接应用:对任意试探态 $|\psi\rangle$,$\langle H \rangle \ge E_0$。

经典困难

  • 完整构型相互作用(FCI):$O(e^n)$ 复杂度,$n$ 为轨道数
  • 密度泛函理论(DFT):$O(n^3)$,但对强关联体系精度有限
  • 耦合簇(CCSD(T)):$O(n^7)$,“金标准”,但对大分子不可扩展

VQE 的目标:用多项式深度的量子电路制备试探态 $|\psi(\vec{\theta})\rangle$,用经典优化器找到使 $\langle H \rangle$ 最小的参数 $\vec{\theta}^*$。

核心思想:变分原理 + 参数化电路

变分原理

对任意归一化量子态 $|\psi\rangle$:

$$\langle\psi|H|\psi\rangle \ge E_0$$

等号当且仅当 $|\psi\rangle$ 是基态。VQE 利用这一原理:不断优化 $|\psi(\vec{\theta})\rangle$,使 $\langle H \rangle$ 收敛到 $E_0$。

VQE 的整体框架

$$\vec{\theta}^* = \arg\min_{\vec{\theta}} \langle\psi(\vec{\theta})|H|\psi(\vec{\theta})\rangle$$

量子部分(每次优化迭代):

  1. 制备 $|\psi(\vec{\theta})\rangle = U(\vec{\theta})|0\rangle^{\otimes n}$
  2. 测量 $\langle H \rangle = \sum_k \alpha_k \langle H_k \rangle$(将 $H$ 分解为泡利字符串,分别测量)

经典部分

  1. 将测量结果传给经典优化器
  2. 优化器更新参数 $\vec{\theta}$

分子哈密顿量的构造

量子化学哈密顿量

分子哈密顿量在 Born-Oppenheimer 近似下:

$$H_{\text{mol}} = \sum_{pq} h_{pq} a_p^\dagger a_q + \frac{1}{2}\sum_{pqrs} h_{pqrs} a_p^\dagger a_q^\dagger a_r a_s + h_{\text{nuc}}$$

其中 $h_{pq}$(单电子积分)和 $h_{pqrs}$(双电子积分)由基组计算,$h_{\text{nuc}}$ 为核排斥能。

算符映射

将费米子算符映射到泡利算符:

Jordan-Wigner 变换

$$a_j^\dagger \to \frac{1}{2}(X_j - iY_j) \otimes Z_{j-1} \otimes \cdots \otimes Z_0$$

$$a_j \to \frac{1}{2}(X_j + iY_j) \otimes Z_{j-1} \otimes \cdots \otimes Z_0$$

Bravyi-Kitaev 变换:更紧凑的映射,减少非局域泡利字符串的长度。

映射后,$H$ 变为 $L = O(n^4)$ 个泡利字符串的线性组合:

$$H = \sum_{k=1}^{L} \alpha_k P_k, \quad P_k \in \{I, X, Y, Z\}^{\otimes n}$$

拟设(Ansatz)设计

拟设 $U(\vec{\theta})$ 的选择至关重要:需要足够表达力以包含基态,同时深度可控以在 NISQ 设备上运行。

UCC 拟设(Unitary Coupled Cluster)

UCC 是量子化学中最自然的拟设,基于经典耦合簇理论的酉化版本。

经典耦合簇(CC):将基态表示为:

$$|\psi_{\text{CC}}\rangle = e^{T} |\Phi_0\rangle, \quad T = T_1 + T_2 + \cdots$$

其中 $|\Phi_0\rangle$ 是参考态(如 Hartree-Fock 态),$T_1$、$T_2$ 是单、双激发算符。

问题:$e^T$ 不是酉的($T^\dagger \neq -T$),直接用于量子电路会引入非幺正效应。

UCC 方案:令 $T - T^\dagger$ 为反 Hermitian 算符:

$$|\psi_{\text{UCC}}\rangle = e^{T - T^\dagger} |\Phi_0\rangle$$

$e^{T - T^\dagger}$ 是酉算符,保留了耦合簇的物理直觉。

UCCSD(UCC with Singles and Doubles)

UCCSD 是 UCC 最常用的截断版本,保留单激发和双激发:

$$T_1 = \sum_{ia} t_i^a (a_a^\dagger a_i - a_i^\dagger a_a)$$

$$T_2 = \sum_{ijab} t_{ij}^{ab} (a_a^\dagger a_b^\dagger a_j a_i - a_i^\dagger a_j^\dagger a_b a_a)$$

其中 $i, j$ 为占据轨道,$a, b$ 为虚拟轨道。

参数数量

  • 单激发:$n_o \times n_v$($n_o$ 个占据轨道,$n_v$ 个虚拟轨道)
  • 双激发:$n_o^2 \times n_v^2 / 4$(考虑对称性)
  • 总计:$O(n^4)$(对平衡基组)

电路实现

对每个激发算符 $t_{ij}^{ab} (a_a^\dagger a_b^\dagger a_j a_i - \text{h.c.})$,用 Trotter 分解:

$$e^{t_{ij}^{ab} (a_a^\dagger a_b^\dagger a_j a_i - \text{h.c.})} \approx \text{受控泡旋转序列}$$

每个双激发需要 $O(n)$ 个 CNOT 门。总深度 $O(n^5)$($O(n^4)$ 个参数,每个 $O(n)$ 门)。

其他拟设

硬件高效拟设(Hardware-Efficient Ansatz, HEA)

$$U(\vec{\theta}) = \prod_{l=1}^{D} \left[ \prod_{i} R_Y(\theta_{i,l}) R_Z(\theta_{i,l}^{\prime}) \right] \cdot \prod_{(i,j)} \text{CNOT}_{ij}$$

  • 深度 $O(D \cdot n)$,$D$ 为层数
  • 表达力强,但 Barren Plateaus 问题更严重

强纠缠拟设(Strongly Entangling Layers)

每层包含单比特旋转和全连接 CNOT,参数数量 $O(D \cdot n)$。

ADAPT-VQE

迭代地从算符池中选择贡献最大的算符添加到拟设中,自适应地构建拟设,平衡精度和深度。

经典优化器

梯度优化

参数平移规则(Parameter Shift Rule)

$$\frac{\partial \langle H \rangle}{\partial \theta_k} = \frac{\langle H \rangle(\theta_k + \pi/2) - \langle H \rangle(\theta_k - \pi/2)}{2}$$

每次梯度计算需要 2 次电路执行。

优化算法

  • Adam、RMSProp:自适应学习率
  • 自然梯度(Natural Gradient):利用参数空间的几何结构
  • SPSA(同时扰动随机近似):对噪声鲁棒

无梯度优化

  • COBYLA:线性逼近方法
  • Nelder-Mead:单纯形法
  • Powell:方向集方法

这些方法在噪声环境下有时比梯度方法更鲁棒。

理论分析

变分误差

$$\Delta E = \langle\psi(\vec{\theta}^*)|H|\psi(\vec{\theta}^*)\rangle - E_0$$

对 UCCSD,$\Delta E$ 通常在 kcal/mol 量级(化学精度 $\approx 1.6$ mHartree),对大多数分子达到化学精度。

Barren Plateaus

定理(McClean et al., 2018):对随机初始化的深度 $D = O(\text{poly}(n))$ 的硬件高效拟设:

$$\mathbb{E}\left[\frac{\partial \langle H \rangle}{\partial \theta_k}\right] = 0, \quad \text{Var}\left[\frac{\partial \langle H \rangle}{\partial \theta_k}\right] = O(2^{-n})$$

即梯度随量子比特数指数衰减,优化景观平坦。

UCCSD 的优势:由于物理动机的参数结构,UCCSD 不受 Barren Plateaus 影响——初始梯度为 $O(1/\text{poly}(n))$。

测量开销

$\langle H \rangle = \sum_k \alpha_k \langle P_k \rangle$ 需要分别测量每个 $\langle P_k \rangle$。

  • $L = O(n^4)$ 个泡利字符串
  • 每个需要 $O(1/\varepsilon^2)$ 次测量(统计误差)
  • 总测量次数 $O(n^4/\varepsilon^2)$

分组测量:互相对易的泡利字符串可以同时测量,将 $L$ 减少到 $O(n^3)$ 或更少。

具体例子

$H_2$ 分子

$H_2$ 在 STO-3G 基组下,4 个量子比特(2 个空间轨道 $\times 2$ 自旋)。

  • 参考态:$|\Phi_0\rangle = |0011\rangle$(占据两个最低轨道)
  • UCCSD 参数:1 个(唯一的双激发 $t_{01}^{23}$)
  • 电路:1 个 $e^{t(a_2^\dagger a_3^\dagger a_1 a_0 - \text{h.c.})}$ 受控门
  • 基态能量:$E_0 \approx -1.1372$ Hartree(FCI 精确值 $-1.1373$)

$LiH$ 分子

$LiH$ 在 STO-3G 下,12 个量子比特(6 个空间轨道)。

  • UCCSD 参数:$\approx 18$ 个($n_o = 3, n_v = 3$:9 个单激发 + 9 个双激发)
  • 电路深度:$O(18 \times 12) \approx 216$ 个 CNOT
  • 基态能量精度:$\approx 1$ mHartree(达到化学精度)

代码示例(uniqc 实现)

类型:完整算法演示。下面给出 H₂ 分子在 STO-3G 基组下 Bravyi-Kitaev 约简到 2 个量子比特后,用硬件高效拟设 + COBYLA 优化得到化学精度基态能量的端到端流程。期望值由电路酉矩阵 circuit.get_matrix() 与解析期望计算(去除抽样噪声,便于看到优化器收敛)。

import numpy as np
from scipy.optimize import minimize
from uniqc import Circuit, hea

I2 = np.eye(2, dtype=complex)
X = np.array([[0, 1], [1, 0]], dtype=complex)
Y = np.array([[0, -1j], [1j, 0]], dtype=complex)
Z = np.array([[1, 0], [0, -1]], dtype=complex)
PAULI = {'I': I2, 'X': X, 'Y': Y, 'Z': Z}

def pauli_string_matrix(s):
    mat = PAULI[s[0]]
    for ch in s[1:]:
        mat = np.kron(mat, PAULI[ch])
    return mat

# H2 在 BK 约简后的电子哈密顿量(O'Malley et al. PRX 2016, R ≈ 0.75 Å)
# 字符串顺序: 'q1q0', 左为 q1,右为 q0
H2_TERMS = [
    (-0.4804, 'II'), (+0.3435, 'IZ'), (-0.4347, 'ZI'),
    (+0.5716, 'ZZ'), (+0.0910, 'XX'), (+0.0910, 'YY'),
]
R_BOHR = 0.75 / 0.529177
E_NUC = 1.0 / R_BOHR  # 核排斥能

def build_hamiltonian():
    H = np.zeros((4, 4), dtype=complex)
    for c, p in H2_TERMS:
        H += c * pauli_string_matrix(p)
    return H

def hea_circuit(theta, n_qubits=2, depth=2):
    # 每层每比特 RY+RZ,比特间 CNOT 链式纠缠;共 n × 2 × depth = 8 个参数
    return hea(n_qubits, depth=depth, params=np.asarray(theta),
               rotation_gates=['ry', 'rz'],
               entangling_gate='cnot', topology='linear')

def energy(theta, H, n_qubits=2, depth=2):
    U = hea_circuit(theta, n_qubits, depth).get_matrix()
    psi0 = np.zeros(2 ** n_qubits, dtype=complex); psi0[0] = 1.0
    psi = U @ psi0
    return float(np.real(np.conj(psi) @ H @ psi))

# === VQE 主循环 ===
H = build_hamiltonian()
fci_evals, _ = np.linalg.eigh(H)
e_exact_el = float(fci_evals[0])
e_exact_total = e_exact_el + E_NUC
print(f'核排斥能 E_nuc ={E_NUC:.6f}Ha   (键长 R = 0.75 Å)')
print(f'精确电子能量 E_el(FCI)  ={e_exact_el:+.6f}Ha')
print(f'精确总能量   E_tot(FCI) ={e_exact_total:+.6f}Ha  (文献值 ≈ -1.137 Ha)')

n_params = 2 * 2 * 2  # n_qubits × len(rot) × depth
rng = np.random.default_rng(42)
best = {'energy': float('inf')}
for restart in range(5):
    theta0 = rng.uniform(-np.pi, np.pi, size=n_params)
    res = minimize(energy, theta0, args=(H,), method='COBYLA',
                   options={'rhobeg': 0.3, 'maxiter': 500})
    marker = '  ★' if res.fun < best['energy'] else ''
    if res.fun < best['energy']:
        best = {'energy': float(res.fun), 'nfev': int(res.nfev)}
    print(f'  restart #{restart+1}: E_el ={res.fun:+.6f}Ha  (nfev ={res.nfev}){marker}')

err_mha = (best['energy'] - e_exact_el) * 1000
print(f'\nVQE 总能量 E_tot(VQE) ={best["energy"] + E_NUC:+.6f}Ha')
print(f'与 FCI 偏差 ΔE ={err_mha:+.3f}mHa  (化学精度阈值 ±1.6 mHa)')

运行结果:

核排斥能 E_nuc = 0.705569 Ha   (键长 R = 0.75 Å)
精确电子能量 E_el(FCI)  = -1.851199 Ha
精确总能量   E_tot(FCI) = -1.145630 Ha  (文献值 ≈ -1.137 Ha)
  restart #1: E_el = -1.851191 Ha  (nfev = 500)  ★
  restart #2: E_el = -1.851187 Ha  (nfev = 500)
  restart #3: E_el = -1.851199 Ha  (nfev = 500)  ★
  restart #4: E_el = -1.851199 Ha  (nfev = 115)  ★
  restart #5: E_el = -1.851199 Ha  (nfev = 388)

VQE 总能量 E_tot(VQE) = -1.145630 Ha
与 FCI 偏差 ΔE = +0.000 mHa  (化学精度阈值 ±1.6 mHa)

几点观察

  1. 8 个 HEA 参数在 ~100 次函数计算后即收敛到精确解(restart #4),证明了在小分子上 HEA 的表达力对该哈密顿量是充分的;
  2. 不同初始化收敛到几乎相同的能量,但所用迭代步数差异很大——这就是文中提到的”局部最小值 / 优化景观”问题在小尺度的体现;
  3. 8 mHa 的”总能量与文献值的差”源自 BK 约简哈密顿量系数的截断精度(O’Malley 表 I 给出 4 位有效数字),并非 VQE 本身误差;
  4. 该示例使用 circuit.get_matrix() 解析得到期望值——真实硬件运行时还需引入泡利分组测量与抽样噪声,这两者的开销正是文中”测量瓶颈”小节所讨论的核心问题。

VQE 的局限性

1. Barren Plateaus

对硬件高效拟设,梯度随 $n$ 指数衰减。虽然 UCCSD 避免了此问题,但其深度 $O(n^5)$ 对大分子不可行。

2. 噪声影响

NISQ 设备的门错误率 $\sim 10^{-3}$ 意味着深电路的结果不可靠。UCCSD 电路深度 $O(n^5)$ 对 $n \gtrsim 20$ 已超出当前设备的相干时间。

3. 测量瓶颈

$O(n^4/\varepsilon^2)$ 次测量对小分子可行,对 $n > 50$ 的分子成为主要瓶颈。

4. 局部最小值

优化景观可能存在局部最小值,梯度下降可能陷入次优解。

5. 量子优势的不确定性

目前尚无理论证明 VQE 相对于最佳经典算法(如 CCSD(T)、DMRG)具有多项式加速。VQE 的实际优势需要在更大分子上验证。

当前进展

年份 贡献
2014 Peruzzo et al. 提出 VQE
2017 Kandala et al. 在 IBM 处理器上演示 H₂/LiH/BeH₂ VQE
2019 Grimsley et al. 提出 ADAPT-VQE
2020 Google AI Quantum (Kim et al.) 在 Sycamore 上实现 12 量子比特化学模拟 (H₁₂/diazene)
2023 IBM 等展示误差缓解后的化学精度 VQE

总结

VQE 是 NISQ 时代量子化学的旗舰算法。UCCSD 拟设以其物理动机和化学精度,在小分子上展现了量子计算的潜力。然而,Barren Plateaus、测量开销和噪声限制了 VQE 的可扩展性,是当前研究的核心挑战。

参考文献:

  1. Peruzzo, A., et al. (2014). A variational eigenvalue solver on a photonic quantum processor. Nature Communications, 5, 4213.
  2. Grimsley, H. R., et al. (2019). An adaptive variational algorithm for exact molecular simulations on a quantum computer. Nature Communications, 10, 3007.
  3. McClean, J. R., et al. (2018). Barren plateaus in quantum neural network training landscapes. Nature Communications, 9, 4812.
  4. Kandala, A., et al. (2017). Hardware-efficient variational quantum eigensolver for small molecules and quantum magnets. Nature, 549(7671), 242-246.

返回目录:量子计算算法教程系列

声明:Zhaoyun's Quantum Lab|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - VQE 详解:变分量子本征求解器与 UCC 拟设


With code, we create everything