1. 随机算法案例
1.1 随机搜索算法
- 问题定义:
输入:长度为 n 的二进制串 x,其中恰有 n/4 个位置为 1。
输出:一个满足 xi=1 的位置 i。
- 确定性算法:
- 顺序扫描:最坏情况(如 x=03n/41n/4) 时间复杂度 Ω(n)。
- 随机算法:
- 重复采样随机位置 i∼Unif([n]),直到找到 1。
- 分析:
- 单次成功概率 p=1/4。
- 运行时间服从几何分布,期望值 E[T]=1/p=4=O(1)。
- 关键结论:对任意输入,期望时间复杂度为 O(1)。
1.2 矩阵乘法验证(Freivalds 算法)
- 问题定义:
给定 n×n 矩阵 A,B,C,验证 AB=?C。
- 算法:
重复 k 次:
- 生成随机向量 v∈{0,1}n(均匀分布)。
- 计算 d=A(Bv)−Cv。
- 若 d=0,输出 “No”。
若所有迭代通过,输出 “Yes”。
- 正确性证明:
- 若 AB=C:恒输出 “Yes”(错误率 0)。
- 若 AB=C:设 D=AB−C=0,存在非零元素 Di,j。
- 分析分量 di=∑kDi,kvk=Di,jvj+s(s 为其他项和)。
- 错误条件:di=0。
Pr(di=0)=1/2Pr(vj=0)⋅Pr(s=0)+≤1/2Pr(Di,jvj=−s)⋅Pr(s=0)≤21.
- 故 Pr(输出 "Yes")≤(1/2)k=2−k。
- 复杂度:O(kn2)(优于直接计算 O(nω),ω≥2.37)。
1.3 MAX-CUT 近似算法
- 问题定义:
给定图 G=(V,E),求最大割(NP-难问题)。
- 随机算法:
- 为每个顶点随机分配 0 或 1(均匀分布),割边为 xu=xv 的边。
- 期望割大小:
E[size]={u,v}∈E∑Pr(xu=xv)=2∣E∣≥21OPT.
- 去随机化:
- 成对独立哈希函数:
在随机算法去随机化(Derandomization)中,成对独立哈希函数族(Pairwise Independent Hash Family)是关键工具。
- 完全独立性的计算代价过高
- 在 MAX-CUT 随机算法中,为每个顶点独立随机分配比特(0/1)需要 n 个独立随机比特。
- 可能赋值方案共 2n 种(指数级),无法在多项式时间内枚举所有解。
- 算法只需保证每条边被割的概率为 1/2(即 Pr[xu=xv]=21)。
- 但完全独立性要求所有顶点赋值全局独立,计算代价过高。
-
成对独立性的充分性
- 定义:
- 关键观察:
- MAX-CUT 的割大小仅依赖边端点的比特差异:
size={u,v}∈E∑1[h(u)=h(v)].
- 只需保证每条边的割事件(即 h(u)=h(v))概率为 1/2,且边间两两独立(无需全局独立)。
-
高效构造与多项式大小
- 构造方法(以顶点集 V 为例):
- 设顶点用 k=logn 位编码(U={0,1}k),输出 R={0,1}。
- 定义哈希函数:
ha,b(x)=a⋅x+bmod2(a∈{0,1}k,b∈{0,1}).
- 函数族大小:∣H∣=2k+1=2n=O(n)(多项式级)。
- 成对独立性证明:
- 固定 x1=x2,需证 ∀y1,y2∈{0,1}:
a,bPr[a⋅x1+b=y1∧a⋅x2+b=y2]=41.
- 方程组:
{a⋅x1+b=y1a⋅x2+b=y2⟹a⋅(x1−x2)=y1−y2(mod2).
- 因 x1=x2,存在坐标 i 使得 x1,i=x2,i。
对固定 a 的其他分量,ai 有唯一解满足方程(概率 1/2),且 b 由 a 唯一确定(概率 1)。
故联合概率为 21×21=41。
-
去随机化的实现
- 算法步骤:
- 枚举所有 ha,b∈H(共 2n 个函数)。
- 对每个 ha,b,计算割大小 sizea,b=∑{u,v}∈E1[ha,b(u)=ha,b(v)]。
- 输出最大割。
- 正确性保证:
- 对每条边 {u,v}:
h∈HPr[h(u)=h(v)]=21(由成对独立性导出).
- 期望割大小:
E[size]={u,v}∈E∑21=2∣E∣.
- 存在性:期望为 ∣E∣/2 → 必存在某个 ha,b 满足 sizea,b≥2∣E∣。
- 复杂度优势:
- 时间:O(n)×O(∣E∣)=O(n3)(多项式时间)。
- 空间:每个顶点赋值仅依赖 a,b 和自身标签,可并行计算。
- 为什么更弱独立性足够?——本质原因
随机算法的去随机化常依赖以下事实:
- 目标函数为线性(如割大小是边割事件的线性组合)。
- 期望的线性性(Linearity of Expectation):
E⎣⎡{u,v}∈E∑1cut⎦⎤={u,v}∈E∑E[1cut].
- 期望计算仅需边缘概率:
- 对每条边 e,只需 Pr[割 e]=21。
- 无需高阶联合事件概率(如三条边同时被割的概率)。
→ 成对独立性已足够保证边缘概率正确,且能高效构造。
1.4 素性测试
- Fermat 测试:
- 依据:若 n 质数,则 ∀a:an≡a(modn)。
- 缺陷:Carmichael 数(如 561) 满足条件但为合数。
- Rabin-Miller 算法:
- 步骤:对 n=2kq+1,检查序列 aq,a2q,…,a2kq(modn) 是否以 1 结尾且前驱为 −1。
- 错误率:若 n 合数,Pr(通过)≤1/4(Rabin 证明)。
- AKS 算法 (2002):
确定性多项式时间算法(但随机算法更高效)。
2. BPP 类:定义与性质
2.1 基本定义
- 概率图灵机:
非确定性图灵机,每步有两个随机选择(概率 1/2),路径概率为 2−随机步数。
- BPP 类:
语言 L∈BPP 当且仅当存在多项式时间概率图灵机 M 满足:{x∈Lx∈/L⟹Pr[M accepts x]≥2/3,⟹Pr[M accepts x]≤1/3.
- 等价定义:存在多项式时间验证器 V 使得
x∈L⟺r∈{0,1}p(∣x∣)Pr[V(x,r)=1]≥2/3.
2.2 误差缩减
- 定理:对任意 L∈BPP 和多项式 q,存在概率机 M′ 在时间 poly(n) 内以错误率 ≤2−q(n) 判定 L。
- 证明:
- 独立运行原算法 k=O(q(n)) 次,取多数结果。
- 由 Chernoff 界,错误概率 ≤e−ck≤2−q(n)(c>0 为常数)。
2.3 BPP 与电路复杂性(P/poly)
BPP与电路复杂性:详细展开
1. 非均匀计算模型:P/poly类
1.1 电路模型基础
-
电路定义:
- 由布尔门(AND, OR, NOT)组成的有向无环图
- 输入:n个布尔变量
- 输出:1个布尔值
- 大小:电路中门的数量
-
有限函数计算:
- 对每个输入长度n,函数 fn:{0,1}n→{0,1}
- fn∈SIZEn(s) 当存在大小≤s的电路计算 fn
1.2 扩展到无限语言
-
语言 L⊆{0,1}∗:
- 对应函数序列 {fn},其中 fn(x)=L(x) 当 ∣x∣=n
-
非均匀复杂度类:
- L∈SIZE(T(n)) 当存在电路族 {Cn} 满足:
{∀n,Cn 计算 fn∃n0,∀n≥n0,∣Cn∣≤T(n)
-
P/poly定义:
P/poly=c∈N⋃SIZE(nc)
多项式大小电路族计算的语言类
1.3 P与P/poly的关系
特性 |
P类 |
P/poly类 |
计算模型 |
单一图灵机 |
电路族(每个输入长度不同电路) |
均匀性 |
是(同一机器处理所有输入) |
否(不同尺寸输入用不同电路) |
包含关系 |
P⊆P/poly |
P⊊P/poly |
非可计算问题 |
不包含 |
包含(如硬编码不可判定问题的答案) |
反例说明严格包含:
定义语言:
L={1n∣第 n 个图灵机在空输入上停机}
- L∈P/poly:对每个n,电路硬编码答案(0或1)
- L∈/RE:图灵停机问题不可判定 → L∈/P
2. BPP ⊆ P/poly 的证明
2.1 定理核心思想
若 L∈BPP,则存在多项式大小电路族计算 L,证明分三步:
步骤1:误差缩减
步骤2:并集界与存在性
- 固定输入长度n,记输入空间 ∣{0,1}n∣=2n
- 对每个输入x,错误概率:
rPr[M′(x,r)=L(x)]<δ=101⋅2−n
- 存在性论证:
rPr[∃x:M′(x,r)=L(x)]≤x∑rPr[M′(x,r)=L(x)]<2n⋅δ=101<1
⇒ 存在固定随机串 r∗ 使得:∀x∈{0,1}n:M′(x,r∗)=L(x)
步骤3:电路构造
- 对每个n,硬编码 r∗(长度 m=poly(n))
- 构造电路 Cn 模拟 M′(⋅,r∗)
- 因 M′ 是确定性多项式时间算法
- 标准电路模拟:时间 T(n) → 电路大小 O(T(n)2)
3. BPP 与复杂性理论
3.1 Sipser-Gács 定理:P = NP ⇒ P = BPP
- 目标:证明若 P=NP,则 BPP=P。
- 证明概要:
- 误差缩减:设 L∈BPP,有验证器 V,错误率 ≤2−m−2(m=∣r∣)。
- 定义集合 Sx={r∣V(x,r)=1}:
{x∈Lx∈/L⟹∣Sx∣≥(1−2−m−2)⋅2m>2m−1,⟹∣Sx∣≤2−2=1/4.
- 覆盖引理:若 ∣S∣≥2m−1,则 ∃s1,…,s2m 使得 ⋃i=12m(S⊕si)={0,1}m。
- 量词消去:
- 定义谓词 ϕ(x;s1,…,s2m):=∀r∃i:V(x,r⊕si)=1。
- 若 x∈L,则 ∃s1,…,s2m 使 ϕ 真。
- 若 x∈/L,则 ∀s1,…,s2m,ϕ 假。
- 因 ϕ 是 Π2 公式,且 P=NP 可推出多项式时间判定 ϕ,故 L∈P。
3.2 硬度与随机性(Impagliazzo-Wigderson 定理)
- 定理:
若存在 L∈E=DTIME(2O(n)) 和 δ>0,使得对充分大 n,L 在 n 位输入的电路复杂度 ≥2δn,则 P=BPP。
- 内涵:指数时间问题的电路下界可推导出去随机化。
3.3 BPP 在复杂性谱中的位置
- 已知包含关系:
P⊆BPP⊆{P/poly,EXP=DTIME(2poly(n)).
- 开放问题:
- BPP=?P(广泛认为成立)。
- BPP=?NEXP(认为不成立,但未证明)。
- 与 NP 的关系:
- 若 NP-难问题 ∈BPP,则 NP⊆BPP。
- 若 P=NP,则 P=BPP(Sipser-Gács 定理)。
- 可能的世界观:
情形 |
关系 |
预期 |
P=BPP⊊NP⊆EXP |
BPP 极大 |
P⊊NP⊆BPP=EXP |
P 极大 |
P=NP=BPP⊊EXP |