匈牙利非方阵算法



>我正在尝试实现匈牙利算法。一切都很好,除了矩阵不是方形的。我搜索过的所有方法都说我应该通过添加虚拟行/列来使其平方,并用矩阵中的最大数字填充虚拟行/列。我的问题是,这不会影响最终结果吗?虚拟行/列不应该至少填充 max+1 吗?

虚拟值应全部为零。关键是,你选择哪一个并不重要,你最终会忽略这些选择,因为它们不在原始数据中。通过将它们设为零(在开始时(,您的算法将不必努力工作来找到您不打算使用的值。

匈牙利算法的主要思想建立在这样一个事实之上,即"如果从矩阵的任何行或列的所有条目中添加/减去一个数字,则作业的最佳分配保持不变"。因此,使用虚拟值作为"max 或 max+1 或 0"并不重要。它可以设置为任何数字,最好是 0(正如Yay295所说,如果条目已经为 0,算法希望减少工作(

相关内容

  • 没有找到相关文章

最新更新