前面两词条讲"为什么"与"折中",本词条讲"怎么生成":给定一个经典函数,产出 Toffoli/CNOT 网络。这门学问在 2003–2012 年间形成了一条独立文献线——变换式综合、置换分解、模板化简、专用语言与工具——然后与容错量子计算的主流成本口径(T 数、魔法态)脱节了。今天写量子算术的人重新发明可逆综合技巧,多数不知道那条线早就存在。本词条把三条综合路线摆出来,把断点指出来。

问题形式与三条路线

输入:经典函数(真值表、布尔网络、或程序片段);输出:NOT/CNOT/Toffoli 网络,作用在 个数据位加若干辅助位上。三条已核验的路线:

路线代表文献做法规模边界
变换式综合(transformation-based)Miller–Maslov–Dueck 2003(QRC009)把恒等排列逐步变换到目标真值表,每步落一个 Toffoli/CNOT小 ()实用;无辅助位版本最坏指数
置换环分解Shende–Prasad–Markov–Hayes 2003(QRC010)真值表排列的环结构直接分解为门;给出紧的最坏界与辅助位折中一般排列最坏 量级门数——综合是指数难的
逻辑网络合成(XAG/MIG → 可逆)Soeken–Roetteler–Wiebe–De Micheli 2017(QRC016)先做经典逻辑综合(异或-与图、多数-反相图),再可逆化;目标函数含 T 深度大 可扩展;质量取决于逻辑综合阶段

第三条路线值得单独强调:它明确把量子成本(T 深度)写进了经典逻辑综合的目标函数,是”可逆综合”与”容错口径”之间少数已核验的桥。同方向的后续 Häner–Soeken 2020 证明重排逻辑网络的乘法深度可以直接降 T 深度——把综合问题从”门数最小”转向”乘法深度最小”。

可逆 ALU:一门复用

综合文献的代表作之一不是单函数,而是把加、减、与、或、异或等一整套运算塞进同一条可逆数据通路的 ALU 设计(Thomsen–Glück–Axelsen 2010,标题即 “for quantum arithmetic”)。思路:运算选择位作为额外控制线,公共的进位/传播结构被各运算共享,避免”每个运算各配一套线路 + 各自的垃圾”。它的实用价值有限(算术卷的专用加法器几乎总是更省),概念价值很高:它证明”可逆数据通路”可以像经典处理器一样被复用——这条思路在今天的 QRAM 与 oracle 设计里反复重现,却很少被归功。

语言与工具:一条断代的线

可逆计算有过自己的语言与工具生态:

  • 语言层:Yokoyama–Axelsen–Glück 的可逆语言运行语义(PEPM 2008)确立了”程序可逆 ⇔ 每条语句可逆”的组合原则与语义不变式;Axelsen–Glück 刻画了可逆程序的计算能力边界(FoSSaCS 2011)。这类语言把 “uncompute” 写进语义,让编译器保证垃圾回零——比在量子 HDL 里手工管辅助位先进一代。
  • 工具层:RevKit(Soeken–Frehse–Wille–Drechsler 2012)把上述综合路线做成开源工具链,也是 Häner 等 2018 构造浮点线路用的两大验证工具之一。
  • 验证与优化层:Häner–Hoefler–Troyer 的断言传播(1810.00375)在可逆经典逻辑上证明”某段计算不影响观测输出”并整段删除——把编译器优化做进量子语义层面。

断代发生在 2012 年之后:RevKit 停止演进,可逆语言研究离开主流,而量子工具链(Qiskit 等)的 classical function synthesis 重新实现了其中一小部分技巧、几乎不引用那条文献线。两边的清单对不上:工具有的文献没有,文献有的工具丢了。引用本卷文献时要知道这个断层——“工具不存在”不等于”方法不存在”。

Open Problems

  1. 最小 T 数可逆综合。 以 Toffoli/CNOT 数为目标的三条路线都成熟;以 T 数(或 T 深度)为主目标函数的系统综合只有 Häner–Soeken 2020 的乘法深度重排这一个方向性结果。目标函数换了,问题没有重新解过。
  2. 大规模真实代码的自动化可逆化。 密码学代码(真 SHA-2/AES)、稀疏线性代数这类”真实世界规模”的子程序,没有已核验的端到端可逆化流程文献;论文里的 oracle 都是小函数手写或 toy 综合。
  3. 置换综合下界与算法的 gap。 一般排列最坏门数与已知构造之间的缝隙(对数因子级)在 T 数口径下完全没有分析。
  4. 可逆语言与量子工具链的重新对接。 语义层保证垃圾回零的语言设计,与当代量子编译 IR(QASM/Q#)之间没有一座已核验的桥——断言方法是最接近的一篇。

论文依据

延伸阅读