首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于偏好的分组算法

基于偏好的分组算法
EN

Stack Overflow用户
提问于 2013-05-01 06:15:05
回答 1查看 6.2K关注 0票数 8

我想找出一种方法,把人们按喜好分类。

例如,假设有100名学生将被分配给五个班中的一个:

  • 科学-40个席位
  • 数学-15个座位
  • 历史-15个席位
  • 电脑-20个座位
  • 书写-10个座位

每个学生都有三个优先班,按优先顺序排列。什么是最好的方法来划分学生,使尽可能多的人得到他们的第一和第二选择课程,同时确保没有班级有太多的学生的房间。

我已经考虑过用以下方法来处理它:

  1. 将所有学生按他们的第一选择班分组
  2. 看看哪些班学生太多,哪些班学生太少。
  3. 检查是否有学生在超额预定的班级中有第二选择课程,而这些课程没有被预定。
  4. 相应地移动那些学生
  5. 第三选择班重复2-4。

虽然我觉得这是一个合理的实现,但我想知道是否还有其他算法可以更好地解决这个问题。我试着到处寻找,但找不到任何能解决这类问题的方法。

EN

回答 1

Stack Overflow用户

发布于 2013-05-01 06:52:01

根据您的描述,这听起来非常像稳定婚姻问题的变体之一。

查看Wiki链接,您将看到Gale-Shapley算法的描述,这是一个很好的解决方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16313591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档