Lecture 25 - 2025 / 5 / 22
Graph Colorings
给定一张无向图 G=(V,E),最大度数为 Δ,k 种颜色。目标是随机生成一个 k-着色,使得同色不相邻。
考虑如下过程:
- 随机选择结点 v 和颜色 c
- 如果 v 可以用 c 染色,即染
Theorem: 如果 k≥4Δ+1 则这个 Markov 链的混合时间为 O(nlogn)。
定义一个 coupling:Xt 和 Yt 每次选择同样的 v,c,用 Dt 表示 Xt,Yt 不同色的结点,dt=∣Dt∣,目标则是计算 dt=0 所需的时间。
- 好的操作:如果 v∈Dt,且 c 对 Xt,Yt 都合法,则 dt+1=dt−1。好的操作数量 ≥dt(k−2Δ)。
- 坏的操作:如果 v∈V\Dt,且 c 对 Xt,Yt 当中的一个合法、另一个不合法,则 dt+1=dt+1。坏的操作数量 ≤2dtΔ。这可以通过枚举 v 的异色邻居计数。
从而 E[dt+1∣dt]≤dt+dtkn4Δ−k≤dt(1−1/kn)。进而 E[dt∣d0]≤d0(1−1/kn)t。取 t=Cknlogn,结合 d0≤n 有 E[dt]≤1/2e。
Theorem: 如果 k≥3Δ+1 则这个 Markov 链的混合时间为 O(nlogn)。
我们通过设计一个更好的 coupling 来证明。具体而言,Xt 和 Yt 每次选择同样的 v,但 Xt 选择颜色 c 时:
- 如果 Xt,Yt 中都可以用 c 染色,则 Yt 也选择颜色 c。
- 如果 Xt,Yt 中都不可以用 c 染色,则 Yt 也选择颜色 c。
- 如果 Xt 可以用 c 染色,Yt 不可以,则 Yt 尽量选择一个可以染色的颜色。
- 如果 Xt 不可以用 c 染色,Yt 可以,则 Yt 尽量选择一个不可以染色的颜色。
上述定义的思路是“将 NX(v)\NY(v) 和 NY(v)\NX(v)” 尽量配对起来,其中 N(v) 表示与 v 邻居的颜色集合。从而好的操作数量仍然为 dt(k−2Δ),而坏的操作数量 ≤dtΔ,缩小了一半。从而好坏操作的差 ≤dt(3Δ−k)。
Theorem: 如果 k≥2Δ+1 则这个 Markov 链的混合时间为 O(nlogn)。
我们只需对上面的 coupling 进行更为精细的分析。事实上,好坏操作的差为 dtk−v∈Dt∑∣NX(v)∪NY(v)∣−v∈V\Dt∑max{∣NX(v)\NY(v)∣,∣NY(v)\NX(v)∣}
采用贡献法,对于每个 v∈Dt 及其邻居构成的有序二元组 (v,u),如果 u∈Dt,则这条边分别在第一个求和 v 时贡献两次,如果 u∈V\Dt,则这条边在第一个求和 v 时贡献一次,在第二个求和 u 时贡献一次。从而总贡献量不超过 2dtΔ,即好坏操作的差 ≤dt(2Δ−k)。
Algorithmic LLL
Theorem: 对于任何 k-SAT 问题 ϕ,如果每个变量至多在 k2k−d 个子句出现,则该实例是可满足的,且赋值可以在多项式时间内构造得到。
解的存在性是 LLL 的经典应用,考虑如何构造。首先给 ϕ 随机赋值,然后每次取出一个尚未满足的子句 C,将其中的每个变量重新随机赋值。直到所有子句都满足为止。
Solve(φ):
Pick a random assignment of φ
while there is an unsatisfiable clause C
Fix(C)
Fix(C):
Replace the variables of C with new random values
while there is clause D that shares a variable with C that is not satisfied
Fix(D)
下面从 Kolomogrov 复杂度的角度给出证明这个算法终止性证明。
考虑随机串是“不可压缩的”,那么进行 F 次修复就需要 Fk 个 bit。但是现在更换方式为记录最终赋值和修复历史 C1,C2,⋯,CF,可以看出通过这些信息足够恢复出所用到的所有随机 bit。因为修复一个 clause 前这个 clause 一定是完全不满足的,而最后一次被修复的信息又可通过最终赋值获得。
从而记录随机串只需要 c+n+F(k−d) 个 bit,其中 c 是常数。最后一项是因为被 Solve
调用的 Fix
可以用 mlogm bit 记录,m 是子句数目。而递归调用的 Fix
涉及的 clause D 是与 C 有交的,因此只需要 log2k−d=k−d bit 记录。
综上 c+n+F(k−d)≥Fk 可以推出 F 是多项式级别的。结合随机串高概率 Kolomogrovly random 可知结论成立。