量子乘法器不是一个独立的算法,而是四类部件的装配:受控加法器(累加部分积)、移位(把部分积放到正确的位权上)、辅助比特的回收,以及一条把乘法接进更大算法的边界。本词条先把这套装配关系讲清楚,再指出一个反直觉的事实——在容错模型下,区分乘法器优劣的主要指标往往不是门数,而是辅助比特与它们在递归中的存活期。最后给出乘法在三个真实场景里的角色定位。

一、乘法器是可逆加法器的累加器

一个 比特乘法器把两个 比特寄存器映射到一个 比特寄存器(要么 out-of-place,要么借用其中一个作为输出)。经典竖式乘法把这个映射拆成 步:第 步把 时的部分积 加进输出。量子版本把这一步换成以 为控制的加法器:

这正是量子乘法与经典乘法唯一真正不同的地方——不是算法结构不同,而是”选不选这一行”必须写成受控门。Karatsuba、Toom-Cook 等递归方案改变的是”部分积从哪来”,而不是”怎么累加”。所以任何量子乘法器的最内层,最终都落回一个受控加法器。

abzcinzADD a←z + a·2^i(受控)M
教科书乘法的一行:以 b_i 为控制把 a 移位累加进 z

这里刻意不展开受控加法器的内部结构:加法器的门型属于加法卷,而乘法器的差异几乎全部发生在它外面——选哪些行、怎么移位、辅助位从哪来回哪去。

二、辅助比特账:为什么它比门数更关键

一个显式的递归乘法器会在递归调用之间需要暂存子结果:算完 存起来,算 存起来,算 ,最后把三块加起来。这意味着两件昂贵的事:多占了寄存器,以及必须把这些中间结果反计算掉才能把 ancilla 还回 。反计算在门数上是零额外开销的话还算好,但实际线路里它常常不是免费的。

Parent、Roetteler 与 Mosca 用完全三叉树的 pebble game 分析 Karatsuba,把空间从 压到 ,代价是操作数宽度不到原来的两倍;Gidney 进一步用”让递归调用直接把自己的输出累加进输出寄存器的对应子区间”这一做法把空间降到 ,同时保持 的门复杂度。这两篇的差别不在算术,而在中间结果的存放方式,这正是本卷把就地乘法单独立章的原因。

三、乘法在三个场景里的位置

Shor 的模幂。 模幂里真正的主项是模乘,模乘里真正的主项是模归约,而模归约的常见实现又是基于一个完整乘法器的(Barrett 型路线)。所以”乘法器贵不贵”直接决定因子分解的报价,见modular-multiplication。

QFT 路线。 以 QFT/Draper 加法器为基础可以构造乘常量、除常量乃至通用模乘的线路。Pavlidis 与 Gizopoulos 给出整套 Shor 模幂架构的报价:深度约 、需要 比特、总量子代价 ,并指出若对每个加法器单元使用近似 QFT,深度还能再降三倍以上。这类方案的特点是门数高但结构规则、深度可预测。

振幅估计与平方。 Noto 在 的量子估计线路里系统比较了两类平方器:由 门量子加法器实现的平方器需要 门加至少一个辅助比特;由 QFT 实现的平方器需要 门但不需要辅助比特。这组对比很能说明问题——同一个运算,“门少但要 ancilla”与”门多但不要 ancilla”的取舍是真实存在的。

论文依据

  • Parent、Roetteler 与 Mosca(2017) —— 提供完全三叉树 pebble game 的空间分析,把 Karatsuba 空间复杂度从 降到 。
  • Gidney(2019) —— 提供”递归调用直接累加进输出子区间”的实现思路,把空间进一步降到 且保持 门复杂度;同时附带教科书乘法与 Karatsuba 乘法的参考实现。
  • Pavlidis 与 Gizopoulos(2012/2014) —— 提供基于 QFT/Draper 加法器族的整套 Shor 模幂架构报价(深度约 、 比特、总代价 ),是”乘法器如何接入算法”的最完整公开实例。
  • Noto(2020) —— 提供两类平方器(加法器型 门 + ancilla,QFT 型 门无 ancilla)的并置对比,说明 ancilla 账与门数账的取舍。

延伸阅读