3 概率方法

288 阅读8分钟

概率方法

  • 对应Chapter 6的内容。这一章主要是通过概率的技术分析优化问题的可解性和performance gurantees。
  • 一般思路是在决策空间上设计一个随机算法,然后利用概率或期望分析得到可行解的可能性或者performance。这种分析还可能直接导出一个随机算法。
  • 一些诸如两阶段、消除随机化的技术可以优化策略进而得到更好的算法。
  • 洛瓦兹局部引理实现了对诸多坏事件发生的分析,这对于算法得到可行解有很大帮助

1 基本计数论证(概率论证)

  • 核心思想,随机采样一个决策,尝试求解决策可行的概率。

Eg 图着色问题

  • 问题定义:设KnK_n表示nn个顶点的完全无向图。用两种颜色给Cn2C_n^2条边着色,使得同颜色边及其点不构成KkK_k

1 明确决策空间:对Cn2C_n^2条边染色,每条边可以染的颜色二选一
2 确定随机策略:对上述决策空间,一个直观的随机策略是等概率给每条边指派颜色。
3 分析概率界:图中一共有CnkC_n^k个团,对一个团来说,如果颜色一样,那么只有一条边可以随意选,其他的Ck21C_k^2-1边必须和这条边保持一致,因此概率为1/2Ck211/2^{C_k^2-1}。即用AiA_i表示第ii个团颜色一样,那么Pr[Ai]=1/2Ck21Pr[A_i]=1/2^{C_k^2-1}
所以Pr[任意一个k团颜色一样]=Pr[A1+...+ACnk]CnkPr[Ai]=Cnk2Ck21Pr[任意一个k团颜色一样]=Pr[A_1+...+A_{C_n^k}]\le C_n^k Pr[A_i]=\frac{C_n^k}{2^{C_k^2-1}}
Pr[没有k同色团]=1Pr[任意一个k团颜色一样]=1Cnk2Ck21Pr[没有k同色团]=1 - Pr[任意一个k团颜色一样] =1 - \frac{C_n^k}{2^{C_k^2-1}}
如果说kk同色团真的不存在,那上述概率应该大于0,因此可以得到nnkk之间的不等关系,即Cnk2Ck21<1\frac{C_n^k}{2^{C_k^2-1}}<1
4 导出随机算法:更进一步发现,这个简单的随机策略其实还不错,因为随机产生的解不可行的概率只有Cnk2Ck21\frac{C_n^k}{2^{C_k^2-1}},在kknn小很多的时候这个概率非常低,而检查解是否可行的简单方法就是依次检查CnkC_n^k个团是不是同色。因此可以直接封装成一个拉斯维加斯算法。不过也很明显,kk稍微大一点,组合数复杂度的检验方式其实并不好。。。

2 期望论证

  • 核心思想:前面是直接证明了概率非负。有些时候可能利用期望更简单,因为如果算出来期望,那一定有值是大于期望,也一定有值小于期望(离散空间)。

Eg 最大割问题

  • 问题定义:给定义个连同无向图,求一个边集,使得删去这些边图变成不连通的两部分。找到最大割,即找到边数量最大的边集。
  • 直观说明:把图割成不连通的两部分并不难,可以选一个点然后把他的边全删掉就行了。难的是找最大的边集,这是一个NPC问题。但是,利用概率方法,我们可以证明一个很有意义的结论,那就是最大割至少是m/2m/2mm是边的数量。也就是说最大割至少包含一半的边。

