匈牙利算法

匈牙利算法用于解决有权二部图中的最小匹配问题,通过找行最小值、列最小值,以及特定的循环变换过程来实现。在3x3矩阵示例中,算法通过调整使得每一行和列至少有一个0元素,然后通过覆盖0元素并进行数值变换来逐步优化匹配。若要解决最大匹配问题,只需取权重的负值。
摘要由CSDN通过智能技术生成

匈牙利算法可以寻找有权二部图中的最小匹配。

        上图是一个3×3的矩阵,数字代表权重,利用匈牙利算法就可以找到他们之间的最小匹配,具体步骤为:

1.找出每一行的最小值(第一行:8,第二行:35,第三行:22)。

2.让每一行的所有元素减去其最小值(第一行:减8,第二行:减35,第三行:减22),这样每一行至少有一个0。

3.让每一列的所有元素减去其最小值,这样每一列至少有一个0。

 4.开始循环(A.用尽量少的线覆盖矩阵中所有的0元素。

                      B.判断是否需要终止循环(1.假如用n条线才能覆盖所有的0元素那么就停止循环

                                                                 2.假如用的线少于n(这里的n为3,匈牙利算法要求为n*n矩阵)就继续循环)。

                      C.对矩阵中的元素做变换,得到更多的0元素(1.找出未被线覆盖的所有元素中的最小值记为K。

                                                                                                2.未被线覆盖的所有的元素都减去K。

                                                                                                3.将红线交叉处的元素加上K)。)

 5.所得到的结果就为最小匹配

 如果想用匈牙利算法解决最大匹配问题,只需要将权重取反即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值