【问题标题】:Algorithm for assigning people based on multiple criteria基于多个标准分配人员的算法
【发布时间】:2016-02-20 17:23:11
【问题描述】:

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

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

【问题讨论】:

  • 你能举一个小例子,说明需要贡献的几个人,以及这样一个小组的最终预期结果吗?

标签: algorithm knapsack-problem


【解决方案1】:

寻找“集群”会让你一事无成,因为这不是集群类型的任务。

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

有关更多信息,请参阅:

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

想想如何最好一次分配一个人。

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

  1. 分配只能以单一方式分配的每个人
  2. 找到一个很难分配的未分配人员,如果每个人都分配了就停止
  3. 分配最好的方法
  4. 删除不再允许的偏好,再次转到 1(可能有新人只剩下一个选择)

对于奖励积分,请添加随机来源和整体质量衡量标准。然后运行算法 10 次,只保留最好的结果。 为了进一步的好处,添加一个后处理优化:你什么时候可以将一个人转移到另一个组或交换到人以提高整体质量?遍历所有人以找到如此小的改进,直到找不到任何改进。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    相关资源
    最近更新 更多