【问题标题】:Not marriage or roommates but groups of 3不是婚姻或室友,而是 3 人一组
【发布时间】:2012-11-13 09:08:44
【问题描述】:

我正在尝试找到一种算法来根据偏好将一组学生分成小组。每个学生选择三个他们想合作的学生和三个他们不想合作的学生。其余的被假定为“如有必要可以使用”。

找到最符合他们偏好的学生组合的最佳方法是什么?

【问题讨论】:

  • 我不确定,可能是K-mean clustering?平均函数的选择方式是对不喜欢赋予负权重,对喜欢赋予正权重。
  • 我实际上是一名高中教师,一直在努力将学生分组。我正在尝试自动化这个过程,以便孩子们在在线调查中输入他们的偏好,并在全班完成调查后分配到小组。
  • Branch & Bound 可以,但这可能不是最好的算法。
  • @Vikas 提出的 k-mean 似乎是您想要的。虽然请允许我说,我认为让孩子以这种方式选择是不明智的。这将导致“酷”的孩子们聚集在一起,而“失败者”则被孤立。就他们不学会与他们不喜欢的人相处/社交而言,这也对他们没有帮助。诸如随机分配之类的东西,也许带有“偏好”给出的一点偏见,对我来说听起来是一个更好的主意。 (另外,因为迂​​腐,选择 3 个其他人一起工作,结果是 4 人一组,而不是 3 人)。
  • 广义问题“生成 k 组”并且不限制“不喜欢”的数量是 NP-Hard 并且可以通过简单的归约从 graph-coloring problem(即 NP-Hard)归约:每条边都是一个“不喜欢”——找到k组,解决方案中每个生成的组都是图中着色中的一种颜色。

标签: algorithm optimization stable-marriage


【解决方案1】:

我想simulated annealing 会很好地完成这个技巧,而且不会很难实现。

【讨论】:

  • 好的,谢谢您的建议。我确实尝试过。如果您想逗乐,可以查看结果:link。数字对应于名称列表中的元素。
  • @Mark - 乐于助人 - 它产生了高质量的结果吗?
猜你喜欢
  • 2012-07-16
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2012-06-25
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多