1. 程式人生 > >最小點覆蓋,最小邊覆蓋,最大匹配,最小路徑覆蓋,最大獨立集總結。

最小點覆蓋,最小邊覆蓋,最大匹配,最小路徑覆蓋,最大獨立集總結。

如果沒有申明是什麼圖預設是二分圖

最小點覆蓋:

點覆蓋的概念定義
對於圖G=(V,E)中的一個點覆蓋是一個集合S⊆V使得每一條邊至少有一個端點在S中。

最小點覆蓋:就是中點的個數最少的S集合。
普通圖的最小點覆蓋數好像只能用搜索解,沒有什麼比較好的方法(可能我比較弱。。)所以在此只討論二分圖的最小點覆蓋的求法

結論: 二分圖的最小點覆蓋數=該二分圖的最大匹配數,具體證明的方法看大佬部落格,裡面還給出瞭如何求具體的最小覆蓋的點是哪些點。

最小邊覆蓋:

邊覆蓋的概念定義:
邊覆蓋是圖的一個邊子集,使該圖上每一節點都與這個邊子集中的一條邊關聯,只有含孤立點的圖沒有邊覆蓋,邊覆蓋也稱為邊覆蓋集,圖G的最小邊覆蓋

就是指邊數最少的覆蓋,圖G的最小邊覆蓋的邊數稱為G的邊覆蓋數。

普通圖 的最小邊覆蓋好像也沒有什麼除了暴力好的解法,自己菜(逃

結論: 二分圖的最小邊覆蓋數=圖中的頂點數-(最小點覆蓋數)該二分圖的最大匹配數

最大匹配:

匹配:在圖論中,一個「匹配」(matching)是一個邊的集合,其中任意兩條邊都沒有公共頂點。

最大匹配:一個圖所有匹配中,所含匹配邊數最多的匹配,稱為這個圖的最大匹配。

演算法: 匈牙利演算法求二分圖的最大匹配

最小路徑覆蓋:

DAG圖的最小路徑覆蓋可以轉化為二分圖的人後求解直接上大佬的部落格吧反正讓我講也講不出什麼花來,我只是整合一下,學起來比較系統。

還有無向圖的最小路徑覆蓋,找了很多資料都沒有找到合適的解釋,這裡有一篇部落格提到了,但是沒有找到其他的資料證明他的正確性,嚴重的顛覆了我的認知。

最大獨立集:

最大獨立集:在N個點的圖G中選出m個點,使這m個點兩兩之間沒有邊的點中,m的最大值。
結論: 二分圖的最大點獨立數=點的個數-最小點覆蓋數(最大匹配)
證明: 除過最小點覆蓋集,剩下的點全部都是互相獨立的,因為它們任意兩個點之間都沒有直接的連邊。
我們用反證法來證明一下,設最小點覆蓋集為V,假如有兩個沒在V中的點之間有一條邊,那麼這條邊就不會被V中的點所覆蓋,那麼V就不是
最小點覆蓋集,又因為V是最小點覆蓋集,所以剛才假設的兩個點時不存在的,座椅,除過V之外的點都是兩兩相互獨立的。