我们要研究的问题叫做通配符搜索 (search with wildcards),它源自一个更古老的问题——oracle 审讯 (oracle interrogation):一个未知的比特串 藏在 oracle 里,你只能通过查询与它交互,目标是把 完整地输出出来。

在普通的位查询模型(一次读一位)下,这个问题的答案已经被了解得很透彻:经典算法恰好需要 次查询;量子算法可以省下一半——van Dam 的算法用 次查询以常数成功概率学到 ,而 Farhi、Goldstone、Gutmann 与 Sipser 随后给出了匹配的 下界。换言之,位查询下的量子加速被死死钉在线性上

Ambainis 与 Montanaro 在 2012 年(Zoo 编号 167)换了一种提问方式,线性壁垒应声而碎。他们允许一次查询提交任意子集 和候选子串 ,询问” 是否整体成立”。经典算法面对这种增强的 oracle 毫无办法——每次回答仍然只有一比特,信息论下界依旧是 。但量子算法可以做到

更有意思的是它的设计模式:这个加速既不来自振幅放大,也不来自量子行走(参见 Grover 算法碰撞与元素唯一性中的两类套路),而是来自一个状态判别 (state discrimination) 问题——用 Pretty-Good Measurement 从一堆非正交态里”读出”一个近乎正确的整串猜测。本词条的标题正是在描述它的工作方式:每一轮把已知的位数从 推进到 ,一共 轮,每轮付出 次查询去验证并修正猜测

前置知识:读者应已熟悉 Grover 算法量子傅里叶变换(特别是 上特征标的正交性)、密度矩阵与 POVM 的基本操作。这些工具本词条直接使用,不再重新推导。

阅读路线:第 1 节形式化模型并给出经典与位查询量子的两道下界;第 2 节用平实语言讲清算法的核心直觉;第 3 节是全文的技术心脏——子集态、Gram 矩阵的 Fourier 对角化与 PGM;第 4 节把状态判别装配成完整的阶梯生长算法;第 5 节核算复杂度并证明 下界;第 6 节讨论与普通 oracle、组合群检测的关系(包括一段值得引以为戒的修正史);第 7 节给出若干可手算的数值例子。

1. Oracle 模型:换一种提问方式

1.1 两种查询

先固定记号。;对串 表示汉明重量, 表示汉明距离。对子集 ,把 中的位置按升序排列后, 表示 限制在 上的子串。

位查询 (bit query) 是标准的查询模型:指定一个位置 ,oracle 返回

通配符查询 (wildcard query) 由两个寄存器的内容指定:

oracle 返回

即”未知串在 上的取值是否整体等于候选串 “。等价地,可以把一次查询写成模式串 * 所在的位置不检查,其余位置必须与 逐一相同。两种写法一一对应: 中非 * 位置之集, 在这些位置上的值。

量子算法访问的是酉版本的 oracle:

其中 是一个答案比特。注意查询寄存器本身可以是叠加态——这是后文一切”一次查询处理所有分支”操作的物理基础。要相位版本的 oracle(把答案 kick back 成 ),只需在答案比特上准备 ,这是我们在 Grover 算法中反复用过的标准改写。

两个直接观察:

  • 若限制 ,通配符查询退化为位查询(问” 是否等于 “,两次即可读出 )。所以通配符模型严格强于标准模型。
  • 通配符查询的语义是验证而非读取:它只会告诉你一个猜测对不对,不会主动告诉你正确的值是什么。这个不对称性是全文的伏笔。

1.2 经典下界:一问一比特

命题 1. 任何确定性经典算法若对每个输入 都正确输出 ,必须至少做 次查询。允许随机性与有界错误的经典算法同样需要 次查询。

证明(确定性情形)。固定算法,考察它在输入 上实际执行的查询序列与得到的答案序列,合称记录 (transcript)。查询是自适应的,但每次的答案 是一比特,因此做 次查询的算法至多产生 种不同的记录,而算法的输出只依赖记录。若 ,则 ,由鸽笼原理存在两个不同的输入 产生完全相同的记录,于是算法对二者输出同一个串,至少错一个。故 。Q.E.D.

