2. 量子算法设计核心工具
量子算法之所以能在某些问题上超越经典算法,并不是因为量子计算机“算得更快”,而是因为它提供了几种经典计算中不存在的操作原语。本节围绕五个核心工具展开:量子并行性、相位反冲、振幅放大、量子傅里叶变换(QFT)与量子相位估计(QPE)。理解它们的数学原理与电路实现,是后续设计具体量子算法的前提。
一、量子并行性:一次制备,同时承载多个输入
量子并行性的基础是线性叠加。设函数 f: {0,1}n → {0,1}m,若用可逆电路 Uf 实现 |x⟩|y⟩ → |x⟩|y ⊕ f(x)⟩,则当输入寄存器处于均匀叠加态
|+⟩⊗n = (1/√2n) Σx∈{0,1}n |x⟩
时,一次调用 Uf 即可得到
(1/√2n) Σx |x⟩|f(x)⟩。
这里必须强调:量子并行性并不等于“同时读出所有 f(x)”。测量只能以概率方式坍缩到一个 x,直接测量会破坏叠加。真正的价值在于,后续的干涉操作可以让不同 x 对应的振幅按相位关系重新组合,从而提取全局性质(如周期、奇偶性、相位)。电路实现上,通常先对输入寄存器施加 Hadamard 门层,再接入由 CNOT、Toffoli 等构成的可逆函数电路,最后进入干涉阶段。
二、相位反冲:把函数信息“写”到相位上
相位反冲(phase kickback)是量子算法中最精巧的机制之一。设目标寄存器处于本征态 |u⟩,且 U|u⟩ = e2πiφ|u⟩。若控制寄存器为 |0⟩ 或 |1⟩,受控操作用 |0⟩⟨0|⊗I + |1⟩⟨1|⊗U 表示,则
(α|0⟩ + β|1⟩)|u⟩ → (α|0⟩ + β e2πiφ|1⟩)|u⟩。
相位 e2πiφ 从目标寄存器“反冲”回控制寄存器,目标寄存器状态不变。若控制寄存器处于 |+⟩,则输出为 (|0⟩ + e2πiφ|1⟩)/√2,相位信息被编码到控制比特的相对相位中。电路上,这通常通过受控-U 门实现,目标寄存器预先制备为 U 的本征态。相位反冲是 QPE 和 Shor 算法中把“特征值”转化为“可测量相位”的关键一步。
三、振幅放大:把目标态概率从 O(1/N) 提升到 O(1)
振幅放大(amplitude amplification)是 Grover 算法的核心。设好态集合为 G,定义投影算子 PG,并令 |ψ⟩ = sinθ|G⟩ + cosθ|B⟩,其中 sinθ = √(M/N),M 为好解个数。Grover 迭代 G = (2|ψ⟩⟨ψ| − I)(I − 2PG) 由两部分组成:
- Oracle:对好态施加 −1 相位,即 I − 2PG;
- 扩散算子:关于 |ψ⟩ 反射,即 2|ψ⟩⟨ψ| − I。
每次迭代把角度从 θ 增加到 3θ,经过约 (π/4)√(N/M) 次后,测量到好态的概率接近 1。电路实现中,Oracle 常用多控 Z 门或相位门实现,扩散算子则用 H 层、X 层、多控 Z 门和 H 层组合。需要注意,振幅放大对 M/N 的估计敏感,迭代次数过多反而会降低成功概率。
四、量子傅里叶变换:在计算基与相位基之间切换
QFT 是经典离散傅里叶变换的量子版本。对基态 |j⟩,QFT 定义为
|j⟩ → (1/√N) Σk=0N−1 e2πijk/N|k⟩。
写成二进制形式,若 j = j1j2…jn,则输出为
(|0⟩ + e2πi0.jn|1⟩)(|0⟩ + e2πi0.jn−1jn|1⟩)…(|0⟩ + e2πi0.j1…jn|1⟩)/√N。
电路实现采用 Hadamard 门与受控相位门 Rk = diag(1, e2πi/2k) 的级联,最后加上比特反转。QFT 本身不加速,但它把周期信息转化为相位峰值,是 QPE 和 Shor 算法的“频谱分析器”。
五、量子相位估计:把相位精度转化为比特数
QPE 的目标是估计酉算子 U 的本征值相位 φ,满足 U|u⟩ = e2πiφ|u⟩。标准电路包含三个寄存器:计数寄存器(t 个量子比特,初始为 |0⟩)、目标寄存器(初始为 |u⟩)和辅助测量。步骤为:
- 对计数寄存器施加 H 层,得到均匀叠加;
- 施加受控-U2j 门,利用相位反冲把 φ 编码到计数寄存器;
- 对计数寄存器施加逆 QFT;
- 测量计数寄存器,得到 φ 的 t 位二进制近似。
若 φ 可精确表示为 t 位二进制小数,测量以概率 1 得到该值;否则以高概率得到最接近的近似值,误差约为 1/2t。因此,t 越大,相位估计精度越高,但电路深度和所需受控门数量也随之增加。QPE 是 Shor 算法、量子化学模拟和 HHL 算法中的核心子程序。
六、五个工具的协同关系
这五个工具并非孤立存在。量子并行性提供“同时处理多个输入”的舞台;相位反冲把函数值或本征值转化为相位;QFT 把相位信息转换为可测量的频率峰值;QPE 则把相位估计形式化为一个可复用的子程序;振幅放大则在解空间中进行概率幅的重新分配。以 Shor 算法为例:先用并行性制备叠加态,再用模幂运算和相位反冲把周期信息编码到相位,接着用 QFT(或 QPE)提取周期,最后用连分数展开得到因子。Grover 算法则主要依赖振幅放大,Oracle 标记目标态,扩散算子放大其振幅。