Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2. 量子算法: Deutsch-Jozsa / Grover / Shor

TL;DR

叠加 + 纠缠给了量子计算机新能力,但测量会坍缩——所以算法必须设计成"把正确答案的概率放大"。这一章讲三个代表性算法,从教学(Deutsch-Jozsa)到实用(Grover)到威胁经典密码(Shor),理解"快在哪、为什么快、代价是什么"。

读完应能:

  1. 理解量子并行与"读一次"的张力(为什么算法要巧妙放大概率)。
  2. 讲清 Deutsch-Jozsa:用 1 次查询判定函数性质,经典要 2ⁿ⁻¹+1 次。
  3. 讲清 Grover:无序搜索 √N,知道为什么是平方级不是指数级。
  4. 讲清 Shor:把因式分解归约到"找周期"(量子优势所在),知道为什么威胁 RSA。
  5. 知道这些算法分别的复杂度对比与适用边界。

一、量子并行与"读一次"的张力

1.1 量子并行

对 $n$ 个 qubit 做 H 变换到全叠加:

$$|\psi\rangle = \frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1} |x\rangle$$

一次酉计算 $U_f$ 同时作用于所有 $2^n$ 个基态 → 指数级并行

1.2 但测量只给一个结果

U_f 叠加了 2^n 个结果, 但:
测量 → 坍缩到 1 个, 概率 = |振幅|²
→ 直接读 = 随机采样, 不是答案!

结论:量子算法的全部艺术在于——用干涉(相位)把答案振幅放大、错误振幅抵消,让测量更可能给出答案。经典算法读结果,量子算法"培养概率"。


二、Deutsch-Jozsa 算法

2.1 问题

给定黑盒函数 $f: {0,1}^n \to {0,1}$,承诺它要么常量(全 0 或全 1),要么平衡(一半 0 一半 1)。判断是哪种。

  • 经典:最坏要 $2^{n-1} + 1$ 次查询。
  • 量子:1 次查询

2.2 直觉

利用"相位编码":让函数作为相位翻转作用在叠加态上,不同函数类型产生不同干涉 → 测量结果区分。

关键点(简化):

对叠加态 |+...⟩ 应用 U_f
常量函数 → 相位整体不翻 → 测量得到 |0...0⟩
平衡函数 → 相位部分翻 → 干涉掉 |0...0⟩ 分量 → 测不到 |0...0⟩
  • 这就是"量子干涉":相位差导致振幅增强/抵消。
  • 它不直接给出"f 是什么",而是给出"f 是不是常量"——用 1 次查询完成分类。

2.3 为什么意义重大

教学意义 > 实用意义:第一个严格证明量子比经典有指数优势的算法(虽然问题本身人为)。它展示的"叠加 → 相位干涉 → 测量"模式是所有量子算法的骨架。


三、Grover 搜索

3.1 问题

在 $N = 2^n$ 个元素的无序集合里找目标(假设恰一个解)。经典线性搜索 $O(N)$;Grover 给出 $O(\sqrt N)$

3.2 直觉(振幅放大)

1. 全叠加: |ψ⟩ = (1/√N) Σ|x⟩   (每个解概率 1/N, 太小)
2. 反复迭代"振幅放大":
   ① 标记目标: 翻转目标态的相位 (它"变负")
   ② 绕均值反转: 把振幅往均值对称翻转 → 目标振幅被放大
3. 迭代 ~√N 次后, 目标态振幅 → ~1 → 测量大概率命中

每次迭代把目标的振幅放大,同时其他态被压缩——这就是Grover 迭代(反射 + 反射)。

3.3 复杂度

  • 查询数:$O(\sqrt N)$(经典 $O(N)$)→ 平方级加速,不是指数。
  • 最优性(Bennett 1997):量子搜索的查询下界就是 $\Omega(\sqrt N)$——Grover 已是最优。

note

Grover 是"平方加速"的代表。它不像 Shor 给指数加速,但通用——任何 $O(N)$ 搜索问题都能用 Grover 加速到 $O(\sqrt N)$。密码学意义:穷举密钥 $2^k$ → $2^{k/2}$(所以 AES 密钥要加倍长,见附录 Y2Q)。


