二分圖匹配的擴展問題

/**

    前面提到了匈牙利算法解決二分圖匹配問題,但是基於二分圖還有幾個經常
    見的擴展問題如下:
        1、最大獨立集點數
        2、最小頂點覆蓋數
        3、最小路徑覆蓋數
    **********************************************************************
    最大獨立集點數:

        有5個同學,小明,小強,小壯,小雨,小麗,現在要做遊戲,可是小雨
    小麗都不喜歡小明,問最多能挑出多少學生使他們在一起玩???

    顯然答案爲4,直接把小明趕走即可,因爲如果小明在,小雨和小麗兩個女女
    就不幹了。。

    *最大獨立集點數 = N - 最大匹配數

    如下建圖

       小雨 * * *小明
              *
       小麗 *    小強

                 小壯
    最大匹配爲 1,有 5 個點,所以最大獨立集點數爲 5 - 1 = 4;
    **********************************************************************

    最小頂點覆蓋數:
        即在二分圖中用最少的點關聯所有的邊,如上圖:最小頂點覆蓋數爲 1
    即小明一個人就關聯了僅存的兩條邊。。

    最小頂點覆蓋數 = 最大匹配數

    Konig定理:二分圖的最小頂點覆蓋數等於最大匹配數。
    網上有關於這個定理的證明。。。

    後面還會遇到樹的最小支配集,即最少的點關聯所有的點或邊。。。
    樹的最小支配集用貪心和樹形DP 解決,後面會提到
    **********************************************************************

    最小路徑覆蓋
        路徑覆蓋就是在*無環有向圖*中找一些路徑,使之覆蓋了圖中所有頂點,且
    任何一個頂點有且只有一條路徑與之關聯。

    最小路徑覆蓋 = N - 最大匹配數

    **********************************************************************

        二分圖匹配和網絡流一樣,都在於建圖,應該說幾乎所有的圖論題都在於建圖
    建圖的技巧和難度,決定了這道題的質量和難度,所以會套模板是基礎,建圖纔是
    王道……

    注意:上面3個只適用於有向無環圖,當爲無向圖時可以通過拆點轉換爲無向圖,但
    算出的最大匹配得除二。。 但不能有環

    拆點:N個點 則把 X 點拆成 2N+X 則 2N+X 完全等價X 去添邊,即無向邊ab,
    可拆成 a->2N+b b->2N+a。。用匈牙利算法算出最大匹配除二即爲匹配

*/

收藏於 2011-11-23
來自於百度空間

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章