我在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,它们以不同的方式覆盖矩阵。他们没有选择最后两列,而是选择了最后两行。通过两次矩阵缩减,它们最终会匹配。另一方面,我没有。
有没有办法确定哪种线组合更好?