本页目录

算法 III · 随机化、近似与 NP 归约

对标:CS170 / CLRS 第 34–35 章 / Motwani–Raghavan Randomized Algorithms前置:algo-01/02、数学站概率线(期望、集中不等式) 算法理论的成年礼:承认有些问题(很可能)没有高效精确解,然后优雅地退让——用随机换简单、用近似换可行、用归约把"我不会"精确地转化为"没人会"。这一页对你概率底子的调用最直接:随机算法的分析就是期望与集中不等式的应用题。

1. 随机化:用掷硬币换简洁与速度

两类随机算法:Las Vegas(结果永远对,时间是随机变量——如随机快排);Monte Carlo(时间固定,结果以概率对——如素性测试)。

样板一:随机快排 随机选 pivot,期望比较次数 \(O(n\log n)\)分析【推导】:设 \(X_{ij}\) = 元素 \(i,j\) 是否被比较(0/1)。它们被比较当且仅当在 \(\{i,\dots,j\}\)\(i\)\(j\) 最先被选为 pivot,概率 \(\frac{2}{j-i+1}\)。期望总比较数

\[ E[X] = \sum_{i<j}\frac{2}{j-i+1} = \sum_i O(\log n) = O(n\log n). \]

没有"最坏输入"——因为随机性在算法内部,对手无法构造坏例。这是随机化最迷人的用途:把最坏情况的脆弱换成期望的稳健

样板二:Karger 随机最小割 反复随机收缩边,最后剩两个点即一个割。单次成功概率 \(\ge \frac{2}{n(n-1)}\),重复 \(O(n^2\log n)\) 次以高概率找到全局最小割——一个不用最大流的最小割算法,纯靠运气 + 重复。分析核心是"最小割的边少 ⇒ 随机收缩不太可能毁掉它"。

样板三:指纹与哈希 判两个大对象是否相等,随机取一个哈希/多项式求值点比较——出错概率可压到任意小(Rabin–Karp 字符串匹配、Freivalds 验证矩阵乘 \(O(n^2)\) 而非重算 \(O(n^3)\))。

2. 集中不等式:随机算法为什么"几乎总对"

随机分析的三级武器(🔗 数学站概率/高维概率线):

Markov Chebyshev Chernoff 尾概率界对比

图 algo-03.1尾概率界对比——Markov 只用期望,Chebyshev 用方差,Chernoff 借独立性给出指数级收紧。

读法:Chernoff 是"大数定律的定量版"。它把"重复几次投票就可靠"从直觉变成公式——这正是把 Monte Carlo 算法的错误率工程化的工具。

3. NP 与归约:把"我不会"变成"没人会"

P = 多项式时间可解;NP = 多项式时间可验证(给一个证书能快速检验)。P vs NP\(P\overset?=NP\))是计算机科学的中心悬案:验证容易是否意味着求解容易?

归约是这一切的语法:\(A \le_p B\) 意为"\(A\) 能在多项式时间内转化为 \(B\)"——若 \(B\) 易则 \(A\) 易,反之若 \(A\) 难则 \(B\) 难。NP 完全(NPC) = NP 中最难的一类:所有 NP 问题都归约到它。Cook–Levin 定理:SAT 是 NPC(第一块基石——把"多项式时间验证器的运行"编码成布尔公式)。此后靠归约链传播:SAT → 3SAT → 团/独立集/顶点覆盖 → 哈密顿回路 → TSP → 子集和 → 图着色……证一个新问题 NP 难,就是从已知 NPC 问题归约过来

NP 完全问题归约链

图 algo-03.2NP 归约链——SAT 的 NP 完全性经多项式归约传播到图论、路径、TSP、子集和与图着色。

方法论(工作技能):遇到一个新问题卡住时,先问"它像哪个 NPC 问题?"能归约过来就别再找多项式算法了——归约是"知道何时该放弃精确解"的专业判断力,比会证更值钱。

4. 近似算法:NP 难之后怎么办

放弃"精确"换"可证明的接近"。近似比 \(\rho\):解 \(\le \rho\cdot\) 最优(最小化问题)。三种典型手法:

顶点覆盖二近似算法与匹配下界

图 algo-03.3顶点覆盖 2-近似——每次取未覆盖边两端,用匹配大小作为最优解下界夹住近似比。

不可近似性:PCP 定理 ⇒ 某些问题连近似都 NP 难(如一般 TSP 无常数近似、MAX-3SAT 超过 7/8 就难)。"能近似到多好"本身是一门精确的理论

5. 练习与要点

例 1(随机分析手推)\(n\) 个球进 \(n\) 个桶,最大桶的期望负载?答:\(\Theta(\log n/\log\log n)\)——"两个哈希取较空者"(power of two choices)把它降到 \(\Theta(\log\log n)\),负载均衡与哈希表设计的理论核心,一道漂亮的概率题。

例 2(归约练手) 证明"独立集"NP 难:从"团"归约——独立集在补图上就是团,多项式变换 ✓。归约常常只是换个视角看同一张图

例 3(近似比证明) 顶点覆盖的 2-近似里,我们取的边构成一个匹配 \(M\);任何覆盖必须覆盖 \(M\) 的每条边、故 \(\ge|M|\),而我们的解 \(=2|M|\le 2\cdot\)OPT ✓——"用一个下界结构(这里是匹配)夹住最优"是所有近似证明的骨架\(\blacksquare\)


下一页:高级算法 I——当数据大到存不下,流算法用一遍扫描 + 亚线性空间给出近似答案。