Lecture 5. Greedy Algorithm


【例 1】(活动选择问题)nn 项活动 a1,a2,,ana_1,a_2,\cdots,a_n 对应开始结束时间 [s1,t1),,[sn,tn)[s_1,t_1),\cdots,[s_n,t_n),从所有活动中选出最多数量的活动满足不相互重叠活动时间的要求。

【解】优先选择结束时间最早的活动。贪心算法的正确性证明:如果一个最优解不符合要求,那么一定可以通过交换使其符合要求。


【例 2】(最大独立集问题)nn 个点 mm 条边的图 G=(V,E)G=(V,E),求一个点集的子集 VVV'\subseteq V,使得 VV' 中任意两点没有边相连,最大化 V|V'|

【解】这个问题是一个 NP-hard 问题,因此我们采用贪心算法求近似解。

(贪心算法)优先选择度数小的点,删除该点、以及相邻点的子图后继续选择。

【定理 1】δ=m/n\delta = m/n 表示图 GG 的密度,那么使用上面贪心算法获得的点的数量满足

mGr(G)n2δ+1m_{Gr}(G)\ge\frac{n}{2\delta+1}

【证明】假设第 ii 步选择了点 viv_i,其当前度数为 d(vi)d(v_i),那么我们这一步将会删除 d(vi)+1d(v_i)+1 个点和至少 d(vi)(d(vi)+1)/2d(v_i)(d(v_i)+1)/2 条边(刚好的情况下,这些点构成了一个团),于是

i=1mGr(G)(d(vi)+1)=ni=1mGr(G)d(vi)(d(vi)+1)2m=nδ\sum_{i=1}^{m_{Gr}(G)}(d(v_i)+1)=n \\ \sum_{i=1}^{m_{Gr}(G)}\frac{d(v_i)(d(v_i)+1)}{2}\leq m=n\delta

令下式 * 2 加到上式中,有

i=1mGr(G)(d(vi)+1)2n(2δ+1)\sum_{i=1}^{m_{Gr}(G)} (d(v_i)+1)^2\leq n(2\delta+1)

根据 Cauchy-Schwarz 不等式,有

mGr(G)i=1mGr(G)(d(vi)+1)2=i=1mGr(G)(d(vi)+1)2i=1mGr(G)12(i=1mGr(G)(d(vi)+1)1)2=n2\begin{aligned}\small m_{Gr}(G)\sum_{i=1}^{m_{Gr}(G)}(d(v_i)+1)^2=\sum_{i=1}^{m_{Gr}(G)} (d(v_i)+1)^2 \cdot \sum_{i=1}^{m_{Gr}(G)}1^2\ge \left(\sum_{i=1}^{m_{Gr}(G)}(d(v_i)+1)\cdot 1\right)^2=n^2\end{aligned}

从而

n2mGr(G)n(2δ+1)\frac{n^2}{m_{Gr}(G)}\leq n(2\delta+1)

于是,

mGr(G)n2δ+1m_{Gr}(G)\ge \frac{n}{2\delta+1}

【定理 2】m(G)m^*(G) 为图 GG 的最大独立集数(最优解),那么

m(G)mGr(G)δ+1\frac{m^*(G)}{m_{Gr}(G)} \leq \delta+1

【证明】假设 VV^* 是一个最优解。考虑每次删点时,假设删除的 d(vi)+1d(v_i)+1 个点中有 kik_iVV^* 中的点,那么:

i=1mGr(G)(d(vi)+1)=ni=1mGr(G)ki=m(G)\sum_{i=1}^{m_{Gr}(G)}(d(v_i)+1)=n \\ \sum_{i=1}^{m_{Gr}(G)}k_i=m^*(G)

在删边时,在贪心算法时我们提到过最少情况下,这些点构成了一个团,至少删去 d(vi)(d(vi)+1)/2d(v_i)(d(v_i)+1)/2 条边。但是在这里,有 kik_iVV^* 中的点,他们之间不可能有边相连,因此应该去掉他们之间连的边,即 ki(ki1)/2k_i(k_i-1)/2 条边;但同时需要满足他们的度数依然不比 d(vi)d(v_i) 小,于是这 kik_i 个点每个点需要从外面补上 ki1k_i-1 条边,即需要多删除 ki(ki1)k_i(k_i-1) 条边,因此总共来说,至少删去了