1 明确决策空间:这里最直接的决策空间是每条边割还是不割。但是这样会面临一个问题,那就是割出来的份数太多了。给后面的分析造成困难,因此转换一下,变成对每个点,指派到割开后的两个集合中的哪一个。
2 设置随机策略:还是很简单的等概率随机指派。即每个顶点有1/21/2的概率被划分到两个集合中的一个。
3 分析期望:为每条边设置指示器变量XiX_i,如果边是割边,则Xi=1X_i=1。显然只有当边连接的两个顶点被随机指派到不同的集合了,XiX_i才是1,这个概率是1/2。因此E[Xi]=12E[X_i]=\frac{1}{2}。如果令X=XiX=\sum X_i,其实XX就是割的大小,E[X]=E[Xi]=E[Xi]=m/2E[X]=E[\sum X_i]=\sum E[X_i] = m/2。因此最大割m/2\ge m/2
4 导出随机算法。即然最大割至少是m/2m/2,那我们可以设计一个算法,找到一个至少是m/2m/2的割。对于上面那个随机指派的策略,分析一下他成功的概率p=Pr[Cm/2]p=Pr[C\ge m/2]
E[C]=m2=i<m/2iPr[C=i]+im/2iPr[C=i]i<m/2(m21)Pr[C=i]+im/2mPr[C=i]=(m21)(1p)+pmE[C] = \frac{m}{2}=\sum_{i<m/2} i Pr[C=i] + \sum_{i\ge m/2} i Pr[C=i] \le \sum_{i<m/2} (\frac{m}{2}-1) Pr[C=i] + \sum_{i\ge m/2} m Pr[C=i] =(\frac{m}{2}-1)(1-p) + pm
整理p1m/2+1p \ge \frac{1}{m/2+1}。所以在m不是很大的情况下,直接封装成拉斯维加斯还凑合。

  • remark:上述第3步分析体现了期望论证的一个优势,那就是期望线性性不要求独立。因为点虽然独立了,但边并不独立。用概率的话可能带来困难。

3 两种改进思路:条件消除随机化+两阶段

本节解决两个问题:

  • 1 多步骤的随机指派,后面指派时能否利用前面指派的信息,使得决策更有目的性而不是完全等概率随机。
  • 2 如果随机似乎总是难以得到可行解,是否可以通过事后调整的方法使解变得可行。

条件期望消除随机化

再论最大割问题。前一节的随机策略是对每个顶点,随机指派他所处的集合。我们详细分析一下这个步骤

在第一步,因为对称性,所以E[Cx1=A]=E[Cx1=B]=E[C]E[C|x_1=A]=E[C|x_1=B]=E[C]。从第二步开始,不难得到E[Cx1,x2]=1/2E[Cx1,x2=A]+1/2E[Cx1,x2=B]max(E[C(A,B)x1,x2=A],E[C(A,B)x1,x2=B])E[C|x_1, x_2]=1/2 E[C|x_1, x_2=A]+1/2E[C|x_1, x_2=B]\le \max(E[C(A,B)|x_1, x_2=A], E[C(A,B)|x_1, x_2=B])。因此,从第二步开始,可以选择使E[C(A,B)x1,x2=X]E[C(A,B)|x_1, x_2=X]更大的XX,这样可以保证每一步都在涨。

其实这里可以看到,这里每次都在贪心的把点加到使得新增割边数更大的集合里。这个方法就可以得到m/2m/2的。

两阶段:抽样+修改

这个思路很直观:先随机采样,然后再检查并作出相应修改

Eg1 独立集

  • 问题定义:给定一个有nn个顶点mm条边的图GGmn/2m\ge n/2),那么至少有一个n2/4mn^2/4m的独立集
  • 基本思路:独立集是指任意两点没有边相连的点集。直觉上,度越大的点越不太可能在独立集里,因此先考虑依照概率删除点(看起来度越大删除的概率越高,但其实等概率删除就足够了,因为度数大的点会影响更多的边)。 删完之后,剩下的图应该就很稀疏了,对剩余的边,删除它及其任意一个端点。把所有的边删完,剩下的就是独立集。

那么删除的概率到底是多少呢?不妨设为1p1-p。这样第一阶段之后每个点存活的概率就是pp。第一阶段完成之后,存活点的期望E[X]=npE[X]=np,边存活说明两个端点都存活,那么期望的剩余边数为E[Y]=mp2E[Y]=mp^2。第二步,对剩余边删除至多删掉了YY个点,剩余点的期望为E[XY]=npmp2E[X-Y]=np-mp^2。这是一个关于pp的二次函数,它在p=n/(2m)p=n/(2m)取最大,(因此可以看出来,为了让n/(2m)n/(2m)在0-1之间取到最小值增加了mn/2m\ge n/2的假设)。此时独立集大小为n2/4mn^2/4m

Eg2 围长

  • 问题定义:围长是指图上最小圈的长度。对任意k>3k>3,存在一个有nn个节点且至少有14n1+1/k\frac{1}{4}n^{1+1/k}条边的图,它的围长为kk
  • 直观解释:直觉上,图越稠密围长越小,所以我们关注在边较大的时候,围长还能否保持住。

