3. 常见量子算法电路结构剖析

要优化量子电路,第一步不是急着做门合并或重写,而是先看清不同算法在结构上"贵"在哪里。Grover、Shor、QAOA 和量子傅里叶变换(QFT)这四类电路,恰好代表了四种截然不同的资源消耗模式:迭代放大型、模幂周期型、变分浅层型和全局纠缠型。本节逐一拆解它们的骨架,并指出深度与门数的主要来源,为后续优化建立明确的"打击对象"。

Grover:深度随迭代次数线性增长,门数被 Oracle 主导

Grover 搜索的电路由三部分组成:制备均匀叠加态(一层 Hadamard)、重复若干次的 Grover 迭代、以及最终测量。每次迭代内部是"Oracle 标记 + 扩散算子"两段。扩散算子结构固定,代价约为一次多控 Z 加两侧 Hadamard,门数随量子比特数 n 近似线性;真正的大头是 Oracle——它需要识别目标态,通常实现为一个多控门或一段布尔逻辑网络,其门数往往随 n 多项式甚至指数增长,取决于问题编码方式。

深度方面,若最优解比例为 1/N,迭代次数约为 (π/4)√N,因此总深度 ≈ 迭代次数 × 单次迭代深度,随 √N 增长。这意味着 Grover 的优化重点非常明确:压缩 Oracle 的每轮代价,或通过无辅助比特的分解减少多控门层数。举例来说,n=10 时理论迭代约 25 次,若单次迭代深度为 40 层,总深度就接近 1000 层,而其中扩散算子可能只占 3 层——瓶颈几乎全在 Oracle 上。

Shor:模幂是绝对主角,QFT 只是收尾

Shor 算法的电路可清晰分为三段:初始化与 Hadamard 层、受控模幂运算(模乘的级联)、以及逆 QFT 提取周期。很多人误以为 QFT 是难点,实际上受控模幂占据了绝大部分门数与深度。以分解 N 位整数为例,模幂需要约 2N 次模乘,每次模乘又由加法器、进位保存、模约减等子电路构成,门数可达 O(N³) 量级,深度也随 N 显著增长。

逆 QFT 本身结构规整,由 Hadamard 与受控相位门组成,门数 O(N²),深度 O(N),相对模幂小得多。因此 Shor 的优化对象是加法器架构(如 ripple-carry 与 carry-lookahead 的取舍)、模乘的复用策略,以及是否用半经典 QFT 把相位门替换为经典反馈测量以降低深度。这是一个典型的"局部结构决定全局代价"的案例。

QAOA:深度由层数 p 决定,门数由问题图密度决定

QAOA 的电路形态与前面两者完全不同:它没有长迭代,而是由 p 层"代价哈密顿量演化 + 混合哈密顿量演化"交替堆叠。每层代价演化对应问题图上的 ZZ 相互作用,门数正比于图的边数 |E|;混合层是单比特 RX 旋转,门数正比于顶点数。因此总门数 ≈ p × (c₁|E| + c₂n),深度也随 p 线性增长。

QAOA 的瓶颈具有双重性:p 增大提升解质量但线性推高深度;问题图越稠密,ZZ 门越多。优化手段包括利用边着色把不相交的 ZZ 门并行化以压缩深度、把多个小角度旋转合并、以及在硬件连通性受限时用 SWAP 网络重映射——后者本身又会引入额外门数,需要在"并行度"与"路由开销"之间权衡。

QFT:结构规整但受控相位门密集

QFT 是四者中结构最规整的:对 n 个比特,依次做 Hadamard 与受控相位旋转,最后加一层比特反转(SWAP)。门数为 n(n+1)/2 量级,深度约 O(n)。它的瓶颈不在规模爆炸,而在受控相位门的小角度精度要求与相邻比特间的串行依赖:高精度相位门在容错架构下需要大量 T 门合成,实际代价远超符号层面的一个受控旋转。

因此 QFT 的优化常走两条路:一是近似 QFT,丢弃小于精度阈值的相位门,把门数从 O(n²) 降到 O(n log n);二是半经典 QFT,用经典控制的前馈测量替代受控门,把量子深度压到 O(n) 但增加经典通信与重复次数。

四类算法电路结构 · 深度与门数瓶颈对照 Grover 搜索 H 层:均匀叠加 Oracle 标记(重) 扩散算子(轻) 迭代 ≈ (π/4)√N 次 瓶颈:Oracle 门数 Shor 分解 H 层 + 初始化 受控模幂(极重) 逆 QFT(轻) 模幂 ≈ 2N 次模乘 瓶颈:加法器/模乘 QAOA 代价层:ZZ 边 混合层:RX 顶点 重复 p 层 门数 ∝ p·(|E|+n) 瓶颈:层数 p 与图密度 量子傅里叶变换 H + 受控相位 比特反转 SWAP 相位门密集 门数 ≈ n(n+1)/2 瓶颈:小角度精度 深度随规模的增长趋势(示意,非实测) 问题规模 n 深度 Grover ≈ √N Shor ≈ 多项式(模幂主导) QAOA ≈ p 线性 QFT ≈ O(n)

把四类结构放在一起看:优化对象如何定位

从上面的结构拆解可以提炼出一条判断路径:先看电路是"迭代型"还是"单趟型"。Grover 与 Shor 属于迭代/级联型,深度由重复单元的次数乘以单元深度决定,优化应优先压缩重复单元本身(Oracle、模乘);QAOA 与 QFT 属于单趟或浅层堆叠型,深度由层数或比特数直接决定,优化应优先做并行化、近似截断与门合成。

再看门数分布是否集中。若某一子电路占据 70% 以上门数(如 Shor 的模幂、Grover 的 Oracle),就应集中火力做局部重写;若门数分散(如 QAOA 的 ZZ 门遍布全图),则更适合用边着色、角度合并等全局调度手段。最后看是否存在"精度陷阱":QFT 与 Shor 中的小角度受控相位门在容错场景下会被展开成大量 T 门,符号层面的门数会严重低估真实代价,必须把合成开销计入优化目标。

建立优化对象认知的实用做法:对目标电路先做一次资源剖面统计——分别记录总门数、总深度、各子电路门数占比、多控门数量、小角度旋转数量。占比最高的子电路就是第一优化对象,多控门与小角度旋转则是第二层的分解优化目标。

需要强调的是,本节给出的迭代次数、门数量级均为结构性估算,用于建立量级直觉,而非针对具体硬件或具体实例的实测结果。真正动手优化时,应以目标编译流程输出的实际门数与深度为准,并区分逻辑门层面与物理门层面的差异——后者往往才是深度瓶颈的真实所在。