Continuous Trajectory: 从 Independent Set Process 到另类 Giant Component
Independent Set Process
大部分时候,随着一个自然的随机过程的进行,随机变量的变化都很平滑。例如,考虑在 \(G(n,p)\) 上进行如下的贪心求最大独立集算法:从 1 到 \(n\) 遍历每个点,能选就选。这里我们假设 \(p=d/n\),这样每个点期望度数都是常数 \(d\)。如果每个点度数真的这么多,只能选 \(n/(d+1)\) 个点。但这个情况其实很坏:每个点影响的是“它后面的点”,越后面的点的有效度数越小。所以以平均度数描述整个过程并不合理。于是我们想,能不能不用线性函数,而是换一个函数来描述这个过程?为了好描述,把上述算法写成:
记录 \(I=\varnothing,X\) 为全集
每次随机从 \(X\) 中选一个点 \(v\),加入 \(I\) 并令 \(X-\{v\}-N(v)\to X\)
直到 \(X=\varnothing\)
记 \(X_i\) 为 \(i\) 步后 \(|X|\) 的值。为了描述 \(X_i\),我们猜测存在一个比较好的函数 \(x(t)\),满足 \(X_i/n\approx x(i/n)\)。换句话说,如果 \(d\) 相同,则即使 \(n\) 不同,则在看了一定比例的点之后,选出的独立集标记掉的点比例是一样的。如果存在这样的 \(x(t)\),如何求出它的表达式呢?我们考虑一步(\(i\to i+1\))时 \(X\) 的变化,变化量 \(E[X_{i+1}-X_i\mid X_1,\dots,X_i]=-1-\frac dn(X_i-1)\),因为在 \(X\) 中选出的点期望有 \(p(X_i-1)\) 个邻居。反映到 \(x\) 上就是(令 \(t:=i/n\))
忽略低阶项再令 \(n\to \infty\)(注意 \(x(0)=1\)):
成功了!可以发现,由于上述随机过程符合“下一步的变化量期望可以被当前的状态描述”,所以这个分析给我们带来了一个微分方程,解出了很好看的结果。为了求 \(I\) 的大小,我们要求 \(x(t)=0\),得 \(t=\frac{\ln (d+1)}{d}\)。因此我们猜测
Statement 1 w.h.p. 上述过程会选出 \((1+o(1))\cdot \frac{\ln (d+1)}{d}\cdot n\) 个点。
这比之前的 \(n/(d+1)\) 大多了。事实上,上述过程是完全合理的,用 \(x(t)\) 去描述整个过程也没有任何问题。接下来我们证明
Theorem 1 w.h.p. 对于所有 \(i=0,1,\dots,I_{\max}=\frac{\ln (d+1)}dn-n^{3/4}\) 都有 \(X_i\in x(t)n\pm e(t)n^{3/5}\),其中 \(t=i/n\),\(e(t)\) 是关于 \(t\) 增大的误差函数(步数越多允许的误差越大)。
如何证明这么一个结论呢?注意到我们分析的是每一步的变化量,这个变化量只和之前的结果有关,我们希望所有步的变化量加起来不要和期望差得太多,这个 setting 其实正好就是鞅的 Azuma-Hoeffding 不等式解决的问题。比如我们要证明上界 w.h.p. \(X_i\le x(t)n+e(t)n^{3/5}\),我们希望最好 \(e(t)n^{3/5}\) 足够大,把 \(x(t)n\) 对 \(X_i\) 近似的误差全部掰回去,使得 \(Y_i=X_i-x(t)n-e(t)n^{3/5}\) 是一个下鞅,也即 \(E[Y_{i+1}\mid X_1,\dots,X_i]\le Y_i\)。这样,它 \(\ge 0\) 的概率就可以用 Azuma 不等式控制了。因此,暂时忽略其它细节,现在我们需要计算 \(E[Y_{i+1}-Y_i\mid X_1,\dots,X_i]\):
其中把差变成导数用的是中值定理,第三行小于等于用到了 \(X_i\le x(t)n+e(t)n^{3/5}\),\(-1\) 被吸收到最后的 \(O(1/n)\) 里去了。注意最后红色的项全消掉了在意料之中,毕竟 \(x(t)\) 就是这么解出来的。只要 \(de(t)-e'(t)<0\),(如果 \(X_i\le x(t)n+e(t)n^{3/5}\)),例如取 \(e(t)=e^{2dt}\),我们就可以说 \(Y_i\) 是下鞅。
但是这时出现了几个问题:
- 如果 \(X_i=0\),则 \(E[X_{i+1}-X_i]\) 就不能这么写了。
- 如果中途 \(X_i\) 就跑出了区间,导致 \(X_i\le x(t)n+e(t)n^{3/5}\) 不成立了怎么办?此时 \(Y_i\) 就不是下鞅了。
- \(Y_i\) 的变化量完全没有上界,而 Azuma 不等式需要 \(Y_i\) 变得很小。
第一个问题就是用 \(I_{\max}\) 解决的:容易说明对于 \(i\le I_{\max}\),我们定理给出的 \(X_i\) 取值区间都严格正,所以只要不跑出区间就可以这么写,这就把这个问题归结到了第二个问题。对于后两个问题,我们可以用统一的办法来解决这两个问题:Freezing。注意到
- 如果 \(X_i\) 跑出了区间,则 \(Y_i\) 已经 \(>0\) 了。
- \(Y_i\) w.h.p. 都变得很小(因为 \(X_i\) 变化量期望是常数,\(Y_i\) 加的那些变化量就是常数)。
所以我们定义停时 \(T\) 是第一次 (1) \(X_i\) 跑出区间或者 (2) 遇到一个度数 \(>n^{1/20}\) 的点的 \(i\)。我们新定义 \(Z_i=Y_{\min(i,T)}\),显然 \(Z_i\) 也是下鞅。而且我们有:
- 如果中途 \(X_i\) 跑出了区间,则 \(Z_T=Y_i>0\)。
- 如果 \(Z_T\le 0\),则要么整个过程都没问题,要么中途因为遇到大度数的点被 freeze 了(这部分概率是 \(o(1)\))。
所以整个过程都不出问题的概率 \(\ge 1-o(1)-P(Z_T\ge 0)\)。而 \(Z_i\) 的变化量是 \(O(n^{1/20})\),总共有 \(\Theta(n)\) 步,初值 \(Z_0=Y_0=-e(0)n^{3/5}=-\Theta(n^{3/5})\),所以
证毕。
Giant Component:一种基于 Continuous Trajectory 的做法
事实上,这样“把随机过程投影到连续函数”上的思想可以套用在很多随机过程上,随便写一个“下一步能简单地用上一步描述的过程”基本上都可以(例子:Balls and Bins,\(n\) 个瓶子,每次随机两个瓶子,把一个球放进球数更少的瓶子里,问 \(k\) 次操作后应该有几个空瓶子。不妨作为读者的练习题)。接下来我们来看一个很弱的 Giant Component 结论的证明。与几乎所有人第一次学的 Branching Process 版本不同,这个证明用复杂得多的逻辑证明了弱得多的结论。
Theorem 2 考虑下述随机过程:从 \(n\) 个点空图开始,每次均匀随机选两个点 \(x\ne y\),连边 \((x,y)\)(为了简单,不忽略重边)。对于常数 \(c<1\),连 \((n/2)\cdot c\) 条边时,w.h.p. 最多存在大小为 \(O(n^{1-\epsilon})\) 的连通块。
这个模型和我们熟知的 \(G(n,c/n)\) 模型基本是一样的,具体怎么变成一样略。事实上直接对 \(k\ln n\) 个点的连通块(上的 BFS)进行 Union Bound 直接就能证明 w.h.p. 最多存在大小为 \(O(\log n)\) 的连通块,但我们的证明从完全不同的角度说明了这件事。对于加了 \(i\) 条边的图 \(G_i\),设 \(c_1,c_2,\dots,c_k\) 为其连通块大小,记 \(Y_i=\sum_{p=1}^k c_p^2\),我们试图把 \(Y_i\) 投影到连续函数上。还是令 \(t=i/n,Y_i\approx ny(t)\)(\(y(0)=1\)),计算期望:
这里 \(\sum_{p=1}^k c_p^4\) 比较烦人。但如果 \(c_p\) 都不大(which we know is the case),则这一项是远远没有前面的平方项大的,我们暂时先不管。那就有
这个结果还是很振奋人心的,因为它正确指出了 giant component 的 threshold 确实应该在 \(t=1/2\) 也就是大概 \(n/2\) 条边的时候。那我们就希望有这么一个 Statement:
Statement 2 w.h.p. 对于所有 \(i=0,1,\dots,(n/2)\cdot c\) 其中 \(c<1\) 都有 \(Y_i\in y(t)n\pm e(t)S(n)\),其中 \(t=i/n\),\(e(t)\) 是关于 \(t\) 增大的误差函数(步数越多允许的误差越大),\(S(n)=o(n)\)。
但我们现在很难证明 Statement 2。首先 \(Y_i\) 的变化量没有上界(我们肯定不能作弊,用别的工具去 bound \(c_u\) 上界);其次我们还忽略了低阶项 \(\sum_p c_p^4\),但如果没有上界,我们根本不知道这一项能不能忽略。因此我们必须在 \(Y_i\) 的语境下找到一种 bound \(c_p\) 的方法。这里的想法是:既然我们都知道其实 \(c_p\) 甚至不到多项式级别,那无论我把 \(Y_k\) 的指数 2 取到多大,总是差不多可以“忽略低阶项”,而且指数取得很大的话,我们又知道在这个投影成立的情况下 \(Y_i=O(n)\),所以这就可以 bound 住 \(c_p\) 了。为了做非常粗糙的估计,我们先取 \(Z_i=\sum_{p=1}^k c_p^3\) 看看情况。注意:由于 \(Z_i\) 的存在是为了 bound 住 \(Y_i\) 的 trajectory 服务的,所以我们只需要 \(Z_i\) 的上界。我们用一样的方法分析 \(Z\),令 \(Z_i\approx nz(t)\),有
暂时忽略减掉的东西(这个不会出问题,因为最后我们只要上界),
很有道理,看来 \(Z_i\) 在 \(i=n/2\cdot c\) 条边的时候仍然是 \(O(n)\) 的。接下来我们看看 \(Z\) 是如何对 \(Y\) 施加影响的。
-
第一,我们希望用 \(Z\) 去控制 \(Y\),所以实际上我们正在同时考虑以下三个事件:
- 对于所有 \(i=0,1,\dots,(n/2)\cdot c\) 都有 \(Y_i\le y(t)n+e(t)S(n)\)。
- 对于所有 \(i=0,1,\dots,(n/2)\cdot c\) 都有 \(Y_i\ge y(t)n-e(t)S(n)\)。
- 对于所有 \(i=0,1,\dots,(n/2)\cdot c\) 都有 \(Z_i\le z(t)n+e(t)S(n)\)。
(这三个 \(e,S\) 不一定全相同。)为了利用 freezing 技巧,所以我们需要设 \(T\) 为第一次发生上述三个事件任意一个出问题的时间,并令 \(Y'_i=Y_{\min(i,T)},Z'_i=Z_{\min(i,T)}\)。
-
第二,\(Z=O(n)\) 并不能直接说明 \(c_p\) 都很小。它只能说明:对于固定的参数 \(\gamma\),\(c_p=\Omega(n^{\gamma})\) 的 \(p\) 很少,只有 \(O(n^{1-3\gamma})\) 个。这时就引入一个可能看起来很难以理解的 idea:我们直接修改这个随机过程,忽略所有会导致存在 \(n^{\gamma}\) 大小的连通块的边。
换句话说,我们现在考虑的随机过程是这样。固定常数 \(\gamma\),重复 \(c\cdot n/2\) 次:
- 随机一条边。
- 如果加了这条边,这张图上会有大小为 \(n^{\gamma}\) 大小的连通块,则不要加这条边。
- 否则,加入这条边,并判断如果上述 i ii iii 三个条件有不满足的,立刻 freeze。
接下来我们都在这个随机过程上分析。我们想说明:在这个随机过程上,w.h.p. 三个条件会一直满足。
以 \(Y_i\) 的下界为例,这是最麻烦的一个。我们先暂时不管“忽略会导致存在 \(n^{\gamma}\) 大小的连通块的边”,令 \(Y'_i=Y_i-y(t)n+e(t)S(n)\):
其中利用 \(Z_i=O(n)\) 说明了 \(\sum c_p^4=O(n^{4/3})\)。红色部分为 0,所以我们需要 \(e'(t)>4e(t)y(t)\)。这里可以取 \(e(t)=\frac{1}{(1-2t)^3}\),同时为了吸收掉 \(O(n^{-2/3})\) 需要 \(S(n)=w(n^{1/3})\)。这样,\(Y_i'\) 就是上鞅了。
我们还剩两件事:
- 把“忽略会导致存在 \(n^{\gamma}\) 大小的连通块的边” 对 \(Y_i\) 变化的影响搞清楚。
- 控制 \(Y_i\) 单步变化量以便使用 Azuma 不等式。
一步一步来,先看第一件事。设 \(\overline Y_i\) 表示考虑忽略这些边之后的 \(Y_i\),我们想看
如果要忽略选择的这条边,它一定有一个端点在大小至少是 \(n^{\gamma/2}\) 的连通块里,所以上式
最后一步是因为 \(Z_i=O(n)\),所以 \(\sum_{c_u\ge n^{\gamma}/2} c_u^2=O(n^{1-\gamma})\)。只要 \(S(n)=w(n^{1-\gamma})\),\(S(n)/n\) 就还是主项。
现在忽略了会导致出现大小 \(\ge n^{\gamma}\) 连通块的边,再来看第二件事,\(Y_i\) 每步变化量 \(M\) 就不超过 \(O(n^{2\gamma})\)。Azuma 不等式给出 \(Y_i\) 超出下界的概率 \(\le \exp(\Omega(S(n)^2/nM^2))\),可以看出,只要 \(\gamma\) 足够小,\(S(n)=n^{1-\gamma/2}\),所有限制就都满足了。于是我们证明了 w.h.p. \(Y_i\) 不会超出下界。
\(Y_i\) 的上界和 \(Y_i\) 的下界唯一区别就是,不需要用 \(Z_i\) 的上界说明 \(\sum c_p^4\) 确实是低阶项了;\(Z_i\) 的上界和 \(Y_i\) 的上界几乎完全一致。这样我们就证明了 w.h.p. 这三个条件会一直一起满足。
我们还剩下最后一个问题:我们直接把所有会带来大连通块的边都忽略了!现在我们要在做完整个随机过程的 \(c\cdot n/2\) 步之后,再把这些边加进来,再证明此时没有 giant component。不过这也是容易的,因为就算不考虑边数要求,把所有不考虑会导致大连通块的边时,已经 \(\ge n^{\gamma}/2\) 个点的连通块(显然,没加进来的边一定和这些块相邻)的所有邻边全都加进来,至多也就连上这些连通块总点数的相邻连通块总点数个点。在 \(Z_i\) 有上界的前提下,总点数是 \(O(n^{1-3\gamma})\times O(n^{\gamma})\);每个点邻边个数根据 Chernoff Bound 知道是 \(O(\log n)\) 级别的(注意这并不是作弊,这比另一个做法的 Chernoff Bound 弱得多);每条邻边连接的小连通块至多 \(O(n^{\gamma})\) 个点,全部乘起来还是 \(o(n^{1-\gamma/2})\)。因此,就算把忽略的边全加上,也不会出现 giant component。证毕。
实战演练
上述做法绕了一大圈证 giant component 的一半确实没什么用。不过这个思想可以直接用到 branching process 黯然失色的问题上,比如稍微改一改 giant component 的 setting,加一点类似之前说的 balls and bins 的博弈元素:我每一次随机两条边,我按照某种策略优先选一条边,这时候什么时候才会出现 giant component?这个做法仍然适用,但是 Branching Process 需要 BFS 每一步具有独立性,就不行了。读者若有兴趣,可阅读 https://www.math.cmu.edu/~af1p/Texfiles/nogiant.pdf

浙公网安备 33010602011771号