抽样图,n个节点固定,每两个节点之间按照p为概率决定是否有边。p是n1/k1n^{1/k-1}
随机采样的图大概率不满足围长是k,所以需要进行修改,即对每一个长度小于k的圈,删除一条边。
设X表示随机采样的边数,Y表示删掉的边数,那么图最后剩余的期望边数是E[XY]=EXEYE[X-Y]=EX-EY,接下来分别计算。
EX很简单,为pCn2pC_n^2
Y其实不会超过图中比k小的圈的个数,因此直接计算长度小于k的圈的个数
E[Y]=i=3k1Cni(i1)!/2pii=3k1nipi<kn(k1)/kE[Y]=\sum_{i=3}^{k-1} C_n^i(i-1)!/2p^i\le \sum_{i=3}^{k-1}n^ip^i< kn^{(k-1)/k}
求和表示所有长度,每一项的三个因子分别表示哪i个点及其顺序,最后圈顺时针和逆时针一样所以除以2。
最后结果E[XY]pCn2i=3k1nipi1/4n(1/k+1)E[X-Y]\ge pC_n^2-\sum_{i=3}^{k-1}n^ip^i\ge 1/4n^{(1/k+1)}

4 不等式方法

利用Chebyshev导出,如果XX是非负的整数随机变量,那么Pr[X=0]Var[X]E2[X]Pr[X=0]\le \frac{Var[X]}{E^2[X]}

证明:Pr[X=0]Pr[XEXEX]Var[X]E2[X]Pr[X=0]\le Pr[|X-EX|\ge EX]\ge \frac{Var[X]}{E^2[X]}
这里第一个不等号是因为右边项其实就是XX00或大于2EX2EX的概率。

如果XX是一个nn个伯努利的和,那么Pr[X>0]i=1nPr[Xi=1]E[XXi=1]Pr[X>0]\ge \sum_{i=1}^n \frac{Pr[X_i=1]}{E[X|X_i=1]}。注意XiX_i彼此不需要独立。

证明:设一个YY,如果X=0X=0Y=0Y=0,否则Y=1/XY=1/X,那么Pr[X>0]=E[XY]Pr[X>0]=E[XY],因为XYXY整体要么是1要么是0,所以期望E[XY]E[XY]的概率就是Pr[XY=1]Pr[XY=1],即Pr[X>0]Pr[X>0]
E[XY]=E[i=1nXiY]=i=1nE[XiY]=i=1n(E[YXi=1]Pr[Xi=1])=i=1nE[1/XXi=1]Pr[Xi=1]i=1nPr[Xi=1]E[XXi=1]E[XY]=E[\sum_{i=1}^nX_iY]=\sum_{i=1}^nE[X_iY]=\sum_{i=1}^n(E[Y|X_i=1]Pr[X_i=1])=\sum_{i=1}^nE[1/X|X_i=1]Pr[X_i=1]\ge \sum_{i=1}^n \frac{Pr[X_i=1]}{E[X|X_i=1]}

remark:这块的例子是随机图的阈值性质,这个是很经典的相变问题。

洛瓦兹局部引理

这个引理主要是研究一系列坏事情不发生有没有可能。我们设一系列坏事情为E1,...,EnE_1, ..., E_n,我们关心Pr[iEiˉ]>0Pr[\cap_i\bar{E_i}]>0是否成立。

如果EiE_i都是独立的,那这个很显然。Pr[iEiˉ]=i(1Pr[Ei])>0Pr[\cap_i\bar{E_i}]=\prod_i (1-Pr[E_i])>0。除非坏事一定发生。

问题在于,如果EiE_i并不是独立的,那直观上,这个概率会变低,因为如果一个坏事发生另一个一定发生或者很大发生,Pr[EiEj]>Pr[Ei]Pr[E_i|E_j]>Pr[E_i],那就不好了。所以这个事需要分析。

事件之间的关联性,我们用图表示,节点表示事件,如果事件独立,则没有边,否则不论他们是怎么相关的(Pr[EiEj]Pr[E_i|E_j]还是Pr[EiEkEj]Pr[E_i|E_kE_j]),都有边。

先看一个简单的局部引理。

