1. 程式人生 > >網路流學習筆記1——二分圖

網路流學習筆記1——二分圖

注:本系列學習筆記大部分是根據zhhx dalao的講課課件來寫的(然後加上了蒟蒻的一些小yy以及題目解析),在此對zhhx表示深深的謝意!

PART1 一些概念與模型

二分圖最大匹配


就是一個二分圖中最多能夠匹配的對數。
建立一個源點S,一個匯點T,S點向左點集X連邊,右點集Y向T點連邊,兩個點集間從左向右連邊,容量都是1,求最大流即可。
很顯然一個流就代表一個匹配
(求最大流的演算法主要是KM(\(N*M^2\)),dinic演算法(\(M*N^2\))。dinic演算法求二分圖最大匹配的時間複雜度是\(M*\sqrt N\)

二分圖最大權匹配

別的和最大匹配一樣,但是給X到Y的邊加費用為對應的邊權,然後求S到T的最大費用流(注意這裡不是最大費用最大流,因為那個是要求在最大流基礎上的最大費用,可能就不是全域性最大費用了)

二分圖最小點覆蓋

就是選出來最少數量的點,使得這些點所連線的邊的並集覆蓋掉所有的邊。
定理:最小點覆蓋=最大匹配
證明:首先,對於flow個最大匹配,每個匹配都需要一個點,也就是最少需要flow個點,實際上最多也是隻需要flow個點,選了flow個點後,還有一條邊兩端的點都不在這個點集中說明還可以增廣,這就和最大流的假設違背了。

二分圖最小點權覆蓋集

定理:最小點權覆蓋=最小割=最大流
證明:S-X和Y-T的連對應點權容量的邊, X-Y的連容量inf的邊,然後求最小割,首先中間的邊不會被割,也就是左右邊的邊選一些割掉(左右選一些點作為覆蓋點)。

二分圖最大獨立集

在二分圖中選出來一些點,使得這些點兩兩之間都沒有邊相連。
定理:

最大獨立集=點數-最小點覆蓋
yy的證明:一條邊只有兩個點,如果排除這些最小點覆蓋的集合,顯然每條邊只剩下剩下的那個點。這些點只有通過邊才能與其他點相連,但是它們相連的邊上的另外一點都已經被排除,所以相當於它們“與世隔絕”,所以這些點集就是最大獨立集的數量。

最大點權獨立集

定理:總點權-最小割
yy的證明:正難則反,這個東西肯定是總點權減去一個什麼值,然後這個值還要儘可能小,而且減去這個東西后還要保證留下來的點兩兩之間互不到達。將這個圖斷開的最小代價就是最小割了,所以自然減去的東西就是最小割了qwqwq

小結:

二分圖最大匹配=二分圖最小點覆蓋=最小割=最大流=n-最大獨立集。

二分圖最小權覆蓋 和 二分圖最大權獨立集 互補。

DAG最小路徑覆蓋(不相交)

DAG最小路徑覆蓋(可相交)

霍爾定理

霍爾定理拓展

PART2 一些題目練習

啊。。終於弄完了知識點。。。下面來練幾道題吧