二分圖的覆蓋與獨立集

1.二分圖最小點覆蓋

給定一張二分圖,求出一個最小的點集 SS,使得圖中任意一條邊都有至少一個端點屬於 SS。這個問題被稱爲二分圖的最小點覆蓋 (vertex cover),簡稱最小覆蓋。

Konig 定理:

    二分圖最小點覆蓋包含的點數等於二分圖最大匹配包含的邊數。

2.二分圖最大獨立集

給定一張無向圖 G=(V,E)G=(V,E),滿足下列條件的點集 SS 被稱爲圖的獨立集

  1. SVS \subset V
  2. x,yS, (x,y)E\forall x,y \in S, \ (x,y) \notin E

通俗地講,圖的獨立集就是任意兩點之間都沒有邊相連的點集。包含點數最多的一個就是圖的最大獨立集

對應地,任意兩點之間都有一條邊相連的子圖被稱爲無向圖的。點數最多的團被稱爲圖的最大團

定理:

無向圖 GG 的最大團等於其補圖 GG' 的最大獨立集。

注:G=(V,E)G'=(V,E') 被稱爲 G=(V,E)G=(V,E) 的補圖,其中 E={(x,y)∉E}E'= \left\{(x,y) \not\in E \right\}

定理:

GG 是有 nn 個節點的二分圖,GG 的最大獨立集的大小等於 nn 減去最大匹配數。

證明:

選出最多的點構成獨立集

\Leftrightarrow 在圖中去掉最少的點,使剩下的點之間沒有邊

\Leftrightarrow 用最少的點覆蓋所有的邊

因此,去掉二分圖的最小點覆蓋,剩餘的點就構成二分圖的最大獨立集。而最小點覆蓋數等於最大匹配數。故最大獨立集大小等於 nn 減去最大匹配數。

3.有向無環圖的最小路徑點覆蓋

給定一張有向無環圖,要求用盡量少的不相交的簡單路徑,覆蓋有向無環圖的所有頂點(也就是每個頂點恰好被覆蓋一次)。這個問題被稱爲有向無環圖的最小路徑點覆蓋,簡稱最小路徑覆蓋。

設原來的有向無環圖爲 G=(V,E)G=(V,E)n=Vn=|V|。把 GG 中的每個點 xx 拆成編號爲 xxx+nx+n 的兩個點。建立一張新的二分圖,1n1 \sim n 作爲二分圖左部點,n+12nn+ 1 \sim 2n 作爲二分圖右部點,對於原圖的每條有向邊 (x,y)(x,y),在二分圖的左部點 xx 與右部點 y+ny+n 之間連邊。最終得到的二分圖稱爲 GG 的拆點二分圖,記爲 G2G_2

定理:

有向無環圖 GG 的最小路徑點覆蓋包含的路徑條數,等於 nn 減去拆點二分圖 G2G_2 的最大匹配數。

4.有向無環圖的最小路徑可重複點覆蓋

給定一張有向無環圖,要求用盡量少的可相交的簡單路徑,覆蓋有向無環圖的所有頂點(也就是一個節點可以被覆蓋多次)。這個問題被稱爲有向無環圖的最小路徑可重複點覆蓋。

在最小路徑可重複點覆蓋中,若兩條路徑 ...upv...... → u → p → v → ......xpy....... → x → p → y →.... 在點 pp 相交,則我們在原圖中添加一條邊 (x,y)(x,y),讓第二條路徑直接走 xyx→y,就可以避免重複覆蓋點 pp

進一步地,如果我們把原圖中所有間接連通的點對 x,yx,y 直接連上有向邊 (x,y)(x,y),那麼任何 有路徑相交的點覆蓋 一定都能轉化成 沒有路徑相交的點覆蓋。

綜上所述,有向無環圖 GG 的最小路徑可重複點覆蓋,等價於先對有向圖傳遞閉包,得到有向無環圖 GG',再在 GG' 上求一般的(路徑不可相交的)最小路徑點覆蓋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章