Lecture 22 - 2025 / 5 / 12

Packet Routing

考虑给定一张无向图 GG,第 ii 个数据包想从 sitis_i \to t_i,沿着固定的路径 PiP_i。但是每条边每个时刻只能通过一个数据包。我们想要设计一个调度方案,使得传输完所有数据包的总时间最少。

定义 cec_e 为经过 ee 的路径数量,c=max{ce}c = \max\{ c_e \}dd 为所有路径 PiP_i 长度的最大值。显然答案必须 max{c,d}\ge \max\{c, d\}

Theorem: 存在一种调度方案满足时间为 O(c+d)O(c + d) 且只有常数大小的缓冲区。

Theorem': 存在一种调度方案满足时间为 O((c+d)2O(log(c+d)))O((c + d) 2^{O(\log^\star (c + d))}) 且只有 O((logd)2O(log(c+d)))O((\log d)2^{O(\log^\star(c+d))}) 大小的缓冲区。这里 log\log^\star 的意思是通过不断取 ln\ln 直到变成常数规模所需要的次数。

不失一般性设 c=dc = d。考虑尝试安排数据包 ii 在起点等待 ZiZ_i 时间,然后直接不等待地沿着路径 PiP_i 完成传输。这里 ZiZ_i 是独立均匀从 {1,2,,αd}\{1, 2, \cdots, \alpha d\} 中抽取,α>1\alpha > 1 是待确定常数,显然这种做法的时间开销是 (1+α)d(1 + \alpha)d,正确性待证。

Claim: 将时间切分为 lnd\ln d 长度的帧,可以将问题分割为若干子问题,其中每个数据包想从这个帧内的起点到这个帧内的终点。以正概率每个子问题中的边的冲突次数(经过的路径数量)为 lnc\ln c

对于每条边 ee 定义坏事件 AeA_e 代表在某个帧内经过 ee 的路径数量超过 lnc\ln c

