# 量子顺序搜索:半定规划模块与常数因子优势 在 [Grover 算法](../ch03-algo-basics/grover.md)中我们研究过一个极端:对数据库的结构**一无所知**,$N$ 个条目里藏着一个目标,量子搜索把 $\Theta(N)$ 次查询降到 $\Theta(\sqrt N)$,获得平方根加速。本教程研究另一个极端:数据库**完全有序**——$N$ 个条目已经从小到大排好,要把一个新元素 $x$ 插到正确的位置上,唯一的信息来源是"拿 $x$ 与表中第 $i$ 个元素比较"。这就是**有序搜索 (ordered search)** 问题,即二分搜索 (binary search) 的量子版本。 经典答案早已写进每一本算法教材:二分搜索用 $\lceil\log_2(N+1)\rceil$ 次比较,而且这是最优的(第 2 节给出两个证明)。因此量子算法再怎么好,也只能改善 $\log_2N$ 前面的**常数因子**——量级上不可能重演 Grover 式的平方根飞跃。乍看之下这个问题"不值得量子化",事实恰恰相反,它成了量子查询复杂度中**精确常数**研究得最透彻的试验场: - 1999 年,Farhi、Goldstone、Gutmann 与 Sipser 给出第一个超越二分搜索的量子算法,查询数约为 $0.53\log_2N$(Zoo 编号 39); - Høyer、Neerbek、Shi(以及后来 Childs–Lee 的最优化处理)用对抗方法证明:任何量子算法至少需要 $\frac{\ln2}{\pi}\log_2N-O(1)\approx0.221\log_2N$ 次查询(Zoo 编号 219、24); - 2006 年,Childs、Landahl、Parrilo 把"找算法"本身变成一个**半定规划 (semidefinite program, SDP)** 问题,数值搜索出小规模精确模块,再递归拼接成任意规模算法,把上界推进到 $4\log_{605}N+O(1)\approx0.433\log_2N$(Zoo 编号 103); - 2007 年,Ben-Or 与 Hassidim 用 adaptive learning 把**期望**查询数降到 $\frac13\log_2N$ 以下(Zoo 编号 10)。 一句话总结现状:有序搜索的量子查询复杂度是 $\Theta(\log N)$,精确口径下渐近常数 $c$ 落在 $0.221\ldots\le c\le0.433\ldots$ 之间,至今没有闭合。 这个问题的方法论价值不亚于其结论。如何**证明**一个小量子线路是某个问题的最优解?如何**系统地搜索**好的小线路,而不是靠灵感手拼?本教程要讲的答案是:把"存在一个 $Q$ 次查询的算法"翻译成一组关于半正定矩阵的线性约束(一个 SDP 可行性问题),然后一边用对称性把它压缩到可解的规模,一边用递归把小模块拼成大算法;下界侧则用对抗矩阵的谱范数比值。上界与下界在 SDP 的语言里遥相呼应,这也是本章(查询复杂度、span program 与性质测试)反复出现的主题。 **前置知识**:本站第 3 章的 [Grover 算法](../ch03-algo-basics/grover.md)(相位 oracle、查询模型、反射与旋转的语言)。半定规划方面,本教程自含所需的一点点内容:读者只需接受"变量是半正定矩阵、约束是线性等式"就是一个可以数值求解的问题。 :::{admonition} 本课知识点 :class: tip 1. **[插入位置与阈值 oracle](#threshold-oracle)**——能把有序搜索改写为阈值 $t\in\{0,\ldots,N\}$ 的查询问题,写出阶跃位串 $z^{(t)}$ 与相位 oracle,并验证汉明距离 $|s-t|$ 与嵌套链结构。 2. **[二分搜索与两个经典下界](#classical-lower-bounds)**——能证明决策树下界 $\lceil\log_2(N+1)\rceil$,并用前缀码的熵界说明随机化的期望比较数仍至少 $\log_2(N+1)$。 3. **[一刀、链与干涉的直觉](#one-cut-intuition)**——能解释一次量子查询为何在"区分输入对"的意义上仍只"切一刀"、有序搜索为何没有 Grover 式统一旋转角,以及量子的余地为何只能来自多轮干涉。 4. **[Gram 矩阵与查询更新规则](#gram-update-rule)**——能证明输入无关酉保持 Gram 矩阵、把算法态按查询位置分解,并推导更新规则 $G^{(q+1)}=\sum_iG_i^{(q)}\circ D_i$。 5. **[精确求解的 SDP 刻画](#sdp-characterization)**——能写出精确算法存在性的三条线性约束,并用谱分解与酉扩张引理从可行解重构出量子算法。 6. **[凸平均与循环矩阵压缩](#group-average-symmetrization)**——能证明凸平均引理(可行集的凸性使对称化合法),并通过循环矩阵的 Fourier 对角化把半正定性化为 Laurent 多项式在单位根处的非负性。 7. **[递归拼接与参数平衡](#recursion-query-count)**——能用候选数的归纳估计证明 $Q(N)\le q\log_MN+O(1)$,并计算、比较模块的渐近常数 $\frac q{\log_2M}$。 8. **[对抗下界与三种口径](#adversary-lower-bound)**——能解释对抗比值 $\frac{\|\Gamma\|}{\max_i\|\Gamma\circ\Delta_i\|}$ 中分子与分母的含义,手算路径权重的例子,并说明 $0.221$–$0.433$ 的缺口与三种口径为何不可直接比较。 ::: ## 1. 问题的精确表述 ### 1.1 插入位置:$N+1$ 种答案 设表中元素严格递增: $$y_0y_i\iff x\text{ 高于 }y_i\iff i\le t-1\iff iy_i]=1-z_i^{(t)}$,与 $z_i^{(t)}$ 逐位互补;互补意味着相位整体差一个全局因子 $-1$,对任何测量概率无影响,故两种约定等价。以下统一采用 $z$ 约定(与文献一致)。 **例 1($N=3$ 的四个 oracle)**。阈值 $t\in\{0,1,2,3\}$,位置 $i\in\{0,1,2\}$: | $t$ | $z^{(t)}=(z_0,z_1,z_2)$ | 相位向量 | |---|---|---| | 0 | $(1,1,1)$ | $(-,-,-)$ | | 1 | $(0,1,1)$ | $(+,-,-)$ | | 2 | $(0,0,1)$ | $(+,+,-)$ | | 3 | $(0,0,0)$ | $(+,+,+)$ | 两个直接可验证的特征值得记住: - **支撑嵌套(链结构)**:$\{i:z_i^{(0)}=1\}\supseteq\{i:z_i^{(1)}=1\}\supseteq\cdots\supseteq\{i:z_i^{(N)}=1\}=\varnothing$。这 $N+1$ 条相位模式不是彼此独立的,而是首尾相衔的一条链; - **汉明距离**:$z^{(s)}$ 与 $z^{(t)}$ 不同的位置恰好是 $\min(s,t)\le i<\max(s,t)$,共 $|s-t|$ 个。相邻阈值($|s-t|=1$)的 oracle 只在一个位置上不同——它们是"最难区分"的输入对。 经典算法每次比较最多把候选区间二分,因此最坏至少 $\lceil\log_2(N+1)\rceil$ 次,binary search 达到该界(第 2 节证明)。量子查询可以在多个 $i$ 的叠加上同时施加相位,但如例 1 所示,不同阈值 oracle 的相位模式高度相关(嵌套链、相邻者几乎相同),所以不会像无结构搜索那样获得平方根加速——第 4 节把这个直觉讲透,第 8 节给出证明。 ### 1.4 查询算法与复杂度的三种口径 量子查询算法按如下方式运行。寄存器分为**查询寄存器**(基矢 $|i\rangle$,$i=0,\ldots,N-1$)与**工作寄存器**(任意维数,存放辅助信息)。初态与输入无关;随后输入无关的酉变换与 oracle 调用交替进行。记第 $q$ 次查询前的算法态为 $|\psi_t^{(q)}\rangle$(它依赖输入 $t$),则 $$ |\psi_t^{(0)}\rangle=|\mathrm{init}\rangle,\qquad |\psi_t^{(q+1)}\rangle=U^{(q)}O_t|\psi_t^{(q)}\rangle, $$ 其中每个 $U^{(q)}$ 都是输入无关的酉。**查询复杂度**是 $O_t$ 的调用次数($U^{(q)}$ 的门数不计)。按对"成功"的记账方式,有三种口径: 1. **精确、最坏情形**:对每个输入都零误差地输出 $t$,查询数按最坏输入计; 2. **有界误差**:每个输入的错误概率至多 $\varepsilon$,仍按最坏输入计; 3. **期望**:对某个输入分布(通常取均匀)平均的查询数。 这三种口径的数值**不能直接比较大小**(第 8.4 节详细讨论)。另需提醒(与本章导言一致):查询模型不计实现各个 $U^{(q)}$ 的代价,查询优势不等于无条件的时间优势。 ## 2. 经典世界:二分搜索与两个下界 (classical-lower-bounds)= ### 2.1 二分搜索 算法:维护一个候选区间(初始为全部 $N+1$ 个阈值),每次比较区间中点位置的元素,由第 1.2 节,答案告诉我们 $t$ 在中点左侧还是右侧,区间长度大约减半;区间缩到 1 时输出。最坏情形的比较次数是 $\lceil\log_2(N+1)\rceil$。 **引理 1(决策树下界,最坏口径)**。任何确定性比较算法在最坏输入下至少做 $\lceil\log_2(N+1)\rceil$ 次比较。 **证明**。比较算法是一棵二叉决策树:每个内点一次比较、有两个孩子;每个叶子输出一个答案。要正确,$N+1$ 个答案各需至少一片叶子,故叶子数 $\ge N+1$;深度为 $d$ 的二叉树至多 $2^d$ 片叶子,于是 $2^d\ge N+1$,即 $d\ge\lceil\log_2(N+1)\rceil$。Q.E.D. ### 2.2 随机化也逃不掉:熵下界(期望口径) 允许随机化、按期望计数,能否把经典的常数压低?答案是几乎不能: **引理 2(期望口径的熵下界)**。对均匀分布的阈值 $t$,任何零误差的随机化比较算法的期望比较次数至少 $\log_2(N+1)$。 **证明**。分三步。 第一步(前缀码的熵界):固定随机串 $r$ 后算法是确定性的自适应策略,其**答案序列** $a_1a_2\cdots a_T$($T$ 为停止时刻)天然自终止——算法一旦停止序列即结束,因此任何两个可能的答案序列都互不为对方前缀,构成前缀码。对长度为 $\ell_w$ 的前缀码与码字上的分布 $p$,Kraft 不等式给出 $K:=\sum_w2^{-\ell_w}\le1$;令 $q_w:=2^{-\ell_w}/K$,由 KL 散度非负($\sum_wp_w\log_2\frac{p_w}{q_w}\ge0$)得 $$ H(p)\le\sum_wp_w\log_2\frac1{q_w}=\sum_wp_w\bigl(\ell_w+\log_2K\bigr)\le\mathbb E[\ell]. $$ 第二步:记 $A$ 为(随机的)答案序列、$R$ 为随机串。零误差意味着对每个固定的 $r$,$t$ 是答案序列的确定性函数 $t=f_r(A)$;由"函数不增熵"($H(f(X))\le H(X)$,因为函数把不同取值合并、熵只会变小),$H(t\,|\,R=r)\le H(A\,|\,R=r)$。对 $r$ 取平均得 $H(t\,|\,R)\le H(A\,|\,R)$。 第三步:$t$ 与 $R$ 独立,所以 $H(t\,|\,R)=H(t)=\log_2(N+1)$,而 $$ H(A\,|\,R)=\sum_rp_r\,H(A\,|\,R=r)\le\sum_rp_r\,\mathbb E[T\,|\,R=r]=\mathbb E[T], $$ 其中不等号对每个固定的 $r$ 用第一步。串起来:$\mathbb E[T]\ge\log_2(N+1)$。Q.E.D. 经典瓶颈的根源至此清楚了:**一次比较至多传递一比特**(给定 $t$ 与查询位置,答案唯一确定),而答案携带 $\log_2(N+1)$ 比特。二分搜索在两种口径下都达到(或几乎达到)下界——经典世界没有余地。量子能否突破"每次一比特"?能,但只能按常数因子突破(第 7.2 节会看到 $4$ 次查询区分 $605\approx2^{9.24}$ 种可能,平均每次约 $2.31$ 比特),且无法突破对数量级(第 8 节)。 ## 3. 历史脉络:为什么这个问题值得十年接力 有序搜索本身就是最重要的基本操作之一(索引查找、字典插入、数据库 merge),但它在量子算法史上的地位更多来自方法论: - **手工时代(1999)**。Farhi–Goldstone–Gutmann–Sipser 系统地研究了插入问题的量子版本,利用问题的自相似性手工构造精确算法并递归拼接,得到约 $0.53\log_2N$ 的查询数。这是最早一批"比较型问题上量子只赢常数"的精确刻画,也首次把"最优常数"本身当成研究对象。 - **下界时代(2001)**。Høyer–Neerbek–Shi 用对抗方法(adversary method)证明 $0.221\log_2N$ 量级的下界,确认量级不可改善;其后 Childs–Lee 把"如何选对抗权重"本身写成最优化问题(同样可 SDP 化),复核并推广了该构造。 - **机器时代(2006)**。Childs–Landahl–Parrilo 意识到:小规模精确算法的存在性可以写成 SDP,于是"设计算法"从灵感活变成了计算活——数值搜索给出 $(q,M)=(4,605)$ 的模块,拼接后上界降到 $0.433\log_2N$。 - **口径时代(2007)**。Ben-Or–Hassidim 换了记账口径:允许随机化并按期望计数,用 adaptive learning 把期望查询数压到 $\frac13\log_2N$ 以下,说明"常数"一词必须连同口径一起声明。 本教程按"上界侧的机器方法"为主线(第 5–7 节),下界侧(第 8 节)作为镜像。两侧的工具都是半定规划,这一点在第 8 节末尾再回收。 ## 4. 直觉:一刀、链与干涉 在进入形式化推导之前,我们用平实语言讲清楚三件事:量子查询在这里到底做了什么;为什么没有 Grover 式的统一旋转角;量子的余地究竟在哪里。 (one-cut-intuition)= ### 4.1 一次查询只"切一刀" 经典地,在位置 $i$ 比较一次,等于把候选集合 $\{0,\ldots,N\}$ 切成两半:$\{t\le i\}$ 与 $\{t>i\}$(第 1.2 节)。量子地,算法可以让查询寄存器处于叠加 $\sum_i\alpha_i|i\rangle$,oracle 一次性对一段**后缀**施加相位翻转——看起来信息量大得多。但衡量"两个候选 $s,t$ 被这次查询区分了多少"时,位置 $i$ 的贡献只是相对相位 $(-1)^{z_i^{(s)}\oplus z_i^{(t)}}$,而由第 1.3 节,它仅在 $i$ 落在 $s,t$ 之间($\min(s,t)\le i<\max(s,t)$)时非平凡。换句话说: > 无论振幅多么"量子",一次查询在"区分输入对"的意义上仍然只切一刀;相邻阈值之间只有一个位置非平凡,所以相邻对最难分开。 第 5.5 节的例 2 会把这句话变成一个精确的矩阵等式:一次量子查询对 Gram 矩阵的影响恰好等于"以某个概率分布在某个位置做一次经典比较"的影响。 ### 4.2 与 Grover 的对比:为什么没有统一的旋转角 回忆 Grover 加速的机制:全部输入信息凝聚为一个内积 $\langle x_0|s\rangle=\frac1{\sqrt N}$,演化被限制在二维不变子空间,$N$ 个不同的 oracle 在这个平面上步调一致(同一个旋转角 $2\theta$),于是 $\frac{\pi}4\sqrt N$ 次迭代把振幅相干地转满。有序搜索里不存在这种一致性:$N+1$ 个 oracle 构成嵌套链(例 1),相邻者只差一个位置的相位;在任何低维子空间上它们的相对相位模式都各不相同,没有"每查询拉开同样角度"的公共平面可言。与此同时,算法必须把答案写进 $N+1$ 个两两正交的末态——要把约 $\log_2(N+1)$ 比特**导出**到测量结果里。两个因素合起来提示:加速只能是常数因子。这一节是直觉而非证明;对数下界的证明在第 8 节。 ### 4.3 量子的余地:多刀之间的干涉 一次查询 = 一刀,但**轮与轮之间的酉变换可以让不同的切口发生干涉**。量子查询态 $\sum_i\alpha_i|i\rangle$ 让 oracle 同时翻转一段后缀的相位;随后的酉变换把不同候选阈值送往不同方向,使下一刀切在"更有信息量"的叠加上——不同候选阈值的相位边界于是产生不同的干涉模式。第 5 节的 Gram 矩阵正是把这件事变成全局优化:每一步应该把哪些候选状态拉开多少,同时不违反"一次查询只能施加一个阶跃相位"的约束。第 6–7 节的数值解告诉我们:精心设计的干涉能让每次查询平均换取约 $2.31$ 比特($4$ 次查询区分 $605\approx2^{9.24}$ 种可能),远超经典的 $1$ 比特——优势是真的,但每查询的信息量仍是常数,对数量级纹丝不动。 ## 5. 把整个量子算法装进 Gram 矩阵 本节是上界侧的核心:证明"存在 $Q$ 次查询的精确算法"等价于"存在一组半正定矩阵满足若干线性等式"。思路是只跟踪 $N+1$ 个输入对应的算法态之间的**两两内积**——因为输入无关的酉不改变内积,唯一能改变内积的是查询,而查询的作用可以逐位置显式写出。 ### 5.1 状态与 Gram 矩阵 沿用第 1.4 节的记号。oracle 写成 $O_t=\sum_i(-1)^{z_i^{(t)}}|i\rangle\langle i|\otimes I$(若查询寄存器有 $\{0,\ldots,N-1\}$ 之外的基矢,规定 $O_t$ 在其上为恒等;这些位置对应的相位差恒为 $+1$,对下文所有求和只是多加一项"无操作",不影响推导)。对每个阈值 $t$ 和 $0\le q\le Q$,令 $|\psi_t^{(q)}\rangle$ 是第 $q$ 次查询前的算法状态。把两两内积组成 **Gram 矩阵** $$ G^{(q)}_{st}=\langle\psi_s^{(q)}|\psi_t^{(q)}\rangle,\qquad s,t\in\{0,\ldots,N\}. $$ $G^{(q)}$ 是 $(N+1)\times(N+1)$ 的半正定矩阵(任何矢量族的 Gram 矩阵半正定:对复向量 $c$,$c^\dagger Gc=\|\sum_tc_t|\psi_t\rangle\|^2\ge0$)。由于初态与输入无关, $$ G^{(0)}=J\quad(J\text{ 为全 }1\text{ 矩阵}). $$ **引理 3(输入无关酉保持 Gram 矩阵)**。对任何酉 $U$,$\langle\psi_s|U^\dagger U|\psi_t\rangle=\langle\psi_s|\psi_t\rangle$,即输入无关酉前后的 Gram 矩阵相同。 **证明**。$U^\dagger U=I$,直接代入。Q.E.D. 意义:算法的自由部分(酉)对 Gram 矩阵完全透明;**只需追踪查询如何改变 $G$**。于是"算法存在性"这个问题里,酉被彻底消元,只剩每一步查询前后的 $N+1$ 个态的内积结构。 ### 5.2 按查询位置分解 把每个态按查询寄存器的基分解(工作寄存器部分记为 $|\varphi\rangle$): $$ |\psi_t^{(q)}\rangle=\sum_i|i\rangle\otimes|\varphi_{t,i}^{(q)}\rangle,\qquad|\varphi_{t,i}^{(q)}\rangle:=(\langle i|\otimes I)|\psi_t^{(q)}\rangle. $$ 对每个位置 $i$,定义块矩阵 $$ \bigl(G_i^{(q)}\bigr)_{st}:=\langle\varphi_{s,i}^{(q)}|\varphi_{t,i}^{(q)}\rangle. $$ **引理 4**。每个 $G_i^{(q)}\succeq0$,且 $\sum_iG_i^{(q)}=G^{(q)}$。 **证明**。半正定:对任意复向量 $c$, $$ c^\dagger G_i^{(q)}c=\sum_{s,t}\bar c_sc_t\langle\varphi_{s,i}^{(q)}|\varphi_{t,i}^{(q)}\rangle =\Bigl\langle\sum_tc_t|\varphi_{t,i}^{(q)}\rangle\,,\ \sum_tc_t|\varphi_{t,i}^{(q)}\rangle\Bigr\rangle\ge0. $$ 求和:$\sum_i(G_i^{(q)})_{st}=\sum_i\langle\varphi_{s,i}^{(q)}|\varphi_{t,i}^{(q)}\rangle=\langle\psi_s^{(q)}|\psi_t^{(q)}\rangle$,最后一步是因为查询寄存器的基矢两两正交,交叉项 $\langle i|j\rangle=0\ (i\ne j)$ 全部清零。Q.E.D. (gram-update-rule)= ### 5.3 查询如何更新 Gram 矩阵 定义**相位差矩阵**(以阈值对为索引) $$ (D_i)_{st}=(-1)^{z_i^{(s)}\oplus z_i^{(t)}}. $$ 由第 1.3 节,$(D_i)_{st}=-1$ 当且仅当 $i$ 落在 $s,t$ 之间;$D_i$ 是元素为 $\pm1$ 的对称矩阵、对角线全 $+1$。注意 $D_i$ 只依赖问题(阈值阶跃结构),不依赖算法。 **定理 5(查询更新规则)**。一次查询把 $G^{(q)}$ 变为 $$ \widetilde G^{(q)}=\sum_iG_i^{(q)}\circ D_i, $$ 其中 $\circ$ 是 Hadamard(逐元素)积;随后的输入无关酉不改变它,故 $G^{(q+1)}=\widetilde G^{(q)}$。 **证明**。逐个内积计算。查询后、酉之前,两个态是 $O_s|\psi_s^{(q)}\rangle$ 与 $O_t|\psi_t^{(q)}\rangle$: $$ \begin{aligned} \langle\psi_s^{(q)}|O_s^\dagger O_t|\psi_t^{(q)}\rangle &=\sum_{i,j}(-1)^{z_i^{(s)}}(-1)^{z_j^{(t)}}\langle i|j\rangle\,\langle\varphi_{s,i}^{(q)}|\varphi_{t,j}^{(q)}\rangle\\ &=\sum_i(-1)^{z_i^{(s)}+z_i^{(t)}}\,(G_i^{(q)})_{st}, \end{aligned} $$ 第二步用了 $\langle i|j\rangle=\delta_{ij}$。由于 $z\in\{0,1\}$,$z_i^{(s)}+z_i^{(t)}$ 与 $z_i^{(s)}\oplus z_i^{(t)}$ 同奇偶,故 $(-1)^{z_i^{(s)}+z_i^{(t)}}=(D_i)_{st}$。(第一个等号里 $O_t$ 自伴:它是对角相位矩阵。)再由引理 3,其后的酉保持这些内积。Q.E.D. (sdp-characterization)= ### 5.4 精确求解的刻画:一个 SDP 可行性问题 **定理 6**。存在 $Q$ 次查询的**精确**算法 $\iff$ 存在半正定矩阵族 $\{G_i^{(q)}\}_{i,\,q}$($i=0,\ldots,N-1$,$q=0,\ldots,Q-1$)满足以下线性约束(记 $G^{(q)}:=\sum_iG_i^{(q)}$): 1. $G^{(0)}=J$(初始内积全为 $1$); 2. 对 $q=0,\ldots,Q-1$:$\sum_iG_i^{(q)}\circ D_i=G^{(q+1)}$; 3. $\sum_iG_i^{(Q-1)}\circ D_i=I$(末态两两正交)。 变量是半正定矩阵、约束是线性等式——这正是**半定规划的可行性问题**。 **证明**。 ($\Rightarrow$ 必要性)给定算法,取真实的中间态与真实分解:$G^{(q)}$ 是态的 Gram 矩阵,$G_i^{(q)}$ 是逐位置块。引理 4 给出半正定性与 $\sum_iG_i^{(q)}=G^{(q)}$;$G^{(0)}=J$ 因为初态输入无关;定理 5 给出约束 2。约束 3 即 $G^{(Q)}=I$:精确成功要求不同输入的末态可被完美区分,而两个态可完美区分当且仅当正交(正交时投影测量即可;不正交时任何测量都有非零错误率——这是第 5.6 节引理 8 取 $\varepsilon\to0$ 的情形)。 ($\Left$ 充分性,重构算法)分四步。 - **第一步(分解出态矢量)**。对每个 $G_i^{(q)}$ 做谱分解 $G_i^{(q)}=X_i^{\dagger}X_i$($X_i$ 为 $r_i\times(N+1)$ 矩阵,$r_i=\mathrm{rank}\,G_i^{(q)}$)。取 $|\varphi_{t,i}^{(q)}\rangle:=$ $X_i$ 的第 $t$ 列,则 $\langle\varphi_{s,i}^{(q)}|\varphi_{t,i}^{(q)}\rangle=(X_i^\dagger X_i)_{st}=(G_i^{(q)})_{st}$。 - **第二步(拼出每层的态族)**。令 $|\psi_t^{(q)}\rangle:=\sum_i|i\rangle\otimes|\varphi_{t,i}^{(q)}\rangle$。由引理 4 的计算,$\langle\psi_s^{(q)}|\psi_t^{(q)}\rangle=\sum_i(G_i^{(q)})_{st}=G^{(q)}_{st}$。再由定理 5 的计算(反向使用),查询后态族 $\{O_t|\psi_t^{(q)}\rangle\}_t$ 的 Gram 矩阵是 $\sum_iG_i^{(q)}\circ D_i=G^{(q+1)}$——与下一层态族 $\{|\psi_t^{(q+1)}\rangle\}_t$ 的 Gram 矩阵**逐项相等**。 - **第三步(补上酉)**。需要的是把 $\{O_t|\psi_t^{(q)}\rangle\}_t$ 送到 $\{|\psi_t^{(q+1)}\rangle\}_t$ 的输入无关酉。这正是下面的酉扩张引理。 - **第四步(起止两端)**。起点:$G^{(0)}=J$ 说明 $\langle\psi_s^{(0)}|\psi_t^{(0)}\rangle=1$ 对所有 $s,t$ 成立,即所有 $|\psi_t^{(0)}\rangle$ 都是同一个单位矢量(至多差相位 $e^{i\theta_t}$;相位不同的单位矢量内积的模长为 $1$,而这里内积精确等于 $1$,故相位也相同)。取它为 $|\mathrm{init}\rangle$。终点:$G^{(Q)}=I$ 说明末态两两正交归一,在包含这组态的基上做投影测量即可读出 $t$。Q.E.D. **引理 7(酉扩张)**。设 $\{|a_t\rangle\}_{t=0}^{N}$ 与 $\{|b_t\rangle\}_{t=0}^{N}$ 是(可视为同一)希尔伯特空间中的两组矢量,且对所有 $s,t$ 有 $\langle a_s|a_t\rangle=\langle b_s|b_t\rangle$。则存在酉算子 $U$ 使 $U|a_t\rangle=|b_t\rangle$ 对所有 $t$ 成立。 **证明**。定义 $V\bigl(\sum_tc_t|a_t\rangle\bigr):=\sum_tc_t|b_t\rangle$。**良定义**:若 $\sum_tc_t|a_t\rangle=0$,则 $$ \Bigl\|\sum_tc_t|b_t\rangle\Bigr\|^2=\sum_{s,t}\bar c_sc_t\langle b_s|b_t\rangle =\sum_{s,t}\bar c_sc_t\langle a_s|a_t\rangle=\Bigl\|\sum_tc_t|a_t\rangle\Bigr\|^2=0, $$ 故 $\sum_tc_t|b_t\rangle=0$,$V$ 在表示不唯一时也给同一结果。**等距**:同一计算给出 $\langle Vx|Vy\rangle=\langle x|y\rangle$。于是 $V$ 是 $\mathrm{span}\{a_t\}\to\mathrm{span}\{b_t\}$ 的等距,两个子空间维数相同;把 $V$ 任意扩张为整个空间的酉(必要时在直和上补维数相同的零空间)。Q.E.D. 两点提醒。其一,重构所需的工作寄存器维数约为 $\sum_i\mathrm{rank}\,G_i^{(q)}$,随 $N$ 增长——在只计查询数的模型里无妨,但再次强调查询优势不等于时间优势。其二,SDP 的变量数是 $(N+1)^2\times N\times Q$ 量级,对大 $N$ 不可解;第 6 节用对称性把它压下来。 ### 5.5 三个小例子:单查询的极限 **例 2(一次查询 = 切矩阵的凸组合)**。第一次查询前所有态相同:$|\mathrm{init}\rangle=\sum_i|i\rangle\otimes|w_i\rangle$,故 $(G_i^{(0)})_{st}=\langle w_i|w_i\rangle=:p_i$ 与 $s,t$ 无关,即 $G_i^{(0)}=p_iJ$,其中 $p_i\ge0$、$\sum_ip_i=\|\mathrm{init}\|^2=1$。代入定理 5(并注意 $J\circ D_i=D_i$,因为 $D_i$ 的元素全是 $\pm1$): $$ G^{(1)}=\sum_ip_i\,D_i. $$ 解读:**一次量子查询——无论振幅如何叠加、是否与工作寄存器纠缠——对两两内积的影响,与"以概率 $p_i$ 在位置 $i$ 做一次经典比较"完全一样**(经典随机比较的区分度矩阵恰是同一凸组合)。量子的余地只能来自多轮之间:酉 $U^{(q)}$ 把第 $q$ 刀的相位结构搬运、重组,使第 $q+1$ 刀落在更聪明的叠加上。这就是第 4.1 节"一刀"论断的精确形式。 **例 3($N=2$:一次查询不够)**。阈值 $\{0,1,2\}$,位置 $\{0,1\}$,三个位串 $z^{(0)}=(1,1)$、$z^{(1)}=(0,1)$、$z^{(2)}=(0,0)$。由例 2,$G^{(1)}_{st}=p_0(D_0)_{st}+p_1(D_1)_{st}$。逐对计算(用"$D_i$ 在位置 $i$ 两侧的输入对上取 $-1$"): - 对 $(0,2)$:两个位置都分居两侧 $\Rightarrow(D_0)_{02}=(D_1)_{02}=-1\Rightarrow G^{(1)}_{02}=-(p_0+p_1)=-1$; - 对 $(0,1)$:只有位置 $0$ 分居两侧 $\Rightarrow G^{(1)}_{01}=p_1-p_0$; - 对 $(1,2)$:只有位置 $1$ 分居两侧 $\Rightarrow G^{(1)}_{12}=p_0-p_1$。 精确求解需要 $G^{(1)}=I$,特别需要 $G^{(1)}_{02}=0$;但它是 $-1$,与 $p$ 的选取无关。所以**任何**单查询算法都必然失败。另一方面两次比较(先比 $y_0$)足以精确求解,故 $N=2$ 时精确量子查询数 $=2=$ 经典值——量子优势要到更大的 $N$ 才出现。 **例 4(均匀叠加给出"三角形核")**。取 $|\mathrm{init}\rangle=\frac1{\sqrt N}\sum_i|i\rangle\otimes|w\rangle$($|w\rangle$ 归一),则 $p_i=\frac1N$。对 $sy_i\iff iy_i]=1-z_i^{(t)}$ 与 $z$ 约定给出的 oracle 只相差一个全局因子 $-1$,因此两种约定对所有测量概率给出相同结果。 > 提示:逐位有 $(-1)^{1-z_i^{(t)}}=-(-1)^{z_i^{(t)}}$,即两个 oracle 满足 $O'_t=-O_t$。 **练习 2【二分搜索与两个经典下界】**(→ [2.1 节](#classical-lower-bounds)) 1. 计算 $N=100$ 与 $N=1000$ 时二分搜索的最坏比较次数,并与 $\lceil\log_2(N+1)\rceil$ 核对。 2. 证明决策树下界:正确算法的决策树至少有 $N+1$ 片叶子,而深度为 $d$ 的二叉树至多 $2^d$ 片叶子。 3. 说明熵下界证明的第二步($H(t\,|\,R)\le H(A\,|\,R)$)为何用到"函数不增熵",并指出这一步在排除随机化中的作用。 > 提示:零误差意味着固定随机串 $r$ 后,阈值 $t=f_r(A)$ 是答案序列的函数。 **练习 3【一刀、链与干涉的直觉】**(→ [4.1 节](#one-cut-intuition)) 1. 用"切一刀"的语言解释:在位置 $i$ 的一次查询把候选集合 $\{0,\ldots,N\}$ 切成哪两部分?为什么无论振幅如何叠加,一次量子查询在"区分输入对"的意义上仍只切一刀? 2. 对比 Grover:说明有序搜索的嵌套链 oracle 为什么不存在所有输入共享的二维不变子空间与统一旋转角。 3. 结合例 2(一次查询对 Gram 矩阵的影响 $=$ 切矩阵的凸组合),解释量子优势为什么只能来自多轮之间的干涉。 > 提示:单次查询对两两内积的影响与一次经典随机比较完全相同。 **练习 4【Gram 矩阵与查询更新规则】**(→ [5.3 节](#gram-update-rule)) 1. 证明输入无关酉操作保持 Gram 矩阵(引理 3),并解释为什么这使 SDP 里只需建模查询步、而把所有 $U^{(q)}$ 消元。 2. 取均匀叠加初态(例 4 的设置),推导一次查询后 $G^{(1)}_{st}=1-\frac{2(t-s)}{N}$($s 提示:$D_i$ 恰在 $i\in[s,t)$ 的位置上取 $-1$,共 $t-s$ 个。 **练习 5【精确求解的 SDP 刻画】**(→ [5.4 节](#sdp-characterization)) 1. 写出定理 6 的三条线性约束,并说明它们分别对应算法的初态、每次查询与末态测量。 2. 证明酉扩张引理(引理 7),并说明它在定理 6 的重构中扮演的角色:为什么不能直接用"两组矢量内积相同"拼出算法,而必须补一个酉? 3. 由引理 8 计算:若末态内积 $|G^{(Q)}_{st}|=\frac12$,误差 $\varepsilon$ 至少是多少? > 提示:先证良定义性——若 $\sum_tc_t|a_t\rangle=0$,则 $\sum_tc_t|b_t\rangle=0$。 **练习 6【凸平均与循环矩阵压缩】**(→ [6.2 节](#group-average-symmetrization)) 1. 复述引理 9 的证明要点(半正定锥是凸锥、线性等式在平均下保持),并解释为什么"把算法对称化"只能在 Gram/SDP 世界进行、不能直接对线路做平均。 2. 对 $L=2$ 的循环矩阵(系数 $c_0,c_1$)写出两个 Fourier 特征值,并给出半正定的充要条件。 3. 证明循环矩阵的 Fourier 对角化(引理 10),并说明 Hermitian 循环矩阵的半正定性为何等价于一个 Laurent 多项式在单位圆(的 $L$ 次单位根处)非负。 > 提示:直接计算 $(Cf_\omega)_s$,代换 $d=(s-t)\bmod L$ 并用 $\omega^L=1$。 **练习 7【递归拼接与参数平衡】**(→ [7.2 节](#recursion-query-count)) 1. 说明递归构造中"问题形状不变"的含义:找到正确块之后,块内定位阈值为何仍是与原问题相同的有序搜索? 2. 从 $q=4$、$M=605$ 计算 $\frac q{\log_2M}$(给出中间步骤),并算出该模块平均每次查询传递多少比特;再判断:$q=3$、$M=100$ 的模块(若存在)是否优于它? 3. 用归纳法证明定理 11 中的断言:只要 $M^d\le N$ 就有 $n_d\le\frac{2N}{M^d}$,并解释底部门槛 $M_0$ 为何只贡献 $O(1)$ 次查询。 > 提示:$n_{d+1}\le\lceil n_d/M\rceil\le n_d/M+1$,末步用 $1\le N/M^{d+1}$。 **练习 8【对抗下界与三种口径】**(→ [8.1 节](#adversary-lower-bound)) 1. 解释对抗比值 $\frac{\|\Gamma\|}{\max_i\|\Gamma\circ\Delta_i\|}$ 中分子与分母各自的含义,并说明它与"一次查询只切一刀"的对应。 2. 对 $N=2$(三个阈值、两个位置)取近邻权重 $\Gamma_{st}=1$($|s-t|=1$,否则为 $0$):计算 $\|\Gamma\|$、每个 $\|\Gamma\circ\Delta_i\|$ 与比值,给出下界,并与例 3 的结论比较。 3. 解释"期望查询数少于 $\frac13\log_2N$"为何不与"精确最坏情形可用 $0.433\log_2N$ 完成、且至少需要 $0.221\log_2N$"直接矛盾。 > 提示:$P_3$ 的邻接谱为 $\{0,\pm\sqrt2\}$;$\Delta_i$ 只保留分居位置 $i$ 两侧的输入对。 ## 参考文献 - Zoo 编号 39:Farhi、Goldstone、Gutmann 与 Sipser, [Invariant Quantum Algorithms for Insertion into an Ordered List](https://arxiv.org/abs/quant-ph/9901059). - Zoo 编号 103:Andrew Childs、Andrew Landahl 与 Pablo Parrilo, [Improved Quantum Algorithms for the Ordered Search Problem via Semidefinite Programming](https://arxiv.org/abs/quant-ph/0608161). - Zoo 编号 219、24:Høyer--Neerbek--Shi 与 [Childs--Lee](https://arxiv.org/abs/0708.3396) 的 adversary 下界。 - Zoo 编号 10:Michael Ben-Or 与 Avinatan Hassidim, [Quantum Search in an Ordered List via Adaptive Learning](https://arxiv.org/abs/quant-ph/0703231).