随机情形的标准论证是信息论式的:无论查询多么自适应,每一比特答案作为 的函数至多携带关于 的一比特互信息; 次查询的全部记录与 的互信息至多为 比特,而要以概率 输出 比特的 ,需要”知道”其中 比特(Fano 不等式的直接应用)。因此期望查询数仍是 。上界是平凡的:逐位查询 次。所以经典复杂度是 ——增强的提问方式对经典世界毫无帮助,因为答案永远只有一比特。

1.3 普通 oracle 下的量子线性壁垒

量子的情况则微妙得多。在标准位查询模型中,van Dam 的 oracle 审讯算法用 次查询学到 (比经典的 省一半),而 Farhi 等人的奇偶下界与 Beals 等人的多项式方法共同确立了:有界错误地识别任意 需要 次位查询。两头夹逼,精确的复杂度是 ——线性,不可再省

壁垒的根源在于位查询的”局部性”:一次查询只触及一个位置,而量子查询能从一个位置上榨出的关于整个串的信息被下界定死了。通配符查询打破的正是这个局部性:它的答案 是一个关于整段串的全局谓词,于是量子算法可以把”一整段候选串”放进叠加里,让相位反冲携带全局的匹配信息。本词条的 模式匹配 词条讨论的子串查询模型(” 是否为 的连续子串”)是同一思路的另一个变体,Cleve 等人对它给出了 的量子算法。

2. 直觉:整段验证便宜,好的猜测靠量子冗余

在进入公式之前,先把算法”为什么对”讲清楚。它依赖两个互相配合的部件。

部件一:验证便宜,修错也便宜。 在通配符模型里,验证一个长度为 的整段猜测只要一次查询( 取那 个位置, 取猜测值);在位查询模型里这要花 次。更进一步:如果验证发现猜测有错,定位一个错误位置也只要 次——对候选位置区间做二分,每次查询”错误是否藏在前半段”(即查询前半段子集上的整段相等性), 次即可收敛到一个 mismatch 位置,把那一位翻转即可修掉一个错误。于是一个很自然的算法骨架浮现出来:大胆地猜,便宜地验证,便宜地修错

部件二:好的猜测从哪里来。 骨架里唯一缺的是”猜测”。朴素地猜当然不行——随机猜一个 位串,全对的概率是 。这里量子性提供了决定性的帮助。考虑把”已知 的一个 位子集视图”量子化为态

所有”缺 位”的视图的均匀叠加。关键在于这个叠加是相干的:同一个位置 出现在大量分支 中,且各分支中 的振幅相位一致。这些相干重叠编码了强烈的全局冗余——第 3 节将证明,当缺失的位数是 时,存在一个测量(PGM),其输出 与真值 的期望汉明距离只有 。与之对照,经典世界里拿任何一个固定的 位视图,剩下 位完全是纯熵:猜对它们的概率是 ,指数级小。量子把”缺失位置也处于叠加”这一事实变成了可测量的信息。

为什么恰好是 两个方向的力量平衡在这里。缺失位数 越大,视图之间的正交性越差、判别越难(第 3.4 节的谱分析会把这一点定量化:谱的”分辨率尺度”是 ,取 恰好让单比特错误率降到 ,从而 位合计错误 );缺失位数越小,一轮能学到的新位就越少。所以每轮把已知规模从 推到 是甜点位置——这就是标题的来历。

算术骨架(第 4、5 节将严格化):从规模 出发,每轮增长 ,需要 轮走完 ;每轮的查询数是”一次验证 期望 个错误 每个 次二分” 。总计

与下界 (第 5.2 节)相比只差一个对数因子,这个因子正是”修错二分”的代价。

最后强调一次方法论:本算法的加速不经过振幅放大或量子行走。它的可迁移经验是——当 oracle 允许”整段验证”类查询时,应当问”什么样的量子态能让一个近似的整串猜测变得便宜”,也就是把查询问题转化为状态判别问题。

3. 核心状态判别问题

3.1 子集态

与每个 ,定义子集态 (subset state)

第一个寄存器存子集( 中位置按升序编号),第二个寄存器存对应的值。直观地说, 是”随机扔掉 位之后还能看见的 “的量子版本:扔掉哪 位处于均匀叠加,而没有扔掉的每一位都带着正确的值出现在所有包含它的分支里

第 4 节的算法将维护一串不断增大的子集态 ,并在每一轮用下面的判别引理从 附近的态”猜出”更多的位。注意当 时只有一个子集 ,故 ——终态的第二个寄存器就是答案本身

