Course Scheduling Algorithms: why use of DFS or Graph coloring is not suggested?
我需要开发一个课程时间表软件,可以有效地分配时隙和房间。这是一个基于课程的例行程序,而不是基于注册后的程序。有效的方法是根据员工的时间偏好分配课程的时间段,同时也需要将1-2年级的课程重叠最小化,以便2年级的学生可以重新学习他们没有通过的课程(也适用于3-4年级的学生)。
现在,起初我认为这是一个简单的问题,但现在似乎不同了。我看过的大多数论文都使用了遗传算法/PSO/模拟退火或这些类型的算法。我仍然无法将这个问题解释为GA问题。我困惑的是为什么几乎没有人建议使用DFS或图着色算法?
如果使用了DFS/图形着色,有人能解释这种情况吗?或者为什么他们不被建议或尝试。
我在一个复杂的部门解决这个问题的经验是,困难的限制(如不重叠的课程,由相同的人口,和教师的困难限制)是相当容易解决的精确方法。我用0-1整数线性规划模型化了这个问题,并用一个名为minista+的基于SAT的工具解决了它。像cplex这样的竞争性商业工具也可以解决这个问题。因此,有了今天的工具,就不需要像上面建议的那样进行近似计算,即使是在输入相当大的情况下。现在,优化解决方案是另一回事了。有许多(加权的)目标,找到使目标最小化的解决方案确实是非常困难的计算(我尝试的任何工具都不能在24小时内解决它),但它们在几个小时内达到接近最优(我知道它接近最优,因为我可以计算出解的理论界)。
本文描述了一种应用于大学时间列表的GA方法,因此它应该直接适用于您的需求:使用GA来解决大学时间列表问题。