匈牙利算法对于指派问题的原始-对偶解法

基础知识:匈牙利算法原始表达式解法(此处匈牙利解法包含等权的图像解法知识和带权的矩阵解法,可以参考其他说明)Hungarian Algorithm匈牙利算法_正仪的博客-CSDN博客

匈牙利算法解决的原始指派问题:

 以下是对偶解法:

 Example

        1.找到C矩阵中每行最小值,eg.u_1=min{c_{1j}}=5,所以

          2.每列的值和已知\textbf{u}中对应行的值做差最小,eg.v_1=min({c_{i1}-u_i})=2-2=0v_4=min({c_{i4}-u_i})=7-5=2,所以

          此时dual cost为u、v总和14。

        3.保证r_{ij}始终非负,所以

 

        在R中找到完美匹配,或者得到等于n的顶点覆盖

        很明显,二部图里面最佳匹配对数为3<4;但是0的最小覆盖只需要3<4

         4.删去划线覆盖的行列,剩下的构成新矩阵c',寻找其中的最小值δ,利用δ对u中覆盖的行做减,v中未覆盖的列做加,新矩阵c'做减或者使用R矩阵的定义重新计算新R。满足二部图完美匹配和覆盖定点数为4。此时cost=15。若不成立循环3、4步骤。

        这个解法为什么看起来和原始问题的匈牙利解法这么相似?为什么要构造对偶问题呢?

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
匈牙利算法是一种用于解决指派问题算法指派问题是一类优化问题,其目标是在满足特定的指派要求条件下,使指派方案总体效果最佳。例如,将若干项工作分配给若干人员,或选择若干个投标者来承包若干项合同。 匈牙利算法的基本思路是通过对费用矩阵进行变换,将其转化为有 n 个位于不同行不同列的零元素的形式,然后确定这些零元素对应的变量的取值,以得到指派问题的最优解。一种常见的变换方法是对费用矩阵的行和列分别减去某个常数,使其包含 n 个零元素。然后,将这些零元素对应的变量取值设为 1,其余变量设为 0,即可得到最优解。 另一种方法是找出系数矩阵中的最大值,然后将系数矩阵中的每个元素减去最大值,得到新的系数矩阵。然后按照正常的匈牙利算法进行求解,即可得到最优解。 综上所述,匈牙利算法是一种用于解决指派问题算法,可以通过对费用矩阵进行变换或者找出系数矩阵中的最大值来求解最优解。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [指派问题匈牙利算法](https://blog.csdn.net/Wonz5130/article/details/80678410)[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: 50%"] - *3* [匈牙利算法解决指派问题清晰流程](https://blog.csdn.net/siss0siss/article/details/51325656)[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: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值