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)

定义 QnQ_n 为对于大小为 nn 的集合 SS 进行快速排序所需要的比较次数,qn=E[Qn]q_n = \mathbb E[Q_n],经典地,有:

qn=(n1)+1nj=1n(qj1+qnj)qn=2nlnn(42γ)n+2lnn+O(1)\begin{aligned} q_n & = (n - 1) + \frac{1}{n} \sum_{j=1}^{n} (q_{j-1} + q_{n-j}) \\ q_n & = 2 n \ln n - (4 -2 \gamma) n + 2 \ln n + O(1) \end{aligned}

其中 γ\gamma 是欧拉常数,现在考虑给 QnQ_n 一个 concentration bound。一个构造鞅的想法是记递归树上前 kk 层的分割结果为 Fk\mathcal F_k,取 QnQ_n 关于 (Fi)(\mathcal F_i) 的 Doob 鞅。但是以第 11 层划分为例,划分在最边上和最中间造成的差异远超常数级别。因此 E[QnFk]\mathbb E[Q_n \mid\mathcal F_k] 并不满足 Azuma inequality 的使用条件。

回归 Azuma inequality 的证明过程,我们需要给予 E[et(XkXk1)Fk1]\mathbb E[e^{t(X_k - X_{k-1})} \mid \mathcal F_{k-1}] 一个上界。假设 Fk1\mathcal F_{k-1} 中记录了第 k1k-1 层时,各段长度为 L1,L2,,LmL_1, L_2, \cdots, L_m,则各个段之间相互独立。定义 Tj:=E[QLjFk(j)]E[QLj]T_j := \mathbb E[Q_{L_j} \mid \mathcal F_k^{(j)}] - \mathbb E[Q_{L_j}],则显然
Tj=(Lj1+qL1+qL2)qLjLj|T_j| = |(L_j - 1 + q_{L_1'} + q_{L_2'}) - q_{L_j}| \le L_j

上式在“最不平均”的分割时贴近取等,从而

E[et(XkXk1)Fk1]=E[etj=1mTj]=j=1nE[etTj]j=1nexp(12t2Lj2)exp(12t2(maxj=1mLj)n)()\begin{aligned} \mathbb E[e^{t(X_k - X_{k-1})} \mid \mathcal F_{k-1}] & = \mathbb E[e^{t\sum_{j=1}^{m} T_j}]\\ & = \prod_{j=1}^{n}\mathbb E[ e^{t T_j}]\\ & \le \prod_{j=1}^{n} \exp\left(\frac{1}{2} t^2 L_j^2\right)\\ & \le \exp\left( \frac{1}{2} t^2 (\max_{j=1}^{m} L_j) n \right) \quad(*) \end{aligned}

第一个 \le 使用了和证明 Azuma 相同的 Lemma,第二个 \le 把每一项的一个 LjL_j 放缩成了 maxLj\max L_j

Lemma: 0<α<1\forall 0 < \alpha < 1,当 k>ln1αk > \ln \dfrac{1}{\alpha},对于第 kk 层的 L1,L2,,LmL_1, L_2, \cdots, L_m,有
Pr[maxj=1mLjαn]α(2eln1αk)k\Pr[\max_{j=1}^{m} L_j \ge \alpha n] \le \alpha \left( \frac{2e \ln \frac{1}{\alpha}}{k} \right)^k

看作如下过程:第 11 层随机采样 U1U[0,1]U_1 \sim \mathrm U[0, 1],将长度为 nn 的区间划分为长度为 U1nU_1 n(1U1)n(1-U_1) n 的两段,然后第二层采样 U2,U3U[0,1]U_2, U_3 \sim \mathrm U[0, 1],分别表示左、右区间的划分点,然后第三层再采样 U4,U5,U6,U7U[0,1]U_4, U_5, U_6, U_7 \sim \mathrm U[0, 1]……

kk 层划分结束产生 2k2^{k} 个区间,LjL_j 的长度可以视作 nU1U2/3U2k1//2k1n \cdot U_1 \cdot U_{2/3} \cdots U_{2^{k-1}/\cdots/2^{k}-1},上式即
Pr[(maxj=12ki=1knU1)αn]2kPr[i=1kUiα]2kPr[i=1klnUilnα]\begin{aligned} \Pr\left[\left(\max_{j=1}^{2^k} \prod_{i=1}^{k} n \cdot U_1 \cdots \right)\ge \alpha n\right] & \le 2^k \cdot \Pr\left[\prod_{i=1}^{k} U_i \ge \alpha\right] \\ & \le 2^k \cdot \Pr\left[\sum_{i=1}^k \ln U_i \ge \ln \alpha\right] \end{aligned}

