想象一下你有:
每个人按照他们希望对其进行处理的顺序对所有100个项目进行排名。可以使用什么样的算法来最大化人们的幸福(即,被分配到他们排名更高的项目转化为更大的幸福)。
假设每人一个项目。
答案 0 :(得分:3)
这种问题的算法非常流行,被称为匈牙利算法。类似问题解决了这类问题:
我们考虑需要四个作业(J1,J2,J3和J4)的示例 由四名工人(W1,W2,W3和W4)执行,每个工人一份工作。该 下面的矩阵显示了将某个工人分配给某个工人的成本 工作。目标是最小化作业的总成本。
来源:http://www.hungarianalgorithm.com/examplehungarianalgorithm.php
请注意,默认的匈牙利算法会找到最低成本,但您可以更改程序,使其最大化成本。
如果目标是找到产生最大成本的分配, 可以通过更换每个成本来更改问题以适应设置 最高成本减去成本。
来源:http://en.wikipedia.org/wiki/Hungarian_algorithm
我已经在Github上实施了匈牙利算法, 所以随意使用它并修改它以使其最大化成本。