1. 程式人生 > 實用技巧 >KM演算法總結

KM演算法總結

二分圖最大權匹配問題

二分圖中如果給每條邊一個權值,此時求解二分圖的權值和最大的完美匹配的問題就是所謂的二分圖的最大權匹配問題,對於不是完全二部圖的二分圖,我們可以新增權值為0的邊,使其變為完全二部圖。

求解方法

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

理論結果

從上面的分析可以看出,相等子圖裡面的最大完美匹配一定是二部圖的最大完美匹配,而問題在於相等子圖並不一定存在完美匹配,所以現在的問題是如何給相等子圖改標號,使得相等子圖中的匹配數增加,當相等子圖中的匹配數等於最大匹配數時,演算法停止。

演算法

在這裡插入圖片描述
匈牙利演算法中每次第一步都是選取一個未飽和點x作為初始點,T是位於Y那邊的存在於匹配中的點,當匈牙利演算法停止時沒有找到完美匹配,此時S中的點一定是於T中的點的,那麼我們只需要將S中未飽和的點飽和即可,因此我們需要從Y-T中新增某些點與S中x的邊,這樣就可以保證新增的邊一定是有用的邊,也即新增新的邊以後,新的相等子圖裡面一定存在增光路。而對於權值的改變要保證S,T之間的匹配不變,S,T之外的匹配不變。這樣就不會在演算法的後續過程中影響已經屬於最大權完美匹配中的邊。

在這裡插入圖片描述
變換的原則實際上從已經確定的相等子圖中擴充出去,為了不破壞之前的相等子圖中的邊,所以原來相等子圖中的頂點權值和不變。而為了避免破壞相等子圖的補圖的可行編號,所以我們只需要調整相等子圖兩邊的權值即可。
在這裡插入圖片描述