我可以使用匈牙利算法查找最高费用吗?

时间:2013-07-08 06:56:02

标签: algorithm hungarian-algorithm

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

我想找到最大成本的选择?我可以使用匈牙利语或任何类似的方法吗?或者这只能以指数方式完成?

2 个答案:

答案 0 :(得分:10)

维基百科说:

  

如果目标是找到产生最大成本的分配,   可以通过更换每个成本来更改问题以适应设置   最高成本减去成本。

因此,如果我理解正确:在您输入的所有成本中,您会找到最大值。然后,您将每个费用x替换为max - x。这样您仍然可以获得正成本,并且可以运行匈牙利算法。

不同地说:匈牙利人试图最小化转让成本。因此,如果您正在寻找最大值,您可以撤消成本:x - > -X。但是,某些实现(不知道是否全部或任何)需要正数。因此,我们的想法是为每个成本添加一个恒定值,以获得正数。这个常数值不会改变产生的影响。

答案 1 :(得分:4)

大卫在评论中说:

Multiply the cost matrix by -1 for maximization.