Qiskit 2.1.2 版本更新说明¶
概述¶
本文档说明如何将原有的QAOA代码适配到Qiskit 2.1.2版本。主要更新涉及后端调用方式和电路运行流程的现代化。
主要变更¶
1. 后端系统更新¶
旧版本代码:
新版本代码:
2. 电路运行方式更新¶
旧版本代码:
新版本代码:
# 先编译电路
qc_compiled = transpile(qc, backend)
# 再运行电路
job = backend.run(qc_compiled, shots=512)
result = job.result()
counts = result.get_counts()
3. 添加transpile步骤¶
在新版本中,强烈建议在运行电路前使用transpile函数进行编译优化:
完整的更新示例¶
原始文件:qaoa_chinese_complete.ipynb¶
需要更新以下部分:
-
导入语句:将
from qiskit import QuantumCircuit, Aer改为: -
后端初始化:替换所有
Aer.get_backend()调用为AerSimulator() -
电路运行:添加transpile步骤并更新运行方式
创建的新文件¶
qaoa_qiskit_updated_simple.py- 简化版的QAOA示例,完全兼容Qiskit 2.1.2QAOA_Qiskit_2.1.2_Example.ipynb- Jupyter笔记本格式的更新示例
验证结果¶
运行更新后的代码,成功获得:
- 优化结果:COBYLA算法收敛,找到最优参数
- 测量结果:'0101'和'1010'具有最高概率(140和116次),符合最大割问题的预期解
- 性能:算法正常运行,没有兼容性问题
环境配置¶
确保在qiskit_env虚拟环境中安装了以下包:
注意事项¶
- 新版本的
AerSimulator提供了更好的性能和更多配置选项 transpile步骤可以显著提高电路运行效率- 测量结果的比特顺序可能与旧版本有所不同,需要相应调整解析逻辑
结论¶
Qiskit 2.1.2版本的QAOA实现更加现代化和高效。通过上述更新,原有的QAOA代码可以完全兼容新版本,并获得更好的性能和稳定性。