Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 我可以使用匈牙利算法来计算最大成本吗?_Algorithm_Hungarian Algorithm - Fatal编程技术网

Algorithm 我可以使用匈牙利算法来计算最大成本吗?

Algorithm 我可以使用匈牙利算法来计算最大成本吗?,algorithm,hungarian-algorithm,Algorithm,Hungarian Algorithm,匈牙利算法在多项式时间内解决分配问题。给定工人和任务,以及包含将每个工人分配到任务的成本的n×n矩阵,它可以找到成本最小化的分配 我想找到成本最高的选择?我可以用匈牙利语或类似的方法吗?或者这只能以指数方式实现 维基百科说: 如果目标是找到产生最大成本的任务, 通过替换每个成本,可以改变问题以适应设置 用最大成本减去成本 因此,如果我理解正确的话:在你投入的所有成本中,你会发现最大的价值。然后将每个成本x替换为max-x。这样,您仍然有正成本,您可以运行匈牙利算法 换言之:匈牙利人试图将派遣成本

匈牙利算法在多项式时间内解决分配问题。给定工人和任务,以及包含将每个工人分配到任务的成本的n×n矩阵,它可以找到成本最小化的分配

我想找到成本最高的选择?我可以用匈牙利语或类似的方法吗?或者这只能以指数方式实现

维基百科说:

如果目标是找到产生最大成本的任务, 通过替换每个成本,可以改变问题以适应设置 用最大成本减去成本

因此,如果我理解正确的话:在你投入的所有成本中,你会发现最大的价值。然后将每个成本
x
替换为
max-x
。这样,您仍然有正成本,您可以运行匈牙利算法


换言之:匈牙利人试图将派遣成本降至最低。因此,如果您正在寻找最大值,您可以反转成本:x->x。然而,一些实现(不知道是否全部或任何)需要正数。因此,我们的想法是为每项成本增加一个常量值,以获得正数。这个常量值不会改变由此产生的矫揉造作。

正如David在评论中所说:

Multiply the cost matrix by -1 for maximization.

你能举个例子解释一下吗?@UtxD看我最后一次编辑。你还不明白什么?我现在没有时间写一个完整的例子,我觉得没有必要。维基百科条目说你需要非负的成本,但对于大多数实现来说可能不是这样(尽管由此产生的单调性属性便于分析)。(所以只需将成本矩阵乘以-1即可实现最大化。)@Davidisenstat我已经编辑了我的答案。我不记得这个算法的细节,所以我不知道它是否真的是强制性的,但它并不能为所有成本增加一个常量值(并且不会改变做作)。如果您还需要成本值,您可以在最后删除该成本。@2er0感谢您的澄清=)