Constructive Proof of Lovasz Local Lemma
作者:互联网
LLL 证明
Lovasz-Local lemma: 有一堆事件,每个事件有标号 \(X_i\)。如果对任意 \(i\), 记 \(V_i\) 满足: \(i\) 与除 \(V_i\) 外事件完全独立,且 \(P(A_i) \le X_i \prod_{j\in V_i} (1-x_j)\), 则有至少 \(\prod (1-X_i)\) 的概率所有事件均不发生。
证明:对每个集合 \(A\) 和 \(a\notin A\), 我们证明 \(A\cup \{a\}\) 均不发生的概率至少为 \(A\) 均不发生的概率乘以 \((1-x_a)\)。对 \(|A|\) 归纳。注意到 \(A\cup \{a\}\) 均不发生的概率为 \(A\) 不发生的概率减去 \(A\) 不发生且 \(a\) 发生的概率,后者不超过 \(A \backslash V_a\) 均不发生且 \(a\) 发生的概率。而 \(A \backslash V_a\) 与 \(a\) 独立,两概率可以直接相乘。
又由归纳假设 \(A \backslash V_a\) 均不发生的概率除以 \(A\) 均不发生的概率不超过 \(1/\prod_{j\in V_a} (1-x_j)\),化简得证。
\(k-SAT\) 构造性证明
考虑构造每个 Clause 与不超过 \(2^{k-2}\) 个其余 Clause 相交的 \(k\)-SAT 的解。
考察一个操作 \(f(A)\),效果为:经过一些处理,使得 Clause \(A\) 从不满足变成满足,原先满足的仍然满足。 具体执行定义如下:首先我们重新随机 sample \(A\) 涉及到的变量。而后当存在 \(A\) 有交 (含 \(A\) 自己) 的 Clause \(B\) 未满足,我们递归调用 \(f(B)\)。
\(f\) 的正确性显然成立,我们希望证明 \(f\) 的执行时间。事实上,我们只需要说明:\(f\) 的调用时间 \(\ge 2\log m\) 的概率不超过 \(O(1/m^2)\) (于是,可以在某次超过 \(2\log m\)次调用后完全从头再来)。考虑固定一棵(给定根)的调用树,大小为 \(t\)。我们声称:这棵调用树出现的概率不超过 \(1/2^{kt}\)。这是因为每当树上节点用过一些变量,这些变量会立即被sample成新的值,所以树上节点的事件是完全独立的。而大小为 \(t\) 的调用树个数有界:因为每次只有最多 \(2^{k-2}+1\) 个邻点可供选择;为了回溯,也只需记录这个点是不是当前子树最后一个点即可。因此方法数不超过 \((2(2^{k-2}+1))^t\)。
于是,大概率从外部 \(m\) 次 \(f\) 的调用后,每次调用的时间均不超过 \(m\log m\)。于是我们可以在不超过 \(O(m^2\log m)\) 的时间给出构造。
一般的 LLL 构造性证明
考虑如下设定: 每个事件与 \(\Omega\) 中若干个变量相关,\(\Omega\) 中的变量两两独立。
我们考虑如下算法:初始给 \(\Omega\) 中的变量随机赋值。当有事件发生时,我们将该事件涉及的变量重新 sample,一直执行知道所有事件均不发生。
我们证明:事件 \(i\) 被重新 sample 的期望次数不超过 \(x_i/(1-x_i)\)。证明如下:记 \(a_i\) 为事件 \(i\) 重新 sample 的期望次数。我们将事件 \(i\) 的每次 sample charge 到最近一次涉及到其中变量的修改上。那么容易发现, \(a_i\le P_i (1+a_i+\sum_{j\in V_i}a_j)\). 化简后只需证明 \(1\ge \prod (1-x_j) + \sum_j x_j \sum_{k\ne j} (1-x_k)\),显然得证。
标签:Lovasz,概率,变量,发生,sample,Lemma,调用,事件,Proof 来源: https://www.cnblogs.com/cauchysheep/p/16587302.html