Phase Estimation
由谱定理(spectral theorem),任何幺正算符(unitary operator) 都可以在一组正交归一基下对角化;又因为幺正算符保持向量的范数,它的本征值(eigenvalue) 的模长必须是 。事实上,若 ,则由 可得
两边约去 便有 。因此每个本征值都可以写成 的形式:
我们把本征态 视为已知的输入,而把相位 视为待估计的未知量。为了能用有限的量子比特读出 ,我们把它映射成整数:取一个 位的计数寄存器(counting register),记 ,定义
若 恰好落在 中的某个整数上,则我们可以把本征值方程重新写成
这里需要注意两点:
- 是整数只是一种理想化的假设;
- 下面的推导先按 为整数的情形处理,非整数情形的结论我们在测量一节补充说明。
相位估计的线路分为三段:Hadamard 层在计数寄存器上制备均匀叠加,受控幂级联把本征相位“编码”到计数寄存器上,最后用逆量子傅里叶变换把相位读回基矢。下面我们逐段推导。
到Controlled-U为止做了什么
线路中从上到下的计数比特依次记为第 位、第 位、第 位……第 位作为控制比特执行受控 。
先看单个控制比特的情形。当控制比特为 时什么都不做,为 时作用一次 ,于是
我们看到,本征相位 被“踢”到了控制比特的 分量上,这一机制与的相位回踢(phase kickback)完全相同。
完整的计数寄存器经过 Hadamard 层后处于均匀叠加 。以 位寄存器为例,逐位执行受控幂,相位按位累积:
第 位控制 ,因此贡献相位 。把所有指数相加,利用二进制展开
级联结束后计数寄存器与本征态的联合态为
也就是说,本征相位被编码成了计数寄存器上的线性相位。
QFT和iQFT
QFT
量子傅里叶变换(Quantum Fourier Transform, QFT)实现下述变换:
这里 同为 位自然数, 是通常的整数乘法(而不是比特串的内积)。记 ,上式也可以紧凑地写成
按照之前的惯例,我们把 对应的矩阵写出来:
可以发现它构成一个 矩阵元恰好为 的矩阵。
定义中的因子 正是使 成为幺正矩阵的归一化因子。我们来验证这一点:第 行与第 行的内积为
这一求和是后文反复出现的几何级数,我们先在这里把它算清楚。设整数 。由等比数列求和公式(公比为 )得
上式的分母不为零: 当且仅当 整除 ,而我们已经排除了这种情形。分子则为零:。因此
反过来,当 时每一项都是 ,求和为 。回到行内积的式子: 时每一项都是 ,内积为 ; 时 是 中的非零数,其绝对值小于 ,因此不被 整除,由刚证明的恒等式可知求和为 ,内积为零。于是 的各行正交归一,即 ,QFT 确实是幺正变换。此外,由于矩阵元 关于 对称,矩阵还满足 。
iQFT
iQFT 是 QFT 的逆变换,即 。由 QFT 一节证明的对称性 ,转置共轭只剩下复共轭:
也就是说,iQFT 与 QFT 形式完全相同,只需把 换成它的共轭 。
相位估计 Phase estimation
级联后的计数寄存器处于态 (对照定义可以发现它正是 ),因此用 iQFT 作用即可把 读回基矢。我们把这一步完整展开:
其中第二行代入了 iQFT 的定义与输入态;第三行利用了 ;第四行把 代入并合并指数 。
怎么理解这个输出态?我们逐项说明。
-
先明确符号的定义。 都是取遍 的整数; 是整数 对应的计算基矢;而 是分量 的振幅。
-
再看振幅的结构。每个振幅都是 个模为 的复数之和,其中第 项的相位为 ,即 的相位的 倍。当 时所有项相位相同,发生相长叠加;当 时相邻两项的相位差 不是 的整数倍,各项互相抵消(下面严格计算)。
-
把输出态按基矢顺序写成矢量形式(求和指标 取遍 到 ):
前置系数 并不是额外凑出来的归一化常数,它来自两处 的乘积:一个来自 Hadamard 层制备的均匀叠加,另一个来自 iQFT 的矩阵元。尽管出现了 ,整个矢量仍然是归一化的:iQFT 是酉变换,而它的输入态 已归一化(每个振幅的模都是 ,共 项),酉变换保持范数,因此输出态的范数必然也是 。下面的概率计算会从另一个角度再次验证这一点。
-
测量这个量子态,得到每个基矢 的概率为
现在我们计算这些概率。对被求和的整数 应用 QFT 一节中证明的恒等式:由于 ,有 ,因此 当且仅当 ,即 。于是
- 当 时,每一项都是 :
- 当 时,由等比数列求和公式
其中分母不为零,因为 意味着 ;分子为零,因为 。因此 。
(我们也可以从归一化反推这一结论:概率总和恒为 ,而 已经占满了全部概率,因此其余分量概率必为零。这与“酉变换保持范数”的说法是一致的。)
于是输出态就是除第 个分量外全部为零的基矢:
非整数情形的补充说明:当 不是整数时,同样的代数给出 分量振幅的闭式
这个表达式在 处取极限值 ,并随 增大而衰减。把最接近 的整数对应的概率记为 (此时 ),利用 以及 在 上单调递减,可得
即测量以不低于 的概率返回最接近 的整数;增加若干冗余计数比特可以把成功概率任意提高到接近 。
思考题:正文中已用等比数列求和公式证明了 ()。请再给出一个“配对”的证明:利用 ,把第 项与第 项配对。当 为奇数时,两项的相位恰好相差 ,直接相消;当 为偶数时,请先提取公因子把它化归为奇数情形。
小结
相位估计以 (的受控幂)作为子过程,实现了如下的整体变换:
其中 是 的本征态, 由本征值决定,具体来说有 。计数寄存器共有 位,, 是一个 位整数;当 不是整数时,输出为最接近 的整数(成功概率不低于 )。
Query complexity 访问复杂度
当我们认为 Hadamard 层和 iQFT 是代价较为固定的标准过程时,实现相位估计的主要复杂度集中于受控 幂上。这意味着我们需要执行多少次受控 决定了算法的实际复杂度。这种“调用某个子过程 次”的复杂度度量,称作算法对于该子过程的访问复杂度(query complexity)。
具体来说,线路需要依次实现 ,共 个受控幂,存在两种可能性:
-
实现 和 的复杂度无明显关系(例如二者各有独立的黑盒实现)
-
此时访问复杂度为 ,其中 , 为计数寄存器的位数。
-
计数寄存器能分辨的最小相位差为整圈 的 。若把这个分辨率记为精度 ,那么访问复杂度为 。
-
-
实现 等于重复 次
- 此时受控调用的总次数为 ,访问复杂度为 ;用精度 表示的话,写为 。
Amplitude estimation (Quantum counting)
在 Grover 搜索和振幅放大(amplitude amplification)中,我们遇到了同一类问题:给定某个过程 ,满足
其中第二个寄存器是标记成败的 flag 比特。振幅放大用 次 的调用就能以较高概率制备 (相比之下,经典地重复制备再测量的代价是 次)。但现在的问题是如何确定 :因为若不知道这个概率的具体数值,我们就无法选择需要执行振幅放大循环的次数。振幅估计(amplitude estimation,也称量子计数 quantum counting)就是用相位估计来估计它的算法。
回顾Amplitude amplification
为书写简便,记 ,,,于是 。我们在 与 张成的子空间上定义两个反射算符。第一个是关于“好”子空间的反射(oracle):
它把每个好数据态标记相位 ,与相位反冲中 的约定一致(Grover 算法词条把 oracle 写成 ,即对好态标 ;两种约定相差一个整体负号,只会使下文的旋转方向相反,不影响任何结论)。它在子空间上的作用为 ,。第二个是关于初始态 的反射:
其中第二个等号用到了 与 。两个算符都是反射,满足 ,因此都是幺正算符;它们的乘积也是幺正算符,并且保持子空间 不变。我们直接计算 在这个子空间上的作用来验证封闭性:
于是在基 下,两个算符的矩阵为
相乘便得到振幅放大的迭代算符 :
其中我们定义了角度 :
我们可以直接验证这确实定义了一个实角度:
因此 是子空间上的一个旋转变换。(Grover 算法词条在 时得到的旋转矩阵与这里的矩阵互为转置,即旋转方向相反;这一差别来源于 oracle 的相位约定与两个反射的相乘顺序。无论采用哪种约定,每步转过的角度大小相同,迭代次数的结论不受影响。这里的 表示 Grover 数据库的大小,为避免与本词条计数寄存器的 混淆,我们不再用 表示数据库。)
旋转的动力学如下。把 参数化为 (,即 ),则由倍角公式
即 。初始态为 。利用矩阵乘法与角加法公式可以验证,每作用一次 ,角度推进 :
一开始 很小,对应成功率很小的情况;每迭代一次,成功率对应的角度上升 。要达到 ,所需的迭代次数为
这正对应了我们需要进行振幅放大的步数(Grover 搜索是 、 的特例,给出 )。
从振幅放大到振幅估计
振幅放大的迭代算符 是两个幺正算符的乘积,因此它本身仍然是一个幺正算符。于是本词条开头对一般幺正算符的讨论对它同样适用:存在一组本征态 满足
(计数寄存器仍为 位,。)那么如何确定本征态 和对应的相位呢?
由于 保持二维子空间 不变,我们只需对上面的 旋转矩阵做本征分解。列出本征方程:
展开得 ,解得 。由欧拉公式 ,本征值是一对共轭相位:
把 代回 :第一行给出 ,即 ,故 ;归一化后得到
同理,把 代入可得 ,即
我们可以用矩阵直接乘一次来验证:,验证无误。此外 ,两个本征态正交归一。
从子空间的观点来看,本征态就是 与 的等权叠加,二者只差一个 的相对相位。
振幅估计 = 将振幅放大算符作为相位估计的算子