d(vi)(d(vi)+1)2ki(ki1)2+ki(ki1)=d(vi)(d(vi)+1)2+ki(ki1)2\frac{d(v_i)(d(v_i)+1)}{2}-\frac{k_i(k_i-1)}{2}+k_i(k_i-1)=\frac{d(v_i)(d(v_i)+1)}{2}+\frac{k_i(k_i-1)}{2}

条边,于是类似地有

i=1mGr(G)d(vi)(d(vi)+1)2+ki(ki1)2m=nδ\sum_{i=1}^{m_{Gr}(G)}\frac{d(v_i)(d(v_i)+1)}{2}+\frac{k_i(k_i-1)}{2}\leq m=n\delta

用和定理 1 类似的方法,我们可以得到:

i=1mGr(G)(d(vi)+1)2+ki2n(2δ+1)+m(G)\sum_{i=1}^{m_{Gr}(G)} (d(v_i)+1)^2+k_i^2\leq n(2\delta+1)+m^*(G)

同样的,利用柯西不等式有

i=1mGr(G)(d(vi)+1)2n2mGr(G),i=1mGr(G)ki2m(G)2mGr(G)\sum_{i=1}^{m_{Gr}(G)} (d(v_i)+1)^2 \ge \frac{n^2}{m_{Gr}(G)}, \quad \sum_{i=1}^{m_{Gr}(G)}k_i^2\ge \frac{m^*(G)^2}{m_{Gr}(G)}

于是,

n2+m(G)2mGr(G)n(2δ+1)+m(G)\frac{n^2+m^*(G)^2}{m_{Gr}(G)} \leq n(2\delta+1)+m^*(G)

故,

mGr(G)n2+m(G)2n(2δ+1)+m(G)=n+m(G)2/n(2δ+1)+m(G)/n=n/m(G)+m(G)/n(2δ+1)/m(G)+1/n2(2δ+1)/m(G)+1/n\begin{aligned}m_{Gr}(G)&\ge \frac{n^2+m^*(G)^2}{n(2\delta+1)+m^*(G)}\\&=\frac{n+m^*(G)^2/n}{(2\delta+1)+m^*(G)/n} \\ &=\frac{n/m^*(G)+m^*(G)/n}{(2\delta+1)/m^*(G)+1/n} \\ &\ge\frac{2}{(2\delta+1)/m^*(G)+1/n}\end{aligned}

于是,

m(G)mGr(G)(2δ+1)+m(G)/n2(2δ+1)+12=δ+1\frac{m^*(G)}{m_{Gr}(G)} \leq \frac{(2\delta+1)+m^*(G)/n}{2} \leq \frac{(2\delta+1)+1}{2}=\delta+1

【例 3】(最小生成树问题)

验证方法:cut-and-paste,对于任意 cut (V,V\V)(V',V\backslash V'),原图中 cut 的边的最小值应该等于最小生成树中对应 cut 的边权。

Kruskal 算法:初始 E=E'=\emptyset,每次选择两个未连通的分量之间连通所需的最小边权对应的边 ee 加入 EE' 中,重复至 E=V1|E'|=|V|-1,即得最小生成树 (V,E)(V,E')

Krim 算法:初始点集合 V={vi},E=V'=\{v_i\}, E=\emptyset(从任意一个点出发),每次找到连接 VV'V\VV\backslash V' 所需要的最小边权对应的边 ee 加入 EE' 中,并将 ee 的属于 V\VV\backslash V' 的顶点加入 VV' 中,重复至 V=VV'=V 即得最小生成树 (V,E)(V,E')


【例 4】(背包问题贪心算法)nn 个物品,背包容量 WW,每个物品重量 w1,w2,,wnw_1,w_2,\cdots,w_n,价值 p1,p2,,pnp_1,p_2,\cdots,p_n,在重量不超过 WW 的情况下最大化价值和。

【解】在原有启发式算法优先选择 pi/wip_i/w_i 更大物品的基础上,最后返回

mH(X)=max(mGr(X),pmax)m_H(X)=\max(m_{Gr}(X),p_{\max})

【定理 3】背包问题贪心算法得到的 mH(X)m_H(X) 满足:

