遗传算法:在不知道确切组数的情况下对学生进行分组

Genetic Algorithm: Grouping students without knowing exact number of groups

我的学生有规定的水平。有些学生在上周的小组里,有些是新来的。上周的学生应该留在他们的小组中。 组有一个级别,它是由包含学生级别的平均值计算的。如果学生级别和组级别的差异小于定义的限制(例如 3),则可以将新学生添加到组中。还有最小和最大组大小。如果组中没有足够的 space,我们应该创建一个新的。 我曾尝试使用聚类算法(分层和非分层)来解决,但没有一种适用于我的情况。 我需要创建最少量的组。

我想知道遗传算法是否有效。染色体的基因将代表一个学生和他们分配给 class。适应度函数部分将使用所有约束(最大组大小、最小组大小)。 据我所知,应用遗传算法我需要知道群体计数,这在我的案例中并不清楚。有什么想法吗?

是的,遗传算法可以工作。我不确定您从哪里得到必须知道组数量的想法。遗传算法所需要的只是一个生成 children 的生成器,一个判断哪个 children 最好的适应度函数,以及一些数量参数(保持多少为 parents下一代,要生产多少children,...生成器中的东西)。

我建议你的个人("chromosomes")成为新一代的群体列表。为了节省时间,您的生成器应该只产生可行的 children:满足 group-size 要求的那些。任何不满足这些的 child 都应该被跳过并替换。

这个场景的主要工作是设置一个知道如何拆分组的生成器:当你发现一个新学生需要一个新组时,你必须从其他学生中抽取 min_group_size-1 个学生团体。如果您同时拥有所有新生,那么您可以做出全局决策。

这足以让您朝着有用的方向前进吗?


根据用户评论更新:

  • 您不能保证使用遗传算法找到最佳答案。
  • 染色体的数量取决于最适合您的染色体。您需要处理各种可能的小组分配,以及新的小组。这是您必须进行实验的地方;欢迎来到机器学习。

我将从 "comfortable" 条染色体开始研究,也许是组数乘以 sqrt(新生数量)。根据时间限制,我认为 20 到 200 条染色体对你有好处。衡量成功的关键指标是它找到出色解决方案的频率,以及您花费多少时间来寻找它。

是的,可以在优化的帮助下形成学生小组。遗传算法(GA)并不是唯一一种应用于特定问题的优化算法,粒子群优化(PSO)也是如此。在最近的一项研究中,实施了 PSO 以将学生分类到未知数量的组中。与 GA 相比,PSO 显示出改进的能力。我觉得你需要的只是具体的研究。

论文是:使用粒子群优化形成学习者的自动组以应用差异化指令

您可以在这里找到论文:https://doi.org/10.1002/cae.22191

也许研究人员可以指导您通过研究门: https://www.researchgate.net/publication/338078753

如我所见,研究人员将每个簇的特征用作解决方案向量(染色体)并结合确定组数的阈值数(非常有趣 - 我认为这正是您所需要的)。

希望对你有所帮助