Lecture 18 - 2025 / 4 / 21
Quick Sort
考虑随机版本的快速排序算法
def QuickSort(a : list[int])
x = random element in a
a1 = [ y in a | y < x ]
a2 = [ y in a | y > x ]
QuickSort(a1)
QuickSort(a2)
定义 Qn 为对于大小为 n 的集合 S 进行快速排序所需要的比较次数,qn=E[Qn],经典地,有:
qnqn=(n−1)+n1j=1∑n(qj−1+qn−j)=2nlnn−(4−2γ)n+2lnn+O(1)
其中 γ 是欧拉常数,现在考虑给 Qn 一个 concentration bound。一个构造鞅的想法是记递归树上前 k 层的分割结果为 Fk,取 Qn 关于 (Fi) 的 Doob 鞅。但是以第 1 层划分为例,划分在最边上和最中间造成的差异远超常数级别。因此 E[Qn∣Fk] 并不满足 Azuma inequality 的使用条件。
回归 Azuma inequality 的证明过程,我们需要给予 E[et(Xk−Xk−1)∣Fk−1] 一个上界。假设 Fk−1 中记录了第 k−1 层时,各段长度为 L1,L2,⋯,Lm,则各个段之间相互独立。定义 Tj:=E[QLj∣Fk(j)]−E[QLj],则显然
∣Tj∣=∣(Lj−1+qL1′+qL2′)−qLj∣≤Lj
上式在“最不平均”的分割时贴近取等,从而
E[et(Xk−Xk−1)∣Fk−1]=E[et∑j=1mTj]=j=1∏nE[etTj]≤j=1∏nexp(21t2Lj2)≤exp(21t2(j=1maxmLj)n)(∗)
第一个 ≤ 使用了和证明 Azuma 相同的 Lemma,第二个 ≤ 把每一项的一个 Lj 放缩成了 maxLj。
Lemma: ∀0<α<1,当 k>lnα1,对于第 k 层的 L1,L2,⋯,Lm,有
Pr[j=1maxmLj≥αn]≤α(k2elnα1)k
看作如下过程:第 1 层随机采样 U1∼U[0,1],将长度为 n 的区间划分为长度为 U1n 和 (1−U1)n 的两段,然后第二层采样 U2,U3∼U[0,1],分别表示左、右区间的划分点,然后第三层再采样 U4,U5,U6,U7∼U[0,1]……
第 k 层划分结束产生 2k 个区间,Lj 的长度可以视作 n⋅U1⋅U2/3⋯U2k−1/⋯/2k−1,上式即
Pr[(j=1max2ki=1∏kn⋅U1⋯)≥αn]≤2k⋅Pr[i=1∏kUi≥α]≤2k⋅Pr[i=1∑klnUi≥lnα]
注意到 −lnUi∼Exp(1),从而 −∑i=1klnUi∼Γ(n,1),
Pr[i=1∑klnUi≥lnα]≤X∼Γ(k,1)Pr[−X≥lnα]=t>0minX∼Γ(k,1)Pr[(αeX)t≤1]=t>0minEX∼Γ(k,1)[(αeX)t]=t>0minαt(1−t)−k
当 1−t=k/lnα1 时,上式为 α(kelnα1)k,结合 union bound 给出的 2k 原命题得证。
接下来我们分 3 个阶段分析快速排序过程:
- 对于前 k1 层,比较次数不超过 k1n
- 对于 k1+1∼k2 层,高概率有 k1 层的 maxLj≤αn (1),从而 (∗)≤exp(21t2αn2)
- 对于 k2 层,高概率有 maxLj<2 (2),从而算法停止。
Theorem: ∀ε>0,Pr[∣Qn−qn∣≥εqn]≤n−(2+o(1))εlnlnn
根据上述 Lemma,事件 (1),(2) 均发生的概率 ≥
1−α(k12elnα1)k1−n2(k22eln2n)k2
假设这两个事件发生,对于 k1+1∼k2 层,根据 (∗),类比于 Azuma inequality 得到
Pr[∣Qn−qn∣≥k1n+λ]≤2exp(−2(k2−k1)αn2λ2)
只需取得 k1n+λ≤εqn,并让上述 3 个概率之和为 n−(2+o(1))εlnlnn 时,原命题即证毕。
接下来为琐碎的调参工作,首先希望 k2 尽量小,取 k2=(lnn)(lnlnn),则
n2(k22eln2n)k2∼exp((lnn)(lnlnn)(−lnlnlnn))
接下来为了 k1 尽量大,但必须有 k1≤n−1(εqn−λ)∼2εlnn−nλ,这里希望 2εlnn 是主导项,需要 λ=o(εnlnn)。从而可以令 k1=2εlnn−n2λ
2exp(−2(k2−k1)αn2λ2)∼exp(−(lnn)(lnlnn)n2αλ2)(A)
同时有(注意 α<1) α(k12elnα1)k1∼exp(2εlnnlnlnα1)(B)
(A) 式希望 λ 尽可能大一些,故取 λ=lnlnnεnlnn,(A)式变为
exp(αε2lnnlnlnn)
通过权衡两式,取 α=lnlnnε2,则 (A) 式为 exp(−lnn(lnlnn)2),(B) 式为
exp(−2εlnnlnlnn+O(lnlnlnn))
Corollary: ∀ε>0,Pr[∣Qn−qn∣≥εqn]=n−(2+o(1))εlnlnn
Optional Stopping Theorem
Definition (Stopping time): (Fi) 是一组 filter,一个 r.v. T∈{0,1,⋯}∪{∞} 是一个 (Fi) 的停时如果事件 T=i 是 Fi-可测的。
Theorem (Optinal stopping theorem): (Xi) 是一个鞅,T 是一个关于 (Fi) 的停时,则当下面条件成立时:
- Pr[T<∞]=1
- E[∣XT∣]<∞
- E[Xi⋅1{T>i}]→0 当 i→∞ 时。
或者更强一些,满足:
- E[T]<∞
- E[∣Xi−Xi−1∣∣Fi]≤c 对任意 i
则此时有 E[XT]=E[X0]。
Gambler's Ruin
考虑从 0 处开始随机游走,1/2 概率 +1,1/2 概率 −1。第一次到达 −a 或 b 的时候停止。
定义 T 为上述停时,可以验证坐标位置 (Xi) 是一组鞅,并且满足停时定理的条件,则
E[XT]=p⋅(−a)+(1−p)⋅b=0
解出 p=a+bb,即首先碰到 −a 的概率。
接下来定义 Yi=Xi2−i 以分析 E[T]。
Claim: (Yi) 是一组关于 (Xi) 的鞅。
E[Yi∣X1,X2,⋯,Xi−1]=21((Xi−1−1)2+(Xi−1+1)2)−i=Xi−12−(i−1)=Yi−1
从而 E[YT]=E[XT2]−E[T]=E[Y0]=0,即 E[T]=E[XT2]=a2a+bb+b2a+ba=ab。