m(X)mH(X)<2\frac{m^*(X)}{m_H(X)}<2

【证明】假设物品已经按照 pi/wip_i/w_i 从大到小排序,并重编号为 1,2,,n1,2,\cdots,n,假设:

wi+k=1i1wk>W,k=1i1wkWw_i+\sum_{k=1}^{i-1}w_k>W, \quad \sum_{k=1}^{i-1}w_k\leq W

那么,当前剩余空间为 Wk=1i1wk<wiW-\sum_{k=1}^{i-1}w_k<w_i,于是有:

m(X)<k=1i1pk+(Wk=1i1wk)piwi<k=1i1pk+pimGr(X)+pmax2mH(X)\begin{aligned}m^*(X)&<\sum_{k=1}^{i-1}p_k +\left(W-\sum_{k=1}^{i-1}w_k\right)\frac{p_i}{w_i} \\&< \sum_{k=1}^{i-1}p_k+p_i\\&\leq m_{Gr}(X)+p_{\max} \\ &\leq 2m_H(X)\end{aligned}

于是,

m(X)mH(X)<2\frac{m^*(X)}{m_H(X)}<2

【定理 4】(The Stein-Lovasz Theorem,SL 定理)AA 是一个 N×MN\times M 的 0-1 矩阵,每行至少 vv 个 1,每列最多 aa 个 1,则存在一个 N×KN\times K 的子矩阵不包含全 0 行,且

KNa+MvlnaMv(1+lna)K\leq \frac{N}{a}+\frac{M}{v}\ln a\leq\frac{M}{v}(1+\ln a)

可以理解为,挑选 KK 列完成对 NN 行的覆盖。

【证明】贪心。假设初始 N×MN\times M 矩阵为 AaA_a,其中每行至少 vv 个 1,每列最多 aa 个 1。记 KaK_a 表示这个矩阵中每列恰有 aa 个 1、且有 1 的位置互不相交的列的个数。找到这 KaK_a 个列并删除之,同时删除其中含有的 1 对应的所有行,得到新矩阵 Aa1A_{a-1},其中每行至少 vv 个 1,每列最多 a1a-1 个 1,并且我们可以计算出此时 Aa1A_{a-1} 的大小应该为 (NaKa)×(MKa)(N-aK_a)\times(M-K_a)。如此递归进行,直到全被覆盖,我们可以得到 AiA_i 的大小应该为:

(Nt=i+1atKt)×(Mt=i+1aKt)\left(N- \sum_{t=i+1}^a tK_t\right)\times\left(M-\sum_{t=i+1}^a K_t\right)

那么考虑令 ki=Nt=iatKtk_i=N-\sum_{t=i}^a tK_t,即为 Ai1A_{i-1} 的行数,那么我们知道

ki+1ki=iKi,ka+1=N,k1=0k_{i+1}-k_i=iK_i,\quad k_{a+1}=N,\quad k_1=0

于是,

K=i=1aKi=k2k11+k3k22++ka+1kaa=Na+i=2a(1i11i)ki=Na+i=2aki(i1)i\begin{aligned}K&=\sum_{i=1}^a K_i \\&= \frac{k_2-k_1}{1}+\frac{k_3-k_2}{2}+\cdots+\frac{k_{a+1}-k_a}{a}\\ &=\frac{N}{a}+\sum_{i=2}^a\left(\frac{1}{i-1}-\frac{1}{i}\right)k_i \\ &=\frac{N}{a}+\sum_{i=2}^a \frac{k_i}{(i-1)i}\end{aligned}

我们考虑对 AiA_i 进行双计数,根据上述定义,其大小为 ki+1×(Mt=i+1aKt)k_{i+1}\times(M-\sum_{t=i+1}^a K_t),且其中每行至少 vv 个 1,每列最多 ii 个 1,于是对 1 的个数进行双计数,有

ki+1vi(Mt=i+1aKt)<Miki+1i<Mvk_{i+1}v\leq i\left(M-\sum_{t=i+1}^a K_t\right)<Mi \quad \Longrightarrow \quad \frac{k_{i+1}}{i}<\frac{M}{v}

于是有

