相位估计:Shor 的发动机
相位估计把本征相位读成二进制
假设你有一个酉算符 ,也知道它的一个本征态 ,但本征值 里的 不知道。这个流程叫相位估计:把 的二进制位一位一位读出来,读几位由你愿意付多少比特决定。
先把相位摊到 n 个比特上
准备两个寄存器:上面 n 个比特全在 ,下面放 。对上面每个比特加 H,它们变成从 0 到 的均匀叠加。
接着做受控运算:第 j 个比特(j 从 0 数起)控制 。因为 ,每作用一次,目标态不变,只把那个相位因子踢回控制位。这个动作叫相位回踢:你没有测量相位,只是让它落进了相对相位。全部做完,上面的寄存器变成
逆 QFT:把相位读成二进制
上面这条式子,正是 QFT 的输出形状:振幅等模,相位随 k 线性增长。对它做一次逆 QFT,这串相位就被整理成二进制小数。
如果 恰好是 n 位二进制小数,测量会确定地给出这 n 位。一般情况下它不是,逆 QFT 给出一个集中在最近值附近的分布,测到最接近的 n 位近似的概率很高:
想多读一位,就多一个比特;QFT 部分是 个门,受控 的代价还要另算——那些幂通常靠反复平方构造,越往后越贵。
相位回踢
Shor 拿它做什么
Shor 算法 的量子部分只有一句:取 ,它的本征相位满足 ,而 r 正是模幂序列的周期。相位估计给出 的 n 位近似,连分数把它还原成 ,于是 r 有了;剩下的分解交给经典计算机。
所以「发动机」不是夸张:QFT 提供读法,相位估计提供接口,周期查找才是整台机器的用途。也正因为整条链路长,实际运行要靠纠错把每一步的错误压下去,否则读出的位全是噪声。
相位估计能一次读出 φ 的精确值,所以 Shor 只需要跑一次就得到周期。
它给的是 n 位近似,φ 一般不能精确写成 n 位二进制;要足够多的比特、重复测量和连分数后处理,成功是概率性的。
把「精度可以任意高」读成「一次就精确」,会低估比特数与重复次数的代价。
一句话结论
相位估计用 n 个控制比特、受控 和一次逆 QFT,把一个本征相位读成 n 位二进制。精度随比特数指数提高,代价是更深的线路;φ 不能被精确表示时,结果是集中在最近值上的分布。Shor 就是把它套在模幂算符上,读出那个周期。
本节自测 · 3 题
未作答
01相位估计的第一个寄存器为什么要 n 个比特,而不是 1 个?
解析 · 输出精度由控制寄存器的位数决定,多一位就把分辨能力提高一倍。U 作用在辅助寄存器上,与位数无关;相位是同一个,不是 n 个;这里也没有纠错编码。
02相位回踢把什么搬回了控制寄存器?
解析 · 受控 U 作用在 |+⟩ 上时,目标态不变,只多出因子 ,它落在叠加的一支上就是相对相位。振幅没有被复制,矩阵元素也没有被读取,能量同样没有转移——改变的只有相位。
03如果 φ 不是 n 位二进制小数,相位估计会给出什么?
解析 · 逆 QFT 给出的是一个集中在最近值附近的分布,取最可能的读数就是以高概率得到近似值,误差量级 2 的 −n 次方。酉性保证概率守恒,不保证能读出无限精度;也不会一律坍缩到 |0⟩。