3.2 Gram 矩阵只依赖汉明距离

态集合 共有 个元素,要判别它们,第一步永远是计算两两内积。

Lemma 1. 对任意

证明。按定义展开:

计算基矢正交给出 ,于是双重求和坍缩成单重:

单个因子 等于 (若 )或 (若 ,此时 是正交的计算基矢)。因此整串内积非零当且仅当 完全避开 的全部差异位置。记差异位置集为 ,则满足条件的 是从 (共 个位置)中选 个,共有 种,且每一种贡献 。代入即得结论。Q.E.D.

三个直接推论,后文都要用到:

  • 内积只依赖 (而不依赖 本身),这是全部对称性分析的起点。
  • ,即 时态两两正交(习题 1 会再从组合角度验证)。
  • 记缺失位数 。当 时可以把比值写成连乘:

其中最后两步对 使用了 (每步都是 的标准近似)。这条近似告诉我们一件重要的事:当 时,汉明距离为 的两个态的内积约为 ,几乎平行。精确识别 在原理上不可能——态本身几乎不区分邻居。所以本词条的目标从一开始就不是”以高概率精确输出 “,而是”期望只错 ”。这个放低的标准恰好够用,因为第 2 节说过:每位错误只需 次查询就能修掉。

3.3 -Fourier 对角化

判别一组态的最优测量由 Gram 矩阵决定。把 Gram 矩阵看作 的算子 ,其 元是 ,其中

(由 Lemma 1, 只依赖 。)这种”只依赖差值”的矩阵是群 上的卷积矩阵,而卷积矩阵被特征标对角化——这正是 量子傅里叶变换中的老朋友:对每个 ,特征标

Lemma 2. 每个 都是 的特征向量,特征值

(按标准约定,下指标超出范围的二项式系数取 ,故 。)

证明。分两步。

第一步(特征向量性质)。把 代换:

其中第二个等号用了 (在 上加法就是异或)以及代换 是双射。这一步同时给出了特征值的表达式 ,剩下的任务是算出闭式。(记号提醒: 是 Gram 核函数;第 3.6 节的 是 PGM 输出分布、 是重量函数,三者请勿混淆。)

第二步(闭式的组合推导)。核心是把二项式系数改写成计数:

即从 个零位置里选 个。代入并与对 的求和交换次序:

内层对 的求和中, 只在 上自由取值,于是按位置分解成乘积:

若某个 满足 ,因子为 ,整项消失;故内层和非零当且仅当 ,此时每个因子都是 ,内层和为 。因此

最后 ,除以 即得闭式。Q.E.D.

校验。两条独立验算可以确认闭式无误:

  • 迹:(对角元全是 )。用恒等式 (先选 再选不相交的 ,与先选 再在余下选 ,数的是同一个集合对)与 ,取

与所要验证的迹一致。

  • 小例子(。此时 ,故

(行、列按 排列)。闭式给出 (重数 ),。直接验证: 的特征值是 的特征值是 的特征值是 与闭式完全一致。

顺带把第 3.6 节要用的一条标准事实记在这里:任何只依赖 的矩阵 若以 为特征值,则其矩阵元可由特征值反解:

这是因为归一化特征向量 构成 的正交基,谱分解 逐元写出就是上式。

3.4 谱的形状与参数窗口

把特征值按重量写成 ,用了 的对称性)。两个极端先对齐直觉:

  • ):,态两两正交——完美判别。
  • :所有态相同, 是全 矩阵,——完全不可判别。

中间情形的形状:当 时,

也就是说,特征值在重量轴上以尺度 衰减。用通俗的话说:Gram 矩阵的谱质量集中在”低重量的特征标方向”上,态与态之间真正”看得见”的差异只延伸到汉明重量约 的范围;比这更远的方向上谱接近零,测量原则上分辨不了。

,分辨率尺度就是 。论文的附录 A 把这个窗口的两端定量地钉死了(以”精确识别概率” 为度量,第 3.5 节将说明它正是 PGM 恰好猜中 的概率):缺 位()时 ,而缺 位( 偏大)时 正是”从几乎完美到指数变差”的过渡尺度——这解释了第 2 节的断言:每轮只应放进去 个新位。

3.5 Pretty Good Measurement