K=Na+i=2aki(i1)i<Na+Mvi=2a1i<Na+MvlnaK=\frac{N}{a}+\sum_{i=2}^a \frac{k_i}{(i-1)i}<\frac{N}{a}+\frac{M}{v}\sum_{i=2}^a \frac{1}{i}<\frac{N}{a}+\frac{M}{v}\ln a

又,对 AA 双计数有 NvMaNv \leq Ma,即 N/aM/vN/a \leq M/v,于是

K<Na+Mvlna<Mv(1+lna)K<\frac{N}{a}+\frac{M}{v}\ln a<\frac{M}{v}(1+\ln a)

注:SL 定理有许多应用,比如【例 5】、【例 6】。


【例 5】(完美哈希族)一个 (n,m,w)(n,m,w) 完美哈希族是一组函数 FF,其中 Y={1,2,,n}Y=\{1,2,\cdots,n\}Y=n,X=m|Y|=n,|X|=m,对于所有的 fFf\in Ff:YXf:Y\rightarrow X,对任意的 C{1,2,,n}C\subseteq\{1,2,\cdots,n\}C=w|C|=w,存在一个函数 fFf\in F 使得 fCf|Cff 在定义与 CC 上)是单射。当 F=N|F|=N 时,一个 (n,m,w)(n,m,w) 完美哈希族可以表示为 PHF(N;n,m,w)PHF(N;n,m,w).

【定理 5】存在一个 PHF(N;n,m,w)PHF(N;n,m,w) 满足

Nmww!(mw)(1+ln(nw))N\leq\frac{m^w}{w!\binom{m}{w}}\left(1+\ln\binom{n}{w}\right)

【证明】(SL 定理)我们将 SL 定理中的 N,M,a,vN,M,a,v 在本题中进行一个映射。

于是,至少存在一个 N×KN\times K 的子矩阵不包含全 0 的行,即每个 ww 元子集合都能被覆盖,根据 SL 定理,有

KMv(1+lna)=mn(mw)w!mnw(1+ln(nw))=mww!(mw)(1+ln(nw))K \leq \frac{M}{v}\left(1+\ln a\right)=\frac{m^n}{\binom{m}{w}w!m^{n-w}}\left(1+\ln\binom{n}{w}\right)=\frac{m^w}{w!\binom{m}{w}}\left(1+\ln\binom{n}{w}\right)

Nmww!(mw)(1+ln(nw))N\leq \frac{m^w}{w!\binom{m}{w}}\left(1+\ln\binom{n}{w}\right)

【定理 5(改)】存在一个 PHF(N;n,m,w)PHF(N;n,m,w) 满足

N1+ln(nw)ln(1(mw)w!mw)N\leq 1+\frac{-\ln\binom{n}{w}}{\ln\left(1-\frac{\binom{m}{w}w!}{m^w}\right)}

【证明】(概率方法)共有 mnm^n 个函数,随机选择 NN 个函数,对一个固定的 ww-元子集合,则其中一个随机的函数使得子集合为单射的概率为

P=(mw)w!mnwmn=(mw)w!mwP=\frac{\binom{m}{w}w!m^{n-w}}{m^n}=\binom{m}{w}w!m^{-w}

那么,这 NN 个函数都无法完成单射的概率为 (1P)N(1-P)^N。总共有 (nw)\binom{n}{w}ww 元子集合,那么没有完成单射的子集合数期望为 (nw)(1P)N\binom{n}{w}(1-P)^N。根据平均值原理,必然有一个方案,没有完成单射的子集合数至多为 (nw)(1P)N\binom{n}{w}(1-P)^N,于是我们只要保证 (nw)(1P)N<1\binom{n}{w}(1-P)^N<1,那么由于“没有完成单射的子集合数”是非负整数,其只能等于 0,也就是说对所有子集合都能完成单射。于是条件为:

N>ln(nw)ln(1(mw)w!mw)N>\frac{-\ln\binom{n}{w}}{\ln\left(1-\frac{\binom{m}{w}w!}{m^w}\right)}

只要满足这个条件,就必然存在对应的 PHF(N;n,m,w)PHF(N;n,m,w)。那么定理显然得证。


【例 6】(分割系统)n,tn,t 为偶数且 0<t<n0<t<n,一个 (n,t)(n,t) 分割系统是 (X,{Bi})(X,\{B_i\}),满足:

