叠加学堂superposition

相位估计:Shor 的发动机

相位估计把本征相位读成二进制

深入9 分钟第 42 / 80 节更新于 2026-10-18

假设你有一个酉算符 UU,也知道它的一个本征态 ∣ψ⟩|\psi\rangle,但本征值 e2πiφe^{2\pi i\varphi} 里的 φ\varphi 不知道。这个流程叫相位估计:把 φ\varphi 的二进制位一位一位读出来,读几位由你愿意付多少比特决定。

先把相位摊到 n 个比特上

准备两个寄存器:上面 n 个比特全在 ∣0⟩|0\rangle,下面放 ∣ψ⟩|\psi\rangle。对上面每个比特加 H,它们变成从 0 到 2n−12^n-1 的均匀叠加。

接着做受控运算:第 j 个比特(j 从 0 数起)控制 U2jU^{2^j}。因为 U∣ψ⟩=e2πiφ∣ψ⟩U|\psi\rangle=e^{2\pi i\varphi}|\psi\rangle,每作用一次,目标态不变,只把那个相位因子踢回控制位。这个动作叫相位回踢:你没有测量相位,只是让它落进了相对相位。全部做完,上面的寄存器变成

12n∑k=02n−1e2πikφ∣k⟩\frac{1}{\sqrt{2^n}}\sum_{k=0}^{2^n-1}e^{2\pi ik\varphi}|k\rangle

逆 QFT:把相位读成二进制

上面这条式子,正是 QFT 的输出形状:振幅等模,相位随 k 线性增长。对它做一次逆 QFT,这串相位就被整理成二进制小数。

如果 φ\varphi 恰好是 n 位二进制小数,测量会确定地给出这 n 位。一般情况下它不是,逆 QFT 给出一个集中在最近值附近的分布,测到最接近的 n 位近似的概率很高:

∣φ~−φ∣≲2−n|\tilde\varphi-\varphi|\lesssim 2^{-n}

想多读一位,就多一个比特;QFT 部分是 O(n2)O(n^2) 个门,受控 U2jU^{2^j} 的代价还要另算——那些幂通常靠反复平方构造,越往后越贵。

相位回踢
选预设「相位回踢」,点「下一步」逐门走:H 之后控制位是 |+⟩;CNOT 作用在 |−⟩ 上,负号被踢回控制位,控制位从 |+⟩ 翻成 |−⟩。相位估计就是把 CNOT 换成受控 U,再用逆 QFT 把这串相位读成二进制。

Shor 拿它做什么

Shor 算法 的量子部分只有一句:取 U∣y⟩=∣ay mod N⟩U|y\rangle=|ay\bmod N\rangle,它的本征相位满足 φ≈s/r\varphi\approx s/r,而 r 正是模幂序列的周期。相位估计给出 φ\varphi 的 n 位近似,连分数把它还原成 s/rs/r,于是 r 有了;剩下的分解交给经典计算机。

所以「发动机」不是夸张:QFT 提供读法,相位估计提供接口,周期查找才是整台机器的用途。也正因为整条链路长,实际运行要靠纠错把每一步的错误压下去,否则读出的位全是噪声。

相位估计能一次读出 φ 的精确值,所以 Shor 只需要跑一次就得到周期。
它给的是 n 位近似,φ 一般不能精确写成 n 位二进制;要足够多的比特、重复测量和连分数后处理,成功是概率性的。
把「精度可以任意高」读成「一次就精确」,会低估比特数与重复次数的代价。
一句话结论

相位估计用 n 个控制比特、受控 U2jU^{2^j} 和一次逆 QFT,把一个本征相位读成 n 位二进制。精度随比特数指数提高,代价是更深的线路;φ 不能被精确表示时,结果是集中在最近值上的分布。Shor 就是把它套在模幂算符上,读出那个周期。

本节自测 · 3 题
未作答
01相位估计的第一个寄存器为什么要 n 个比特,而不是 1 个?
02相位回踢把什么搬回了控制寄存器?
03如果 φ 不是 n 位二进制小数,相位估计会给出什么?