跳转至

可配置VQE程序使用说明

📋 文件说明

文件名: heisenberg_vqe_configurable.py

这是一个高度可配置的VQE实验程序,支持: - ✅ 自定义量子比特数(2-10+ qubits) - ✅ 自定义Ansatz层数(1-10+ layers) - ✅ 可调节Heisenberg模型参数 - ✅ 完整的数据探针审计功能 - ✅ 预设配置(small/medium/large) - ✅ 自动生成审计报告


🚀 快速开始

方式1: 使用预设配置

# 小规模测试(快速)
python heisenberg_vqe_configurable.py --preset small

# 中等规模(推荐)
python heisenberg_vqe_configurable.py --preset medium

# 大规模(完整测试)
python heisenberg_vqe_configurable.py --preset large

方式2: 自定义参数

# 基本用法
python heisenberg_vqe_configurable.py --nqubits 4 --layers 3

# 完整自定义
python heisenberg_vqe_configurable.py \
    --nqubits 6 \
    --layers 5 \
    --coupling 1.5 \
    --field 0.1 \
    --maxiter 100 \
    --seed 123

# 启用详细探针输出
python heisenberg_vqe_configurable.py \
    --nqubits 4 \
    --layers 3 \
    --verbose-probe

📖 参数详解

命令行参数

参数 简写 类型 默认值 说明
--nqubits -n int 4 量子比特数
--layers -l int 3 Ansatz层数
--coupling -J float 1.0 Heisenberg耦合常数J
--field -h float 0.0 外场强度h
--maxiter -m int 50 最大迭代次数
--seed -s int 42 随机种子
--verbose-probe - flag False 启用探针详细输出
--preset - str - 预设配置

预设配置对比

预设 量子比特 层数 迭代次数 参数数量 预计耗时
small 2 2 30 10 ~5秒
medium 4 3 50 28 ~15秒
large 6 5 100 70 ~60秒

💡 使用示例

示例1: 小规模快速测试

python heisenberg_vqe_configurable.py --preset small

输出文件: - vqe_audit_report_2q_2l.txt - vqe_probe_data_2q_2l.txt

示例2: 自定义中等规模

python heisenberg_vqe_configurable.py \
    --nqubits 4 \
    --layers 3 \
    --coupling 1.0 \
    --maxiter 50

参数数量: (2×3 + 1) × 4 = 28个参数

示例3: 大规模实验

python heisenberg_vqe_configurable.py \
    --nqubits 8 \
    --layers 6 \
    --maxiter 100 \
    --seed 42

参数数量: (2×6 + 1) × 8 = 104个参数

示例4: 改变Heisenberg模型参数

# XXX模型(各向同性)
python heisenberg_vqe_configurable.py \
    --nqubits 4 \
    --layers 3 \
    --coupling 1.0

# XXZ模型(各向异性)
python heisenberg_vqe_configurable.py \
    --nqubits 4 \
    --layers 3 \
    --coupling 1.0 \
    --field 0.5

📊 输出文件说明

1. 审计报告文件

命名格式: vqe_audit_report_{nqubits}q_{layers}l.txt

包含内容: - 基础统计(调用次数、总耗时) - I/O瓶颈分析 - 精度审计 - 台阶效应分析 - 前20次调用的详细记录

2. 探针数据文件

命名格式: vqe_probe_data_{nqubits}q_{layers}l.txt

包含内容: - 所有函数调用的完整记录 - 内存地址、数据类型、耗时 - 精度损失、能量值、能量变化


🔍 参数数量计算

Hardware Efficient Ansatz参数数量

参数总数 = nqubits × (2 × layers + 1)

其中:
- nqubits: 量子比特数
- layers: Ansatz层数
- 每层包含:2次RY旋转 + 1次初始H + 1次最终RY

常见配置的参数数量

量子比特 层数 参数数量 电路深度
2 2 10
4 3 28
6 5 70
8 6 104 很深

⚡ 性能预估

单次迭代耗时

总耗时 ≈ set_parameters + 电路执行
       ≈ 0.08ms + 1.6ms
       ≈ 1.7ms

总耗时预估

总耗时 ≈ 单次迭代 × 总函数评估次数
       ≈ 1.7ms × (maxiter × 15)
       ≈ 1.7ms × 750 (50次迭代)
       ≈ 1.3秒

不同规模耗时预估

配置 参数数 单次迭代 50次迭代 100次迭代
2q2l 10 ~0.5ms ~5s ~10s
4q3l 28 ~1.7ms ~15s ~30s
6q5l 70 ~5ms ~60s ~120s
8q6l 104 ~10ms ~150s ~300s

🎯 推荐配置

学习/测试

python heisenberg_vqe_configurable.py --preset small
- 快速验证代码 - 调试算法 - 参数数量少,易于理解

常规实验

python heisenberg_vqe_configurable.py --preset medium
- 平衡性能与精度 - 推荐日常使用 - 4量子比特是基准规模

研究对比

python heisenberg_vqe_configurable.py \
    --nqubits 6 \
    --layers 5 \
    --maxiter 100
- 测试算法扩展性 - 对比不同层数的影响 - 研究优化器性能


🐛 故障排除

问题1: 内存不足

错误: MemoryError

解决: 减少量子比特数或层数

# 从8q降到6q
python heisenberg_vqe_configurable.py --nqubits 6 --layers 4

问题2: 优化不收敛

解决: 增加迭代次数或调整随机种子

python heisenberg_vqe_configurable.py \
    --nqubits 4 \
    --layers 3 \
    --maxiter 100 \
    --seed 123

问题3: 运行时间过长

解决: 使用small预设或减少层数

python heisenberg_vqe_configurable.py --preset small


📈 扩展性分析

参数数量 vs 性能

参数数量 → 优化难度增加
         → 收敛速度变慢
         → 需要更多迭代
         → 耗时增加

量子比特数 → 态矢量指数增长 (2ⁿ)
          → 电路执行耗时增加
          → 内存消耗增加

建议的扩展策略

  1. 逐步增加: 从2q开始,逐步增加
  2. 监控性能: 观察耗时和内存使用
  3. 调整层数: 层数对表达能力的影响大于量子比特数
  4. 使用预设: 从medium开始,根据需要调整

🔗 相关文档

  • heisenberg_vqe.py - 原始固定配置版本
  • VQE_DATA_FLOW_DIAGRAM.md - 完整数据流图
  • AUDIT_ANALYSIS_REPORT.md - 审计分析报告
  • PROBE_MIDDLEWARE_README.md - 探针中间件说明

版本: 1.0 创建日期: 2026-01-12 作者: Claude (AI Assistant)