论文部分内容阅读
排课问题又称为时间表问题(Timetable Problems; TTP),它涉及到班级、课程、教师、教室、时间等众多因素,受到教室、时间、班级等多重约束,是一个组合优化问题。随着办公自动化的普及和高校信息化建设的开展,一个智能、全面的计算机排课系统越来越受到人们的重视。
历史上先后出现了很多解决排课问题的方案,但由于排课问题是NP复杂问题,使得大多数解决方案并不理想。目前,典型的时间表问题的算法有禁忌搜索( Tabu Search)、模拟退火算法(Simulated Annealing)和进化算法
( Evolutionary AlgorithmS)。
遗传算法(Genetic Algorithms,GA)是一种借鉴生物界自然选择和进化机制发展起来的高度并行、随机、自适应的随机搜索算法。由于其具有健壮性,特别适合于处理传统搜索算法解决不好的复杂的和非线性问题。遗传算法使用了群体搜索技术,将种群代表一组问题解,通过对当前种群施加选择、交叉、变异等一系列遗传操作,从而产生新一代种群,并逐步使种群进化到包含近似最优解的状态。
遗传算法在求解复杂问题时有许多其他算法无法媲美的优点:对目标函数及约束既不要求连续,也不需要可微,仅要求该问题能计算即可;具有良好的并行性,很强的通用性,良好的全局优化和稳定性;对于传统优化方法无法或很难解决的非线性、不可微分问题,遗传算法都能很好的解决;并且,遗传算法提供了一种求解复杂系统优化问题的通用框架,它不依赖于问题的具体领域,对问题的种类有很强的鲁棒性。随着对遗传算法研究的不断深入,有关遗传算法的各种应用研究进一步成熟和发展,其应用领域也愈加广泛。
根据遗传算法的基本理论,在参考了现有关于遗传算法解决排课的各个方案以后,本文采用二维实数染色体设计方案。这一方案将染色体与课程表中的教学时间、教室资源一一对应,是对课表最为直接的表示形式,因此能够很方便地实施各种排课约束条件与优化条件。利用这种设计,也可以方便地对程序功能进行扩充,以满足排课过程中的各种需求。
本文同时提出了随机小基因链交叉的方法。应用这一方法,使得染色体的所有基因具有同样的交叉概率,提高了种群的搜索空间。应用小基因链的交叉方式,可以使优良个体的染色体能够更多的遗传给后代,减少了遗传操作过程中个体过度随机的变化,有效地控制了算法的收敛速度,提高程序运行的效率。