二分圖
不存在奇數環,染色法不存在矛盾
通常將點分為兩個集合,看每一條邊是否為連向兩個集合中的點,是則為二分圖
染色法辨別二分圖
匈牙利演算法
概念
最小點覆蓋:選出最小的點集,使得每一條邊的兩個端點至少有一個被選出來
在二分圖當中,最小點覆蓋等於最大匹配數
最大獨立集:從一個圖中選出最多的點,使得選出的點之間沒有邊,內部沒有邊
最大團:選出最多的點,使得選出的點之間都有邊
兩者之間互為補集
二分圖中求最大獨立集等價於去掉最少的點破壞所有的邊
=找最小點覆蓋=找最大匹配數
即最終為n-m
最小路徑點覆蓋:針對有向無環圖,用最少的互不相交的路徑(意味著所有點不能重複),將所有點覆蓋,和最大匹配數互補
推導
拆點:
路徑對應匹配點,路徑終點對應一個左部的非匹配點
將路徑轉化為二分圖,每條邊最多隻有一個出度入度,即兩類圖中只有一條邊
將路徑的出點入點分為兩類,必為二分圖
<=>讓左側非匹配點最少
<=>讓左側點匹配最多
<=>找最大匹配
最大匹配數=最小點覆蓋=總點數-最大獨立集=總點數-最小路徑點覆蓋
最小路徑重複點覆蓋:兩條路徑允許 原圖的最小路徑覆蓋等於新圖的最小路徑重複點覆蓋
- 先求傳遞閉包
- 求最小路徑覆蓋