注意到 lnUiExp(1)-\ln U_i \sim \mathrm{Exp}(1),从而 i=1klnUiΓ(n,1)-\sum_{i=1}^{k} \ln U_i \sim \Gamma(n, 1)
Pr[i=1klnUilnα]PrXΓ(k,1)[Xlnα]=mint>0PrXΓ(k,1)[(αeX)t1]=mint>0EXΓ(k,1)[(αeX)t]=mint>0αt(1t)k\begin{aligned} \Pr\left[\sum_{i=1}^k \ln U_i \ge \ln \alpha\right] & \le \Pr_{X \sim \Gamma(k, 1)} [-X \ge \ln \alpha]\\ & = \min_{t>0}\Pr_{X \sim \Gamma(k, 1)}[(\alpha e^{X})^t \le 1]\\ & = \min_{t>0} \mathbb E_{X \sim \Gamma(k, 1)}[(\alpha e^X)^t]\\ & = \min_{t > 0} \alpha^t (1-t)^{-k} \end{aligned}

1t=k/ln1α1 - t = k / \ln \dfrac{1}{\alpha} 时,上式为 α(eln1αk)k\alpha \left( \dfrac{e \ln \frac{1}{\alpha}}{k} \right)^k,结合 union bound 给出的 2k2^k 原命题得证。

接下来我们分 33 个阶段分析快速排序过程:

  1. 对于前 k1k_1 层,比较次数不超过 k1nk_1 n
  2. 对于 k1+1k2k_1+1 \sim k_2 层,高概率有 k1k_1 层的 maxLjαn\max L_j \le \alpha n (1)(1),从而 ()exp(12t2αn2)(*) \le \exp\left(\dfrac{1}{2} t^2 \alpha n^2\right)
  3. 对于 k2k_2 层,高概率有 maxLj<2\max L_j < 2  (2)\ (2),从而算法停止。

Theorem: ε>0\forall \varepsilon > 0Pr[Qnqnεqn]n(2+o(1))εlnlnn\Pr[|Q_n - q_n| \ge \varepsilon q_n] \le n^{-(2 + o(1))\varepsilon \ln \ln n}

根据上述 Lemma,事件 (1),(2)(1), (2) 均发生的概率 \ge
1α(2eln1αk1)k12n(2elnn2k2)k21 - \alpha\left( \frac{2e \ln \frac 1 \alpha}{k_1} \right)^{k_1} - \frac{2}{n} \left( \frac{2e \ln \frac{n}{2}}{k_2}\right)^{k_2}

假设这两个事件发生,对于 k1+1k2k_1 + 1\sim k_2 层,根据 ()(*),类比于 Azuma inequality 得到
Pr[Qnqnk1n+λ]2exp(λ22(k2k1)αn2)\Pr[|Q_n - q_n| \ge k_1 n + \lambda] \le 2 \exp\left( -\frac{\lambda^2}{2(k_2 - k_1) \alpha n^2} \right)

只需取得 k1n+λεqnk_1 n + \lambda \le \varepsilon q_n,并让上述 33 个概率之和为 n(2+o(1))εlnlnnn^{-(2 + o(1))\varepsilon \ln \ln n} 时,原命题即证毕。

接下来为琐碎的调参工作,首先希望 k2k_2 尽量小,取 k2=(lnn)(lnlnn)\color{blue}k_2 = (\ln n)(\ln \ln n),则
2n(2elnn2k2)k2exp((lnn)(lnlnn)(lnlnlnn))\frac{2}{n} \left( \frac{2e \ln \frac{n}{2}}{k_2}\right)^{k_2} \sim \exp\left( (\ln n)(\ln\ln n)(-\ln\ln\ln n) \right)

接下来为了 k1k_1 尽量大,但必须有 k1n1(εqnλ)2εlnnλnk_1 \le n^{-1} (\varepsilon q_n - \lambda) \sim \color{red} 2\varepsilon \ln n - \dfrac{\lambda}{n},这里希望 2εlnn2 \varepsilon \ln n 是主导项,需要 λ=o(εnlnn)\color{red}\lambda = o(\varepsilon n \ln n)。从而可以令 k1=2εlnn2λn\color{blue}k_1 = 2 \varepsilon \ln n - \dfrac{2\lambda}{n}