态不正交时不存在同时区分它们的投影测量;最优的策略是一个 POVM。本词条用的是Pretty-Good Measurement(PGM,也叫平方根测量)。按论文的约定取未加权的和(这样公式最干净;它就是均匀先验下密度矩阵的 倍):

逆取在 的支撑上(所有态都落在支撑内)。名字里的”pretty good”是一种自嘲式的准确:它未必最优,但构造简单、只依赖系综的一阶统计量,且在很多对称系综上恰好最优(本系综正是如此,见第 3.6 节评注)。

合法性:每个 显然半正定,且

输出概率由 给出。定义矩阵 ,则

推导分三步。第一步,把 的定义代入并展开成配对:

第二步,证 。按矩阵乘法把中间对 的求和收拢(注意中间插入任何权重):

其中收拢一步用了 ,最后一步用了 在支撑上等于恒等。第三步, 半正定:对任意系数 ,令 (必落在支撑内),则

因为 在支撑上的特征值非负(顺带一提, 与标签空间上的 互为转置伴随,故二者有相同的非零特征值,即 )。半正定平方根唯一,故 。Q.E.D.

这条公式把”测量的输出分布”完全化成了 Gram 矩阵的函数,而 已被第 3.3 节对角化——所以 PGM 的全部性能都可以从特征值 读出。特别地,用第 3.3 节末尾的反解公式(取 ):

3.6 主引理:期望 个错误

现在陈述全文的技术心脏。

Lemma 3(Ambainis–Montanaro). 对任意 ,存在一个测量(PGM),在输入 时输出 ,满足

期望对测量的内禀随机性取,且界对每个 一致成立。

证明骨架。完整证明的每一步都展示如下,其中一处二项式系数的细致估计我们标注为”论文估计”并说明其思想。

Step A(对称性归一)。由 只依赖 (第 3.5 节末公式),输出分布 只依赖 。于是期望错误数 无关,不妨设 ,记输出分布为

(归一化正是 。)

Step B(错误数 = 单比特偏差之和)。错误位数可以按位拆开:

定义 Fourier 系数 ,则 。又由对称性(坐标 之间可互换),诸 相等,故

也可以绕道 Plancherel 得到同一式:把 看作重量函数 的内积,用展开 (该展开成立是因为 )逐项乘开,得 ;再直接计算 :把 配对可算出

为零的原因:把 任取一位)配对,两项 之和中的线性部分相消——具体地 ,习题 6 要求补全)。代回并注意 ,同样得到

于是引理等价于证明:PGM 输出的每一个比特,其错误概率只有 位合计起来才是 ——这就是”期望 个错误”的真正含义。

Step C(用特征值表达 。Fourier 变换把逐点乘积变成卷积:若 ,则 (把 各自按特征标展开相乘、合并同类项即得)。取 (注意这是带符号的函数,第 7.4 节会看到 的例子),其 Fourier 系数由第 3.5 节末公式给出:。故

Step D(论文估计)。剩下的任务是证明上式 (即每个输出比特几乎无偏)。把 按重量 分层。由于 在层内只依赖 (特征值只依赖重量),上式是各层贡献的加权和,权重是二项式系数。关键观察有三条:

  1. 质量集中在中间层。权重 集中在 ,尾部指数小(Chernoff 界)。
  2. 相邻层的特征值几乎相等。由闭式,,在 时等于 ——几何平均 本身几乎一样。
  3. 凹函数下界。论文对每一层的主项使用初等不等式

(证明:令 ,则 ,因式分解展开即可验证)把根号展开成幂次,逐层估出主项 ,其中 、常数范围的 一致。

三层合起来给出 ,代回 Step B:

Q.E.D.

评注(诚实声明)。Step D 中”逐层展开并把余项加总”涉及对二项式系数与 Krawtchouk 型和的细致控制,本词条只展示了结构与关键不等式;完整的逐项估计见论文第 3 节(其附录 A 还包含精确识别概率的上下界,即第 3.4 节引用的两条)。此外论文还借助 Eldar–Forney 的定理说明:这组态在阿贝尔群 ,满足 ,见习题 6)下几何均匀 (geometrically uniform),而几何均匀系综上 PGM 恰好是最小化平均错误率的最优测量。所以”换一个更好的测量”在此没有收益—— 不是算法的懒散,是这个态集合的本质属性。

3.7 一个对照:经典视图 vs 量子子集态

