可视化图示
量子计算与量子信息 · 第六章 量子搜索算法 (Grover)
原著: M. Nielsen & I. Chuang《Quantum Computation and Quantum Information》| 来源: 中文学习笔记 (.nb) | 生成: 2026-06-19
如何使用本 skill
- 不带参数 — 加载第六章的核心搜索框架
- 带主题 — 问
Grover、预言机、几何意义、成功概率、Householder等,我会读对应小节文件再回答 - 带小节号 — 问
6.3或sec6.3,加载该小节 - 浏览 — 问"有哪些小节?"查看完整索引
当你问的主题不在下面的核心框架里,我会先读相关小节文件再回答。
核心概念框架
搜索问题:在 $N$ 个对象中找出满足条件 $f(x)=1$ 的 $M$ 个解之一。经典无结构搜索需 $O(N)$;Grover 用 $O(\sqrt{N})$ 次预言机查询,平方加速。
两类预言机:① 布尔预言机 $U_f\ket{x}\ket{q}=\ket{x}\ket{q\oplus f(x)}$(用辅助比特记录 $f$);② 相位翻转预言机 $O\ket{x}=(-1)^{f(x)}\ket{x}$(辅助比特置 $\ket{-}$,相位回踢把布尔预言机变成相位翻转)。
Grover 迭代 $G = -H\cdot O = (2\ketbra{\psi}{\psi}-I)\cdot O$:每次迭代 = 预言机 $O$(翻转解的相位)+ 关于均匀叠加态 $\ket{\psi}$ 的反射("对均值翻转")。从均匀叠加 $\ket{\psi}=H^{\otimes n}\ket{0}$ 出发,重复 $G$。
几何意义:在解空间 $\ket{\beta}$ 与非解空间 $\ket{\alpha}$ 张成的 2 维平面内,每次 Grover 迭代是固定角度 $\theta$ 的旋转($\sin(\theta/2)=\sqrt{M/N}$)。两次反射的复合 = 一次旋转——这正是 Householder 变换的几何。
成功概率与最优次数:迭代约 $(\pi/4)\sqrt{N/M}$ 次时,态最接近解空间,测得解的概率最大。迭代过多会"转过头",概率下降——次数必须卡准。
启发式推导(量子模拟视角):猜哈密顿量 $H=\ketbra{\psi}{\psi}+\ketbra{x}{x}$,用 $e^{-iHt}\approx\exp(-i\ketbra{\psi}{\psi}t)\cdot\exp(-i\ketbra{x}{x}t)$ 的 Trotter 形式;取 $t=\pi$ 使每步转角最大,恰好得到 Grover 迭代 $G=-HO$。
小节索引
| 小节 | 标题 | 关键概念 |
|---|---|---|
| 6.1 | 搜索问题与预言机 | 搜索提法、布尔预言机、相位翻转预言机、3-SAT 例 |
| 6.2 | Grover 算法流程 | 均匀叠加初态、Grover 迭代 $G=-HO$、完整流程 |
| 6.3 | 几何意义 | Householder 反射、2 维旋转、固定角度 $\theta$ |
| 6.4 | 成功概率 | 最优迭代 $(\pi/4)\sqrt{N/M}$、布尔 vs 相位实现、过冲 |
| 6.5 | 启发式推导 | 猜哈密顿量、量子模拟/Trotter 导出 $G=HO$ |
主题索引
- 3-SAT / 真值表 / 线路 → 6.1
- Grover 迭代 $G=-HO$ → 6.2, 6.3
- Householder 变换 → 6.3
- 布尔预言机 / 相位翻转预言机 → 6.1
- 几何意义 / 2 维旋转 → 6.3
- 成功概率 / 最优迭代次数 → 6.4
- 启发式推导 / 量子模拟 → 6.5
- 平方加速 $O(\sqrt{N})$ → 6.2, 6.4
辅助文件
- glossary.md — 关键术语表(中英对照)
- patterns.md — Grover 构件与技巧
- cheatsheet.md — 流程、角度与次数速查
范围与限制
本 skill 仅覆盖 QCQI 第六章(量子搜索算法)的概念框架,源自一份中文 Mathematica 笔记(作者魏文杰,2024-03-02)。公式以纯文本/Unicode 近似表示。笔记中的 3-SAT 真值表、Wolfram 量子线路、成功概率随迭代次数的图像未完整转录,精确实现请参阅原书与原笔记。
6.1 搜索问题与预言机
核心思想
量子搜索解决"无结构搜索":在 $N$ 个对象中找满足 $f(x)=1$ 的解。问题通过预言机(oracle)访问 $f$,分布尔型与相位翻转型两种。
搜索问题的提法
- 给定可计算的布尔判定函数 $f:\{0,\dots,N-1\}\to\{0,1\}$($N=2^n$),有 $M$ 个解($f=1$)。
- 目标:找到一个解 $x$(使 $f(x)=1$)。经典无结构搜索需 $O(N)$ 次查询。
布尔预言机
- 形式:$U_f\ket{x}\ket{q} = \ket{x}\ket{q\oplus f(x)}$,$q$ 是记录 $f(x)$ 计算结果的辅助比特。
- 构造例(3-SAT):定义一个含若干 clause 的 3-SAT 布尔函数,写出真值表,用经典可逆逻辑(Toffoli 等)搭出对应量子线路;辅助比特初始化为 0。可验证经典线路与量子线路实现相同功能。
相位翻转预言机
- 形式:$O\ket{x} = (-1)^{f(x)}\ket{x}$——对解(真输入)的态前加负号。
- 从布尔到相位:把辅助比特置于 $\ket{-}=(\ket{0}-\ket{1})/\sqrt{2}$,作用布尔预言机 $U_f$ 后,相位回踢使 $\ket{x}\ket{-}\to(-1)^{f(x)}\ket{x}\ket{-}$,即得相位翻转预言机。
- index register 是 $n$ 个 qubit 的 $\ket{x}$。
关键要点
- 搜索 = 在 $N$ 对象中找 $M$ 个 $f=1$ 的解;经典 $O(N)$。
- 布尔预言机用辅助比特记 $f(x)$;相位翻转预言机给解打 $-1$ 相位。
- 辅助比特置 $\ket{-}$ + 相位回踢 = 把布尔预言机转成相位翻转预言机。
关联
- 6.2:相位翻转预言机 $O$ 是 Grover 迭代的第一步。
- 第四章 4.2:Toffoli 等可逆门构造布尔预言机。
- 第五章 5.2:相位回踢与 Deutsch 同源。
6.2 Grover 算法流程
核心思想
从均匀叠加态出发,重复施加 Grover 迭代 $G$——每次把"解"的概率幅放大一点,约 $(\pi/4)\sqrt{N/M}$ 次后测量即以高概率得到解。
完整流程
- 初始化:$n$ 个比特置 $\ket{0}$,施 $H^{\otimes n}$ 得均匀叠加 $\ket{\psi}=(1/\sqrt{N})\sum_x\ket{x}$。(视实现,辅助比特置 $\ket{1}$→$H$ 得 $\ket{-}$。)
- 重复 Grover 迭代 $G$(约 $(\pi/4)\sqrt{N/M}$ 次)。
- 测量 index register,以高概率得到一个解。
Grover 迭代 G = −H·O
- 写法:$G = -HO$,其中
- $O$:相位翻转预言机,$O\ket{x}=(-1)^{f(x)}\ket{x}$(翻转解的相位)。
- $H$(此处指关于均匀叠加 $\ket{\psi}$ 的反射算符,常写 $2\ketbra{\psi}{\psi}-I$,亦称"对均值的翻转/inversion about the mean")。
- 直观:$O$ 把解的幅变负,再"绕均值翻转"使解的幅被放大、非解的幅被压低。
复杂度
- 每次迭代调用一次预言机;总查询 $O(\sqrt{N})$($M=1$ 时 $\sim(\pi/4)\sqrt{N}$)。
- 相比经典 $O(N)$ 的平方加速。
关键要点
- 流程:均匀叠加 → 重复 $G$ → 测量。
- $G=-HO$ = 预言机相位翻转 + 关于 $\ket{\psi}$ 的反射(对均值翻转)。
- 平方加速:$O(\sqrt{N})$ 次查询 vs 经典 $O(N)$。
关联
- 6.1:$O$ 来自相位翻转预言机。
- 6.3:$G$ 的两次反射 = 一次 2 维旋转(几何意义)。
- 6.4:迭代次数必须卡在 $(\pi/4)\sqrt{N/M}$。
6.3 Grover 算法的几何意义
核心思想
Grover 迭代在一个 2 维平面内是固定角度的旋转。把高维搜索压缩到这个平面,算法的行为一目了然。
2 维平面
- 定义两个正交态:
- $\ket{\beta}$:所有解的均匀叠加(解空间,$M$ 个)。
- $\ket{\alpha}$:所有非解的均匀叠加(非解空间,$N-M$ 个)。
- 初态 $\ket{\psi} = \sqrt{(N-M)/N}\ket{\alpha} + \sqrt{M/N}\ket{\beta}$ 落在 $\ket{\alpha}$-$\ket{\beta}$ 平面内。当 $M\ll N$ 时,初态与 $\ket{\alpha}$ 很接近(离解很远)。
Householder 变换(反射)
- 关于态 $\ket{\psi}$ 的反射算符是一个 Householder 变换 $u = 2\ketbra{\psi}{\psi}-I$($u^H=\bra{\psi}$ 相关),把向量关于 $\ket{\psi}$ 轴做镜像反射。
- 预言机 $O$ 是关于 $\ket{\alpha}$ 的反射(把 $\ket{\beta}$ 分量取负)。
每次迭代 = 固定角度的 2 维旋转
- $G = -HO$ = 两次反射(先关于 $\ket{\alpha}$,再关于 $\ket{\psi}$)的复合 = 一次旋转。
- 旋转角 $\theta$ 满足 $\sin(\theta/2)=\sqrt{M/N}$(初态与 $\ket{\alpha}$ 夹角 $\theta/2$)。
- 每作用一次 $G$,态在平面内朝 $\ket{\beta}$(解空间)转过固定角 $\theta$。
- 综合:两次反射 ⇒ 一次旋转,是 Householder/反射几何的标准结论。
关键要点
- 搜索发生在 $\ket{\alpha}$(非解)与 $\ket{\beta}$(解)张成的 2 维平面。
- 反射 = Householder 变换;预言机与"对均值翻转"各是一次反射。
- 两次反射复合 = 固定角 $\theta$ 旋转,$\sin(\theta/2)=\sqrt{M/N}$,朝解空间转。
关联
- 6.2:$G=-HO$ 的代数形式在此获得几何解释。
- 6.4:旋转角 $\theta$ 决定最优迭代次数 $\sim(\pi/4)\sqrt{N/M}$。
- 第四章 4.1:单比特门=旋转的几何直觉在此推广到搜索平面。
6.4 Grover 算法的成功概率
核心思想
每次迭代把态朝解空间转固定角 $\theta$,约 $(\pi/4)\sqrt{N/M}$ 次后态最接近 $\ket{\beta}$,测得解的概率最大。迭代过多会"转过头",概率反而下降。
最优迭代次数
- 初态与 $\ket{\alpha}$ 夹角 $\theta/2$,$\sin(\theta/2)=\sqrt{M/N}$。要把态转到 $\ket{\beta}$(再转 $(\pi-\theta)/2 \approx \pi/2$),需迭代次数
$R \approx (\pi/2)/\theta \approx$ $(\pi/4)\sqrt{N/M}$($M\ll N$ 时 $\theta\approx 2\sqrt{M/N}$)。
- $M=1$ 时 $R\approx(\pi/4)\sqrt{N}$。
- 过冲风险:迭代次数必须取整且卡准;转过头则测得解的概率下降(成功概率是迭代次数的振荡函数)。
Worked Example:唯一解 111111(N=2⁶)
- 布尔函数以 111111 为唯一解(即 $\ket{x=2^6-1}$)。线路设计与辅助比特初态的选择会得到相同的成功概率。
- 用布尔预言机实现:
- 辅助比特 $\ket{1}$:前六个比特置 0、最后一个置 1,作用 Grover 迭代 20 次。
- 辅助比特 $\ket{0}$:同样作用 20 次。
- 用相位翻转实现:
- 预言机以 $\ket{111111}$ 为解;初态前六比特各置 $\ket{+}$;作用 Grover 迭代 20 次。
- 每次迭代后计算成功概率并作图。
- 结论:$N=64$、$M=1$ 时最优次数 $\approx(\pi/4)\cdot 8 \approx 6.3$,故约第 6 次迭代成功概率最高;继续到 20 次会看到概率随迭代振荡(先升后降再升)。布尔预言机(辅助 $\ket{0}$/$\ket{1}$)与相位翻转实现给出相同的成功概率曲线。
关键要点
- 最优迭代次数 $\approx (\pi/4)\sqrt{N/M}$;$M=1$ 时 $\approx(\pi/4)\sqrt{N}$。
- 成功概率随迭代次数振荡——次数不准会过冲、概率下降。
- 布尔预言机(辅助 $\ket{0}$/$\ket{1}$)与相位翻转实现成功概率相同。
关联
- 6.3:$(\pi/4)\sqrt{N/M}$ 来自旋转角 $\theta$。
- 6.2:每次迭代调用一次预言机 ⇒ $O(\sqrt{N})$ 查询。
- 6.5:启发式推导给出 $G$ 的连续时间来源。
6.5 启发式推导
核心思想
Grover 迭代不是凭空猜出的。可从"量子模拟"视角出发:猜一个哈密顿量,用 Trotter 分解去模拟它,恰好导出 Grover 迭代 $G=-HO$。
猜哈密顿量
- 设目标解为 $\ket{x}$,初态为均匀叠加 $\ket{\psi}$。猜哈密顿量为
$H = \ketbra{\psi}{\psi} + \ketbra{x}{x}$(两个投影之和,分别"吸引"向 $\ket{\psi}$ 和 $\ket{x}$)。
用量子模拟方法实现 H ⇒ Grover
- 用 Trotter 近似把演化拆开:
$e^{-iHt} \approx U(t) \equiv \exp(-i\ketbra{\psi}{\psi} t) \cdot \exp(-i\ketbra{x}{x} t)$。
- 每个因子 $\exp(-i\ketbra{\phi}{\phi} t)$ 是"绕 $\ket{\phi}$ 的相位旋转",作用在 2 维平面上对应一次部分旋转/反射。
- 每经过时间 $t$,态在平面内转过的角对应 $\cos\theta$ 的关系。
取 $t=\pi$ 得到 $G=HO$
- 为使每步转角最大,应令 $t=\pi$:此时 $\exp(-i\ketbra{x}{x}\pi)=I-2\ketbra{x}{x}$ 正是关于 $\ket{x}$ 的反射(= 相位翻转预言机 $O$,差全局相位),$\exp(-i\ketbra{\psi}{\psi}\pi)=I-2\ketbra{\psi}{\psi}$ 是关于 $\ket{\psi}$ 的反射。
- 两者复合恰好就是 Grover 迭代中的 $G = -HO$($H$ 指对 $\ket{\psi}$ 的反射)。
关键要点
- 猜 $H=\ketbra{\psi}{\psi}+\ketbra{x}{x}$,用 Trotter 模拟其演化。
- 取 $t=\pi$ 使转角最大,两个相位旋转各变成一次反射。
- 两次反射复合 = Grover 迭代 $G=-HO$——算法从模拟视角"自然涌现"。
关联
- 6.2/6.3:印证 $G=-HO$ 与"两次反射=一次旋转"。
- 第四章 4.6:Trotter 分解/量子模拟的工具在此被反用来"设计"算法。
术语表 · QCQI 第六章
Grover 迭代 $G$ — $G=-HO$,预言机 + 关于 $\ket{\psi}$ 的反射 (6.2,6.3) Householder 变换 — 关于某态的反射 $2\ketbra{\psi}{\psi}-I$ (6.3) index register — 存放 $\ket{x}$ 的 $n$ 个 qubit (6.1) inversion about the mean — 对均值翻转,= 关于 $\ket{\psi}$ 反射 (6.2) $\ket{\alpha}$(非解空间) — 所有非解的均匀叠加 (6.3) $\ket{\beta}$(解空间) — 所有解的均匀叠加 (6.3) 3-SAT — 构造布尔预言机的示例布尔函数 (6.1) 布尔预言机 — $U_f\ket{x}\ket{q}=\ket{x}\ket{q\oplus f(x)}$ (6.1) 成功概率 — 随迭代次数振荡的测得解概率 (6.4) 均匀叠加初态 $\ket{\psi}$ — $H^{\otimes n}\ket{0}=(1/\sqrt{N})\sum\ket{x}$ (6.2) 平方加速 — $O(\sqrt{N})$ vs 经典 $O(N)$ (6.2,6.4) 最优迭代次数 — $\approx(\pi/4)\sqrt{N/M}$ (6.4) 相位回踢 — 辅助比特 $\ket{-}$ 把布尔预言机变相位翻转 (6.1) 相位翻转预言机 $O$ — $O\ket{x}=(-1)^{f(x)}\ket{x}$ (6.1) 旋转角 $\theta$ — $\sin(\theta/2)=\sqrt{M/N}$,每次迭代转过 $\theta$ (6.3) 搜索问题 — $N$ 对象中找 $M$ 个 $f=1$ 的解 (6.1) 启发式推导 — 猜 $H=\ketbra{\psi}{\psi}+\ketbra{x}{x}$,Trotter 导出 $G$ (6.5) 过冲 (overshoot) — 迭代过多致成功概率下降 (6.4)
Grover 构件与技巧 · QCQI 第六章
把布尔预言机变成相位翻转预言机
何时用:手头是 Uf(布尔型),但 Grover 需要相位翻转 O。 怎么做:辅助比特置 $\ket{-}$,作用 $U_f$,相位回踢得 $\ket{x}\to(-1)^{f(x)}\ket{x}$;辅助比特解耦。 权衡:多一个辅助比特;辅助初态 $\ket{0}$/$\ket{1}$ 不影响成功概率。
用可逆逻辑搭布尔预言机
何时用:把一个经典判定函数(如 3-SAT)做成 Uf。 怎么做:写真值表 → 用 Toffoli/CNOT 等可逆门搭线路 → 辅助比特记 $f(x)$,用完反计算清理。 权衡:需要 ancilla 与 uncompute;门数随 clause 数增长。
把 Grover 迭代看作 2 维旋转
何时用:分析成功概率、决定迭代次数。 怎么做:在 $\ket{\alpha}$-$\ket{\beta}$ 平面里,$G$ 是转角 $\theta$ 的旋转,$\sin(\theta/2)=\sqrt{M/N}$。 权衡:仅 2 维有效;多解时 $\ket{\beta}$ 是所有解的叠加(测得随机一个解)。
卡准最优迭代次数
何时用:实际运行 Grover。 怎么做:$R=\mathrm{round}((\pi/4)\sqrt{N/M})$;$M$ 未知时可用指数递增猜测策略或量子计数先估 $M$。 权衡:次数偏离最优会过冲,成功概率振荡下降。
用量子模拟"设计"算法(启发式)
何时用:想理解 G 的来历 / 设计变体。 怎么做:取 $H=\ketbra{\psi}{\psi}+\ketbra{x}{x}$,Trotter 化 $e^{-iHt}$,令 $t=\pi$ 使两因子各成反射 ⇒ $G=-HO$。 权衡:是推导视角,非更优实现。
反模式
- 迭代次数照搬 $\sqrt{N}$ 不取整/不按 $M$ 调整:会过冲。
- 忘记 $M>1$:最优次数含 $\sqrt{N/M}$,且只能得到随机一个解。
- 直接用布尔预言机不转相位:Grover 的反射需要相位翻转 $O$。
- 测量过早或过晚:必须在态最接近 $\ket{\beta}$ 时测。
速查表 · QCQI 第六章
算法流程
- 初始化:$H^{\otimes n}\ket{0}$ = 均匀叠加 $\ket{\psi}$;(辅助比特 $\ket{-}$)。
- 重复 $G$ 约 $(\pi/4)\sqrt{N/M}$ 次。
- 测量 index register → 高概率得解。
Grover 迭代 G = −H·O
| 部件 | 作用 | 几何 |
|---|---|---|
| O(预言机) | $O\ket{x}=(-1)^{f(x)}\ket{x}$ | 关于 $\ket{\alpha}$ 反射 |
| H($2\ketbra{\psi}{\psi}-I$) | 对均值翻转 | 关于 $\ket{\psi}$ 反射 |
| $G=-HO$ | 一次迭代 | 转角 $\theta$ 的旋转 |
关键数字
- 旋转角:$\sin(\theta/2)=\sqrt{M/N}$,$M\ll N$ 时 $\theta\approx 2\sqrt{M/N}$。
- 最优迭代次数:$R \approx (\pi/4)\sqrt{N/M}$;$M=1$ → $(\pi/4)\sqrt{N}$。
- 复杂度:$O(\sqrt{N})$ 查询(经典 $O(N)$)——平方加速。
- $N=64,M=1$ → $R\approx 6$。
预言机两型
| 类型 | 形式 | 备注 |
|---|---|---|
| 布尔 | $U_f\ket{x}\ket{q}=\ket{x}\ket{q\oplus f(x)}$ | 用辅助比特记 $f$ |
| 相位翻转 | $O\ket{x}=(-1)^{f(x)}\ket{x}$ | 辅助 $\ket{-}$+回踢从布尔得到 |
几何要点
- 平面:$\ket{\alpha}$(非解)、$\ket{\beta}$(解)。
- 初态 $\ket{\psi}=\sqrt{(N-M)/N}\ket{\alpha}+\sqrt{M/N}\ket{\beta}$。
- 反射 = Householder;两次反射 = 一次旋转。
注意事项
- 成功概率随迭代次数振荡,必须卡准次数(过冲会下降)。
- 多解 $M>1$:得到随机一个解;$M$ 未知先做量子计数或指数猜测。
- 布尔(辅助 $\ket{0}$/$\ket{1}$)与相位翻转实现成功概率相同。
启发式来源
$H=\ketbra{\psi}{\psi}+\ketbra{x}{x}$ → Trotter,$t=\pi$ → 两反射复合 = $G=-HO$。