Grover’s algorithm

我们要解决的是无结构搜索 (unstructured search) 问题:数据库中有 个条目,其中恰好有一个目标条目 (marked item) ;除了通过预言机查询之外,我们对数据库的结构一无所知。经典算法(即使允许随机性)平均需要 次查询才能找到 ;Grover 算法只需要 次,而且这已被证明是最优的查询次数。

整个算法只用到两个酉算子。第一个是预言机 (Oracle),它利用目标条目的信息:

按我们的约定, 保持 不变、把其余所有基矢变号。(更常见的约定是 ,即”翻转目标相位”;两者恰好相差一个整体符号 ,由此得到的 Grover 迭代也只差一个整体符号,不影响任何测量概率。)

第二个算子是扩散算子 (diffusion operator)。定义均匀叠加态 取 superposition 的首字母)

第二个等号的验证:由 Hadamard 叠加成所有基矢的均匀和)与

,两项相减即得。由定义直接计算关键内积( 的分量全为实数,故 ):

这个数是后文一切推导的出发点。

在分析算法之前,我们先把计算空间分解清楚。计算基矢可以分为目标态与其余基矢两部分:

其中 张成 的正交补。把它代入 的定义(注意 的范数是 ),得到

也就是说,均匀叠加态是”目标方向”与”非目标方向”的叠加,权重由 决定。Grover 算法做的正是把权重从非目标方向转移到目标方向。算法本身一句话就能说完:从 出发,把迭代算子 重复大约 次,然后测量。下面两节解释为什么。

子空间

本节介绍不变子空间 (invariant subspace) 的概念,它是我们分析 Grover 算法的主要工具。

为一组线性无关的矢量(这里是一般的矢量记号,与上文的目标条目无关)。若存在变换 ,它作用在 上之后,结果仍然落在 之中,即运算封闭:

称为 的不变子空间。此时 限制在这个子空间上是一个二维变换,可以写成矩阵形式(第 列是第 个基矢的像的系数):

不变子空间的价值在于降维:只要初态落在子空间内,我们就不必在完整的 维空间中跟踪演化,而只需在二维平面上分析一个 矩阵。对 Grover 算法而言,态将始终落在 内,因此整个算法约化为平面上的旋转。

子空间性质

  • 封闭性与线性组合:子空间中矢量的任意线性组合仍在子空间中。因此,若 保持该子空间,则 的幂以及 的多项式都保持该子空间——这对”反复迭代同一个算子”的算法尤为重要。
  • 特征值与特征矢量:变换限制在子空间上的特征值可以由这个 矩阵的特征方程求得。特征值不依赖于基的选取(换基是相似变换,特征多项式不变),特征矢量本身则随基的变化而变化。
  • 基不正交的情形:若 线性无关但不正交,我们可以先用 Gram–Schmidt 正交化 (Gram–Schmidt orthogonalization) 构造一组正交归一 (orthonormal) 基,再写矩阵。对酉算子而言,只有在正交归一基下的矩阵才仍是酉矩阵,这样才能进一步把矩阵识别为旋转或反射。

Grover算法

理论

一次 Grover 迭代 (Grover iteration) 定义为

其中算符乘法按从右到左的顺序作用:用预言机 用扩散算子 。算法从 出发,迭代 次后测量。本小节统一记 。我们将证明:整个演化被限制在一个二维不变子空间内,且 在该子空间上是旋转变换,每迭代一次把态向目标方向推进

Lemma 1. 共同的不变子空间;但 不正交。

证明

  • Part 1. 我们直接计算两个生成元在算子下的像。一方面,;另一方面,。两个生成元分别被 映到自身。
  • Part 2. 由

  • Part 3. 同理,

最后,,因此两个生成元不正交, 不是现成的正交基。Q.E.D.

Lemma 2. 定义

是上述子空间的一组正交归一基。

证明。先验证正交性:

再实际计算范数(利用 ):