上图是相位估计的完整线路。与标准用法稍有不同,我们把下方输入的本征态 换成容易制备的 ,把受控算子 换成 。由于 可以写成 、 的线性组合,而相位估计是线性演化,它会分别作用于每个本征分量。
我们先把 在本征态基上展开。由 、 的定义可以反解出
(验证:;。)代入 ,得
其中
两个系数的模方分别为 与 ,因此
展开式是归一化的——它必须如此,因为 与 都是归一化的正交态。(作为交叉验证,也可以直接用内积计算:,与上式一致。)
现在执行振幅估计。相位估计对每个本征分量独立作用,因此
其中 是测量计数寄存器后读数所对应的基矢。把本征值写成相位估计的标准形式 ,则 、,相位估计的目标整数为 ,即 与 (模 )。当 恰为整数时读数精确等于 ;一般情形下,按照本词条测量一节的讨论,测量以不低于 的概率返回最接近 的整数,增加若干冗余计数比特可以把成功概率任意提高。
当我们测量第一个寄存器时,读数以概率 落在 附近,以概率 落在 附近。把读数 换算回角度 ,两种情况分别对应 与 。由于 通常是个很小的数, 对应接近 的读数,而 对应接近 的读数,二者容易区分;无论测到哪一个,我们都能还原出 (若 ,则取 ),进而由 反解出成功率的估计值
思考题:
- 这个算法的精度和 之间的关系是什么?(提示:计数寄存器对 的分辨率为 ,而 在 较小时会把角度误差放大。)
- 这个算法的访问复杂度(query complexity)是多少?请分“实现 与实现 复杂度无关”与“实现 等于重复 次 ”两种情形讨论。
HHL算法,对矩阵进行本征分解实现求逆
作为相位估计的最后一个应用预告,我们考虑线性方程组求解:给定线性方程组 ,即找到 。其量子版本描述如下:
-
给出厄密矩阵(Hermitian matrix),假设我们能实现幺正演化 ,其中 是某实数;假设拥有输入态 ,目标是制备
其中 是向量的 -范数(Euclidean norm), 是归一化常数:量子态必须归一化,因此算法只能以“比例”的形式给出解 的方向。以下假设 可逆,即所有本征值非零。
对的本征分解
-
和 具有相同的本征态。
不妨设 ( 厄密保证本征值 为实数,且存在正交归一的本征基)。由归纳法可得 对一切非负整数 成立。把这一事实代入矩阵指数的幂级数定义 ,逐项作用即得
于是我们根据 的本征态和本征值,直接得到了 的本征态(与 相同)和本征值()。相位估计从 中读出的相位正是 。
-
计算 。
有了上面的本征分解,求逆的路线就清晰了:在 的本征基下, 的作用就是把每个本征分量乘上 ,而相位估计恰好能把本征值“暴露”到寄存器上,供我们实施这个乘法。具体步骤为:
-
展开:把 写成 ,其中 ;于是 。
-
相位估计:以 为受控算子对 做相位估计。由第 1 点,每个分量 都是其本征态,相位 被转移到计数寄存器,得到 。
-
受控旋转(controlled rotation):根据计数寄存器中的读数,对辅助比特做受控旋转,把振幅乘上一个正比于 的因子。
-
逆相位估计与测量:做逆相位估计“清空”计数寄存器,再对辅助比特进行测量(或用振幅放大)筛选成功分支,最终得到正比于 的归一化态,即 。
具体的线路、成功率(与条件数 condition number 的关系)、精度与复杂度分析将在完整展开,参见 HHL 算法详解。
-
参考资料
- 本词条整理自《量子计算算法教程》原文:ch03-algo-basics/phase-estimation
- 内容遵循 CC BY-NC-SA 4.0 许可协议
