匈牙利算法-二部图方法

时间:2019-04-30 22:12:02

标签: hungarian-algorithm

我很难理解here中概述的匈牙利算法。在我看来,这是不完整和/或错误的。主要问题是该行:

  

如果R_T ^ Z为非空,则反转定向对象的方向   路径...

我们如何知道选择哪个路径作为“路径”?如果选择错误的路径,我们如何恢复?这似乎是单调的分配算法,因为我们只能创建新的分配,而不能删除或更改现有的分配。

假设我们有一个简单的示例,即S = {A,B},T = {W,X},权重AW:2,AX:2,BW:6,BX:4。如何选择是否添加首先是AW还是AX,还是要如何从错误的选择中恢复?

1 个答案:

答案 0 :(得分:1)

我对矩阵的解释更加熟悉,但是看起来确实有点缺失。

  

我们如何知道选择哪个路径作为“路径”?

只需选择一个;没关系(只要它在 R T 中)。此时,它们应该都相等。

  

如果选择错误的路径,我们如何恢复?这似乎是单调的分配算法,因为我们只能创建新的分配,而不能删除或更改现有的分配。

这是缺少的部分,由于我对图形方法不太熟悉,所以我无法确切告诉您如何执行此操作,但是允许 更改现有分配。缺少的选项是,您可以将现有分配替换为等价的未分配边,从而允许您进行新分配。其中最难的部分是找到要交换的边缘,使其不与任何其他分配冲突,并且通过进行这种交换,您就可以进行新的分配。