碰撞与元素唯一性:从抽样加 Grover 到 Johnson 图量子行走¶
“找两个相同输出”有两种常被混淆的版本。Collision problem 承诺函数要么一一、要么严格二对一;element distinctness 没有这种承诺,只问列表中是否存在任意重复。前者可用 \(O(N^{1/3})\) 查询,后者的最优查询复杂度是 \(\Theta(N^{2/3})\)。本课逐步推导两个指数,并扩展到 \(k\)-distinctness、claw finding 与多碰撞。
1. 两个问题的承诺差异¶
给定 oracle \(f:[N]\to[M]\)。
**Collision problem:**承诺 \(f\) 为一一函数,或每个像恰有两个原像;判断是哪一种。
**Element distinctness:**无额外承诺;判断是否存在 \(i\ne j\) 使
并可要求输出碰撞对。
二对一承诺意味着正实例有 \(N/2\) 个碰撞对,信息丰富;element distinctness 的最坏正实例可能只有一个碰撞对,因此更难。
2. 抽样表加 Grover 得到 \(N^{1/3}\)¶
对 collision promise:
随机选 \(r\) 个输入,查询并把 \((i,f(i))\) 存入排序/哈希表;若表内已碰撞则完成。
对其余输入做 Grover 搜索,标记条件是 \(f(j)\) 是否出现在表中。
在二对一情形,样本中每个输出的另一个原像大概率仍在外部,所以外部约有 \(r\) 个标记项。Grover 成本
总查询数
平衡得到
这利用了大量碰撞。若只有唯一碰撞,随机表包含其一个端点的概率仅约 \(2r/N\);反复抽表的成本抵消优势,不能直接推出 \(N^{1/3}\) 的 element-distinctness 算法。
3. Johnson 图状态保存已查询值¶
Ambainis 算法在 Johnson 图 \(J(N,r)\) 上行走。顶点是 \(r\) 元子集 \(S\subset[N]\),状态连同数据
一起保存。若 \(D(S)\) 内含相同输出,就把 \(S\) 标记。
设置均匀叠加及数据需 \(S=r\) 次查询。相邻子集只删除一个索引、加入一个索引,所以 update 只需一次新查询(再可逆擦除旧值)。若数据结构按输出值排序或哈希,检查是否有重复不再查询 oracle。
4. \(N^{2/3}\) 的完整平衡¶
假设只有唯一碰撞对 \(\{i^*,j^*\}\)。随机 \(r\) 元子集同时包含二者的比例
Johnson 图随机替换链的谱隙
Szegedy 搜索调用 update/check 的次数为
所以
取
得到
多项式法/adversary 下界也为 \(\Omega(N^{2/3})\),故查询最优。严格内容审查仍需同时检查 MathJax 渲染;Sphinx 能解析文档,并不等于每个数学宏都已通过语义校验。
5. 数据结构为何是算法的一部分¶
查询模型把排序、插入和查重视为免费,但真实量子电路必须在叠加的 \(S\) 上可逆更新 \(D(S)\)。若用普通数组并移动 \(r\) 个元素,每一步时间会多乘 \(r\)。可逆哈希、radix tree 或带嵌套更新的量子行走用于把 update/check 压到 polylog 开销。
因此应分别报告:
是 oracle 查询结论;达到近似相同门时间还需要相干随机访问与碰撞数据结构。新型 multidimensional/electric-network walk 对 \(k\)-distinctness 已能在若干范围让时间匹配查询到 polylog 因子。
6. \(k\)-distinctness 与 learning graph¶
\(k\)-distinctness 要找 \(k\) 个输入具有相同输出。直接把 Johnson 顶点标记为“含完整 \(k\)-碰撞”,唯一目标下
总成本
在 \(r=N^{k/(k+1)}\) 平衡,给出 \(O(N^{k/(k+1)})\)。
Learning graph 不要求一次把所有 \(k\) 个目标都装进同一普通子集,而是分阶段加载可能属于碰撞结构的变量,并按证书结构重新加权 flow。对常数 \(k\),可达到
型更好查询界;时间高效实现需要 nested/multidimensional updates。
7. Claw、频率矩与多碰撞¶
Claw finding 给两个函数 \(f:X\to R\)、\(g:Y\to R\),寻找 \(f(x)=g(y)\)。它可在两个 Johnson 图的乘积上行走,并根据 \(|X|,|Y|\) 选择不同子集大小;三函数 claw 和非均匀域需要重新平衡。
频率矩
把“是否有碰撞”推广为估计碰撞数量。若需要寻找大量碰撞,重复从头运行 walk 会浪费已查询数据;reusable quantum walk 在测得一个解后保留/重用其余量子数据,可改善格筛等应用的总成本。
8. 小结与习题¶
二对一 collision 有大量标记,抽样表加 Grover 得到 \(N^{1/3}\)。
Element distinctness 最坏只有一对,Johnson 图的标记比例与谱隙平衡给出 \(N^{2/3}\)。
setup/update/check 和可逆数据结构决定查询优势能否转成时间优势。
\(k\)-distinctness 的普通 walk 给 \(N^{k/(k+1)}\),learning graph 可进一步改善。
最小化 \(r+\sqrt{N/r}\) 与 \(r+N/\sqrt r\),比较两个指数。
精确推导唯一碰撞的标记比例。
推导普通 \(k\)-distinctness walk 的最优 \(r\)。
说明为什么 Sphinx 成功解析 Markdown 仍不足以证明所有 MathJax 公式语义正确。
参考文献与 Zoo 覆盖¶
Collision 基线:Zoo 18、21、315,含 Brassard--Høyer--Tapp。
Element distinctness:Zoo 7、374,核心为 Ambainis Johnson 图算法。
\(k\)-distinctness 与时间高效 walk:Zoo 154、172、173、363、464,见 Multidimensional Quantum Walks。
Claw、频率矩与多碰撞:Zoo 277、364、365、535,另含 Zoo 172--173 的 nested update 技术。