基于多个标准分配人员的算法

时间:2016-02-18 15:52:50

标签: algorithm knapsack-problem

我有一个需要分类到委员会的用户列表。用户可以根据他们的特定偏好对委员会进行排名,但必须至少选择一个加入。当他们全部做出选择时,算法应尽可能均匀地对它们进行排序,同时考虑到委员会的偏好,性别,年龄,时区和国家(目前)。我查看了this question,它的答案似乎是一个不错的选择,但我不清楚如何将各种约束添加到算法中以使其工作。

有人会指出我如何做到这一点的正确方向吗?

1 个答案:

答案 0 :(得分:0)

寻找“群集”将无处可去,因为如果任务不是群集类型。

相反,这是一个分配问题。

有关详细信息,请参阅:

通常,这些都是NP难以解决的。因此,人们通常会选择一种贪婪的优化启发式方法来更快地找到一个相当好的解决方案。

考虑如何最佳一次分配一个人。

然后,按如下方式处理数据:

  1. 指定只能以单一方式分配的每个人
  2. 找到一个 hard 分配的未分配人员,如果每个人都被分配则停止
  3. 指定最佳方式
  4. 删除不再允许的偏好设置,然后再次转到1(可能只剩下一个选项的新人)
  5. 对于奖励积分,添加随机源和整体质量度量。然后运行algorothm 10次,并保持最佳结果。 要获得进一步的奖励,请添加后期处理优化:您何时可以将一个人转移到另一个人群或与人交换以提高整体质量?迭代所有人找到这么小的改进,直到你找不到。