问题是选择最少的 {Bi}|\{B_i\}| 满足条件。

【解 1】(SL 定理)我们将 SL 定理中的 N,M,a,vN,M,a,v 在本题中进行一个映射。

于是,根据 SL 定理,有

KMv(1+lna)=(nn/2)(tt/2)(nt(nt)/2)(1+2ln(n/2t/2))K\leq\frac{M}{v}(1+\ln a)=\frac{\binom{n}{n/2}}{\binom{t}{t/2}\binom{n-t}{(n-t)/2}}\left(1+2\ln\binom{n/2}{t/2}\right)

【解 2】(概率方法)共有 (nn/2)\binom{n}{n/2} 个函数,随机选择 KK 个函数,对于一个固定的 tt 元子集合 YY,被一个随机的 n/2n/2 元子集合分割的概率为:

P=(tt/2)(nt(nt)/2)(nn/2)P=\frac{\binom{t}{t/2}\binom{n-t}{(n-t)/2}}{\binom{n}{n/2}}

那么,这 KK 个函数都无法分割的概率为 (1P)K(1-P)^K。总共有 (nt)\binom{n}{t} 个集合,因此没有被分割的 tt 元集合的期望个数为 (nt)(1P)K\binom{n}{t}(1-P)^K,与【定理 5(改)】证明类似地,我们只需要满足

(nt)(1P)K<1Kln(nt)ln(1P)=ln(nt)ln(1(tt/2)(nt(nt)/2)(nn/2))\binom{n}{t}(1-P)^K <1\quad \Longrightarrow\quad K\ge \frac{-\ln\binom{n}{t}}{\ln(1-P)}=\frac{-\ln\binom{n}{t}}{\ln\left(1-\frac{\binom{t}{t/2}\binom{n-t}{(n-t)/2}}{\binom{n}{n/2}}\right)}

【定理 6】(Mantel 定理)在一个不含 3-圈 (triangle-free) 的 2n2n 个点的图中,最多有 n2n^2 条边。

💡
Mantel 定理的等价表述:
  • 2n2n 个顶点和 n2+1n^2+1 条边的图中,必然含有 3-圈
  • 在一个不含 3-圈 (triangle-free) 的 nn 个点的图中,最多有 n2/4n^2/4 条边。
  • 在一个不含 3-团 (3-clique) 的 nn 个点的图中,最多有 n2/4n^2/4 条边。

【证明 1】(数学归纳法)n1n-1 情况成立,下证明 nn 情况也成立。即我们知道 2(n1)2(n-1) 个点,包含 (n1)2+1(n-1)^2+1 条边的图中必然含有 3-圈。考虑 2n2n 个和 n2+1n^2+1 条边时,取出两个点 (u,v)E(u,v)\in E,剩下的图为 HH。若存在 wHw\in H 使得 (u,v,w)(u,v,w) 为 3-圈,那么显然成立;若不存在,则 HH 的每一个点最多只能与 u,vu,v 其一连边,因此 (u,v)(u,v)HH 间最多有 2(n1)2(n-1) 条边,于是 HH 至少有 n2+12(n1)1=n22n+2=(n1)2+1n^2+1-2(n-1)-1=n^2-2n+2=(n-1)^2+1 条边,则根据归纳假设,一定存在 3-圈。综上,根据归纳法,原命题成立。

【证明 2】任取一条边 (u,v)E(u,v)\in E,一定不会出现 wGw\in Gwwu,vu,v 的公共邻居,那么剩下每个点最多只能与 u,vu,v 其一连边,于是 d(u)+d(v)2nd(u)+d(v)\leq 2n

根据 Lecture 2 【例 3】,我们有

vVd2(v)=(u,v)=eEd(u)+d(v)2nE\sum_{v\in V}d^2(v)=\sum_{(u,v)=e\in E}d(u)+d(v) \leq 2n |E|

又根据 Cauchy-Schwarz 不等式有,

vVd2(v)12n(vVd(v))2=(2E)22n=2E2n\sum_{v\in V}d^2(v) \ge \frac{1}{2n}\left(\sum_{v\in V}d(v)\right)^2=\frac{(2|E|)^2}{2n}=\frac{2|E|^2}{n}

于是,