注意到 AeA_e 只和 AeA_{e'} 相关,其中 e,ee, e' 存在公共经过的数据包。由于只有至多 cc 个数据包经过 ee,每个数据包经过的路径长度至多 dd,因此 AeA_e 至多依赖 cd=d2cd = d^2 个坏事件。

接下来分析 Pr[Ae]\Pr[A_e]。对于任何一个数据包,因为帧的长度是 lnd\ln d,所以对于一个特定的帧,在其中任何数据包经过 ee 的概率仅为 lnd/αd\ln d / \alpha d。于是该帧内经过 ee 的总边数 B(c,lnd/αd)\sim \mathcal B(c, \ln d / \alpha d),因此 Pr[Ae]=(1+α)dPr[B(c,lnd/αd)>lnc]\Pr[A_e] = (1 + \alpha)d\cdot \Pr[\mathcal B(c, \ln d / \alpha d) > \ln c],即对所有 <(1+α)d<(1 + \alpha)d 个帧 union bound。

根据 Chernoff bound,
Pr[Ae](1+α)d(celnddαlnc)lnd=(1+α)d2lnα\Pr[A_e] \le (1 + \alpha) d\cdot \left(\frac{ce\ln d}{d\alpha\ln c}\right)^{\ln d} = (1 + \alpha) d^{2 - \ln \alpha}

因此只需要取 α\alpha 足够大,即可满足 Pr[Ae]<1/e(d2+1)\Pr[A_e] < 1 / e(d^2 + 1)

利用这一性质,可以将问题拆分为 (1+α)d/lnd(1 + \alpha) d / \ln d 个子问题,参数分别为 lnc\ln clnd\ln d,然后分别递归解决。通过不断取 ln\ln,最终问题会变成常数规模,于是我们可以构造一个确定的调度方案。最终通过合并解决原问题。由于递归层数是 O(log(c+d))O(\log^\star (c + d)) 的,每层总长度会伸长 1+α1 + \alpha 倍,因此总时间为 d2O(log(c+d))d2^{O(\log^\star (c + d))},同时不同帧之间不会影响,因此缓冲区大小为 O((logd)2O(log(c+d)))O((\log d) 2^{O(\log^\star(c+d))})

Asymmetric LLL

Lemma (General LLL):A1,,AnA_1, \cdots, A_n 是一系列坏事件,Di{A1,,An}D_i \sube \{A_1, \cdots, A_n\}AiA_i 相关的事件集合,如果存在实数 x1,,xn[0,1)x_1, \cdots, x_n \in [0, 1) 使得对所有的 ii,有 Pr[Ai]xijDi(1xj)\Pr[A_i] \le x_i \prod_{j \in D_i} (1 - x_j),则 Pr[i=1nAi]i=1n(1xi)>0\Pr[\bigcap_{i=1}^{n} \overline{A_i}] \ge \prod_{i=1}^{n} (1 - x_i) > 0

通过带入 xi=2Pr[Ai]x_i = 2\Pr[A_i],有

Corollary (Asymmetric LLL): 同上,如果 jDiPr[Aj]1/4\sum_{j \in D_i} \Pr[A_j] \le 1/4,则 Pr[i=1nAi]i=1n(12Pr[Ai])>0\Pr[\bigcap_{i=1}^{n} \overline{A_i}] \ge \prod_{i=1}^{n} (1 - 2 \Pr[A_i]) > 0

Frugal Graph Coloring

Definition:GG 的一个合法染色是 β\beta-frugal 的,如果对于任何 vGv \in G 的邻居,都没有一种颜色出现了多于 β\beta 次。

Theorem: 如果 GG 的最大度数 Δββ\Delta \ge \beta^\beta,则 GG 有一种用 16Δ1+1/β16 \Delta^{1 + 1/\beta} 种颜色的 β\beta-frugal 染色。

对于 β=1\beta = 1,有 16Δ216 \Delta^2 种颜色,这是容易做到的。

对于 β2\beta \ge 2,对 GG 随机均匀 Q:=16Δ1+1/βQ := 16 \Delta^{1 + 1/\beta} 染色。下面证明有正数概率是满足条件的即可。有两类坏事件:

  1. AuvA_{uv}:相邻的两点 u,vu, v 染成同一种颜色。
  2. Bu1,u2,,uβ+1B_{u_1, u_2, \cdots, u_{\beta + 1}}:某一个点的邻居 u1,u2,,uβ+1u_1, u_2, \cdots, u_{\beta + 1} 染成了同一种颜色。

容易看出 Pr[Auv]=1/Q,Pr[Bu1,,uβ+1]=1/Qβ\Pr[A_{uv}] = 1/Q, \Pr[B_{u_1, \cdots, u_{\beta + 1}}] = 1 / Q^\beta。对于 A 类事件,它与至多 2Δ2\Delta 个 A 类事件、2Δ(Δβ)2\Delta \binom{\Delta}{\beta} 个 B 类事件相关;对于 B 类事件,它与至多 (β+1)Δ(\beta + 1) \Delta 个 A 类事件、(β+1)Δ(Δβ)(\beta + 1) \Delta \binom{\Delta}{\beta} 个 B 类事件相关。可见 B 类事件的相关性更强,我们对其验证 Asymmetric LLL 的使用条件:
((β+1)Δ1Q)+((β+1)Δ(Δβ)1Qβ) (β+1)ΔQ+(β+1)Δβ+1β!Qβ β+116Δ1/β+β+1β!16ββ+116β+β+1β!16β<1/4\begin{aligned} & \left( (\beta + 1) \Delta \cdot \frac{1}{Q} \right) + \left( (\beta + 1) \Delta \binom{\Delta}{\beta} \cdot \frac{1}{Q^\beta} \right) \\ \le \ & \frac{(\beta + 1) \Delta}{Q} + \frac{(\beta + 1) \Delta^{\beta + 1}}{\beta! Q^\beta} \\ \le \ & \frac{\beta + 1}{16 \Delta^{1/\beta}} + \frac{\beta + 1}{\beta ! 16^\beta } \le \frac{\beta + 1}{16 \beta} + \frac{\beta + 1}{\beta ! 16^\beta } < 1/4 \end{aligned}

因此满足 Asymmetric LLL 的使用条件,得证。