最大割问题:
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)= {uv∈E|u∈S,v∈T}
贪心算法、随机选择、局部查找算法能够达到的approximation ratio 都是 12 .
LP for Max-cut:
首先我们可以得到一个非线性的规划:
max ∑uv∈Eyuv
s.t. yuv≤|xu−xv|, ∀uv∈E
xv∈{0,1}, ∀v∈V
yuv 是对G中所有边进行赋值,如果u,v同属于一个sub-graph,则 |xu−xv|=0 , then yuv=0 , otherwise yuv=1 .
引入三角关系对:
可以得到一个线性的规划:
max ∑uv∈Eyuv
s.t. yuv≤yuw+ywv ∀u,v,w∈V
yuv+yuw+ywv≤2 ∀u,v,w∈V
yuv∈{0,1} ∀u,v∈V
可以计算出这个线性规划和整数规划的gap=2. 因此用线性规划的方法永远也达不到比 12 好的结果。
二次规划quadratic program:
max ∑uv∈Eyuv
s.t. yuv≤12(1−xuxv) ∀uv∈E
xv∈{−1,1} ∀v∈V
二次规划是很NP-complete问题,因此可以把它relax to半定规划SDP,通过求出半定规划的最优解,然后rounding出二次规划的可行解,然后求出这个解的ratio。
SDP:
max 12∑uv∈E(1−⟨xu,xv⟩)
s.t ⟨xu,xv⟩=1, ∀v∈V
xv∈R, ∀v∈V
假设已经通过SDP的凸优化解法求出了SDP的optimal solution,记作: x∗v
现在需要找一个rounding的策略来求出可行解。
给出一个rounding方法:
随机找单位向量 u ,使得 u∈Rn,∥u∥2=1
然后让sol: x̂ v=sgn(⟨x∗v,v⟩)
什么意思呢,就是找一个单位向量,然后让这个单位向量和optimal solution求出的向量来进行运算,如果则两个向量之间的家教小于180度,那么让最终的解为1,如果大于180度,置为0.
如何找这个单位向量?
random r=(r1,r2,…,rn)∈Rn , where each ri∼N(0,1) i.i.d.
就是把 u 里面的每一个方向都用二项分布随机找出来。
最后来求approximation ratio。
E[cut]=∑uv∈EPr[sgn(⟨x∗u,r⟩)≠sgn(⟨x∗v,r⟩)]
=∑uv∈Eθuvπ
=∑uv∈Earccos⟨x∗u,x∗v⟩π
在MICHEL X. GOEMANS 1995年的论文inproved approximation algorithms for maximum cut and satisfiability problems using semidefinite programmming证明了:
∑uv∈Earccos⟨x∗u,x∗v⟩π≥α∑uv∈E12(1−⟨x∗u,x∗v⟩)
其中:
α=infx∈[−1,1]2arccos(x)π(1−x)=0.87856…
这就证明了利用半定规划能够达到的approximation ratio。