第 10 章量子计算入门

软件栈与量子云:你最熟悉的那一层

10.1 量子软件栈和云计算的对应关系

这一章从你熟悉的云计算切入。量子软件栈可以借助 IaaS、SDK、作业调度等概念理解,但这只是职责类比,不是产品能力的一一对应:你不能把一个未知量子态像虚拟机一样随意快照、复制和热迁移。

量子计算层次包含什么云计算类比
应用层量子化学软件、金融优化工具、行业解决方案SaaS
算法与库算法库、纠错库、行业算法模板中间件、算法库
开发框架(SDK)Qiskit、Cirq、PennyLane、本源 pyQPanda 等云 SDK、开发框架
编译器把逻辑线路翻译成硬件原生门,适配比特拓扑编译器、JIT
云接入与调度任务排队、资源分配、计费、API云控制台、作业调度
控制系统脉冲生成、校准、实时反馈固件、驱动
硬件量子芯片、制冷机、测控设备IaaS 底层硬件

10.2 你的第一个量子程序

下面用 IBM 开源的 Qiskit 写一个制造贝尔态的程序。即使你没有量子计算机,也可以在自己电脑上用模拟器运行。

安装(需要 Python 环境):

pip install qiskit qiskit-aer

代码:

from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator

qc = QuantumCircuit(2, 2)   # 2 个量子比特,2 个经典比特
qc.h(0)                     # 对第 0 号比特做 H 门:制造叠加
qc.cx(0, 1)                 # CNOT:0 号控制,1 号目标,制造纠缠
qc.measure([0, 1], [0, 1])  # 测量,结果写入经典比特

sim = AerSimulator()
job = sim.run(transpile(qc, sim), shots=1000)
print(job.result().get_counts())
# 输出大约是:{'00': 500 左右, '11': 500 左右}

逐行理解:

  1. 创建一个包含 2 个量子比特和 2 个经典比特的线路;
  2. h(0):对 0 号量子比特做 Hadamard 门;
  3. cx(0, 1):做 CNOT 门;
  4. measure:把量子比特的测量结果存入经典比特;
  5. transpile:把线路「编译」成模拟器或硬件支持的形式;
  6. shots=1000:运行 1000 次并统计结果。

在这个理想模拟器中,结果只会出现 00 和 11,各占约一半。你完成的是纠缠态的经典数学模拟,并没有在 PC 上物理制造量子纠缠;而且仅凭这一组 Z 基测量计数不能独立验证纠缠(见第 4 章)。代码示例使用 QuantumCircuit、AerSimulator 的接口形式;安装时请记录实际 Python、qiskit、qiskit-aer 版本,不能把未锁定版本的安装命令当作永久兼容保证。

先避开一个常见坑:Qiskit 的比特顺序

第 5 章手算线路按「控制比特在左、目标比特在右」书写。Qiskit 默认线路图中 q0 在上,但在这里 measure([0,1], [0,1]) 映射产生的计数字符串中,c1 在左、c0 在右;状态向量的标签同样通常写成 |q1 q0>。这不是物理定律改变,而是软件的显示约定。[R2]

操作(从两个零开始)q0q1Qiskit 计数字符串
只做 qc.x(0)1001
只做 qc.x(1)0110
x(0) 后做 cx(0,1)1111

贝尔态的 00、11 左右对称,恰好会掩盖位序错误。调试时先运行不对称的 x(0) 测试,再解释复杂线路;额外经典寄存器及不同结果数组接口也可能改变展示方式,不要凭界面上下位置猜字符串位序。

再做一个实验:把相位变成可读的概率

把上面代码里创建 qc 到测量前的部分,分别换成下面三个小线路;每次都从新建的 |0⟩ 出发,经典寄存器也改为 1 位,最后调用 qc.measure(0,0):

# 实验 A:两次 H,中间没有测量
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.h(0)
# 理想最终测量:100% 为 0

# 实验 B:H、Z、H,把相对相位翻转变成比特翻转
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.z(0)
qc.h(0)
# 理想最终测量:100% 为 1

# 实验 C:中间测量破坏相干,再做 H
qc = QuantumCircuit(1, 1)
qc.h(0)
qc.measure(0, 0)
qc.h(0)
# 最后再次 qc.measure(0,0):最终 0/1 各约一半

上面 A、B、C 三段是独立实验,不是一起顺序粘贴的完整程序;应一次选一段,再接上测量与模拟器运行部分。实验 C 最后的测量会覆盖同一个经典位,因此这里统计的是最终结果,而非两次测量历史。

