1

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

这是执行前两个步骤时的矩阵(每行减去 min,每列减去 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

我在这里使用相同的原始矩阵寻找解决方案,它们以不同的方式覆盖矩阵。他们没有选择最后两列,而是选择了最后两行。通过再减少两个矩阵,它们最终得到匹配。另一方面,我没有。

有没有办法决定哪条线路组合更好?

4

0 回答 0