叠加学堂superposition

编译:把逻辑线路翻译成硬件能跑的

连通性和门集决定了线路最后长什么样

概念8 分钟第 60 / 80 节更新于 2026-10-18

你画了一条三比特线路,第一个 CNOT 从 q0 连到 q2。芯片上 q0 只和 q1 耦合。线路没有错,机器跑不了——编译从这里开始。

映射与搬态

编译器先选一张映射表:逻辑 q0 放物理 3,逻辑 q1 放物理 5,诸如此类。选哪张表,会影响后面要搬多少次家。然后它逐个检查双门:两端在耦合图上相邻,就直接执行;不相邻,就得把态搬过去。

搬家靠 SWAP。一个 SWAP 可拆成三个 CNOT,所以每次交换都要付三个双门的代价,而双门错误率通常比单门高一个量级。深线路里,路由开销可能超过原线路本身。

演示里的线路实验室只允许相邻比特做 CNOT,而且末位会绕回第 0 位——所以 3 个比特恰好连成一个环,q0 与 q2 也能直接做门。真实芯片更像一条线或一张网格,q0 与 q2 往往不相邻,这时才需要插 SWAP 把态搬过去。演示呈现的是「门只能作用在耦合图相邻两端」这条规则,搬家的开销要自己算。

线路实验室
默认是 2 比特的 Bell 态,停在 0 / 2 步;点「下一步」逐门执行。改成 3 比特会发现 CNOT 只作用在相邻比特上,而且末位绕回 q0,三个比特正好成环——所以 q0 与 q2 也能直接连。真实芯片是有边界的线形或网格,不相邻的两端必须先交换;演示只呈现这条规则,不模拟搬家的开销。

搬完家,还得把门翻译成硬件认识的样子。

门集与优化

多数超导机器的原生门集是「任意 Z 旋转 + 一个固定的 90° 单比特门 + CNOT 或 CZ」。你写的 H、T 都要被翻译:单比特门拆成若干旋转,多控门拆成单比特与双门的组合。反过来,任意门也能用 H、T 与 CNOT 的组合逼近,这是通用门集的一种具体写法。

翻译不唯一。同一条线路可以翻成不同深度、不同双门数的版本;优化级别越高,编译器越敢删门、合并旋转、重排对易的门,但编译更久,也更需要验证。

编译的目标通常是最小化双门数与深度,而不是门的总数。成功率按每步相乘,多一个双门就多一次错误;多一层深度,就多一次退相干。不同编译结果在同一台硬件上可能差出明显的成功率,所以「编译前后」本身就是一个需要基准测试的变量。

编译只是把线路画得整齐一点,物理结果与它无关。
映射与路由直接改变双门数与深度,也就改变成功率;同一条逻辑线路,换一种编译可能跑出不同结果。
编译不是排版。它决定用哪些物理比特、插多少 SWAP、拆成什么门。
一句话结论

编译先决定逻辑比特落在哪里,再为每个不相邻的双门插入 SWAP,最后把门翻译成硬件原生门集。它不改变线路的逻辑,却改变线路的深度与双门数——而这两项直接决定成功率。

本节自测 · 3 题
未作答
01一个 SWAP 通常要拆成几个 CNOT?
02近邻耦合的芯片上,怎样执行 q0 与 q2 之间的 CNOT?
03「优化级别越高越好」这句话的问题在哪?