本轮代码实测(2026-10-27):Python 3.13.12、Qiskit 2.6.1、qiskit-aer 0.18.2,使用理想 Aer 模拟器。上方完整贝尔态程序的 1000 shots 得到 00:504 次、11:496 次。另以 10000 shots、seed_simulator=42 校验:H-H 全为 0,H-Z-H 全为 1,H-中间测量-H 得到 0:5080 次、1:4920 次;只做 x(0) 的两比特线路全为 01,贝尔态得到 00:4932 次、11:5068 次。这些是指定软件环境下的模拟结果,不是真机性能指标,也不要求换版本后随机计数逐项相同。

10.3 量子编译器在做什么

你写的线路是「逻辑层」的,真实硬件有两个限制:

  1. 原生门集有限:比如某台硬件只支持特定的旋转门和某种双比特门,H 门要拆成它们的组合;
  2. 连接拓扑受限:超导芯片上不是任意两个比特都能直接做 CNOT,不相邻时要插入额外的 SWAP 操作「搬运」状态。

编译器还要做优化:合并、消去冗余的门,尽量缩短线路深度,因为线路越长,噪声累积越多。这和经典编译器做指令调度、寄存器分配、死代码消除的思路很相似。

10.4 量子云:不用买机器也能用量子计算机

和云计算一样,绝大多数用户不会自己买量子计算机,而是通过云平台按需使用:

平台提供方特点
IBM Quantum PlatformIBMQiskit 生态;后端可用性、访问资格及额度以当期平台说明为准
Amazon BraketAWS多硬件接入,可调用多家厂商的量子计算机
Azure QuantumMicrosoft接入多家硬件,和 Azure 云生态整合
Google Quantum AIGoogle以研究合作为主,Cirq 框架
本源量子云本源量子国产超导量子计算机,如本源悟空系列
天衍量子计算云平台中电信量子集团运营商体系,天衍系列整机

使用流程基本是:注册账号 → 获取 API Token → 用 SDK 写线路 → 选择后端(模拟器或真机)→ 提交任务排队 → 获取结果。是不是和调用任何一个云 API 差不多?

10.5 模拟器 vs 真机

对比项模拟器真实量子计算机
运行在哪你的电脑或云服务器(经典)真实量子硬件
规模约束稠密态向量随 2^n 增长;稳定子、张量网络等方法对适配的线路可模拟更多比特,不能给所有模拟器一个固定上限同时受物理规模、连接、错误率、可运行深度与可访问资源限制
噪声此处示例无噪声;可选择噪声模型,但不能完整复刻设备所有漂移包含真实噪声、漂移及读出误差
适合做什么学习、调试、小规模算法与数学验证真实实验、设备性能及噪声测试
成本小规模通常低;大规模精确模拟也可能昂贵按后端、任务、时长或采样次数计费,需查实际服务条款

建议学习路径:先在模拟器上把概念跑通,再去真机上体验噪声的影响。

10.6 从一段代码到一次可复现的云实验

从云工程视角,量子作业更接近带排队和设备约束的批处理任务,而不是一个实时返回的普通 Web API:

  1. 固定输入:保留原始线路、参数、测量基和随机种子;模拟器种子只固定伪随机采样,不代表真机能固定测量结果。
  2. 选择后端:说明是理想模拟器、含噪模拟器还是物理设备;记录目标门集、连接图和校准信息。
  3. 编译留痕:保存编译后的物理比特映射、双比特门数和线路深度,同一逻辑线路在不同后端的代价可能完全不同。
  4. 执行留痕:记录 shots、作业标识、提交时间、排队时间、执行时间以及失败/重试次数。访问令牌保存在安全的凭据管理位置,不写进共享教材或代码。
  5. 统计留痕:输出计数、期望值和误差范围;说明是否做误差缓解、丢弃了多少样本,不能只展示处理后最好的一次。
  6. 对照实验:同等精度、同样输入,与合适的经典方法比较总时长和总成本,而不只比较 QPU 上的几微秒。

建议的最小实验记录是一行:软件版本 + 原始/编译线路 + 后端与校准时间 + shots + 结果统计 + 不确定度 + 处理方法。这相当于把机器学习实验的可复现习惯迁移到量子编程中。

本章小结

  • 量子软件栈可以借助云计算分层理解,但量子态不能像虚拟机或内存一样任意复制与迁移。
  • 用 Qiskit 可以模拟纠缠线路;这不等于在 PC 上制造物理纠缠。读计数前要核对经典位映射和字符串位序。
  • 量子编译器负责适配原生门集和比特拓扑,并缩短线路深度。
  • 量子云让用户无需购买硬件即可按需使用量子计算机。
  • 模拟器适合学习,真机适合体验真实噪声。

本章自测(5 题)

本章共 14 道练习题(含多选与计算题),去微我刷题完整练习 ›

读完了吗?

标记后会记录在本机浏览器,课程目录显示你的进度。