因此 的范数是 。由定义反解出

所以 张成同一个二维子空间。Q.E.D.

为方便引用,我们把两个关键内积写在一起,并指出它们与 的关系:

其中第二个等号用了 。这正是 的来历。

Corollary 3. (同理 )保持该子空间;并且在子空间的正交补 (维数 )上, 是恒等变换。

证明 各自保持该子空间(Lemma 1 的 Part 1–3),复合保持。对 给出 给出 ;于是 。Q.E.D.

这个推论说明:算法的初态 完全落在二维子空间内,且演化永远不会离开;其余 个维度从头到尾不参与。因此整个算法的分析只需要一个 矩阵。

Theorem 4. 在正交归一基 下,

其中 。即 是这个平面上角度为 旋转 (rotation),等价地 ,其中 是标准旋转矩阵。这一旋转图像与 Nielsen & Chuang (QCQI) 第 6.1.2 节(式 6.13–6.14)的分析一致。

证明。分三步。

第一步,计算 在两个基矢上的作用。由 Lemma 2 的分解式以及

其中最后一个等号用了

第二步,计算 。Part 1 已证 ;而 (Lemma 2)给出

第三步,按” 先、 后”的顺序合成:

把两个像的系数依次写成矩阵的第 1、2 列,即得定理中的第一个矩阵。

最后把它识别为旋转。直接验证

所以这四个元素确实具有旋转矩阵的形状。取 (从而 ),由倍角公式

于是矩阵可写成 。它既等于 (因为 ),也等于 。Q.E.D.

从几何上看这个结果很自然: 是关于 轴的反射 (reflection) 是关于 轴的反射,而两个反射的复合必为旋转,旋转角等于两轴夹角的两倍。两轴夹角 满足 ,即 ,故旋转角为 ,与矩阵结果完全一致。

Theorem 5. 从 出发迭代 次后,测得 的概率精确等于

证明。记 ;由 Lemma 2,初态 。用 Theorem 4 的矩阵(即 )作用于坐标

  • 第一分量为
  • 第二分量为

(两行分别用了和角公式 。)因此

每迭代一次,角度推进 ,代价是一个全局相位 ;由于算法的态始终位于该二维子空间内,这个符号在测量概率中完全不可观测。迭代 次即得

目标振幅为 ,概率为 。Q.E.D.

我们也可以按坐标直接展开,这能看清楚”大 近似”的来源。由

其中第二个等号就是和角公式 。当 时,,于是

这正是”,因此振幅 “这一近似的严格含义。另一个极端是小角度情形:当 时,,即最初的若干次迭代中目标振幅近似线性增长,每迭代一次增加约

Corollary 6. 取

小时后者成立;实际取最接近的整数),则测得 的概率至少为 。因此 Grover 算法用 次预言机查询找到目标条目。

证明。要最大化 ,应取 尽可能接近 ,解出 ;再由小角度近似 。由于 只能取整数、而 变化的步长是 ,取最接近的整数保证 ,于是

Q.E.D.


从Grover到振幅放大

Derandomization

经典的随机搜索是这样工作的:每次独立地、均匀随机地查询一个条目,单次命中目标 的概率为 ;未命中就丢弃结果、随机重启。由几何分布,平均需要 次查询才能成功。这类算法的本质是”随机尝试 + 后选择 (post-selection)“:把成功的希望寄托在随机性上。

Grover 算法可以看作对这个过程的去随机化 (derandomization):我们把”随机重启”替换为相干的酉演化。量子态不再以概率 “落在”目标上,而是以振幅 叠加在目标方向上;每一步 Grover 迭代都在同一个二维子空间内、确定性地把态向目标方向旋转 。演化过程中没有任何随机选择——随机性被确定性的干涉所取代,查询次数从 降到

Why amplitude amplification?

量子线路中的每个操作都必须是酉的(可逆的),而许多我们想实现的映射并不是酉的。以量子线性方程组求解器(如 HHL 类算法)为例:给定矩阵 与输入态 ,我们想制备

