二分圖多重匹配問題

在二分圖最大匹配中,每個點(不管是X方點還是Y方點)最多隻能和一條匹配邊相關聯,然而,我們經常遇到這種問題,即二分圖匹配中一個點可以和多條匹配邊相關聯,但有上限,或者說,Li表示點i最多可以和多少條匹配邊相關聯。

二分圖多重匹配分爲二分圖多重最大匹配與二分圖多重最優匹配兩種,分別可以用最大流與最大費用最大流解決。

(1)二分圖多重最大匹配:
在原圖上建立源點S和匯點T,S向每個X方點連一條容量爲該X方點L值的邊,每個Y方點向T連一條容量爲該Y方點L值的邊,原來二分圖中各邊在新的網絡中仍存在,容量爲1(若該邊可以使用多次則容量大於1),求該網絡的最大流,就是該二分圖多重最大匹配的值。

(2)二分圖多重最優匹配:
在原圖上建立源點S和匯點T,S向每個X方點連一條容量爲該X方點L值、費用爲0的邊,每個Y方點向T連一條容量爲該Y方點L值、費用爲0的邊,原來二分圖中各邊在新的網絡中仍存在,容量爲1(若該邊可以使用多次則容量大於1),費用爲該邊的權值。求該網絡的最大費用最大流,就是該二分圖多重最優匹配的值。

例題:
【1】POJ1698 Alice's Chance
將電影作爲X方點,每一天作爲Y方點(最多50周,每週7天,所以共設350個Y方點),若第i個電影可以在第j天搞就連邊(i, j)。每個X方點的L值爲該電影總共要搞多少天,每個Y方點的L值爲1(每天最多隻能搞一個電影),然後求二分圖多重最大匹配,若能使所有從源點連向X方點的邊都滿流,則輸出Yes,否則輸出No。
【2】POJ2112 Optimal Milking
先預處理求出每兩個點(包括擠奶點和牛)間的最短距離,然後將所有擠奶點作爲X方點(L值爲該擠奶點最多可以容納多少牛),所有牛作爲Y方點(L值爲1),Xi和Yj間邊的權值爲這兩個點之間的最短距離(若這兩點間不存在路徑則此處無邊),然後問題就變成了求一個多重匹配,使得每個Y方點都有匹配點且匹配邊中權值的最大值最小。
可以枚舉最大邊權值S,然後,原圖中所有權值大於S的邊都要刪去。若此時圖中存在符合要求的多重匹配,則S合法否則S不合法。由於S的合法性是單調的,所以可以二分枚舉S。

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