再谈二分图最优匹配和最优完备匹配

这两者是有区别的,先了弄清楚以下关系
最大二分匹配:在一个二分图中找到P->q的一个匹配方案,使得匹配中的边数量不小于任何其他的匹配。
完备二分匹配:在一个二分图中找到p->q的一个匹配方案,使得p中所有点出现在该匹配中。

再来说二分图的带权匹配和二分图的最优匹配
参考http://boj.5d6d.com/thread-1382-1-1.html
二分图的带权匹配就是求出一个匹配集合,使得集合中边的权值之和最大或最小。
而二分图的最优匹配则一定为完备匹配,在此基础上,才要求匹配的边权值之和最大或最小。二分图的带权匹配与最优匹配不等价,也不互相包含。
上篇说过我们可以使用KM算法实现求二分图的最优匹配。KM算法可以实现为O(N^3)。
[KM算法的几种转化]
KM算法是求最大权完备匹配,如果要求最小权完备匹配怎么办?方法很简单,只需将所有的边权值取其相反数,求最大权完备匹配,匹配的值再取相反数即可。
KM算法的运行要求是必须存在一个完备匹配,如果求一个最大权匹配(不一定完备)该如何办?依然很简单,把不存在的边权值赋为0。
KM算法求得的最大权匹配是边权值和最大,如果我想要边权之积最大,又怎样转化?还是不难办到,每条边权取自然对数,然后求最大和权匹配,求得的结果a再算出e^a就是最大积匹配。至于精度问题则没有更好的办法

你可能感兴趣的:(算法)