把第 2 节的口号落实成数字。固定缺失 位,比较两条路线:

  • 经典:拿到任意一个固定的 位视图后,剩余 位是纯熵,全部猜对的概率只有
  • 量子:从子集态 出发做一次 PGM,期望只错 位,整串恰好猜对的概率为常数——而且残余的错误位每个只需 次查询就能定位并修复。

量子优势的来源不是”读得更快”,而是缺失位置之间的相干重叠使整串信息过定 (overdetermined):同一个 个分支中以一致相位出现,测量提取的是全局一致性,而不是逐位采样。

4. 阶梯生长算法

4.1 蓝图与阶段序列

算法维护一列规模递增的子集态。取阶段序列 ,满足递推

即自顶向下地从 每次砍掉约 。第 阶段把 升级成 ;由 ,最终测量第二个寄存器即得

阶段数 的推导。把递推 与常微分方程 比较:由链式法则 ,即 关于 以斜率 线性下降,从 降到 需要

步;离散递推与 ODE 的误差在每步 ,累计 不改变阶。第 7.3 节会用 的数值验证(一路降到 步,对照 ODE 估计 )。

为什么不一步到位、直接制备 然后做一次 PGM?因为制备本身就需要知道 :oracle 只做验证、不报数值,把 个位置的值写进寄存器仍然要逐位抄写,一次 PGM 省不掉这个成本。阶梯的意义在于让 PGM 的”猜测”替代”抄写”:每一轮只需第 0 阶段那样抄 位(而且只在最初做一次),之后的增长全部由”猜 + 验 + 修”驱动。

4.2 第 0 阶段:直接抄写

制备初态

  1. 制备均匀叠加 ,并为值准备 个槽位(第 槽对应 的第 小元素,纯组合计算,无需 oracle)。
  2. 对每个 ,做一次单点通配符查询:查询 ,其中 是从寄存器 中相干算出的第 小元素。答案比特为 ,翻转一次即得 ,写入第 槽。

要点是:查询寄存器处于叠加态,所以一次查询同时为所有 个分支写好了第 (第 1.1 节的物理基础)。 个槽共耗 次查询,得到

4.3 扩张阶段的五个步骤

设第 阶段输入为 。回顾参数关系:,即每个分支内”缺失”的位数恰好落在 Lemma 3 的窗口里。

步骤 1(相干嵌入,零查询)。把每个 子集分支”浸泡”进它的所有 元超集:

(外层省略归一化因子 ;内层 为全集的子集态。)为什么零查询?因为这步只是对已在寄存器里的旧值做重组:从分支 出发,均匀叠加它的超集 (从 中再选 个元素,纯组合操作),然后把值寄存器原样带入。新的 个位置的值尚不在态里——它们正是 PGM 即将预测的对象。

步骤 2(分支内 PGM)。对每个分支 的寄存器执行同一个酉变换 :即”参数为(全集大小 、子集大小 )的 PGM 的酉部分”,把分支态映到”输出寄存器 持有整串猜测 、其余放垃圾 “的形态。按 Lemma 3(把其中的 换成 ),每个分支的猜测期望只有 个错误位。注意这里不测量输出寄存器——猜测以叠加的形式保留,测量被推迟到验证标志上。

步骤 3(一次查询验证整段)。对叠加里的每个分支,用一次通配符查询计算

到标志比特,然后测量标志。若读到 :所有存活分支的猜测都整段正确,态形如 ——输出寄存器已经持有每个分支的正确值,正是我们要的形状,跳到步骤 5。

步骤 4(相干二分修错)。若标志读到 :对每个仍错的分支(猜测与 至少差一位),用 次子段查询相干地(不测量)定位一个错误位置:查询”候选区间的前半段上猜测是否全对”,答案 说明错误在前半段、 说明在后半段(若前半全对则错误必在余下部分),逐次折半区间直至收敛到单个位置 ,翻转 的第 位。随后再次整段验证并测量标志;若仍为 ,回到本步骤开头。由于期望错误位数是 ,期望只需 轮。

步骤 5(清除垃圾,零查询)。当标志最终读到 ,每个分支的输出寄存器持有经过验证的 。此时分支的全部辅助内容都是 的确定性函数:以正确值为输入,把步骤 1–4 的计算逆着执行一遍(uncomputation)即可把 与所有搜索用的辅助比特还原为 。逆运算不消耗 oracle 查询,因为验证已经保证每一次用过的 oracle 答案都能从输出寄存器重新推出。丢弃辅助寄存器后得到

