2. 量子电路实验基础与复现要素
要复现一次量子电路实验,首先必须清楚“一次实验”到底由哪些东西构成。很多初学者把复现理解为“把电路图重新画一遍”,结果在另一台机器上跑出来的计数分布与原始结果相差甚远,却找不到原因。问题往往不在电路本身,而在于电路之外的要素——后端是谁、跑了多少 shots、优化等级是多少、原始数据长什么样。本节先回顾量子电路的基本组成与执行流程,再把这些要素拆解为可记录、可比对的四类复现要素。
一、量子电路的基本组成
一个量子电路在结构上由三部分构成:量子寄存器(若干量子比特,编号从 0 开始)、经典寄存器(用于存放测量结果,宽度可与量子比特数不同)、以及按时间顺序排列的指令序列。指令分为三类:量子门操作(单比特门如 H、X、RX,双比特门如 CX、CZ)、测量操作(把量子比特的 Z 基测量结果写入指定经典位)、以及复位/屏障等辅助指令。
以制备两比特 Bell 态为例,其电路描述可以写成如下形式(以 Qiskit 风格伪代码表示,便于记录与比对):
qc = QuantumCircuit(2, 2)
qc.h(0) # 对 q0 施加 Hadamard 门
qc.cx(0, 1) # 以 q0 为控制、q1 为目标施加 CX
qc.measure([0, 1], [0, 1]) # 测量并写入经典位 c0, c1
这段描述包含三个关键信息:比特数(2 量子比特 + 2 经典比特)、门序列及其作用对象、测量映射关系。复现时这三者必须完全一致,否则电路语义就变了。例如把 cx(0,1) 写成 cx(1,0),虽然门类型相同,但控制与目标互换,在纠缠态上会产生不同的相位关系,最终统计分布可能看似相同、相干性却已不同。
二、执行流程:从电路到计数
量子电路本身只是“程序”,真正产生结果需要经过一条执行链:电路构造 → 编译/转译(transpile)→ 提交到后端 → 后端执行 → 返回结果。这条链上每一步都会引入影响复现的变量。
编译阶段最容易被忽视。真实后端支持的基门集合有限(例如只支持 rz、sx、cx),因此 H 门会被分解为 rz 与 sx 的组合;同时编译器会根据后端耦合图(coupling map)插入 SWAP 门以满足连通性约束。优化等级 opt_level 从 0 到 3,等级越高门数通常越少,但不同版本编译器的具体策略可能不同。这意味着:同一份源电路,在不同后端、不同优化等级下,实际执行的物理电路并不相同。
执行阶段则由 shots(重复次数)决定统计精度。一次 shots=1024 的运行,对 Bell 态可能得到 {'00': 503, '11': 521} 这样的计数;若 shots=100,同样的电路可能得到 {'00': 47, '11': 53}。计数本身带有统计涨落,复现时若 shots 不同,直接比较绝对计数是没有意义的,应比较归一化后的频率及其置信区间。
三、四类复现要素的具体含义
电路描述是复现的语义基础。除了比特数、门序列、测量映射,还应记录带参数门的实际参数值(如 rx(0.785) 中的 0.785 弧度),以及电路是否经过等价变换。建议直接保存源电路的序列化文本(如 QASM 字符串),而不是只保存截图,因为截图无法还原参数精度。
后端属性决定了物理电路长什么样。需要记录后端名称、量子比特数、基门集合、耦合图,以及校准时间戳。这一点常被忽略:同一台机器在不同日期的 T1、T2、读出保真度、门错误率都会变化,昨天的结果今天未必能复现。若无法回到同一校准状态,至少应在记录中注明差异,避免把“机器漂移”误判为“电路写错”。
运行参数包括 shots、优化等级、转译种子(seed_transpiler)、是否启用测量误差缓解等。其中转译种子值得特别强调:编译器在优化时可能做随机选择,固定种子能让同一版本编译器产生相同的物理电路,这是提高可复现性的低成本手段。
原始数据指后端返回的计数字典及其元数据,包括作业 ID、提交时间、执行时长、后端状态快照。保留原始计数而非只保留画好的柱状图,是因为后续可能需要重新归一化、计算保真度或做误差缓解,这些都需要原始计数作为输入。
四、一个可操作的复现记录示例
把上述要素落成一份可填写的记录,复现时就有了对照基准。以下为示例结构(数值为教学假设,非实测):
| 要素类别 | 记录字段 | 示例值 |
|---|---|---|
| 电路描述 | QASM 文本 / 比特数 | h(0); cx(0,1); measure → 2q+2c |
| 后端属性 | 后端名 / 校准时间 | 示例后端A / 2024-05-10 09:00 |
| 运行参数 | shots / opt_level / seed | 1024 / 1 / 42 |
| 原始数据 | 计数字典 / 作业ID | {'00':503,'11':521} / job-xxxx |
复现时的判断逻辑是:先核对电路描述与运行参数是否逐字一致,再确认后端是否同型号、校准时间是否接近;若都满足,则比较归一化频率。以 Bell 态为例,理想情况下 '00' 与 '11' 各约 0.5,若实测出现明显的 '01'、'10' 成分(例如各占 0.05 以上),通常提示读出错误或双比特门错误偏高,而不是电路逻辑写错。此时应回到后端属性中的错误率数据去解释,而不是反复修改电路。
综上,量子电路实验的复现要素可以概括为:电路描述定语义、后端属性定物理实现、运行参数定统计条件、原始数据定比较基准。四者齐备,复现才从“碰运气”变成可验证的工程过程。