我会尽量做到尽可能:
到目前为止,我知道我需要加权偏好。 3,2 1对于打架来说是一个好的开始。理想的群体分布是指加入该群体的人的偏好总和尽可能接近加入彼此群体的人的总和。
没有偏好意味着所有组的体重3。至少在我微调之前。
我不知道如何将一个算法实际开始排序。帮助
答案 0 :(得分:1)
这看起来像weighted bipartite graph matching problem *,其中一组顶点表示组,另一组顶点表示人,边的权重为0(如果分配不可能) ),或10 / [首选项数量] x [首选项数量 - 首选项数量+ 1]或沿着这些行的某些内容(因此,如果用户有5个首选项,他们的首选项将加权10,他们的下一个将是8,然后6,然后4,然后2)
您可以克隆组顶点以适应分区要求(例如,如果一个组中最多可以有50个人,然后创建该组顶点的50个副本)并且每个顶点强制执行一个边,这是什么样的二分图分区算法设计用于处理
二分图匹配(加权和未加权版本)是多项式时间算法
*通常称为(stable) marriage problem - 您有一组代表男性的顶点,另一组代表女性的顶点,以及一组表示两组顶点的婚姻偏好的(加权)边缘