基于遗传算法的智能排课系统的设计和实现基于遗传算法的智能排课系统的设计和实现 摘要:本文针对遗传算法后期收敛速度慢,易陷入局部最优的困境,提出了改进方案,有效解决了智能排课问题
关键词:遗传算法 ;排课问题;组合优化 中图分类号:N945
23 文献标识码: A 文章编号: 排课是一个比较复杂的过程,对于特别课程的排课实行的是手动方式,而一般课程则采纳自动方式
在自动排课前需要对一些参数进行初始化,课表生成后可以进行人工调整
1 排课的约束条件 在排课的过程中,有些硬性约束条件必须遵循:如老师、教室、课程、时间和地点均不可存在冲突;也有一些软性约束因素值得考虑,这样能使课表更加的合理和人性化,如专业课尽量安排在效率较高的时间段;尽量满足某些老师的特别上课时间要求;同时排课也不能太零散,要尽量减少老师来校的次数;应尽量避开学生一天课程很满而另一天却整天没课的情况,学生的上课时间不能安排得太过集中;在某个时间段不做任何教学任务的安排,以便老师和学生能利用这个时间开展一些课余活动
2 排课的遗传算法设计 2
1 遗传算法流程设计 遗传算法的核心内容包括:参数编码、初始群体的设定、适应度函数的设计、遗传操作设计及控制参数设定[1]
(1)基因编码:对课程和授课老师进行组合编码,可以采纳老师编号(5 位)+班级编号(5 位)+教室编号(4 位)+课程编号(6位)+周学时(2 位)+特别要求(6 位)的编码方式
(2)产生初始种群:首先把固定教学时间段的老师编码填入对应的时间段中,然后产生一个 1~20 的随机数,根据产生的随机数在相应的位置填入该班的其他老师编码
若填入的位置已有数据,则重新产生随机数,直到所有的老师编码无重复地填入数组
如此循环直至产生满足种群规模数量的个体,组成初始种群
可以看出,上述方式产生的
(3)冲突检测:初始种群个体含有大量的冲突[4],由于我