KM算法的最小权值匹配、完备匹配详细易懂总结--结合例题

本文总结了KM算法在处理不完备匹配时的应用,通过补充虚拟点实现完备匹配,并介绍了如何从最大权值匹配转换为最小权值匹配。以HDU2426和2255为例,阐述了当学生与寝室匹配、N*N矩阵表示不满意度时,如何利用KM算法求解最小不满意度。同时提到了相关题目如HDU3488、1853和1533的解题思路。
摘要由CSDN通过智能技术生成

首先,有如下问题:

1.针对于完全匹配G=<V1,V2,E>,我们规定用V1去匹配V2的点,那么完备匹配定义为对于V1的所有点都有与之对应的V2的点匹配,那么如果对于V1对应于V2的点的匹配有的关系关系不确定的时候怎么呢?

2.通过KM求得最大权值匹配..如果要求最小权值匹配,那么怎么办呢?

这里给出总结,对自己刚接触KM的记录:

对于1.

引用:如果图中|V1|!=|V2|,理解的时候可以补充一些虚拟的点,让两边的点数相等(完备匹配就成为完美匹配了)。当然虚拟点的边之都是0。

那么在匹配的过程中,对于虚拟点的边为0,那么求出完备匹配之后的权值就是答案..因为如果是没有的边匹配了...但是我们的虚拟边是0,那么对于匹配的最优权值没有影响

那么还有的题目中V1对于V2的点的关系不确定...就如

KM算法,全称Kuhn-Munkres算法,是一种用于求解二分图的最佳匹配的算法。它可以找到一个匹配,使得两个集合内的所有顶点能够一一匹配,并且获得的权值最大或最小KM算法在求解带二分图匹配时,融合了匈牙利算法的思想。算法的步骤如下: 1. 初始化:将两个集合内的顶点分别标记为未被匹配状态。 2. 根据特定的规则,遍历第一个集合内的顶点。 3. 对于每个选中的顶点,遍历第二个集合内的顶点,找到与其相连的较优边。较优边的选择可以根据具体情况而定,可以是较大的权值或者较小的权值。 4. 如果找到了满足条件的边,判断该边对应的第二个顶点是否已经被匹配。如果该顶点还未被匹配,则直接将其与第一个顶点进行匹配。 5. 如果该顶点已经被匹配,但是与其匹配的顶点还可以找到其他的可匹配顶点,则将该顶点重新匹配给第一个顶点。 6. 循环执行步骤2-5,直到无法找到满足条件的边。 通过这样的循环匹配KM算法能够找到二分图的最佳匹配。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [二分图的完全匹配---KM算法](https://blog.csdn.net/li13168690086/article/details/81557890)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值