半定规划(SDP)for 最大割

半定规划(SDP)for 最大割

最大割问题:

Instance: given an undirected graph G(V,E), find a bipartition of V into S and T that maximizing the size of the cut E(S,T)= {uvE|uS,vT}

贪心算法、随机选择、局部查找算法能够达到的approximation ratio 都是 12 .

LP for Max-cut:

首先我们可以得到一个非线性的规划:

max     uvEyuv

s.t.      yuv|xuxv|,      uvE

xv{0,1},      vV

yuv 是对G中所有边进行赋值,如果u,v同属于一个sub-graph,则 |xuxv|=0 , then yuv=0 , otherwise yuv=1 .

引入三角关系对:

可以得到一个线性的规划:

max     uvEyuv

s.t.     yuvyuw+ywv     u,v,wV

yuv+yuw+ywv2     u,v,wV

yuv{0,1}     u,vV

可以计算出这个线性规划和整数规划的gap=2. 因此用线性规划的方法永远也达不到比 12 好的结果。

二次规划quadratic program:

max      uvEyuv

s.t.     yuv12(1xuxv)     uvE

xv{1,1}     vV

二次规划是很NP-complete问题,因此可以把它relax to半定规划SDP,通过求出半定规划的最优解,然后rounding出二次规划的可行解,然后求出这个解的ratio。

SDP:

max     12uvE(1xu,xv)

s.t xu,xv=1,    vV

xvR,     vV

假设已经通过SDP的凸优化解法求出了SDP的optimal solution,记作: xv

现在需要找一个rounding的策略来求出可行解。

给出一个rounding方法:

随机找单位向量 u ,使得 uRn,u2=1

然后让sol: x̂ v=sgn(xv,v)

什么意思呢,就是找一个单位向量,然后让这个单位向量和optimal solution求出的向量来进行运算,如果则两个向量之间的家教小于180度,那么让最终的解为1,如果大于180度,置为0.

如何找这个单位向量?

random r=(r1,r2,,rn)Rn , where each riN(0,1) i.i.d.

就是把 u 里面的每一个方向都用二项分布随机找出来。

最后来求approximation ratio。

E[cut]=uvEPr[sgn(xu,r)sgn(xv,r)]

=uvEθuvπ

=uvEarccosxu,xvπ

在MICHEL X. GOEMANS 1995年的论文inproved approximation algorithms for maximum cut and satisfiability problems using semidefinite programmming证明了:

uvEarccosxu,xvπαuvE12(1xu,xv)

其中:

α=infx[1,1]2arccos(x)π(1x)=0.87856

这就证明了利用半定规划能够达到的approximation ratio。

你可能感兴趣的:(问题)