二分圖

所謂的二分圖,就是指圖中的全部頂點能夠分爲兩個集合A和B,而且圖中的每條邊的兩個頂點都是一個在A,一個在B,則該圖是一個二分圖。html

下面咱們來解釋幾個關於二分圖的一些相關概念。算法

(1)最大匹配spa

在G的一個子圖M中,M的邊集中的任意兩條邊都不依附於同一個頂點,則稱M是一個匹配。選擇這樣的邊數最大的子集稱爲圖的最大匹配問題,最大匹配的邊數稱爲最大匹配數.若是一個匹配中,圖中的每一個頂點都和圖中某條邊相關聯,則稱此匹配爲徹底匹配,也稱做完備匹配。.net

(2)最優匹配htm

最優匹配又稱爲帶權最大匹配,是指在帶有權值邊的二分圖中,求一個匹配使得匹配邊上的權值和最大。通常A和B集合頂點個數相同,最優匹配也是一個完備匹配,即每一個頂點都被匹配。若是個數不相等,能夠經過補點加0邊實現轉化。通常使用KM算法解決該問題。blog

(3)最小覆蓋get

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

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

②最小路徑覆蓋也稱爲最小邊覆蓋,是指用盡可能少的不相交簡單路徑覆蓋二分圖中的全部頂點。二分圖的最小路徑覆蓋數=|V|-二分圖的最大匹配數img

(4)最大獨立集

 最大獨立集是指尋找一個點集,使得其中任意兩點在圖中無對應邊。對於通常圖來講,最大獨立集是一個NP徹底問題,對於二分圖來講最大獨立集=|V|-二分圖的最大匹配數。以下圖中黑色點即爲一個最大獨立集:

咱們能夠看到二分圖的一些性質。

(1)二分圖中的全部迴路的邊數都是偶數。

(2)二分圖的獨立數等於頂點數減去最大匹配數

(3)DAG的最小路徑覆蓋,將每一個點拆點後做最大匹配,結果爲n-m,求具體路徑的時候順着匹配邊走就能夠,匹配邊i→j',j→k',k→l'....構成一條有向路徑。

(4)最大匹配數=左邊匹配點+右邊未匹配點。由於在最大匹配集中的任意一條邊,若是他的左邊沒標記,右邊被標記了,那麼咱們就可找到一條新的增廣路,因此每一條邊都至少被一個點覆蓋。

(5)最小邊覆蓋=圖中點的個數-最大匹配數=最大獨立集。

關於二分圖求最大匹配(匈牙利算法)詳見https://blog.csdn.net/thundermrbird/article/details/52231639

相關文章
相關標籤/搜索