也就是实现线性映射 。然而 通常不是幺正的:若 幺正,则它的逆 也幺正(幺正算子的逆仍是幺算子),等价于 ;一般矩阵并不满足这一条件。因此我们不能把 直接做成一个量子门

实现”非幺正映射”的标准办法是引入辅助寄存器,把非幺正性转移到一个可以后选择的标志比特上:

其中 都是归一化态,整个 是酉的。测量第二个寄存器:若得到 (概率为 ),第一个寄存器恰好坍缩到我们想要的 ,算法成功;若得到 ,得到的是垃圾态,只能整体重来。朴素策略下,我们平均需要重复 次测量才能获得正确的结果。

振幅放大 (amplitude amplification) 降为 。这就是我们需要它的原因:任何”以概率 成功的量子子过程”都可以被二次加速。

Grover与振幅放大的关系

我们可以把 Grover 搜索写成上述框架:把一层 Hadamard 变换视为子程序 ,它把 制备成均匀叠加 ;把”成功”定义为结果落在目标方向上,即好态取 。于是单次运行的成功概率为

朴素做法是”制备—测量”重复 次;振幅放大把它降到 次,与上一节 Corollary 6 的 一致。

作为具体例子,取

此时 ,一次迭代后 ,成功率恰为 。我们也可以把振幅逐步算出来验证。初始四个振幅均为 (保持目标、翻转其余)给出

接着 把每个振幅 映为 ,其中 是振幅的平均值(这就是”关于平均值的翻转”):

一次迭代后态为 (多出的负号是全局相位),测量必得目标条目。

理论

Proposition 1. 设酉算子 满足

其中 都归一化,第二个寄存器是标志比特。那么存在一个只调用 次的算法,以至少 的概率制备出 ;把该算法重复 次,成功概率可以提升到 。下面的 Lemma 2、Lemma 3、Theorem 4 给出构造与证明。

注意:振幅放大实现的映射是 ,而不是 。它是一个以 为子过程的过程:把 嵌入一个更大的算法中,共调用 次,从而制备出

构造需要两个反射。第一个是关于 的反射

右端的等式说明:只要能实现 ,就能实现 。第二个是标志 Oracle,它翻转好态的相位:

其中 是向好子空间的投影(在二维情形 )。它与 Grover 部分的 恰好相差一个整体符号;两种约定给出的迭代互为相反数,只差全局相位,不影响任何结论。振幅放大的迭代取为 :先用 ,再用 ,与 Grover 迭代结构相同。为书写简便,记

,且

Lemma 2. 的公共不变子空间,并且在正交归一基

证明 翻转好态、保持坏态:,这给出第一个矩阵。对 ,我们把两个基矢的像实际算出来:

其中第二个式子 的系数用了 。两个像都落在子空间内,把系数写成列即得第二个矩阵。Q.E.D.

Lemma 3. 在基 下是旋转矩阵

证明。做矩阵乘法(右乘 相当于把第一列取反):

验证它具有旋转的形状:。取 ,由倍角公式

所以 是角度为 的旋转(旋转的幅度是 )。当 时,由 ,即每次迭代把态旋转约 ——这就是”小 时角度 “这一近似的来源。Q.E.D.

Theorem 4. 取

(实际取最接近的整数),则 落在 上的概率至少为 。因此, 调用就能以高概率制备出

证明。与 Grover 部分 Theorem 5 的计算完全相同。记 ,初态 。由

,每迭代一次角度推进 。迭代 次:

成功概率为 。要让它接近 ,取 ,解出 (用 )。把 四舍五入到最近的整数带来的偏差至多是 ,因此成功概率至少为 。每次迭代需要一次 与一次 (用来合成 ),故总的调用次数是 。Q.E.D.

对 Grover 搜索套用本节结果:,迭代次数 ——与 Corollary 6 完全一致。


参考资料