Algorithm 基于偏好的人群分组算法
我需要一个算法来根据人们的喜好在表格中分组。每个人都投票将表格从最喜欢的到最差的排序。 例如,如果总共有4个表格,则一人投票如下:Algorithm 基于偏好的人群分组算法,algorithm,grouping,Algorithm,Grouping,我需要一个算法来根据人们的喜好在表格中分组。每个人都投票将表格从最喜欢的到最差的排序。 例如,如果总共有4个表格,则一人投票如下: Alice{ table1 => 2, table2 => 4, table3=>1, table4=>3} 这意味着她想被放在第三张表上,而实际上她不喜欢第二张表 条件是: 每个人都必须在一个小组里 所有组别的人数必须相同(容忍度为1) 最大化全球“幸福” 为了解决这个问题,我将幸福定义为分数,如果每个人都被放在他们最喜欢的桌子上,他
Alice{ table1 => 2, table2 => 4, table3=>1, table4=>3}
这意味着她想被放在第三张表上,而实际上她不喜欢第二张表
条件是:
- 每个人都必须在一个小组里
- 所有组别的人数必须相同(容忍度为1)
- 最大化全球“幸福”
happiness[10, 6, 4, 1]
全球幸福感是每个人幸福感的总和。解决这个问题的一种方法是使用整数线性规划。 ILP有很多解决方案,例如SCIP() 每个赋值都有二进制变量,即。 =1,如果将人员i分配给表j(0表示未分配) 你的目标是最大化总体幸福感,即权重之和乘以 现在您已经编写了一些条件,以确保:
- 每个人只分配到一个表中,即每个i的和等于一
- 所有表格都有相似的人数(您可以事先确定人数的可能范围),即每个j的部分人数在定义的范围内