学生时间调度算法

use*_*034 5 algorithm

我需要找一个算法来找到最好的时间见面让我们说一个研究小组.系统包含有关一组学生及其课程表的信息.系统应该为聚会提供时间,在这里不会与任何人的班级时间表发生冲突.什么是攻击这个问题的最佳方法.我一直在寻找任何调度算法,但没有找到合适的人.

提前致谢

Pin*_*juh 16

有趣的问题.

这就是我要做的:

  1. 首先,为所有学生调整所有时间表(例如,从星期一开始,每天24小时).您可以为每个句点使用布尔值或整数,并将它们存储在数组中.
  2. 然后一起对所有调度执行添加操作.

然后看起来像这样,例如:

Student A: 11100000111111100000
Student B: 00000011111000010001
Student C: 00000000111111110001
_______________________________+
           11100022333222220002
              ^^^          ^^^
Run Code Online (Sandbox Code Playgroud)

然后你需要通过一个跟踪当前零长度的简单循环找到数组中的所有间隙(带零的区域).记住开始和结束索引并将其转换回(步骤1的反向)到时间区域.

  • 什么是'算法方法'?这是一个非常好的算法. (2认同)

Alo*_*lon 5

这是一个匹配问题,可以通过最大流算法来解决

每个学生和学习小组是方向图上的节点,每个学生的输入都有一个流动单元作为输入,并连接到所有学习小组节点.每个研究节点组都有无限的输出容量,当网络中的流量最大时,你就有了正确的组合

另请参见算法简介 (流程网络章节)


dfe*_*ens 0

我记得这个问题的最佳解决方案是由遗传算法生成的解决方案

请参阅此链接http://www.codeproject.com/KB/recipes/GaClassSchedule.aspx