可配置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: 小规模快速测试¶
输出文件:
- vqe_audit_report_2q_2l.txt
- vqe_probe_data_2q_2l.txt
示例2: 自定义中等规模¶
参数数量: (2×3 + 1) × 4 = 28个参数
示例3: 大规模实验¶
参数数量: (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 | 很深 |
⚡ 性能预估¶
单次迭代耗时¶
总耗时预估¶
不同规模耗时预估¶
| 配置 | 参数数 | 单次迭代 | 50次迭代 | 100次迭代 |
|---|---|---|---|---|
| 2q2l | 10 | ~0.5ms | ~5s | ~10s |
| 4q3l | 28 | ~1.7ms | ~15s | ~30s |
| 6q5l | 70 | ~5ms | ~60s | ~120s |
| 8q6l | 104 | ~10ms | ~150s | ~300s |
🎯 推荐配置¶
学习/测试¶
- 快速验证代码 - 调试算法 - 参数数量少,易于理解常规实验¶
- 平衡性能与精度 - 推荐日常使用 - 4量子比特是基准规模研究对比¶
- 测试算法扩展性 - 对比不同层数的影响 - 研究优化器性能🐛 故障排除¶
问题1: 内存不足¶
错误: MemoryError
解决: 减少量子比特数或层数
问题2: 优化不收敛¶
解决: 增加迭代次数或调整随机种子
问题3: 运行时间过长¶
解决: 使用small预设或减少层数
📈 扩展性分析¶
参数数量 vs 性能¶
建议的扩展策略¶
- 逐步增加: 从2q开始,逐步增加
- 监控性能: 观察耗时和内存使用
- 调整层数: 层数对表达能力的影响大于量子比特数
- 使用预设: 从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)