2E2n2nEEn2\frac{2|E|^2}{n} \leq 2n|E| \quad \Longrightarrow \quad |E|\leq n^2

【证明 3】(最大独立集)AA 为最大独立集,令 B=V\AB=V\backslash A。则对任意 xx 的邻居点集为独立集(因为不存在 3-圈),独立集大小为 d(x)d(x),于是有 d(x)A,xd(x)\leq |A|,\forall x,故

ExBd(x)AB(A+B2)2=n2|E|\leq \sum_{x\in B}d(x) \leq |A||B| \leq \left(\frac{|A|+|B|}{2}\right)^2=n^2

【定理 7】(Turan 定理)对于一个含有 nn 个点的图 G=(V,E)G=(V,E),若图中不存在 (k+1)(k+1)-团 (k2)(k\ge 2),那么有:

E(11k)n22|E|\leq \left(1-\frac{1}{k}\right)\frac{n^2}{2}

【证明 1】(数学归纳法)假设结论对 n1\le n-1 均成立,下面证明 nn 也成立。假设图的边数达到最多,那么图中已经存在 kk-团(若不存在可以加边使其存在,但不满足变数最多的假设)。记这个 kk-团为 AA,剩下部分 B=V\AB=V\backslash A,那么:

综上,

E(k2)+(11k)(nk)22+(nk)(k1)=k(k1)2+(11k)(n+k)(nk)2=12(k2k+k1k(n2k2))=12k1kn2=(11k)n22\begin{aligned}|E|&\leq \binom{k}{2}+\left(1-\frac{1}{k}\right)\frac{(n-k)^2}{2}+(n-k)(k-1)\\&=\frac{k(k-1)}{2}+\left(1-\frac{1}{k}\right)\frac{(n+k)(n-k)}{2}\\ &=\frac{1}{2}\left(k^2-k+\frac{k-1}{k}(n^2-k^2)\right)\\ &=\frac{1}{2}\frac{k-1}{k}n^2 \\ &=\left(1-\frac{1}{k}\right)\frac{n^2}{2}\end{aligned}

【证明 2】(等价关系思想)假设图中边数已经最多,且不存在 (k+1)(k+1)-团,【证明 1】中说明了一定存在 kk-团,那么我们首先证明 (u,v)E(u,v)\notin E 这个关系是等价关系,即:

因此 (u,v)E(u,v)\notin E 这个关系是等价关系,且图中存在 kk-团,不存在 (k+1)(k+1)-团,故需要 kk 个等价类。下面说明等价类是平均的,即每个等价类的个数之间至多差 1:若两个等价类 A,BA,B 出现 AB+2|A|\ge |B|+2,那么从 A|A| 移动 1 个点到 B|B| 中,边数变化 A1B1|A|-1-|B|\ge 1,增加边数,与图中边数已经最多矛盾。因此,边数为:

E=kundefinedk classesnkundefined#node/class(nnk)undefinedlink to other nodes except the same class12undefinedduplicate=(11k)n22|E|=\underbrace{k}_{k \text{ classes}}\cdot \underbrace{\frac{n}{k}}_{\text{\#node/class}}\cdot \underbrace{\left(n-\frac{n}{k}\right)}_{\text{link to other nodes except the same class}}\cdot \underbrace{\frac{1}{2}}_\text{duplicate} = \left(1-\frac{1}{k}\right)\frac{n^2}{2}

【证明 3】(团数定理)Lecture 3 中【定理 4】阐述了最大团 ω(G)\omega(G) 和图 GG 的关系:

ω(G)vV1nd(v)\omega(G)\ge\sum_{v\in V}\frac{1}{n-d(v)}

那么,

k(n22E)ω(G)(n22E)(vV1nd(v))(uV(nd(u)))n2k(n^2-2|E|)\ge\omega(G)(n^2-2|E|)\ge\left(\sum_{v\in V}\frac{1}{n-d(v)}\right)\left(\sum_{u\in V}(n-d(u))\right)\ge n^2

这是因为:

化简得:

E(11k)n22|E|\leq\left(1-\frac{1}{k}\right)\frac{n^2}{2}

