论文部分内容阅读
排课问题即课表编排问题是教学管理中备受关注的信息处理问题之一,是多目标的决策优化问题。因排课设计因素繁多,数据量极大,约束条件复杂,传统的手动排课方法在速度和结果的科学性及合理性上无法保证。随着计算机广泛应用到信息处理问题上以及高校课程体系的日趋丰富和完善,用计算机来辅助排课成为一种趋势。目前,部分高校运用自主研发的排课系统进行排课管理,但由于课表编排问题是一个NP完全问题,各高校的实际情况和需求有异,因此开发出完全符合要求并且通用的排课系统是非常困难的。本文首先讨论了华中师范大学的排课现状,分析了排课的基本问题和目前常见的排课算法的优缺点,针对我校手工排课效率低下而排课结果又不够理想等问题,基于本校以教学班为单位授课的特点,研究和设计了适合我校选课和排课实际情况的自动排课算法。算法首先设置了教学班的优先级,并按教学班优先顺序进行排课,以求减少和避免教学班间的冲突;在安排每一个教学班时采用分治算法的思想,先安排上课时间后安排上课地点,降低了算法的复杂性;算法结合贪婪算法的思想,对不同周学时的课程进行了时间模式优先级的设置,在安排时间时总是在教学班的可用时间单元中选择优先级最高的时间模式进行匹配,以求取得最佳的上课效果;考虑合理利用教学资源,算法预先对教室进行了等价类的划分,在安排教室时,按教室类型选择容量最接近的可用教室;算法还结合了回溯法的思想来处理自动排课过程中的部分死锁问题。本文随后详细介绍了系统的设计和实现环节,对系统架构、各个功能模块、系统的基本框架和数据库的设计等进行了详细的描述,并且主要针对自动排课的时间死锁问题设计了交互性良好的手动排课和调课界面,解决了以往单凭经验手动排课和处理冲突的复杂问题,极大地减轻了教务部门的排课工作量。目前该排课系统已基本实现其功能,并处于试用阶段,试用结果表明,该系统具有较好的排课结果和响应时间。