基于多个标准分配人员的算法
Algorithm for assigning people based on multiple criteria
我有一份用户列表,需要将其分类到委员会中。用户可以根据他们的特定偏好对委员会进行排名,但必须至少选择一个加入。当他们都做出选择后,算法应考虑他们的委员会偏好、性别、年龄、时区和国家(目前),尽可能均匀地对他们进行排序。我查看了 this question,它的答案似乎是一个不错的选择,但我不清楚如何向算法添加各种约束以使其工作。
请问有人能指出正确的方向吗?
寻找 "clustering" 将无处可寻,因为这不是聚类任务。
相反,这是一个分配问题。
更多信息,请参阅:
通常,这些问题是 NP 难解的。因此,人们通常会选择一种贪婪的优化启发式算法来更快地找到一个相当好的解决方案。
想想如何最好一次分配一个人。
然后,对数据进行如下处理:
- 分配只能以单一方式分配的每个人
- 找一个难未分配的人分配,如果每个人都分配了就停止
- 分配最佳方式
- 去掉不再接受的偏好,重新去1(可能会有新人只剩下一个选择)
对于奖励积分,添加随机源和整体质量度量。然后运行算法10次,只保留最好的结果。
为了进一步的好处,添加一个后处理优化:你什么时候可以将一个人转移到另一个组或交换人以提高整体质量?遍历所有人以找到如此小的改进,直到找不到为止。
我有一份用户列表,需要将其分类到委员会中。用户可以根据他们的特定偏好对委员会进行排名,但必须至少选择一个加入。当他们都做出选择后,算法应考虑他们的委员会偏好、性别、年龄、时区和国家(目前),尽可能均匀地对他们进行排序。我查看了 this question,它的答案似乎是一个不错的选择,但我不清楚如何向算法添加各种约束以使其工作。
请问有人能指出正确的方向吗?
寻找 "clustering" 将无处可寻,因为这不是聚类任务。
相反,这是一个分配问题。
更多信息,请参阅:
通常,这些问题是 NP 难解的。因此,人们通常会选择一种贪婪的优化启发式算法来更快地找到一个相当好的解决方案。
想想如何最好一次分配一个人。
然后,对数据进行如下处理:
- 分配只能以单一方式分配的每个人
- 找一个难未分配的人分配,如果每个人都分配了就停止
- 分配最佳方式
- 去掉不再接受的偏好,重新去1(可能会有新人只剩下一个选择)
对于奖励积分,添加随机源和整体质量度量。然后运行算法10次,只保留最好的结果。 为了进一步的好处,添加一个后处理优化:你什么时候可以将一个人转移到另一个组或交换人以提高整体质量?遍历所有人以找到如此小的改进,直到找不到为止。