量子门与量子线路:量子计算机的「指令集」
5.1 从逻辑门到量子门
经典计算机用逻辑门处理比特,例如:
| 经典门 | 功能 |
|---|---|
| NOT | 0 变 1,1 变 0 |
| AND | 两个都是 1 才输出 1 |
| OR | 有一个是 1 就输出 1 |
量子计算机用量子门处理量子比特。本章先讲理想封闭系统中的酉门,它们与常见经典逻辑门的区别是:
- 酉门线性作用于概率幅。先知道门怎样变换各基态,就能把同一变换应用到叠加态各成分。
- 酉门可逆且保持总概率。经典 AND 把多个输入映成同一输出,单看输出不能倒推输入;酉门则有逆操作,数学上称为酉变换(unitary)。仅仅「可逆」还不够,概率归一化也必须保持。
不是量子程序里的所有指令都可逆。 测量、重置及含噪声过程一般不是酉操作。经典 AND 也不是不能参与量子算法,而是要保留输入、用辅助比特承载结果,将它嵌入更大的可逆线路。
用做 IT 的视角理解:
量子门就是量子计算机的「指令」;一串量子门按顺序排列,就是「量子程序」,叫做量子线路(quantum circuit)。
5.2 最常用的单比特门
| 门 | 作用 | 类比 |
|---|---|---|
| X 门 | |0⟩ 和 |1⟩ 互换 | 量子版 NOT |
| Z 门 | |1⟩ 的概率幅取负号,|0⟩ 不变 | 改变相对相位,不改变紧接着的 Z 基测量概率 |
| H 门(Hadamard) | 把 |0⟩ 变成 |+⟩,把 |1⟩ 变成 |−⟩,也能反向变回 | 在 Z 基与 X 基之间转换 |
| S 门、T 门 | 给 |1⟩ 加上特定相位 | 精细调节相位 |
| 旋转门 Rx、Ry、Rz | 在布洛赫球上绕某个轴旋转任意角度 | 连续可调的「旋钮」 |
如果你愿意看一点矩阵,它们长这样(量子门就是作用在概率幅向量上的矩阵):
X = | 0 1 | Z = | 1 0 | H = 1/√2 * | 1 1 |
| 1 0 | | 0 -1 | | 1 -1 |
5.3 最重要的双比特门:CNOT
CNOT(受控非门) 有两个输入:控制比特和目标比特。
- 控制比特是 0:目标比特不变;
- 控制比特是 1:目标比特翻转。
| 输入(控制, 目标) | 输出 |
|---|---|
| 00 | 00 |
| 01 | 01 |
| 10 | 11 |
| 11 | 10 |
单看这张表,目标输出是「目标 XOR 控制」,控制位保留。CNOT 有能力制造纠缠,但不对任意输入都制造纠缠:输入 |+⟩|0⟩ 会变成贝尔态;输入 |+⟩|+⟩ 则不变,因为 X|+⟩ = |+⟩,控制为 0 或 1 时目标态都一样,两者仍是乘积态。
5.4 动手推一遍:制造一个贝尔态
我们用两个门造出第 4 章的贝尔态。初始状态是 |00⟩。
第一步:对第 1 个比特做 H 门。
|00⟩ --H--> [(|0⟩ + |1⟩)/√2] ⊗ |0⟩ = (|00⟩ + |10⟩)/√2
(这里的 ⊗ 表示把两个比特的状态组合起来,数学上叫「张量积」)
现在第 1 个比特处于叠加态,第 2 个比特还是 0,两者还没有纠缠。
第二步:以第 1 个比特为控制,第 2 个比特为目标,做 CNOT。
- |00⟩ 的控制位是 0,保持 |00⟩;
- |10⟩ 的控制位是 1,目标翻转,变成 |11⟩。
(|00⟩ + |10⟩)/√2 --CNOT--> (|00⟩ + |11⟩)/√2
完成!只用两个门就造出了纠缠态。这也是几乎所有量子编程教程的「Hello World」。
5.5 再推一遍:亲眼看到干涉
这个例子最能体现量子计算的精髓。对 |0⟩ 连续做两次 H 门:
第一次 H:
|0⟩ --H--> (|0⟩ + |1⟩)/√2
现在测量的话,0 和 1 各 50%。
第二次 H: H 门把 |0⟩ 变成 (|0⟩ + |1⟩)/√2,把 |1⟩ 变成 (|0⟩ - |1⟩)/√2。所以:
(|0⟩ + |1⟩)/√2
--H--> 1/√2 * [ (|0⟩ + |1⟩)/√2 + (|0⟩ - |1⟩)/√2 ]
= 1/2 * [ |0⟩ + |1⟩ + |0⟩ - |1⟩ ]
= 1/2 * [ 2|0⟩ + 0|1⟩ ]
= |0⟩
注意中间那一步:两条「通往 |1⟩ 的路」一条带 +,一条带 -,互相抵消了;两条「通往 |0⟩ 的路」都带 +,互相加强了。最终结果 100% 是 0。
这就是干涉,而不是两次独立抛硬币。注意中间没有测量;若第一次 H 后先测 Z 且忽略结果,再做 H、测 Z,最后将是 50/50,因为相干叠加已变成 3.7 节的随机混合。
H—H 展示了概率幅相消与相长,不是量子加速的证明。 这个单比特过程经典计算机很容易模拟。真实算法还要把问题编码进线路,并比较总资源,不能只因出现干涉就宣布「超过经典」。
5.6 通用门集:用少数指令表达一切
经典计算中,只用 NAND 门就能搭出任何逻辑电路。量子计算也有类似结论:
只用 H、T、CNOT 这几种门,就能在忽略无物理意义整体相位的条件下,以任意所需精度近似有限量子比特上的酉变换。
这叫通用量子门集。它不表示每个酉变换都能用很短的线路实现,也不表示只靠酉门就直接实现测量和重置。就像 CPU 有自己的指令集(x86、ARM),不同量子硬件也有自己的「原生门集」,量子编译器负责把线路翻译成硬件能执行的门。
5.7 量子线路图怎么看
量子程序通常画成线路图:
- 每一条横线代表一个量子比特,时间从左往右流动;
- 方框是单比特门,[H] 表示 Hadamard 门;
- ● 和 ⊕ 用竖线相连,表示 CNOT:● 是控制比特,⊕ 是目标比特;
- [M] 表示测量。
这张图就是 5.4 节「制造贝尔态然后测量」的完整程序。
5.8 把相位差变成读出差:比较 H—H 和 H—Z—H
从 |0⟩ 出发,先做 H 得到 |+⟩。若直接再做 H,回到 |0⟩;若中间插入 Z,|1⟩ 的概率幅改为负,状态变成 |−⟩,最后 H 把它变成 |1⟩。
|0⟩ --H--> |+⟩ --------H--> |0⟩ 最后测 Z:100% 为 0
|0⟩ --H--> |+⟩ --Z--> |−⟩ --H--> |1⟩ 最后测 Z:100% 为 1
在最后一个 H 之前,两条线路的 Z 基概率都还是 50/50;差别全在相对相位。最后的 H 通过干涉把这个差别变成确定的不同读出。这是「换基能看见相对相位」的具体操作,不是读出一个名叫「相位」的额外隐藏寄存器。
本章小结
- 理想酉门可逆并保持总概率;量子线路还可包含非酉的测量、重置。
- X、Z、H 是最常用的单比特门;CNOT 是制造纠缠的关键双比特门。
- H + CNOT 两个门就能制造贝尔态,这是量子编程的 Hello World。
- 两次 H 门的例子展示了干涉:路径相消与相长。
- 少量门(如 H、T、CNOT)就能构成通用门集,硬件由编译器适配。
本章自测(5 题)
本章共 22 道练习题(含多选与计算题),去微我刷题完整练习 ›