Algorithm 我可以使用匈牙利算法来计算最大成本吗?
匈牙利算法在多项式时间内解决分配问题。给定工人和任务,以及包含将每个工人分配到任务的成本的n×n矩阵,它可以找到成本最小化的分配 我想找到成本最高的选择?我可以用匈牙利语或类似的方法吗?或者这只能以指数方式实现 维基百科说: 如果目标是找到产生最大成本的任务, 通过替换每个成本,可以改变问题以适应设置 用最大成本减去成本 因此,如果我理解正确的话:在你投入的所有成本中,你会发现最大的价值。然后将每个成本Algorithm 我可以使用匈牙利算法来计算最大成本吗?,algorithm,hungarian-algorithm,Algorithm,Hungarian Algorithm,匈牙利算法在多项式时间内解决分配问题。给定工人和任务,以及包含将每个工人分配到任务的成本的n×n矩阵,它可以找到成本最小化的分配 我想找到成本最高的选择?我可以用匈牙利语或类似的方法吗?或者这只能以指数方式实现 维基百科说: 如果目标是找到产生最大成本的任务, 通过替换每个成本,可以改变问题以适应设置 用最大成本减去成本 因此,如果我理解正确的话:在你投入的所有成本中,你会发现最大的价值。然后将每个成本x替换为max-x。这样,您仍然有正成本,您可以运行匈牙利算法 换言之:匈牙利人试图将派遣成本
x
替换为max-x
。这样,您仍然有正成本,您可以运行匈牙利算法
换言之:匈牙利人试图将派遣成本降至最低。因此,如果您正在寻找最大值,您可以反转成本:x->x。然而,一些实现(不知道是否全部或任何)需要正数。因此,我们的想法是为每项成本增加一个常量值,以获得正数。这个常量值不会改变由此产生的矫揉造作。正如David在评论中所说:
Multiply the cost matrix by -1 for maximization.
你能举个例子解释一下吗?@UtxD看我最后一次编辑。你还不明白什么?我现在没有时间写一个完整的例子,我觉得没有必要。维基百科条目说你需要非负的成本,但对于大多数实现来说可能不是这样(尽管由此产生的单调性属性便于分析)。(所以只需将成本矩阵乘以-1即可实现最大化。)@Davidisenstat我已经编辑了我的答案。我不记得这个算法的细节,所以我不知道它是否真的是强制性的,但它并不能为所有成本增加一个常量值(并且不会改变做作)。如果您还需要成本值,您可以在最后删除该成本。@2er0感谢您的澄清=)