2exp(λ22(k2k1)αn2)exp(λ2(lnn)(lnlnn)n2α)(A)2 \exp\left( -\frac{\lambda^2}{2(k_2 - k_1) \alpha n^2} \right) \sim \exp\left(- \frac{\lambda^2}{(\ln n)(\ln \ln n) n^2\alpha} \right) \qquad \rm (A)

同时有(注意 α<1\alpha < 1α(2eln1αk1)k1exp(2εlnnlnln1α)(B)\alpha\left( \frac{2e \ln \frac 1 \alpha}{k_1} \right)^{k_1} \sim \exp\left( 2\varepsilon \ln n \ln \ln \frac{1}{\alpha} \right) \qquad \rm (B)

(A)\rm (A) 式希望 λ\lambda 尽可能大一些,故取 λ=εnlnnlnlnn\color{blue} \lambda = \dfrac{\varepsilon n \ln n}{\ln \ln n}(A)\rm (A)式变为
exp(ε2lnnlnlnnα)\exp\left( \frac{\varepsilon^2 \ln n \ln \ln n}{\alpha} \right)

通过权衡两式,取 α=ε2lnlnn\color{blue}\alpha = \dfrac{\varepsilon^2}{\ln\ln n},则 (A)\rm (A) 式为 exp(lnn(lnlnn)2)\exp(-\ln n (\ln \ln n)^2)(B)\rm (B) 式为
exp(2εlnnlnlnn+O(lnlnlnn))\exp(-2\varepsilon \ln n\ln \ln n + O(\ln \ln \ln n))

Corollary: ε>0\forall \varepsilon > 0Pr[Qnqnεqn]=n(2+o(1))εlnlnn\Pr[|Q_n - q_n| \ge \varepsilon q_n] = n^{-(2 + o(1))\varepsilon \ln \ln n}

Optional Stopping Theorem

Definition (Stopping time): (Fi)(\mathcal F_i) 是一组 filter,一个 r.v. T{0,1,}{}T \in \{0, 1, \cdots\} \cup\{\infty\} 是一个 (Fi)(\mathcal F_i)停时如果事件 T=iT = iFi\mathcal F_i-可测的。

Theorem (Optinal stopping theorem): (Xi)(X_i) 是一个鞅,TT 是一个关于 (Fi)(\mathcal F_i) 的停时,则当下面条件成立时:

  1. Pr[T<]=1\Pr[T < \infty] = 1
  2. E[XT]<\mathbb E[|X_T|] < \infty
  3. E[Xi1{T>i}]0\mathbb E[X_i \cdot 1\{T > i\}] \to 0ii \to \infty 时。

或者更强一些,满足:

  1. E[T]<\mathbb E[T] < \infty
  2. E[XiXi1Fi]c\mathbb E[|X_i - X_{i-1}| \mid \mathcal F_i] \le c 对任意 ii

则此时有 E[XT]=E[X0]\mathbb E[X_T] = \mathbb E[X_0]

Gambler's Ruin

考虑从 00 处开始随机游走,1/21/2 概率 +1+11/21/2 概率 1-1。第一次到达 a-abb 的时候停止。

定义 TT 为上述停时,可以验证坐标位置 (Xi)(X_i) 是一组鞅,并且满足停时定理的条件,则
E[XT]=p(a)+(1p)b=0\mathbb E[X_T] = p \cdot (-a) + (1 - p) \cdot b = 0

解出 p=ba+bp = \dfrac{b}{a + b},即首先碰到 a-a 的概率。

接下来定义 Yi=Xi2iY_i = X_i^2 - i 以分析 E[T]\mathbb E[T]

Claim: (Yi)(Y_i) 是一组关于 (Xi)(X_i) 的鞅。

E[YiX1,X2,,Xi1]=12((Xi11)2+(Xi1+1)2)i=Xi12(i1)=Yi1\mathbb E[Y_i \mid X_1, X_2, \cdots, X_{i-1}] = \frac{1}{2} \left((X_{i-1} - 1)^2 + (X_{i-1} + 1)^2 \right)-i = X_{i-1}^2 - (i-1)=Y_{i-1}

从而 E[YT]=E[XT2]E[T]=E[Y0]=0\mathbb E[Y_T] = \mathbb E[X_T^2] - \mathbb E[T] = \mathbb E[Y_0] = 0,即 E[T]=E[XT2]=a2ba+b+b2aa+b=ab\mathbb E[T] = \mathbb E[X_T^2] = a^2 \dfrac{b}{a + b} + b^2 \dfrac{a}{a + b} = ab