UA MATH567 高维统计II 随机向量8 图的max-cut问题 0.5近似算法
UA MATH567 高維統計II 隨機向量8 圖的Max-cut問題 0.5近似算法
前兩講討論了隨機向量的概率不等式的一個應用:半正定規劃近似求解整數規劃,這一講我們討論它的另一個應用——圖的max-cut問題。
問題描述
考慮圖G=(V,E)G=(V,E)G=(V,E),max-cut的問題是如何畫一條曲線,使得與曲線相交的邊數最多,記此時的邊數為MAX?CUT(G)MAX-CUT(G)MAX?CUT(G),現在我們的目標是設計一個算法,輸入圖GGG,輸出MAX?CUT(G)MAX-CUT(G)MAX?CUT(G)。
我們嘗試給出一個正式的定義:
MAX?CUT(G)=max?V=V1?V2{∣E12∣:(v1,v2)∈E12?E,v1∈V1,v2∈V2}MAX-CUT(G) \\= \max_{V = V_1 \sqcup V_2}\{|E_{12}|:(v1,v2) \in E_{12} \subset E,v_1 \in V_1,v_2 \in V_2\}MAX?CUT(G)=V=V1??V2?max?{∣E12?∣:(v1,v2)∈E12??E,v1?∈V1?,v2?∈V2?}
也就是說把圖的頂點分割為兩類,計算連接不同類頂點的邊數,目標是找一種分類方法使得這樣的邊數最大。
用整數規劃建模
接下來我們可以試著建個模,用AAA表示nnn階無向圖G=(V,E)G=(V,E)G=(V,E)的伴隨矩陣,
Aij={1,(vi,vj)∈E0,(vi,vj)?EA_{ij} = \begin{cases} 1, (v_i,v_j) \in E \\ 0, (v_i,v_j) \notin E \end{cases}Aij?={1,(vi?,vj?)∈E0,(vi?,vj?)∈/?E?
用x=(x1,?,xn)∈{?1,1}nx = (x_1,\cdots,x_n) \in \{-1,1\}^nx=(x1?,?,xn?)∈{?1,1}n表示頂點的分類,等于1的是一類,等于-1的是另一類,則給定xxx作為一個分割,我們可以計算出它"切開"的邊數為
CUT(G,x)=12∑xixj=?1AijCUT(G,x)=\frac{1}{2}\sum_{x_ix_j=-1}A_{ij}CUT(G,x)=21?xi?xj?=?1∑?Aij?
首先這個是一個無向圖,所以AijA_{ij}Aij?對稱,我們需要除以1/2;其次我們要計算的是EEE中連接不同類頂點的邊數,我們用xi=1,?1x_i=1,-1xi?=1,?1表示頂點iii的類別,那么頂點i,ji,ji,j不同類說明xixj=?1x_ix_j=-1xi?xj?=?1。
因為xixj=?1or1x_ix_j=-1\ or 1xi?xj?=?1?or1,于是我們可以用1?xixj1-x_ix_j1?xi?xj?代替求和中的約束xixj=?1x_ix_j=-1xi?xj?=?1,只是這樣的話在xixj=?1x_ix_j=-1xi?xj?=?1的時候結果就等于2了,所以我們額外再除以2,因此
CUT(G,x)=12∑xixj=?1Aij=14∑i,jAij(1?xixj)=14∑i,jAij?14∑i,jAijxixjCUT(G,x)=\frac{1}{2}\sum_{x_ix_j=-1}A_{ij} = \frac{1}{4}\sum_{i,j}A_{ij}(1-x_ix_j) \\ = \frac{1}{4}\sum_{i,j}A_{ij}-\frac{1}{4}\sum_{i,j}A_{ij} x_ix_jCUT(G,x)=21?xi?xj?=?1∑?Aij?=41?i,j∑?Aij?(1?xi?xj?)=41?i,j∑?Aij??41?i,j∑?Aij?xi?xj?
第一項是常數,于是
MAX?CUT(G)=max?xCUT(G,x)?min?x∈{?1,1}nxTAxMAX-CUT(G)=\max_x CUT(G,x) \Leftrightarrow \min_{x \in \{-1,1\}^n} x^TAxMAX?CUT(G)=xmax?CUT(G,x)?x∈{?1,1}nmin?xTAx
這樣我們就把圖的Max-cut問題用整數規劃表示出來了,遺憾的是這個問題是NP問題,我們需要設計一些算法來做優化。但作為高維統計理論的一個應用,我們對設計算法并不感興趣,我們想做的是找到MAX?CUT(G)MAX-CUT(G)MAX?CUT(G)的上界和下界,從而為算法的效率與誤差分析提供一點幫助。
我們先把這個問題隨機化,假設x~Unif({?1,1}n)x \sim Unif(\{-1,1\}^n)x~Unif({?1,1}n),則
ECUT(G,x)=12∣E∣≥12MAX?CUT(G)ECUT(G,x)=\frac{1}{2}|E| \ge \frac{1}{2}MAX-CUT(G)ECUT(G,x)=21?∣E∣≥21?MAX?CUT(G)
說明
ECUT(G,x)=E14∑i,jAij(1?xixj)=14∑i,jAij(1?Exixj)=14∑i,jAij(1?ExiExj)=14∑i,jAij=12∣E∣ECUT(G,x) =E\frac{1}{4}\sum_{i,j}A_{ij}(1-x_ix_j) = \frac{1}{4}\sum_{i,j}A_{ij}(1-Ex_ix_j) \\ = \frac{1}{4}\sum_{i,j}A_{ij}(1-Ex_iEx_j) =\frac{1}{4}\sum_{i,j}A_{ij} = \frac{1}{2}|E|ECUT(G,x)=E41?i,j∑?Aij?(1?xi?xj?)=41?i,j∑?Aij?(1?Exi?xj?)=41?i,j∑?Aij?(1?Exi?Exj?)=41?i,j∑?Aij?=21?∣E∣
也就是說我們按均勻分布的思路隨機對每個頂點分類,這樣得到的分割平均可以“切開”一半的邊,稱這個結果為0.5-approximation algorithm。另外,MAX?CUT(G)≤∣E∣MAX-CUT(G) \le |E|MAX?CUT(G)≤∣E∣是肯定的,“切開”的邊數目一定小于總的邊數。這個結果還可以提供的信息是我們就是用拋硬幣的方式隨便亂切,平均都有一半的邊被切到,因此MAX?CUT(G)MAX-CUT(G)MAX?CUT(G)肯定是不小于一半的邊數的。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的UA MATH567 高维统计II 随机向量8 图的max-cut问题 0.5近似算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UA MATH563 概率论的数学基础
- 下一篇: UA MATH567 高维统计II 随机