4.4 每阶段代价、正确性与一个技术评注

查询记账。第 阶段():步骤 3 花 次;步骤 4 每轮 次、期望 轮,合计期望 。总计每阶段期望

其中 正是 Lemma 3 的结论。

正确性。算法是 Las Vegas 式的:只要它停机,输出必然正确——终态是 ,测量第二个寄存器得到的就是 本身;而每一阶段留给下一阶段的寄存器内容都通过了整段验证 ,验证不通过的分支不会进入下一阶段。运行时间的随机性来自测量的内禀随机性(PGM 猜错几位、二分撞上哪个位置),与输入 无关,也不是假设 随机分布——这是论文对”平均 (on average)“一词的明确约定:期望针对最坏输入上的内部随机性。

评注(相干实现的细节)。有三处细节值得诚实标注,它们不影响复杂度阶,但严格的实现需要小心:

  1. 测量标志为什么安全。测量只施加在标志比特上;由系综的对称性,PGM 在各分支给出”正确猜测”的振幅是同一个常数 的对角元与分支无关,见习题 6),所以读到 时存活分支的相对振幅没有被扭曲,态仍与目标态成比例。这是”只测标志、不测输出”的对称性保护。
  2. 修错循环的相干性。步骤 4 的二分必须对叠加中的所有错误分支同时执行(论文明确要求”coherently, without measurements”);循环的终止判定依赖测量结果,严格实现时要把”修一轮”作为受控子程序反复调用并按期望时间记账。
  3. 跨阶段误差累积。若把全部操作做成严格相干的版本(连标志都不测),每阶段残留的”未修净”分支范数会沿 个阶段累积,需要相应的误差预算。论文按 Las Vegas/期望时间的口径处理这些细节,得到定理 1 的 期望查询界。

4.5 从期望时间到最坏情形有界错误

期望复杂度可以按标准套路转成最坏情形有界错误:设某算法期望 次查询,把它截断在 次( 为常数):由 Markov 不等式,超时概率 ,故一次运行以常数概率在预算内成功;超时就整体重来,重复 次把失败概率压到 。代价是查询数乘上 ——常数或对数放大,不改变 的阶。

5. 总复杂度与下界

5.1 逐因子核算

总期望查询数是

逐项解释每个因子的来源:

  • (第 0 阶段):初态规模 ,每个槽位一次单点查询。
  • (轮数 ):由递推 与 ODE 比较(第 4.1 节)。
  • (每轮): 次整段验证,加上期望 个错误、每个 次二分。
  • 每轮增长 位的参数选择不是可调的优化自由度:它被 Lemma 3 的窗口(缺失位数必须是 )双向夹死——跳得更大则 PGM 期望错误不再是 ,修错成本反超收益。

5.2 量子下界

定理(Zhang 的强加权对抗法,此处采用 Cleve 等与 Špalek–Szegedy 的表述). 设要计算的函数 的输入 通过 oracle 访问。给每对输出不同的输入 赋对称权重 ,给每个三元组 赋权重 ,要求 只要 ,且对 的对满足 。记 。则任何以概率 计算 的量子算法需要

次查询。

Lemma 6. 任何以最坏情形概率 解通配符搜索的量子算法需要 次查询。

证明。对通配符搜索,输入集是全部 ,查询是 ,且不同输入必须被区分()。取权重方案:

合法性: 对称且在 (即 )时为零; 相等时为零;对 不同的对,。三条要求全部满足。

计算 :每个 恰有 个汉明邻居,故

计算 :邻居形如 。分情况:

  • (即 ):翻转 外的位不改变答案;翻转 内任一位都会破坏整段相等。故 当且仅当
  • ,设二者在 内差 位。翻转第 位后恰好追平,当且仅当 是那个唯一差异位。故 (若 )或 (若 )。

取任意满足 的三元组:不妨 ,则 ,于是

代入定理得 。Q.E.D.

