概率方法
- 对应Chapter 6的内容。这一章主要是通过概率的技术分析优化问题的可解性和performance gurantees。
- 一般思路是在决策空间上设计一个随机算法,然后利用概率或期望分析得到可行解的可能性或者performance。这种分析还可能直接导出一个随机算法。
- 一些诸如两阶段、消除随机化的技术可以优化策略进而得到更好的算法。
- 洛瓦兹局部引理实现了对诸多坏事件发生的分析,这对于算法得到可行解有很大帮助
1 基本计数论证(概率论证)
- 核心思想,随机采样一个决策,尝试求解决策可行的概率。
Eg 图着色问题
- 问题定义:设Kn表示n个顶点的完全无向图。用两种颜色给Cn2条边着色,使得同颜色边及其点不构成Kk。
1 明确决策空间:对Cn2条边染色,每条边可以染的颜色二选一
2 确定随机策略:对上述决策空间,一个直观的随机策略是等概率给每条边指派颜色。
3 分析概率界:图中一共有Cnk个团,对一个团来说,如果颜色一样,那么只有一条边可以随意选,其他的Ck2−1边必须和这条边保持一致,因此概率为1/2Ck2−1。即用Ai表示第i个团颜色一样,那么Pr[Ai]=1/2Ck2−1
所以Pr[任意一个k团颜色一样]=Pr[A1+...+ACnk]≤CnkPr[Ai]=2Ck2−1Cnk
Pr[没有k同色团]=1−Pr[任意一个k团颜色一样]=1−2Ck2−1Cnk
如果说k同色团真的不存在,那上述概率应该大于0,因此可以得到n,k之间的不等关系,即2Ck2−1Cnk<1。
4 导出随机算法:更进一步发现,这个简单的随机策略其实还不错,因为随机产生的解不可行的概率只有2Ck2−1Cnk,在k比n小很多的时候这个概率非常低,而检查解是否可行的简单方法就是依次检查Cnk个团是不是同色。因此可以直接封装成一个拉斯维加斯算法。不过也很明显,k稍微大一点,组合数复杂度的检验方式其实并不好。。。
2 期望论证
- 核心思想:前面是直接证明了概率非负。有些时候可能利用期望更简单,因为如果算出来期望,那一定有值是大于期望,也一定有值小于期望(离散空间)。
Eg 最大割问题
- 问题定义:给定义个连同无向图,求一个边集,使得删去这些边图变成不连通的两部分。找到最大割,即找到边数量最大的边集。
- 直观说明:把图割成不连通的两部分并不难,可以选一个点然后把他的边全删掉就行了。难的是找最大的边集,这是一个NPC问题。但是,利用概率方法,我们可以证明一个很有意义的结论,那就是最大割至少是m/2,m是边的数量。也就是说最大割至少包含一半的边。
1 明确决策空间:这里最直接的决策空间是每条边割还是不割。但是这样会面临一个问题,那就是割出来的份数太多了。给后面的分析造成困难,因此转换一下,变成对每个点,指派到割开后的两个集合中的哪一个。
2 设置随机策略:还是很简单的等概率随机指派。即每个顶点有1/2的概率被划分到两个集合中的一个。
3 分析期望:为每条边设置指示器变量Xi,如果边是割边,则Xi=1。显然只有当边连接的两个顶点被随机指派到不同的集合了,Xi才是1,这个概率是1/2。因此E[Xi]=21。如果令X=∑Xi,其实X就是割的大小,E[X]=E[∑Xi]=∑E[Xi]=m/2。因此最大割≥m/2。
4 导出随机算法。即然最大割至少是m/2,那我们可以设计一个算法,找到一个至少是m/2的割。对于上面那个随机指派的策略,分析一下他成功的概率p=Pr[C≥m/2]。
E[C]=2m=∑i<m/2iPr[C=i]+∑i≥m/2iPr[C=i]≤∑i<m/2(2m−1)Pr[C=i]+∑i≥m/2mPr[C=i]=(2m−1)(1−p)+pm
整理p≥m/2+11。所以在m不是很大的情况下,直接封装成拉斯维加斯还凑合。
- remark:上述第3步分析体现了期望论证的一个优势,那就是期望线性性不要求独立。因为点虽然独立了,但边并不独立。用概率的话可能带来困难。
3 两种改进思路:条件消除随机化+两阶段
本节解决两个问题:
- 1 多步骤的随机指派,后面指派时能否利用前面指派的信息,使得决策更有目的性而不是完全等概率随机。
- 2 如果随机似乎总是难以得到可行解,是否可以通过事后调整的方法使解变得可行。
条件期望消除随机化
再论最大割问题。前一节的随机策略是对每个顶点,随机指派他所处的集合。我们详细分析一下这个步骤
在第一步,因为对称性,所以E[C∣x1=A]=E[C∣x1=B]=E[C]。从第二步开始,不难得到E[C∣x1,x2]=1/2E[C∣x1,x2=A]+1/2E[C∣x1,x2=B]≤max(E[C(A,B)∣x1,x2=A],E[C(A,B)∣x1,x2=B])。因此,从第二步开始,可以选择使E[C(A,B)∣x1,x2=X]更大的X,这样可以保证每一步都在涨。
其实这里可以看到,这里每次都在贪心的把点加到使得新增割边数更大的集合里。这个方法就可以得到m/2的。
两阶段:抽样+修改
这个思路很直观:先随机采样,然后再检查并作出相应修改
Eg1 独立集
- 问题定义:给定一个有n个顶点m条边的图G(m≥n/2),那么至少有一个n2/4m的独立集
- 基本思路:独立集是指任意两点没有边相连的点集。直觉上,度越大的点越不太可能在独立集里,因此先考虑依照概率删除点(看起来度越大删除的概率越高,但其实等概率删除就足够了,因为度数大的点会影响更多的边)。
删完之后,剩下的图应该就很稀疏了,对剩余的边,删除它及其任意一个端点。把所有的边删完,剩下的就是独立集。
那么删除的概率到底是多少呢?不妨设为1−p。这样第一阶段之后每个点存活的概率就是p。第一阶段完成之后,存活点的期望E[X]=np,边存活说明两个端点都存活,那么期望的剩余边数为E[Y]=mp2。第二步,对剩余边删除至多删掉了Y个点,剩余点的期望为E[X−Y]=np−mp2。这是一个关于p的二次函数,它在p=n/(2m)取最大,(因此可以看出来,为了让n/(2m)在0-1之间取到最小值增加了m≥n/2的假设)。此时独立集大小为n2/4m。
Eg2 围长
- 问题定义:围长是指图上最小圈的长度。对任意k>3,存在一个有n个节点且至少有41n1+1/k条边的图,它的围长为k。
- 直观解释:直觉上,图越稠密围长越小,所以我们关注在边较大的时候,围长还能否保持住。
抽样图,n个节点固定,每两个节点之间按照p为概率决定是否有边。p是n1/k−1
随机采样的图大概率不满足围长是k,所以需要进行修改,即对每一个长度小于k的圈,删除一条边。
设X表示随机采样的边数,Y表示删掉的边数,那么图最后剩余的期望边数是E[X−Y]=EX−EY,接下来分别计算。
EX很简单,为pCn2。
Y其实不会超过图中比k小的圈的个数,因此直接计算长度小于k的圈的个数
E[Y]=∑i=3k−1Cni(i−1)!/2pi≤∑i=3k−1nipi<kn(k−1)/k。
求和表示所有长度,每一项的三个因子分别表示哪i个点及其顺序,最后圈顺时针和逆时针一样所以除以2。
最后结果E[X−Y]≥pCn2−∑i=3k−1nipi≥1/4n(1/k+1)。
4 不等式方法
利用Chebyshev导出,如果X是非负的整数随机变量,那么Pr[X=0]≤E2[X]Var[X]
证明:Pr[X=0]≤Pr[∣X−EX∣≥EX]≥E2[X]Var[X]
这里第一个不等号是因为右边项其实就是X取0或大于2EX的概率。
如果X是一个n个伯努利的和,那么Pr[X>0]≥∑i=1nE[X∣Xi=1]Pr[Xi=1]。注意Xi彼此不需要独立。
证明:设一个Y,如果X=0则Y=0,否则Y=1/X,那么Pr[X>0]=E[XY],因为XY整体要么是1要么是0,所以期望E[XY]的概率就是Pr[XY=1],即Pr[X>0]
E[XY]=E[∑i=1nXiY]=∑i=1nE[XiY]=∑i=1n(E[Y∣Xi=1]Pr[Xi=1])=∑i=1nE[1/X∣Xi=1]Pr[Xi=1]≥∑i=1nE[X∣Xi=1]Pr[Xi=1]
remark:这块的例子是随机图的阈值性质,这个是很经典的相变问题。
洛瓦兹局部引理
这个引理主要是研究一系列坏事情不发生有没有可能。我们设一系列坏事情为E1,...,En,我们关心Pr[∩iEiˉ]>0是否成立。
如果Ei都是独立的,那这个很显然。Pr[∩iEiˉ]=∏i(1−Pr[Ei])>0。除非坏事一定发生。
问题在于,如果Ei并不是独立的,那直观上,这个概率会变低,因为如果一个坏事发生另一个一定发生或者很大发生,Pr[Ei∣Ej]>Pr[Ei],那就不好了。所以这个事需要分析。
事件之间的关联性,我们用图表示,节点表示事件,如果事件独立,则没有边,否则不论他们是怎么相关的(Pr[Ei∣Ej]还是Pr[Ei∣EkEj]),都有边。
先看一个简单的局部引理。
如果对所有Ei,Pr[Ei]≤p且deg(Ei)≤d且4dp≤1,那么Pr[∩iEiˉ]>0。
证明:归纳法。先引入记号FS=∩i∈SEiˉ。
考察Pr[Ek∣FS]≤2p能否成立。
当S是空集,Pr[Ek∣FS]=Pr[Ek]=p≤2p成立。
归纳假设:对∀Ss.t.∣S∣<s,k∈/S,有Pr[Ek∣FS]≤2p
递推:对于∀Ss.t.∣S∣=s,k∈/S,有Pr[Ek∣FS]≤2p。把S分成S1和S2,分别是和Ekk有边的点集和无边的点集。如果S2=S那说明S里所有事件都和Ek独立,Pr[Ek∣FS]=Pr[Ek]=p≤2p。
否则,Pr[Ek∣FS]=Pr[Ek∣FS1FS2]=Pr[FS1FS2]Pr[EkFS1FS2]=Pr[FS1∣FS2]Pr[FS2]Pr[EkFS1∣FS2]Pr[FS2]=Pr[FS1∣FS2]Pr[EkFS1∣FS2]
对分子,Pr[EkFS1∣FS2]≤Pr[Ek∣FS2]=Pr[Ek]=p, (第一个不等号是因为交发生肯定比其中一个事件更难发生,第二个是因为FS2和Ek独立)
对分母,Pr[FS1∣FS2]=Pr[∩i∈S1Eiˉ∣FS2]=Pr[∪iEiˉ∣FS2]=1−Pr[∪iEi∣FS2]≥1−∑iPr[Ei∣FS2],因为i是S1里的不在S2里,并且∣S2∣<s,所以用归纳假设,Pr[Ei∣FS2]≤2p。所以分母≥1−∑2p≥1−2pd≥21,所以分子分母结合还是小于等于2p,归纳成功。
利用归纳的结论,Pr[∩iEiˉ]=∏iPr[Eiˉ∣F1...i−1]=∏i(1−Pr[Ei∣F1...i−1])≥∏i(1−2p)≥0。
注意这里1−2p大于0是因为4pd小于等于1,所以p其实小于1/4。
这里的例子是边不相交路径和可满足性,直接带入就可以了很简单。
接下来将一个一般情况
如果存在x1,...,xn∈[0,1],使∀i,Pr[Ei]≤xi∏(i,j)∈E(1−xj),那么Pr[∩iEiˉ]≥∏(1−xi)
证明:用归纳法证明Pr[Ek∣FS]≤xk,思路完全一样。