匈牙利算法

时间:2016-11-22 16:41:57

标签: algorithm matrix hungarian-algorithm

我在C中实现了匈牙利算法。在大多数情况下,它运行良好。 有时我的代码无法找到某些矩阵的解决方案。检查解决方案我开始认为矩阵的覆盖范围很重要。这是一个例子:

这是执行前两步时的矩阵(每行减去min,每个col减min)

7  65  0   90   0  90
8  33  49  16  41   0
0   0  63  45  46  69
62 72  50   6  39   0 
62  6  54   0   2  42
 7  1  49  19   0  58 

当使用我的代码覆盖时(2意味着元素被交叉2次):

1 1 1 2 2 2
0 0 0 1 1 1
1 1 1 2 2 2
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 1 1 1

我使用相同的原始矩阵寻找解here,它们以不同的方式覆盖矩阵。他们没有选择最后两列,而是选择了最后两行。通过两次矩阵缩减,它们最终会匹配。另一方面,我没有。

有没有办法确定哪种线组合更好?

0 个答案:

没有答案