与 Grover 的直觉联系。这条下界可以这样”摸”出来:把候选输入限制为 个单 1 串 (彼此汉明距离为 ,但每个都与 只差一位——“只在一个位置改变隐藏串”)。对这族输入,查询 的答案是"",取反即""。于是区分这 个输入等价于:用”标记位置是否落在 内”的子集查询做无结构搜索,找那个唯一的标记位置——这正是 Grover 算法所面对的问题形态,平方根下界的直觉完全一致;上面的对抗法证明把这个直觉变成了定理。

5.3 近最优性

上界 与下界 之间的对数因子,来源已在上文标明:每轮 的修错二分。论文没有消除这个差距;是否能把上界压到 (或证明对数因子必要)是一个自然悬而未决的问题。就目前的知识,“近最优”是对这个算法最准确的评价。

6. 与普通 oracle 和组合群检测的对比

6.1 普通 bit oracle 模拟不了什么

逐条检查算法的每个用钱之处:

  • 第 0 阶段的单点查询就是位查询,可以模拟。
  • 步骤 3 的整段验证:用位查询模拟需要把 每个位置都读一遍再比较—— 次查询,且不存在已知的相干捷径(位查询模型下识别整个串本来就需要 次,第 1.3 节)。
  • 步骤 4 的二分:每一步都是一次子段整段验证,同上。

所以算法的全部优势都押在”一次查询验证一整段”这一语义上;习题 4 要求把这一点量化。这也是把本词条放在”查询复杂度”一章的原因:模型的一步之差,把复杂度从 拉到 ,而算法设计随之换了一个范式。

6.2 组合群检测: 特例

组合群检测 (combinatorial group testing, CGT) 是通配符搜索的”孪生”问题:输入 承诺汉明重量 ),查询是

(” 里是否有坏元素”),目标是找出全部坏元素。它的历史可以追溯到 1943 年:Dorfman 为美军士兵的梅毒筛查设计混检方案(把多人血样混在一起一次检测),此后发展出庞大文献,应用于分子生物学、数据流、压缩感知与”带通配符的模式匹配”。经典复杂度是 ——下界来自信息论,上界来自二分。论文对它的量子结果是:

注意上界 无关——像经典的 因子被整体消去了。

它的工作机制与通配符搜索完全不同,值得一提,因为它展示了”OR 语义”的另一种用法。先看 的极端情形:

引理( 时一次查询足矣). 承诺 时,(点积),因此 OR-oracle 就是内积 oracle——这正是 Bernstein–Vazirani 式相位反冲的舞台。制备 ,查询一次把相位 踢回叠加,再作用 ,测得

一般 的算法(概要):以概率 独立采每个元素得到子集 ,在 上做同样的”Hadamard 读出”,得到串 。可以证明输出满足:凡 处必有 零假阳性——读出的坏元素必然是真坏元素),且 恰含一个坏元素(概率 )时必然学到它。于是期望 次查询学到一个新的坏元素,共 次;若只知上界 而不知真值,按 猜规模,每步多付 ,总 。用补集查询可以验证是否已找全,故它也是 Las Vegas 的。

两个问题的关系。语义上二者”相反”:通配符问”全部相等吗”,CGT 问”存在坏元素吗”,且 CGT 带稀疏承诺。论文给出一个干净的块构造说明通配符搜索是 CGT 的特例:把 个位置分成 ,承诺每块恰有一个 ,其位置编码一个比特 。CGT 查询与 的交可以是 (问 ?)、(问 ?)或 (跳过),整条查询是这些子问题的 OR——把回答取反,就得到对 的一条通配符查询。因此 CGT 算法可以解通配符搜索,且第 5.2 节的 下界经此归约传递成 CGT 的

6.3 一段修正史

这两个问题之间的关系曾导致一个被撤回的结果,值得记录。论文的早期版本声称通过”把 CGT 归约到通配符搜索”得到 CGT 的 量子上界;该归约后来被发现有误(一位同行发现了关键错误),作者在 v4 中明确撤回并”略微弱化结果”。目前可靠的结论是:

  • 通配符搜索: 期望查询, 下界;
  • CGT: 期望查询(第 6.2 节的算法), 下界;其精确量子查询复杂度仍是公开问题

教训有二:其一,两个 oracle 语义”看起来可以互相模拟”时,必须逐分支核对查询的代数形式,特别是自适应性与取反;其二,文献中”曾经宣布后被修正”的界不应当被无批判地引用。

7. 数值小例子

7.1 一次通配符查询的解剖