【证明 4】(Turan 图结构)假设图中边数已经最多,且不存在 (k+1)(k+1)-团,【证明 1】中说明了一定存在 kk-团。令 vmVv_m\in VGG 中度数最大的点,令 SSvmv_m 点邻居集合,于是 S=d(vm)|S|=d(v_m),设剩下的点集合为 T=V\ST=V\backslash S。那么我们TT 内部的边全部删除,然后把 TT 中的所有点与 SS 中的所有点都连起来

下面我们说明:

  1. 这样操作后仍然不会有 (k+1)(k+1)-团。首先 SS 中一定不存在 kk-团(若存在,加上 vmv_m 就是 (k+1)(k+1)-团)。其次,操作后 TT 中所有点都是 vmv_m 的拷贝,因此原来不存在 (k+1)(k+1)-团,现在也不存在 (k+1)(k+1)-团。
  1. 这样操作后边数不会减少。在新图中 SS 中每一个点连的边不会减少,因此度数没有减少;同时 TT 中每一个点的度数直接设为了最大度数 d(vm)d(v_m),因此度数也不会减少;根据握手定理,图的总度数没有减少,那么边数一定不会减少。

操作之后得到一个新的独立集 TT,我们接下来对 SS 这个子图继续做同样的事情即可,直到图 GG 变成一个 Turan 图结构,即包含若干独立集的“完全图”。接着,用【证明 2】一样的思路说明 (1) 独立集个数为 kk;(2) 独立集之间平均,接着计算边数即可。

【证明 5】(概率分布)对每一个点 uu 分配一个概率 pu[0,1]p_u\in[0,1] 满足 uVpu=1\sum_{u\in V}p_u=1,问题是如何分配概率使得 (u,v)Epupv\sum_{(u,v)\in E}p_up_v 最大,即转化为下面的优化问题:

max{pu}uVF=(u,v)Epupvs.t.  pu[0,1],uuVpu=1\max_{\{p_u\}_{u\in V}} F=\sum_{(u,v)\in E}p_up_v\\\text{s.t. }\ p_u\in[0,1],\forall u\\\sum_{u\in V}p_u=1

下面我们说明:

  1. 概率分布向团集中。对于两个点 u,vu,v,设其邻居节点的概率和为 S(u),S(v)S(u),S(v),不妨 S(u)S(v)S(u)\ge S(v),那我们可以把 pvp_v 全部转移给 pup_u 而不会让优化目标变得更差,即 pupu+pvp_u\leftarrow p_u+p_v,且 pv0p_v\leftarrow 0
    ΔF=pvS(u)pvS(v)0\Delta F=p_vS(u)-p_vS(v)\ge 0
  1. 概率分布在团上均匀分配。假如在 rr-团上两个点 u,vu,v 满足 pu>pvp_u>p_v,那么 S(u)=S+pv,S(v)=S+puS(u)=S+p_v, S(v)=S+p_u,其中 SS 为团上除了 u,vu,v 两个点外其他点的概率,那我们可以将 pu,pvp_u,p_v 均调整至 (pu+pv)/2(p_u+p_v)/2 使目标增大:
    ΔF=pu+pv2(S(u)+S(v))puS(u)pvS(v)=pu+pv2(2S+pu+pv)pu(S+pv)pv(S+pu)=12(pupv)2>0\begin{aligned}\Delta F&= \frac{p_u+p_v}{2}(S(u)+S(v))-p_uS(u)-p_vS(v)\\ &=\frac{p_u+p_v}{2}(2S+p_u+p_v)-p_u(S+p_v)-p_v(S+p_u)\\ &= \frac{1}{2}(p_u-p_v)^2> 0\end{aligned}

因此,概率在最大的 rr-团上均匀分配时目标最大,此时

F=(1r)2(r2)=12(11r)F=\left(\frac{1}{r}\right)^2\binom{r}{2}=\frac{1}{2}\left(1-\frac{1}{r}\right)

并且 rr 越大 FF 越大;又因为 rr 最大为 kk,因此

Fmax=12(11k)F_{\max}=\frac{1}{2}\left(1-\frac{1}{k}\right)

这样分配一定大于在 E|E| 上均匀分配,于是

12(11k)E1n2E(11k)n22\frac{1}{2}\left(1-\frac{1}{k}\right)\ge |E|\frac{1}{n^2} \quad \Longrightarrow \quad |E|\leq\left(1-\frac{1}{k}\right)\frac{n^2}{2}