第 5 章量子计算入门

量子门与量子线路:量子计算机的「指令集」

5.1 从逻辑门到量子门

经典计算机用逻辑门处理比特,例如:

经典门功能
NOT0 变 1,1 变 0
AND两个都是 1 才输出 1
OR有一个是 1 就输出 1

量子计算机用量子门处理量子比特。本章先讲理想封闭系统中的酉门,它们与常见经典逻辑门的区别是:

  1. 酉门线性作用于概率幅。先知道门怎样变换各基态,就能把同一变换应用到叠加态各成分。
  2. 酉门可逆且保持总概率。经典 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:目标比特翻转。
输入(控制, 目标)输出
0000
0101
1011
1110

单看这张表,目标输出是「目标 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 量子线路图怎么看

量子程序通常画成线路图:

q0q1 H M M
贝尔态线路:H 门制造叠加,CNOT 制造纠缠,最后测量
  • 每一条横线代表一个量子比特,时间从左往右流动;
  • 方框是单比特门,[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 道练习题(含多选与计算题),去微我刷题完整练习 ›

读完了吗?

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