1. 量子芯片拓扑映射、路由与调度导论

量子芯片的物理结构决定了它不能像经典处理器那样随意访问任意两个比特之间的连线。超导量子芯片上,量子比特以二维网格、重六边形或其他稀疏拓扑排布,只有相邻比特之间存在可用的两比特门通道。而量子算法在编译前通常以逻辑线路的形式描述,逻辑比特之间可以任意交互。这种"逻辑自由"与"物理受限"之间的落差,正是拓扑映射、路由与调度要解决的核心问题。

本课程的目标,是让学习者能够独立完成从逻辑量子线路到物理芯片可执行指令序列的完整转换,并理解每一步背后的约束、代价与优化空间。学完课程后,你应当能够:读懂量子芯片的耦合图与错误率标定数据;为给定线路选择合适的初始映射;在SWAP开销与门深度之间做出权衡;把映射、路由、调度串成一条可运行的编译流水线;并能用保真度、深度、SWAP数等指标评估编译质量。

三个核心问题

整个技术栈围绕三个相互耦合的问题展开。

映射(Mapping)解决"谁放在哪里"。逻辑比特到物理比特的初始分配会显著影响后续路由代价。若把交互频繁的逻辑比特对放在物理上相距很远的节点,路由阶段就要付出大量SWAP。映射的目标是在耦合图上寻找一个低代价的初始布局。

路由(Routing)解决"如何让不相邻的比特交互"。当一条两比特门作用于物理上不相邻的两个比特时,必须通过插入SWAP把其中一个逻辑比特"搬运"到相邻位置。SWAP本身由三个CNOT实现,代价高昂,因此路由算法的核心是减少SWAP数量并控制其分布。

调度(Scheduling)解决"何时执行"。同一时刻不能对同一物理比特施加两个门,也不能违反依赖关系。调度要在满足依赖与资源约束的前提下,尽可能并行执行独立门,压缩线路深度,同时还要考虑退相干时间——线路总时长必须远小于比特的相干时间。

三者并非独立:映射改变路由代价,路由插入的SWAP改变依赖图,调度结果又反过来影响映射与路由的评估。因此实际编译器往往迭代优化,而非单向流水。

量子线路编译:从逻辑描述到物理执行 逻辑量子线路 逻辑比特 q0,q1,q2… 任意两比特门 无拓扑约束 例:H(q0), CNOT(q0,q3) ① 拓扑映射 逻辑→物理分配 最小化距离代价 输入:耦合图 输出:初始布局 π ② 路由 插入SWAP 使逻辑比特相邻 输入:布局+线路 输出:含SWAP线路 ③ 调度 依赖+资源约束 并行化独立门 输入:含SWAP线路 输出:时序指令 物理量子芯片约束 Q0 Q1 Q2 Q3 Q4 Q5 • 耦合图:仅相邻比特可执行两比特门 • 错误率标定:单/双比特门保真度、读出保真度 • 相干时间 T1/T2:限制线路最大深度 • 串扰约束:相邻门不能同时执行 迭代优化:映射↔路由↔调度相互影响 编译质量评估指标 • SWAP数量 • 线路深度 • 总门数 • 估计保真度 • 执行时间 vs 相干时间 • 串扰冲突次数 • 映射距离代价 • 路由路径长度 • 调度并行度

技术栈全景

围绕上述三个问题,形成了一条从硬件到应用的完整技术栈。最底层是量子芯片的物理标定数据:耦合图、门保真度、相干时间、串扰矩阵。这些数据是编译器的输入约束。往上一层是量子线路中间表示(IR),常见形式包括DAG(有向无环图)和分层线路表示,它们把线路的门依赖关系显式化。再往上是映射、路由、调度三个核心模块,它们可以独立实现,也可以联合优化。最上层是面向具体硬件后端的指令生成与脉冲级调度。

在工具层面,Qiskit的Transpiler、Cirq的Router、TKET的Mapping模块都提供了可参考的实现。它们共享相似的设计哲学:先用启发式方法快速得到一个可行解,再用局部搜索或代价函数迭代改进。理解这些工具的内部机制,比单纯调用API更有价值,因为不同芯片拓扑和线路结构需要不同的策略。

学习路径建议

建议按以下顺序推进。第一步,建立物理直觉:亲手画出几种常见拓扑(线性链、2D网格、重六边形),标注每个节点的度数和最短路径,理解为什么"度"和"直径"决定了路由难度。第二步,掌握映射算法:从最简单的贪心映射开始,理解交互图与耦合图的匹配问题,再学习基于子图同构或启发式搜索的方法。第三步,深入路由:理解SWAP插入的基本策略(最短路径、交换网络、令牌交换),并学会计算路由代价。第四步,学习调度:掌握ASAP/ALAP调度、列表调度,理解资源约束与依赖约束如何共同决定并行度。第五步,综合实践:用一个小规模线路(例如4~8个逻辑比特的GHZ态制备或QFT片段)走完整个编译流程,记录每一步的SWAP数、深度和估计保真度,对比不同策略的差异。

学习过程中建议始终维护一份"编译日志":记录输入线路规模、目标拓扑、映射方案、路由插入的SWAP位置、调度后的深度,以及最终估计保真度。这份日志能帮你快速定位瓶颈——是映射太差导致路由爆炸,还是调度过于保守导致深度过大。