四、Shor 算法(威胁 RSA)

4.1 问题

大整数因式分解。经典最好(数域筛法)亚指数 $O(\exp(c (\log N)^{1/3}))$——RSA 就建立在"难分解"上。Shor 给出多项式时间

4.2 核心:把分解归约到"找周期"

Shor 的两步:

Step 1 (经典): 因式分解问题 → 找"阶"(order/周期) 问题
  - 随机选 a, 求最小的 r 使 a^r ≡ 1 (mod N)   ← 找周期
  - 用 gcd(a^{r/2} ± 1, N) 得到因子

Step 2 (量子): 用量子傅里叶变换 (QFT) 找周期 r
  - 这是唯一"量子有指数优势"的一步

4.3 为什么量子快

**量子傅里叶变换(QFT)**在 $O(\log^2 N)$ 步内找到函数的周期——经典找周期需要指数步。

经典找周期: 试 r=1,2,3,... (指数)
QFT 找周期: 一次变换, 频率峰 → 周期
  • 周期 $r$ 在频域里对应一个峰——QFT 用干涉把"周期频率"放大,一次测量读出。
  • 这正是 Deutsch-Jozsa 的"相位干涉"思路的规模化。

4.4 对 RSA 的威胁

  • RSA 的安全 = "分解 N 难"。Shor 多项式分解 → RSA / DH / ECC 全破(只要 Shor 在足够大的数上能跑)。
  • 这推动 后量子密码(PQC):基于格/哈希/多变量的抗量子方案(NIST 已定 Kyber/Dilithium 等)。
  • 但 Shor 需要大量物理 qubit + 完美纠错(见下一章),短期不现实。

warning

别混:Shor 威胁的是 RSA/ECC/DH(基于分解/离散对数),不威胁 AES 对称加密(AES 受 Grover 影响,密钥加倍即可)。量子安全的核心问题是"公钥密码要换",不是"所有密码都要换"。


五、复杂度对比表

算法问题经典量子加速
Deutsch-Jozsa常量 vs 平衡$2^{n-1}+1$1指数
Grover无序搜索$O(N)$$O(\sqrt N)$平方
Shor大数分解亚指数多项式指数
Shor离散对数亚指数多项式指数
量子模拟量子系统指数多项式指数(实用价值最大的方向)

note

量子模拟(Feynman 1982 的原始动机)可能比 Shor 更早产生实际价值:模拟分子/材料/化学(量子系统天然指数难,经典算不动)——量子计算机用自己模拟自己,是"天然匹配"。


六、算法骨架统一

所有量子算法共享的骨架:

1. 叠加:   H⊗n 造全叠加 (指数并行)
2. 干涉:   U_f + 相位旋转 (放大目标 / 抵消噪声)
3. 变换:   QFT 或其他 (把"想知道的"转到可测的基)
4. 测量:   高概率读出答案

理解了这个骨架,读任何量子算法 paper 都不会迷路。


七、结束 + 速查表

tip

一页快速唤回:

  • 量子并行:$n$ qubit 叠加 $2^n$ 态;但测量只读一个 → 算法要放大概率。
  • 干涉:相位差 → 振幅增强/抵消(所有算法的核心)。
  • Deutsch-Jozsa:1 次查询判常量/平衡(经典 $2^{n-1}+1$),教学意义。
  • Grover:无序搜索 $\sqrt N$(平方加速,最优);密码穷举 $2^k → 2^{k/2}$。
  • Shor:分解 → 找周期 → QFT 一次读周期(指数加速);威胁 RSA/ECC/DH,不威胁 AES。
  • PQC:后量子密码(Kyber/Dilithium)为 Shor 时代的准备。
  • 量子模拟:最可能先实用(分子/材料)。
  • 骨架:叠加 → 干涉 → 变换 → 测量。

下一篇: 3. 量子纠错: 逻辑 qubit / surface code / 现实挑战.