2. 量子线路基础表示
量子线路是量子程序最直观的“电路级”表达:它把一段量子计算拆成对若干量子比特的连续操作,并在末尾通过测量把量子信息转成经典比特。要读懂、编写并在模拟器或硬件上执行量子线路,需要同时掌握四类表示:量子比特的状态约定、量子门的矩阵与作用、测量的语义与统计性,以及线路图与 OpenQASM 这类中间表示之间的对应关系。
量子比特:状态、基与约定
一个量子比特(qubit)的纯态可写成 |ψ⟩ = α|0⟩ + β|1⟩,其中 α、β 为复数且满足 |α|² + |β|² = 1。计算基取 |0⟩ = [1, 0]ᵀ、|1⟩ = [0, 1]ᵀ。多比特系统的状态用张量积组合,例如两比特基态 |01⟩ = |0⟩ ⊗ |1⟩。约定上,线路图中从上到下(或从左到右)的线依次对应 q[0]、q[1]、q[2]……,这个顺序直接决定张量积的书写次序,也是后面读 OpenQASM 和矩阵时最容易出错的地方,必须先固定下来。
需要区分两类常见状态:一是基态 |0⟩、|1⟩,测量结果确定;二是叠加态,如 H|0⟩ = (|0⟩+|1⟩)/√2,测量时以各 1/2 的概率得到 0 或 1。量子比特不能像经典比特那样“读一眼再放回去”,测量会破坏叠加与纠缠,这是线路设计必须考虑的核心约束。
量子门:酉变换与常见门
量子门是对量子态施加的酉变换 U,满足 U†U = I,因此可逆且保范数。单比特门用 2×2 矩阵表示,作用在某个比特上时,通过张量积嵌入到整个系统。常用门包括:
- X 门:[[0,1],[1,0]],实现比特翻转,X|0⟩ = |1⟩。
- H 门:1/√2·[[1,1],[1,-1]],把 |0⟩ 变成等幅叠加态。
- Z 门:[[1,0],[0,-1]],给 |1⟩ 分量加相位 −1。
- S 门:[[1,0],[0,i]],给 |1⟩ 分量加相位 i。
- Rx(θ)、Ry(θ)、Rz(θ):绕对应轴旋转 θ 角,是变分线路中最常用的参数化门。
- CNOT:两比特门,控制位为 1 时翻转目标位,矩阵为 4×4,是产生纠缠的基本元件。
以 CNOT 为例,作用在 |10⟩(控制 q[0]=1,目标 q[1]=0)上得到 |11⟩;作用在 (|00⟩+|11⟩)/√2 上保持不变,这正是纠缠态的特征。理解门的关键不是背矩阵,而是明确“作用在哪个比特、控制关系是什么、对基态和叠加态分别产生什么效果”。
测量:语义与统计性
测量把量子态投影到某个基上,并输出经典结果。对单比特态 α|0⟩ + β|1⟩ 做 Z 基测量,得到 0 的概率为 |α|²,得到 1 的概率为 |β|²,测量后态坍缩到对应基态。线路中通常写作 measure q[i] -> c[j],表示把量子比特 q[i] 的测量结果写入经典寄存器 c[j]。多次运行(shots)会得到统计分布,例如对 H|0⟩ 测量 1024 次,理想结果约为 512 次 0、512 次 1。模拟器可以给出精确概率,硬件则只能通过大量 shots 逼近,这是两者结果呈现方式的重要差异。
线路图与 OpenQASM 的对应
线路图是给人看的图形表示:横线是量子比特,从左到右是时间顺序,方块是门,带箭头的连线表示控制关系,末尾的仪表符号表示测量。OpenQASM 是给工具链读的文本中间表示,二者描述的是同一条线路。下面给出一个产生纠缠并测量的最小示例:
OPENQASM 2.0;
include "qelib1.inc";
qreg q[2];
creg c[2];
h q[0];
cx q[0], q[1];
measure q[0] -> c[0];
measure q[1] -> c[1];
这段代码对应的线路是:q[0] 先加 H 门,再作为控制位与 q[1] 做 CNOT,最后两比特分别测量到 c[0]、c[1]。理想情况下,结果只出现 00 和 11,各约 50%,不会出现 01 或 10。读 OpenQASM 时要特别注意 qreg/creg 的声明顺序、门作用的比特顺序,以及 measure 的源与目标。
中间表示的作用与选择
OpenQASM 之所以重要,是因为它处在“人写的线路”和“机器执行的指令”之间:上层可由 Qiskit、Cirq 等框架生成,下层可被模拟器解析,也可被编译成硬件的脉冲或门序列。除 OpenQASM 外,常见中间表示还包括 QIR、Quil、以及各平台自己的 IR。它们共同承担三件事:明确比特与经典寄存器的映射、明确门的种类与参数、明确测量与结果写回关系。选择哪种表示,取决于目标后端支持的门集与编译流程;但无论哪种,读线路时都应回到“比特顺序、门作用对象、控制关系、测量映射”这四个基本点上核对。
把上述内容串起来,一条量子线路的完整表示就是:用比特和基约定描述状态空间,用酉门描述演化,用测量描述经典输出,再用线路图或 OpenQASM 把这三者固定下来。后续在模拟器与硬件上执行时,差异主要出现在噪声、连通性约束和 shots 统计上,而线路本身的语义由这套基础表示决定。