(位置从 编号)。查询

按定义逐一比较:,全部相等,故 。用模式串写法,这是 的匹配(第 位是 *,不检查)。

7.2 二分修错全程

沿用 。假设某轮 PGM 给出整串猜测 。逐位比对:只有第 位不同(),。修错过程:

  1. 整段验证:查询 ,答案 ——有错,进入二分。
  2. 二分第 1 步:查询 (猜测的前半段)。 相等,答案 ——前半段全对,错误在后半段
  3. 二分第 2 步:查询 ,答案 ——错误在 内。
  4. 二分第 3 步:查询 ,答案 ——错误就在第 位。区间已收敛到单点,定位完成。
  5. 修正与复验:翻转 ;再查询 ,答案 ——修好了。

整轮共 次查询( 次初始验证 次二分 次复验),与” 每个错误”的记账一致。对比之下,若用位查询逐位扫描,最坏要 次才能找到一个错误——通配符语义的优势就体现在这里。

7.3 阶梯的数值

,按 自顶向下:

步,对照 ODE 估计 ,严格吻合。算法不必走到 :在 附近(上表走到 步)就可以停,用第 0 阶段抄写。每步的增量正是 :例如 位, 位, 位——“每轮学习 位”的直接体现。

7.4 手算 PGM:

把第 3 节的全部公式在一个能手算的规模上过一遍。(缺失 位):

态与 Gram 等四个态。Gram 公式给出 ,即第 3.3 节校验中写出的矩阵。

特征值,与直接对角化一致。

与输出分布。由反解公式

取平方得输出分布

(这同时也是对”PGM 输出概率 “的独立数值验证:一个概率分布必须归一)。

期望错误数

再用 Step B 的公式核对:偏差 ,故 ,与逐位直接计算完全一致。最后核对 Step C 的特征值表达式: 两项非零, 而为零),与直接算出的偏差再次一致。也就是说:在这个玩具规模下,PGM 输入 时约有 概率整串猜对、 的期望错误位数——数量级上正是 Lemma 3 所说的

8. 小结与习题

小结

  • 子集态 把”缺 位的视图”放进相干叠加;其 Gram 矩阵只依赖汉明距离,因而被 的特征标对角化,特征值有闭式
  • 谱在重量轴上以 的尺度衰减,把” 缺失位”钉成分辨率窗口;窗口内 PGM(对这组几何均匀的态还是最优测量)以期望 个错误恢复整串。
  • 通配符查询一次验证一整段;配合相干二分,每个错误 次查询即可定位并修正。
  • 阶梯 级,总复杂度 期望查询;对抗法给出 下界,算法近最优。
  • 与位查询、CGT 的边界要划清:位查询模拟不了整段验证( 壁垒);CGT 有自己的 算法与 下界,二者之间的错误归约曾被撤回。

习题

  1. **(内积公式的特例)**直接由 Lemma 1 计算:(a) ;(b) 时的表达式;(c) 证明 时诸态两两正交(从”差异位置集必须被避开”的计数角度说明,而不只是代入公式)。
  2. **(特征值手算)**取 :列出 )与 ),验证 与任意一行的行和等于 ,并解释行和的组合意义(提示:固定 ,数满足 对)。
  3. **(阶段数)**证明递推 降到 需要 步。要求把 ODE 比较论证补严格(例如证明每一步 至少下降一个固定的常数分数以上或至少下降 ),并对 列出完整序列。
  4. **(位查询的不可模拟性)**指出算法四个步骤中哪一步无法用 次位查询模拟,并说明:若把每条通配符查询都换成”逐位读取再比较”的实现,整个算法的查询复杂度会退化到什么阶?结合第 1.3 节说明为什么这种退化不是实现技巧的问题。
  5. **(经典随机下界)**把第 1.2 节的随机情形论证补全:证明若经典算法以概率 输出 ,则期望查询数为 。(提示:条件熵 与 Fano 不等式;每比特答案关于 的互信息至多 。)
  6. **(对称性与最优性)**定义 。(a) 证明 是一个阿贝尔酉群,且 (即态集合几何均匀);(b) 由此证明 的对角元全相等,并说明这正是第 4.4 节评注 1 中”测量标志不扭曲分支振幅”的根源;(c) 补全第 3.6 节 Step B 中 的配对计算。

参考文献


参考资料