You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Qiskit Aer Estimator评估分子基态结果异常的问题排查

Qiskit Aer Estimator无噪声VQE结果偏离默认Estimator的问题修复

问题描述

使用Qiskit Nature结合VQE算法,在本地模拟器上用Qiskit Aer Estimator评估分子基态(无噪声模型)时,结果严重偏离预期,与默认Estimator结果差异巨大。以下是复现代码与结果对比:

通用初始化代码

from qiskit_nature.units import DistanceUnit
from qiskit_nature.second_q.drivers import PySCFDriver

driver = PySCFDriver(atom="H 0 0 0; H 0 0 0.735", basis="sto-3g")

es_problem = driver.run()

from qiskit_nature.second_q.mappers import JordanWignerMapper, QubitConverter

converter = QubitConverter(JordanWignerMapper())

from qiskit.algorithms.optimizers import SLSQP
from qiskit_nature.second_q.algorithms import VQEUCCFactory
from qiskit_nature.second_q.circuit.library import UCCSD
from qiskit_nature.second_q.algorithms import GroundStateEigensolver

使用默认Estimator(结果符合预期)

from qiskit.primitives import Estimator

vqe_solver = VQEUCCFactory(Estimator(), UCCSD(), SLSQP())
calc = GroundStateEigensolver(converter, vqe_solver)
res = calc.solve(es_problem)
print(res)

输出结果:

=== GROUND STATE ENERGY ===
 
* Electronic ground state energy (Hartree): -1.857275030145
  - computed part:      -1.857275030145
~ Nuclear repulsion energy (Hartree): 0.719968994449
> Total ground state energy (Hartree): -1.137306035696
 
=== MEASURED OBSERVABLES ===
 
  0:  # Particles: 2.000 S: 0.000 S^2: 0.000 M: 0.000
 
=== DIPOLE MOMENTS ===
 
~ Nuclear dipole moment (a.u.): [0.0  0.0  1.3889487]
 
  0: 
  * Electronic dipole moment (a.u.): [0.0  0.0  1.38894893]
    - computed part:      [0.0  0.0  1.38894893]
  > Dipole moment (a.u.): [0.0  0.0  -0.00000023]  Total: 0.00000023
                 (debye): [0.0  0.0  -0.00000058]  Total: 0.00000058

使用Aer Estimator无噪声模拟(结果严重偏离)

from qiskit_aer.primitives import Estimator as AerEstimator
seed=170

noiseless_estimator = AerEstimator(
    run_options={"seed": seed, "shots": 1024},
    transpile_options={"seed_transpiler": seed},
)

vqe_solver2=VQEUCCFactory(noiseless_estimator, UCCSD(), SLSQP())
calc2 = GroundStateEigensolver(converter, vqe_solver2)
res2 =calc2.solve(es_problem)
print(res2)

输出结果:

=== GROUND STATE ENERGY ===
 
* Electronic ground state energy (Hartree): -0.761369413072
  - computed part:      -0.761369413072
~ Nuclear repulsion energy (Hartree): 0.719968994449
> Total ground state energy (Hartree): -0.041400418623
 
=== MEASURED OBSERVABLES ===
 
  0:  # Particles: 2.006 S: 0.446 S^2: 0.645 M: 0.009
 
=== DIPOLE MOMENTS ===
 
~ Nuclear dipole moment (a.u.): [0.0  0.0  1.3889487]
 
  0: 
  * Electronic dipole moment (a.u.): [0.0  0.0  1.38395701]
    - computed part:      [0.0  0.0  1.38395701]
  > Dipole moment (a.u.): [0.0  0.0  0.00499169]  Total: 0.00499169
                 (debye): [0.0  0.0  0.0126876]  Total: 0.0126876

已在不同环境及IBM Quantum Lab测试,结果一致。预期无噪声时Aer Estimator应与默认Estimator结果接近(总基态能量差异≤0.01 Hartree),询问是否用法有误及修复方法。


解决方案

问题根源在于有限采样带来的统计噪声干扰了VQE优化过程,以及Aer Estimator默认的近似模式与默认Estimator的精确计算模式差异。以下是具体修复方法:

1. 启用Aer Estimator精确模拟模式

默认情况下Aer Estimator使用近似采样,设置approximation=False后会采用精确状态向量计算,和默认Estimator行为完全一致,消除采样噪声影响:

noiseless_estimator = AerEstimator(
    approximation=False,  # 启用精确模式
    run_options={"seed": seed},
    transpile_options={"seed_transpiler": seed},
)

2. 增加采样shots数量

如果需要保留采样模拟(模拟真实量子设备的统计特性),需大幅增加shots数量以降低采样误差,同时可调整优化器参数提升收敛稳定性:

noiseless_estimator = AerEstimator(
    run_options={"seed": seed, "shots": 8192},  # 提升shots到8192或更高
    transpile_options={"seed_transpiler": seed},
)
# 给优化器增加最大迭代次数,提升收敛性
vqe_solver2 = VQEUCCFactory(noiseless_estimator, UCCSD(), SLSQP(maxiter=1000))

3. 初始化UCCSD参数为Hartree-Fock点

确保VQE从合理的初始点开始优化,避免陷入局部最优:

# 基于问题生成Hartree-Fock初始参数
uccsd = UCCSD(es_problem.num_spatial_orbitals, es_problem.num_particles, initial_state=es_problem.get_hf_circuit())
vqe_solver2 = VQEUCCFactory(noiseless_estimator, uccsd, SLSQP(maxiter=1000))

验证效果

使用精确模式的Aer Estimator运行后,总基态能量会和默认Estimator结果一致;增加shots后的采样模式结果也会与预期差异控制在0.01 Hartree以内。


内容的提问来源于stack exchange,提问作者Giuliana Siddi Moreau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 23:03:11