【定理 1】若 G=(V,E) 是一个 n 个点的图,满足最小度数 δ>1,那么 G 拥有一个最多有 n[1+ln(δ+1)]/(δ+1) 个点的支配集合。
支配集 (dominating set). V 的子集 S 满足 ∀u∈V\S,∃v∈S,(u,v)∈E。
【证明】从图中选一个随机子集合,其中每个点被选中的概率为 p,设选中的随机子集合为 X,则这个随机子集合大小的期望 E[∣X∣]=np。
定义 YX 为不被子集合 X 支配的点集,显然 YX 和 X 没有重叠部分。那么,
那么,E[∣YX∣]=np(v∈YX)≤n(1−p)δ+1。我们可以发现 X∪YX 一定是一个支配集,故
根据题目条件,我们希望支配集越小越好,于是必然在 ∂p∂E[∣X∪YX∣]=0 时取到,即
此时,
【构造算法:贪心】制定规则:优先选择“能支配未被支配点数量最多”的点,然后选择该点,更新支配情况,重复这个过程。
假设贪心算法执行到某一步时,有 1,2,⋯,r 个点未被支配,那么每一个点都会有一个至少有 (δ+1) 个没有被选中的点的集合(他自己 + 邻居)。那么一定至少有一个点在至少 r(δ+1)/n 个集合中出现(平均值原理)。那么在这一轮贪心算法之后,未被支配的点数为:
相当于每执行一步,未被支配的点数的衰减率为 γ=nδ+1。考虑当前未被支配的的点数 r,如果 rγ<1,即 r<γ−1 时,每轮贪心算法减少的点的数量将小于 1,不如直接选择未被支配的点(这样至少能减少 1 个点),于是我们直接选取剩余的点。假设算法执行 t 步停止,那么
由于 1−x≤e−x,我们可以放缩为:
解得
那么,贪心算法执行 t=δ+1nln(δ+1) 步后已经加了 t 个点,剩下来未被支配的点有 δ+1n 个,于是整个支配集的点数为:
和上述定理吻合。
【概率方法中的三个重要性质】
- 数学期望的线性性:使用指示变量 (Indicator variable),表示事情是否发生,把变量分解成指示变量的和,根据线性性来求数学期望;
- 修改原则:随机变量往往不能直接得到我们需要的内容,我们需要对随机变量进行修改(或删除)得到我们所需要的内容。
- 最优化概率 p:初始时我们将 p 看成参数,在我们得到表示式后对 p 进行最优化,得到最优的 p∗,进而算出最优的所需值。有时候,如果对 p 直接优化太困难,我们可以进行放缩,找次优的 p 进行优化。
【例 1】(平均值原理的应用)将 1、2、……、10 这 10 个数按任意顺序排成一圈,证明其中必有三个相邻的数,它们的和不小于 18。
【证明】把 1 去掉,剩下的部分按顺序分成 3 份,根据平均值原理,至少有一份的和不小于
【例 2】设 A1,A2,⋯,A50 是有限集合 X 的 50 个子集,每个子集都含有 X 半数以上的元素。证明:存在 X 的一个子集 B,它至多包含 5 个元素,并且和集合 A1,A2,⋯,A50 中的每一个集合至少有一个公共元素。
【证明】使用贪心算法构造 B,每次选择在剩下的不符合条件的集合中出现次数最多的元素。
- 第一步,有 50 个集合不符合条件,有超过 50(n/2)=25n 个元素,至少有一个元素出现在 ⌈(25n+δ)/n⌉=26 个不符合条件的集合中(其中 δ=10−5 是一个极小值,因为要满足“以上”),因此这步之后至多剩下 50−26=24 个集合;
- 第二步,至多有 24 个集合不符合条件,类似地,至少有一个元素出现在 ⌈(24(n/2)+δ)/n⌉=13 个不符合条件的集合中,因此这步之后至多剩下 24−13=11 个集合;
- 第三步,至多有 11 个集合不满足条件,类似地,至少有一个元素出现在 ⌈(11(n/2)+δ)/n⌉=6 个不符合条件的集合中,因此这步之后至多剩下 11−6=5 个集合;
- 第四步,至多有 5 个集合不满足条件,类似地,至少有一个元素出现在 ⌈(5(n/2)+δ)/n⌉=3 个不符合条件的集合中,因此这步之后至多剩下 5−3=2 个集合;
- 第五步,至多有 2 个集合不满足条件,类似地,至少有一个元素出现在 ⌈(2(n/2)+δ)/n⌉=2 个不符合条件的集合中,因此这步之后至多剩下 2−2=0 个集合。
综上所述,每步取 1 个元素,共花 5 步完成符合条件的 B∗ 的构造,故 ∣B∗∣=5。因此存在 B∗ 满足所有条件。
【例 3】(Zarankiewicz 问题简化版)假设 Ka(n) 表示在 n×n 的 0-1 矩阵中最多的 1 的数目,使其中没有 a×a 的全 1 子矩阵。讨论 Ka(n) 的上下界。
【解】假设矩阵中的每个元素有 p 的概率取 1,那么对于每个 a×a 的子矩阵,全 1 的概率为 pa2。在 n×n 的矩阵中共有 (an)(an) 个 a×a 的子矩阵。根据指示变量,期望下全 1 子矩阵的个数为
t=(an)(an)pa2 但是我们不希望全 1 子矩阵(坏事件),因此我们使用修改原则,对于每个全 1 子矩阵我们将其中的一个 1 修改成 0,因此我们平均需要删去 t 个 1 变成 0,因此 1 的总数期望为:
n2p−t=n2p−(an)(an)pa2 于是根据平均值原理,一定存在满足条件的方法,1 的总数至少为 n2p−t。下面我们优化 p,即求
∂p∂[n2p−(an)(an)pa2]=0⟹p∗=(a(an)n)a2−12 于是,求得 Ka(n) 的下界为
Ka(n)≥n2p∗−t∗=n2(a(an)n)a2−12−(an)(an)(a(an)n)a2−12a2
【定理 2】若图 G=(V,E) 有 n 个点和 nd/2 条边(d>1),那么图 G 的最大独立集数 α(G) 满足 α(G)≥n/2d。
独立集 (independent set). V 的一个子集,使得集合中的每对点之间都没有边直接相连。
【证明】假设图中每个点被选中的概率为 p,那么期望选中 np 个点,设随机选择的点集合为 X。接下来我们分析坏事件,即平均有多少条边在集合中。对每条边 (u,v) 来说,它被选到集合 X 中的概率,即 u,v 均被选到集合 X 中的概率为 p2。共有 nd/2 条边,因此期望有 ndp2/2 条边被选入了集合 X 中。根据修改原则,对于每条这样的边,我们只需要删除其中一个端点即可,故期望下要从 X 中删去 ndp2/2 个点得到独立集,这个独立集的期望大小为:
α=np−2ndp2 根据平均值原理,至少存在一个独立集大小为 α。我们需要最大化独立集的大小,于是我们优化 p,
∂p∂α=∂α∂(np−2ndp2)=0⟹p∗=d1<1 于是我们求得 α(G) 的下界:
α(G)≥np∗−2ndp∗2=2dn
【定理 3】设图 G=(V,E) 有 n 个点和 e 条边,那么 G 存在一个至少有 e/2 条边的二分子图。
【定理】对每个点随机划分,有 1/2 概率划分到 V1,1/2 概率划分到 V2。那么对于每条边 (u,v),顶点 u,v 分别落在 V1,V2 中的概率为 1/2(共 4 种情况,分类讨论即可)。因此期望有 e/2 条边在这个二分子图中。根据平均值原理,至少有一个 e/2 条边的二分子图。
【注】这里省略了设概率 p 并最优化的过程,因为直接可以设具体值 1/2 来满足条件。
【定理 4】设 G=(V,E) 为 n 个点的图
ω(G)≥v∈V∑n−d(v)1 其中 ω(G) 是最大团 (clique) 的点数。
团 (clique). 点集合的子集合,其中任意两点是有边相连的(完全图)。
【证明】给图的 n 个点排序,一共有 n! 种可能。从中随机取一个排序 π,并根据这个排序选出点集 Cπ:vi 入选当且仅当 vi 和排在他前面的点都有边相连。那么 Cπ 是一个随机的点集合,且是团。下面我们估计一下 Cπ 中的元素数目:
观察到 vi 入选 ⟺ vi 在这个排序中排在所有的非邻接顶点的前面,即
P(vi 入选)=n−d(vi)1 - 共有 n−(d(vi)+1) 个非邻点,加上 vi 本身共有 n−d(vi) 个点;在这 n−d(vi) 个点的排序中,要求 vi 排在最前面;由于所有点等概率,所以概率为 (n−d(vi))−1。
于是,
ω(G)≥∣Cπ∣=v∈V∑P(v 入选)=v∈V∑n−d(vi)1 【拓展】补图的独立集 = 原图的团,于是我们可以用相同的方法得到 α(G) 的范围:
α(G)≥v∈V∑d(v)+11 提示:对于一个点,原图的度数 + 补图的度数 = n−1。
【定理 5】对任意 k≥2,都存在图 G 满足色数 χ(G)>k 且最小环长度 γ(G)>k.
【证明】
💡
概率方法中,一般考虑坏事件(对立面)发生的概率,若坏事件发生的概率小于 1,好事件(其补事件)发生的概率就大于 0,也就是说,一定会发生好事件。比如本题,令事件 A:χ(G)≤k,事件 B:γ(G)≤k;事件 Aˉ:χ(G)>k,事件 Bˉ:γ(G)>k。 事件 Aˉ,Bˉ 是我们希望的好事件,事件 A,B 是我们不希望的坏事件,故考虑事件 A,B 发生的概率。
🔑
和事件的概率:
Pr(A∪B)=Pr(A)+Pr(B)−Pr(A∩B)≤Pr(A)+Pr(B) 更一般地,对于 n 个事件 A1,A2,⋯,An,有:
Pr(∪i=1nAi)≤i=1∑nPr(Ai) 【证明】
考虑 n 个点的随机图 G(n,p),其中每两个点间有 p 概率连边。
- 研究 χ(G)。
🔑
性质:
α(G)⋅χ(G)≥n。染同一个颜色的点可以看成一个独立集,最大独立集的点数为
α(G),图可以划分成
χ(G) 个独立集,于是
n≤α(G)⋅χ(G)。
色数不好直接研究,因此我们可以根据上述性质转化为研究独立集。
如果 α(G) 比较小,那么 χ(G) 必须很大,这对应事件 Aˉ,是我们希望发生的好事件;概率方法一般研究坏事件,故研究 α(G) 大的情况,即设 2≤r≤n,研究 α(G)≥r 的概率。
根据和事件的概率不等式,
Pr(α(G)≥r)=Pr(存在 r 个点之间没有边相连)≤V′⊆V(G),∣V′∣=r∑Pr(V′ 之间没有边相连)=(rn)(1−p)(2r)≤nr(1−p)(2r)=(n(1−p)2r−1)r≤(ne−2p(r−1))r 注意,这里的最后一步用到了 1−p≤ep,∀p.
给定任意 k>0,由于要通过上述“性质”转换回 χ(G) 讨论,因此令 r=⌈n/2k⌉。
❓
为什么不是
r=⌈n/k⌉?因为下面研究
γ 点时候需要删点,到时候会删去一半的点!
我们令 p=n−k+1k,通过简单的代数推导我们可以证明:
p≥6knlogn⟹pr≥3logn 于是,
Pr(α(G)≥r)≤(ne−2p(r−1))r=(ne−2pre2p)r≤(ne−23logne21)r=(ne)2r∼(n1)n→0(n→∞) 于是,存在 n1 满足 n>n1 时,有 Pr(α(G)≥n/2k)<1/2。
- 研究 γ(G)。
🔑
Markov 不等式:若随机变量
X 只取非负值,则
∀a>0,Pr(X≥a)≤aE(X)。
我们不希望有长度小的圈,因此我们可以计数有多少长度小(在 3 到 k 之间)的圈;在统计完后,我们将这些长度小的圈各删除一个点,则可以确保图中只有长度大于 k 的圈(删除法)。于是,我们设这个数为随机变量 X(G)。
考虑 G 中任意 i 个点,有 2(i−1)! 种方式形成 i-圈,于是一共有 (in)2(i−1)! 种可能的 i-圈。每个圈需要连 i 条边,因此每个圈形成的概率为 pi,于是
E(X(G))=i=3∑k(in)2(i−1)!pi≤21i=3∑knipi≤21(k−2)nkpk 于是,根据在上述研究中我们确定的 p=n−k+1k,有
Pr(X(G)≥n/2)≤n/2E(X(G))≤(k−2)n(np)k=(k−2)n−k+11→0(n→∞) 于是,存在 n2 满足 n>n2 时,Pr(X(G)≥n/2)<1/2。
因此,当 n≥max(n1,n2) 时,任意 n 个点的图 H 必然满足
⎩⎨⎧Pr(α(H)≥2kn)<21Pr(X(H)≥2n)<21 从而,
Pr(α(H)<2kn∩X(H)<2n)=1−Pr(α(H)≥2kn∪X(H)≥2n)≥1−Pr(α(H)≥2kn)−Pr(X(H)≥2n)>1−21−21=0 于是,必然存在一个图 H,满足
⎩⎨⎧α(H)<2knX(H)<2n 于是,我们通过 H 来构造我们需要的 G。由于 X(H)<n/2,长度不超过 k 的环不超过 n/2 个,因此我们可以删除图 H 中的 n/2 个点,得到图 G,于是图 G 必然没有长度不超过 k 的环,即
另一方面,由于图 G 是图 H 删除 n/2 个点得到的,因此图 G 有 n/2 个点且
α(G)≤α(H)<2kn 又由于性质 α(G)⋅χ(G)≥n/2,我们必然有
χ(G)>n/2kn/2=k 综上,我们构造了图 G 满足 χ(G)>k 且 γ(G)>k。
【例 4】假设 F 是一些 N={1,2,⋯,n} 的子集的集合,且满足不存在 A,B∈F 使得 A⊂B。证明 ∣F∣≤(⌊n/2⌋n)。
【证明 1(非概率方法)】考虑“包含链”:
∅⊂A1⊂A2⊂⋯⊂An 那么,一共有 n! 条最长包含链(长度为 n+1)。如果给定 Ak,那么包含给定 Ak 的最长包含链一共有 k!(n−k)! 条。
设 F 中包含 mk (k=1,2,⋯,n) 个 k 元集合,从中取出 1 个 k 元集合 Ak。根据上述分析,包含取定 Ak 的最长链有 k!(n−k)! 条。根据题目条件:
- 通过这 mk 个 k 元集合所构造的最长包含链没有重复;
- 通过 F 中任意两个元素所构造的最长包含链也没有重复。
因此 F 中的元素一共可以构造出的(不同的)最长包含链的个数为:
k=1∑nmkk!(n−k)! 由于对于“包含链”来说,部分小于整体,总的最长包含链个数有 n! 条,于是
k=1∑nmkk!(n−k)!≤n! 即
k=1∑n(kn)mk≤1 由于 (kn)≤(⌊n/2⌋n),我们有
∣F∣=k=1∑nmk=(⌊n/2⌋n)k=1∑n(⌊n/2⌋n)mk≤(⌊n/2⌋n)k=1∑n(kn)mk≤(⌊n/2⌋n) 【证明 2(概率方法)】构造一个随机置换 σ,那么一共有 n! 种置换。
(1σ(1)2σ(2)⋯⋯nσ(n)) 根据该置换构造一系列随机的 k 元集合 {σ(1),σ(2),⋯,σ(k)},其中 k=1,2,⋯,n。
设 F 中包含 mk (k=1,2,⋯,n) 个 k 元集合。考虑 k 元集合 {σ(1),⋯,σ(k)} 在 F 中的概率。于是:
- 总事件:从 n 个元素中取 k 个构成集合的个数 (kn);
- 有利事件:变成 F 中的元素,共 mk 个。
因此,由于总事件的每个事件都是等概率,根据古典概率,概率(期望)为 mk/(kn)。
考虑全部的随机集合 {{σ(1),⋯,σ(k)}}k=1n,则这些集合中,期望在 F 中的集合个数为:
k=1∑n(kn)mk 又因为根据题目条件,{{σ(1),⋯,σ(k)}}k=1n 中最多只能有 1 个在 F 中(否则存在两个集合相互包含),于是:
k=1∑n(kn)mk≤1 剩下的部分与非概率方法相同。
【极端原理】对于解有限的问题,我们常常考虑问题的极端情况来解决问题,反证导出矛盾。
【例 5】考虑有限个顶点组成的图。现将顶点用黑白两种颜色染色。如果与每个染白色的顶点相连的黑色顶点数目至少与和它相连的白色顶点数目一样多,并且与每个染黑色顶点相连的白色顶点数目至少与和它相连的黑色顶点数目一样多,则称这个网络是均衡的。问:给定任意一个图,能否染色使之成为均衡的?
【证明】定义“异色边”为顶点染色不同的边。任意给定有限图,一定存在一种染色方案使得异色边最大(极端原理,因为方案数有限)。那么我们说明这种方案是均衡的。(反证)若该方案不均衡,则不妨假设存在一个点,其相邻的异色顶点数目比和他相连的同色顶点数目少;那么我们将该顶点反色,则其相邻的异色顶点数目就比和他相连的同色顶点数目多了,从而异色边数增加了,与“异色边最大”矛盾。因此该方案一定是均衡的。
【例 6】考虑平面上 2n 个点,任意三点不共线,其中有 n 个黑点和 n 个白点,要求在黑点和白点之间连线(每个点只能连 1 次)使得任意两条线段不相交,问任意给定图,是否必然存在这样的连线方案?
【证明】任意给定图,一定存在一种连线方案使得总线段长最小(极端原理)。由于交叉的线段比不交叉的线段长(平面图形,三角形两边之和大于第三边),故总线段长最小的必没有交叉(反证)。
【定理 6】存在一个完全图 Kn 的边-二染色方法,最多有 (4n)2−5 个同色完全子图 K4。
【证明】(去随机化)考虑边 e1,e2,⋯,e(2n),设 e1,⋯,ei−1 已经染好,剩下的边随机染色。
那么,我们先考虑所有的 K4 的染色情况。
- 如果 K4 有 0 条边在 e1,⋯,ei−1 中,那么最后这个 K4 同色的概率为 P(K4)=2−5;
- 如果 K4 有 r (1≤r≤6) 条边在 e1,⋯,ei−1 中,且染了异色,那么最后这个 K4 同色的概率为 P(K4)=0;
- 如果 K4 有 r (1≤r≤6) 条边在 e1,⋯,ei−1 中,且染了同色,那么最后这个 K4 同色的概率为 P(K4)=2r−6。
于是,我们可以计算
W=K4∈Kn∑P(K4) 表示 e1,⋯,ei−1 已经染好,剩下的边随机染色,最后得到的同色的 K4 的数目的数学期望。
下面考虑 ei 的染色:
- 如果染黑:类似上述结论,我们可以重新计算出 WB。
- 如果染白:类似上述结论,我们可以重新计算出 WW。
那么,我们贪心的选择较小的那个 W,对 ei 进行染色即可。
下面证明,得到的方案的同色完全子图 K4 个数一定不多于期望值 (4n)2−5。
对于第 i 次染色,假设染黑得到期望 Wi,B,染白得到期望 Wi,W。由于染黑和染白等概率,因此该边还未染色时,我们有 Wi−1=(Wi,B+Wi,W)/2。由于我们选择了 Wi,B 和 Wi,W 中的较小值,即 Wi=min(Wi,B,Wi,W)。因此,
Wi=min(Wi,B,Wi,W)≤2Wi,B+Wi,W=Wi−1 综合考虑每一步,有
W(2n)≤⋯≤W0=(4n)2−5 在最后一步染色后,图不再是随机图,因此同色完全子图 K4 的期望个数即为实际个数。因此,按上述方法染色后的图,其同色完全子图 K4 个数一定不多于期望值 (4n)2−5。
【例 7】(Tenure Game)一个大学的教职的级别有 0,1,2,⋯ (0 为最高),级别为 k 的职位上初始有 ak 个人。有两个玩家 Paul 和 Carole。Paul 每年根据当年在职的人员名单,向 Carole 提交一个升职名单,Carole 有两个选择:(1) 将所有升职名单上的人职位升级,同时将不在升职名单上的人全部解雇;(2) 将所有不在升职名单上的人职位升级,同时将在升职名单上的人全部解雇。Paul 的胜利条件是有一个人到达了第 0 级,而 Carole 的胜利条件则是阻止 Paul 胜利。请证明:
当 ∑kak2−k<1 时,Carole 必胜。
【证明】假设 Carole 随机操作,即选择两个选择的概率均为 1/2,那么无论 Carole 提交了什么名单,对每个人来说,晋升或被解雇的概率均为 1/2。令 T 为能够成功到达第 0 级的人数,那么考虑第 k 级的人成功到达第 0 级的概率为 2−k。于是,
E[T]=k∑ak2−k 下面我们构造 Carole 的策略并说明如果 E[T]<1,那么 Carole 获胜。
- 策略:Carole 根据 Paul 给的名单分别模拟两种情况的 E[T],选择其中较小的一个(如果现在在第 i 轮设为 E[Ti],较大的设为 E[Ti′]≥E[Ti])执行,假设游戏进行了 p 轮后结束。
综上所述,当 ∑kak2−k<1 时,Carole 必胜。
【例 8】(Balancing Vector Game)有一个初始为 0 的位置向量 p∈Rn。游戏有两个玩家 Paul 和 Carole,共有 n 轮,每一轮 Paul 选择一个向量 v∈{+1,−1}n,Carole 选择将 p 变为 p+v 还是 p−v。设 n 轮过后位置向量 p 变为 p∗。给定 α≥0,保罗获得胜利当且仅当 ∣p∗∣∞≥α。
无穷范数 ∣p∣∞:所有维度的绝对值最大值。
【证明】每个维度是相同的,因此我们这里考虑一个维度,初始值 S0=0。假设 Carole 均匀随机选择 + 和 -,那么每轮相当于随机选择将这个值 +1 或 -1,即令 xi 为随机 +1 或 -1,每轮 Si=Si−1+xi,那么我们考虑 Sn=x1+x2+⋯+xn,可以计算这一维 Paul 获胜的概率 Pr[∣Sn∣≥α]。由于向量共有 n 个维度,任意一个维度获胜均可,因此
Pr[Paul wins]≤nPr[∣Sn∣≥α] 因此,如果满足 nPr[∣Sn∣≥α]<1,我们就可以构造出来 Carole 的必胜策略:Carole 根据 Paul 的向量在每个维度计算 nPr[∣Sn∣≥α],选择其中较小的一个执行即可。策略的必胜证明和 Tenure Game 类似,因为在第 n 轮后是确定性的结果,因此只要 Pr[Paul wins]<1 就说明一定 Carole 获胜,我们只需要证明在这个策略执行过程中 nPr[∣Sn∣≥α] 不会变大即可。