如果对所有EiE_iPr[Ei]pPr[E_i]\le pdeg(Ei)ddeg(E_i)\le d4dp14dp\le 1,那么Pr[iEiˉ]>0Pr[\cap_i\bar{E_i}]>0

证明:归纳法。先引入记号FS=iSEiˉF_S=\cap_{i\in S}\bar{E_i}
考察Pr[EkFS]2pPr[E_k|F_{S}]\le 2p能否成立。
SS是空集,Pr[EkFS]=Pr[Ek]=p2pPr[E_k|F_{S}]=Pr[E_k]=p \le 2p成立。
归纳假设:对Ss.t.S<skS\forall S s.t. |S|< s,k\notin S,有Pr[EkFS]2pPr[E_k|F_S]\le 2p
递推:对于Ss.t.S=skS\forall S s.t. |S|=s,k\notin S,有Pr[EkFS]2pPr[E_k|F_S]\le 2p。把SS分成S1S_1S2S_2,分别是和EkkE_kk有边的点集和无边的点集。如果S2=SS_2=S那说明SS里所有事件都和EkE_k独立,Pr[EkFS]=Pr[Ek]=p2pPr[E_k|F_S]=Pr[E_k]=p\le 2p
否则,Pr[EkFS]=Pr[EkFS1FS2]=Pr[EkFS1FS2]Pr[FS1FS2]=Pr[EkFS1FS2]Pr[FS2]Pr[FS1FS2]Pr[FS2]=Pr[EkFS1FS2]Pr[FS1FS2]Pr[E_k|F_S]=Pr[E_k|F_{S_1}F_{S_2}]=\frac{Pr[E_kF_{S_1}F_{S_2}]}{Pr[F_{S_1}F_{S_2}]} = \frac{Pr[E_kF_{S_1}|F_{S_2}]Pr[F_{S_2}]}{Pr[F_{S_1}|F_{S_2}]Pr[F_{S_2}]}=\frac{Pr[E_kF_{S_1}|F_{S_2}]}{Pr[F_{S_1}|F_{S_2}]}
对分子,Pr[EkFS1FS2]Pr[EkFS2]=Pr[Ek]=pPr[E_k F_{S_1}|F_{S_2}]\le Pr[E_k|F_{S_2}] = Pr[E_k]=p, (第一个不等号是因为交发生肯定比其中一个事件更难发生,第二个是因为FS2F_{S_2}EkE_k独立)
对分母,Pr[FS1FS2]=Pr[iS1EiˉFS2]=Pr[iEiˉFS2]=1Pr[iEiFS2]1iPr[EiFS2]Pr[F_{S_1}|F_{S_2}]=Pr[\cap_{i\in S_1}\bar{E_i}|F_{S_2}]=Pr[\bar{\cup_i E_i}|F_{S_2}]=1-Pr[\cup_i E_i|F_{S_2}]\ge 1-\sum_i Pr[E_i|F_{S_2}],因为iiS1S_1里的不在S2S_2里,并且S2<s|S_2|< s,所以用归纳假设,Pr[EiFS2]2pPr[E_i|F_{S_2}]\le 2p。所以分母12p12pd12\ge 1 - \sum 2p \ge 1 - 2pd \ge \frac{1}{2},所以分子分母结合还是小于等于2p,归纳成功。
利用归纳的结论,Pr[iEiˉ]=iPr[EiˉF1...i1]=i(1Pr[EiF1...i1])i(12p)0Pr[\cap_i\bar{E_i}]=\prod_i Pr[\bar{E_i}|F_{1...i-1}]=\prod_i(1-Pr[E_i|F_{1...i-1}])\ge \prod_i(1-2p) \ge 0
注意这里12p1-2p大于0是因为4pd4pd小于等于1,所以pp其实小于1/4。

这里的例子是边不相交路径和可满足性,直接带入就可以了很简单。

接下来将一个一般情况

如果存在x1,...,xn[0,1]x_1, ..., x_n \in [0, 1],使i,Pr[Ei]xi(i,j)E(1xj)\forall i, Pr[E_i]\le x_i \prod_{(i,j)\in E} (1-x_j),那么Pr[iEiˉ](1xi)Pr[\cap_i \bar{E_i}]\ge \prod (1-x_i)

证明:用归纳法证明Pr[EkFS]xkPr[E_k|F_S]\le x_k,思路完全一样。