優化課上學到了一個非常有意思的例子,學期末疲於奔命之餘做個筆記。

眾所周知,求無向圖的全局最大割是 mathsf{NP}	ext{-Hard} 的:對於無向帶權圖 G=(V,E) ,求 Ssubseteq V ,最大化所有滿足 (u,v)in E (uin S,v
otin S) 的邊權之和。

許多OI選手也許知道,我們很容易得到最大割的0.5-近似:只需要以1/2的概率對每個頂點隨機採樣得到 S ,顯然有 forall(i,j)in E, mathbb{P}((i,j)	ext{ in cut})=frac{1}{2} 。所以有 mathbb{E}(	ext{cut})=frac{1}{2}sum_{(i,j)in E}w_{ij}gefrac{1}{2}	ext{MAXCUT} ,故一定存在一種割的方案,大於等於 frac{1}{2}	ext{MAXCUT}

怎麼做得更好?直接的想法是使用整數線性規劃:定義變數 x_i,e_{ij}inleft{0,1
ight}(i,jin V) 。求解

egin{align} max &sum_{(i,j)in E}w_{ij}e_{ij},\ 	ext{subj. to} &e_{ij}le x_i+x_j,\ &e_{ij}le 2-x_i-x_j. end{align}

意義是很顯然的。然後,我們把它作為一個普通的線性規劃來求解。

然而,這不是一個好的鬆弛方法。注意到令 x_i=frac{1}{2},forall iin V ,那麼就得到了一個所有 e_{ij}=1 的平凡解。

事實上,使用半正定規劃,可以得到一個更優秀的近似。半正定規劃是指有如下形式的問題:

egin{align} min &m{C}cdotm{X},\ 	ext{subj. to} &m{A}_icdotm{X}=b_i,i=1,2,dots,m,\ &m{X}gem{0}. end{align}

其中 m{A}cdotm{B} 為矩陣內積,即 	ext{tr} m{A}^Tm{B}=sum_{i,j}m{A}_{ij}m{B}_{ij}m{X}gem{0}m{X} 半正定。

不難發現這個問題的可行集是一個凸集,故半正定規劃是凸優化的一個特例,可以多項式時間求解。

想法是這樣的:我們把 left{x_i
ight} 擴展為 mathbb{R}^n 中單位球上的單位向量 left{m{v}_i
ight} ,使用兩個向量的夾角表示兩個頂點是否在同一個割集內。若 m{v}_i^Tm{v}_j=cosleft<m{v}_i,m{v}_j
ight> 越接近1,我們越傾向於把 i,j 放在同一個割集內;若之越接近-1,我們越傾向於把 (i,j) 作為一個割邊。

於是問題轉變為:

egin{align} max &frac{1}{4}sum_{i,j}w_{ij}-frac{1}{4}m{W}cdotm{V},\ 	ext{subj. to} &m{V}_{ii}=1,i=1,2,dots,n. end{align}

其中 m{V}left{m{v}_1,dots,m{v}_n
ight} 的Gram矩陣,即 m{V}_{ij}=m{v}_i^Tm{v}_j 。我們有約束 |v_i|_2=1 是因為所有向量都是單位向量。係數為 frac{1}{4} 是因為矩陣中 (i,j)(j,i) 會算兩次。

很容易發現 m{V} 是半正定矩陣,設 m{V}_0=[m{v}_1 dots m{v}_n] ,則 m{x}^Tm{Vx}=m{x}^Tm{V}_0^Tm{V}_0m{x}=(m{V}_0m{x})^T(m{V}_0m{x})=|m{V}_0m{x}|_2^2ge 0

現在我們作一次鬆弛,移除Gram矩陣的要求,只要求 m{V} 是半正定矩陣,即:

egin{align} max &frac{1}{4}sum_{i,j}w_{ij}-frac{1}{4}m{W}cdotm{V},\ 	ext{subj. to} &m{V}_{ii}=1,i=1,2,dots,n,\ &m{V}gem{0}. end{align}

這是一個典型的半正定規劃問題。求出 m{V} 之後我們可以直接使用喬萊斯基分解 m{V}=m{L}^Tm{L} 得到 m{v}_1,dots,m{v}_n

現在我們來考慮這個演算法的近似效果。與0.5-近似的方法相同,我們通過一個期望的方法證明近似比。這個方法被稱為Goemans-Williamson randomized rounding。

我們現在把每個頂點對應到了單位球上的向量 m{v}_i ,最自然的想法是,我們用一個過原點的超平面把單位球切成兩部分,那麼自然得到了一個割。於是我們隨機取一個單位向量 m{r} ,若 m{r}^Tm{v}_i>0 ,則 iin S ;若 m{r}^Tm{v}_i<0 ,則 i
otin S

現在我們來考慮這個割的期望: mathbb{E}(	ext{cut})=sum_{ij}w_{ij}mathbb{P}((i,j)	ext{ in cut})

考慮 m{v}_i,m{v}_j 張成的平面,兩個向量被割開,當且僅當平面穿過兩個向量的夾角。故 mathbb{P}((i,j)	ext{ is cut})=frac{left<m{v}_i,m{v}_j
ight>}{pi}=frac{arccos(m{v}_i^Tm{v}_j)}{pi}

現在我們要比較期望結果 mathbb{E}(	ext{cut})=sum_{(i,j)in E} w_{ij}frac{arccos(m{v}_i^Tm{v}_j)}{pi} 與半正定規劃得到的解 	ext{SDP}(	ext{cut})=sum_{(i,j)in E}w_{ij}(frac{1}{2}-frac{1}{2}m{v}_i^Tm{v}_j)ge	ext{MAXCUT}

作出 frac{arccos x}{pi}frac{1}{2}-frac{1}{2}x 的圖像:

求出兩個函數比值的最小值: alpha=min_{xin[-1,1]}frac{(arccos x)/pi}{0.5-0.5x}approx 0.8785

因此,我們得到 mathbb{E}(	ext{cut})gealphacdot	ext{SDP}(	ext{cut})ge0.878,	ext{SDP}(	ext{cut})ge0.878,	ext{MAXCUT} 。因此,一定存在一個割,至少是最大割的0.878-近似。

事實上,這已經是一個很好的近似了,因為有定理:

最大割的k-近似在 k>0.941 時是 mathsf{NP}	ext{-Hard} 的。


推薦閱讀:
相关文章