Appearance
第4章:查询模型、干涉与 Grover 搜索
Oracle 与资源
查询模型把 当作可调用黑盒,计数调用次数;完整时间复杂度还要计入实现 oracle、制备状态、其他门和输出的成本。
一次查询作用于叠加态,不意味着能测出所有 。算法需要让不同路径振幅相加或抵消,把关心的性质集中到少量可测结果上。
相位反冲
把辅助位置为 ,有
函数值被编码为主寄存器的相位。Deutsch–Jozsa 在函数被承诺为常量或均衡的模型下,经前后 Hadamard,利用振幅求和区分两类;没有该承诺时不能把测量结果解释成同样的分类结论。
Grover 的二维旋转
N 个候选中有 M 个标记项,令标记均匀态为 、未标记均匀态为 ,初态
一次 Grover 迭代先翻转标记相位,再关于 反射,两次反射组合成旋转。k 次后成功概率为 。
当 且已知 M,取约 次查询可使成功率很高。迭代过多会越过最佳角度,成功率再次下降。
四项例子
N=4、M=1,初始每项振幅为 。相位 oracle 将标记项改为 ,此时振幅均值为 。关于均值反射 后,标记项成为 1,其余成为 0,一轮即可确定找到。
该例不代表任意大小都一轮成功;它来自特殊角度 。
复杂度的边界
无结构搜索的量子查询下界为 ,因此 Grover 在该模型中达到数量级最优。这不是任意计算问题的通用下界,也不能把 oracle 内部计算忽略后宣布整体任务同样加速。
练习
- 手算四项例子的两个反射。
- 对 N=4 再做一轮 Grover,验证成功率为什么下降。
- 若实现一次 oracle 需很昂贵的数据加载,如何改变端到端资源估计?