利用Kuhn-Munkras算法求最小权值匹配

本文参考博客:
http://blog.csdn.net/zhangpinghao/article/details/12242823(代码参考该博客)
http://philoscience.iteye.com/blog/1754498(个人认为对km算法讲解比较好)

KM算法求的是基于带权二分图中完备匹配下的最大权值匹配。关于km算法的讲解网上资料比较丰富,此处就不详述啦。这里主要整理一些用KM算法求最小权值匹配的一些问题。

  • 在求最大权值匹配时,不存在的边的权值设为0。在求最小权值匹配时,可以考虑将对应的权值变为相反数,或者用一个很大的数减去权值,然后再来求最大权值匹配,最后将权值和取反即可。如果使用将对应的权值变为相反数的方法,则不存在的边的权值此时要设为INT_MAX(即,实际中求匹配时使用的是-INT_MAX),如此设置之后还需要特别注意溢出的问题, if( !sy[j] && ((lx[i] + ly[j] - weight[i][j] )<inc) 这一句对于带符号整型数可能会溢出࿰

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值