最小割求最大權閉合子圖
阿新 • • 發佈:2021-12-20
現在是几几年,怎麼還在學網路流。
最小割求最大權閉合子圖
定義
有一個有向圖,每一個點都有一個權值(可以為正或負或 \(0\)),選擇一個權值和最大的子圖,使得每個點的後繼都在子圖裡面,這個子圖就叫最大權閉合子圖。
轉化成最小割問題
建立超級源點 \(s\) 和匯點 \(t\).
\(s\) 向每個正權點連邊,流量為權值的絕對值。這條邊存在代表該點在所選子圖中。
每個負權點向 \(t\) 連邊,流量為權值的絕對值。這條邊存在代表該點不在所選子圖中。
原圖邊的流量均為 \(+\infty\) (不能被割掉)。
求該網路的最小割,即可求出最大權閉合子圖包含哪些點。
最大權閉合子圖的權值 \(=\)
合法性
當 \(s\) 和 \(t\) 不連通時,選出的子圖不滿足條件。假設有一條增廣路,\(s\to i\),\(j\to t\),則 \(i\) 被選中,\(j\) 沒有被選中,不符合限制。
當 \(s\) 和 \(t\) 連通時,選出的子圖滿足條件。對於任意一個 \(s\to i\):
-
\(i\) 的後繼負節點到 \(t\) 的邊被割掉了,它們被選中了;
-
由於已經割掉了 \(i\) 的所有後繼負節點,\(i\) 的後繼正節點一定無法走到 \(t\),割掉它們與 \(s\) 的邊是不優的,最小割不會把它們割掉,所以 \(i\) 的所有後繼正節點都被選中了。
最優性
根據前面的討論,任意一個合法的割都對應著唯一一個選點方案;任意一個合法的選點方案都對應著唯一一個割。
這樣任意一個割和選點方案都組成了一個雙射。由於一個選點方案的權值 \(=\) 正權和 \(-\) 割的大小。
所以最大權閉合子圖的權值 \(=\) 正權和 \(-\) 最小割。