1. 程式人生 > 實用技巧 >通達OA系統對接 單點登入 標準SaaS技術服務說明

通達OA系統對接 單點登入 標準SaaS技術服務說明

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

0 定義

設G=(V,E)是一個無向圖。如頂點集V可分割為兩個互不相交的子集,並且圖中每條邊依附的兩個頂點都分屬兩個不同的子集。則稱圖G為二分圖。也就是說在二分圖中,頂點可以分為兩個集合X和Y,每一條邊的兩個頂點都分別位於X和Y集合中。如下圖所示:

二分圖

1 最大匹配
在G的一個子圖M中,M的邊集中的任意兩條邊都不依附於同一個頂點,則稱M是一個匹配。選擇這樣的邊數最大的子集稱為圖的最大匹配問題,最大匹配的邊數稱為最大匹配數.如果一個匹配中,圖中的每個頂點都和圖中某條邊相關聯,則稱此匹配為完全匹配,也稱作完備匹配。如果在左右兩邊加上源匯點後,圖G等價於一個網路流,二分圖

最大匹配問題可以轉為最大流的問題。解決此問的匈牙利演算法的本質就是尋找最大流的增廣路徑。上圖中的最大匹配如下圖紅邊所示:

二分圖

2 最優匹配

最優匹配又稱為帶權最大匹配,是指在帶有權值邊的二分圖中,求一個匹配使得匹配邊上的權值和最大。一般X和Y集合頂點個數相同,最優匹配也是一個完備匹配,即每個頂點都被匹配。如果個數不相等,可以通過補點加0邊實現轉化。一般使用KM演算法解決該問題。

3最小覆蓋

二分圖的最小覆蓋分為最小頂點覆蓋和最小路徑覆蓋:

①最小頂點覆蓋是指最少的頂點數使得二分圖G中的每條邊都至少與其中一個點相關聯,二分圖的最小頂點覆蓋數=二分圖的最大匹配數;

②最小路徑覆蓋也稱為最小邊覆蓋,是指用盡量少的不相交簡單路徑覆蓋二分圖中的所有頂點。二分圖的最小路徑覆蓋數=|V|-二分圖的最大匹配數;

4最大獨立集

最大獨立集是指尋找一個點集,使得其中任意兩點在圖中無對應邊。對於一般圖來說,最大獨立集是一個NP完全問題,對於二分圖來說最大獨立集=|V|-二分圖的最大匹配數。如下圖中黑色點即為一個最大獨立集:

二分圖



轉載於:https://my.oschina.net/airship/blog/1531634