基于遗传算法的高校网上排课系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生毕业论文(设计)
题目基于遗传算法的高校网上排课系统
An Optimized Genetic Algorithm Based
University Timetabling System 姓名学号0611701106
院系计算机科学学院
专业计算机科学与技术
指导教师职称讲师
2010 年5 月20 日
曲阜师范大学教务处制
目录
摘要 (1)
关键词 (1)
Abstract (1)
Key words (1)
1 引言 (1)
1.1 研究背景和意义 (1)
1.2 国内外研究的现状 (1)
2 课程表问题 (2)
2.1 课程表问题简介 (2)
2.2 课程表问题中的基本约束 (2)
3 排课系统的具体设计实现 (2)
3.1 模块划分 (2)
3.2 课程表问题基本数据结构介绍 (2)
3.3 遗传算法的设计与实现 (3)
4 结果分析 (7)
5 总结 (8)
致谢 (8)
参考文献 (9)
附录 (9)
基于遗传算法的高校网上排课系统
计算机科学与技术专业学生王坤
指导教师董兆安
摘要:大学排课问题是一种NP难的组合优化问题。在传统遗传算法的基础上,首先把问题分解以减少算法的复杂度,然后提出了适合本问题的染色体编码方案和操作方法,以尽量减少非法个体,并采用冲突检测和消解策略,对种群进行优化,提高种群的适应度,并有效缩短了产生最优解的时间。最后使用和C#实现了一个网上自动排课系统,并使用本学院的真实数据进行测试,满足所用的约束条件,产生了满意的结果。
关键词:大学排课问题遗传算法冲突检测在线
An Optimized Genetic Algorithm Based University Timetabling
System
Student Majoring in Computer Science & Technology
Tutor Zhao’ an Dong
Abstract:University Course Timetable Problem is NP-Hard combinatorial optimization problem. Based on the traditional Genetic Algorithm, we decompensate the problem to decrease the complexity, advance the problem-specific chromosome and operations to avoid generate illegal timetables, and use collision detection and resolution to optimize the population, increase the fitness and decrease the time needed. Finally, we implement the online timetabling system in and C#. The algorithm is tested with real date from our college, satisfies all the constraints of problem and yield promising result.
Key words:University Timetabling; Genetic Algorithm; Collision Detection; Online;
1引言
1.1研究背景和意义
长期以来,在高校的教务管理中通常使用手工或者辅助软件进行排课,手工排课相对更为常见,一般是对上一年的课表稍加修改然后予以沿用。然而随着专业的发展和高校的扩招,在不同年级之间,不论从人数、授课教师还是开设的课程,与原来相比都有较大的不同。因而往年的课表对于排课的借鉴作用逐步削弱,一种能满足各种排课约束条件的自动排课软件呼之欲出。尤其在网络不断发展的今天,在线的排课系统更能给教务人员带来更多的便利。
1.2国内外研究的现状
排课问题,也称为课程表问题。目前,国内外已经有很多人对于这个课题进行了研究,提出的解决方法也多种多样。1963年,C. C. Gotlieb在其The Construction of Class-Teacher Time-Tables[1]一文中第一次提出了课表编排的数学模型。1975年,Even. S 证明了排课问题是一个NP完全问题,无法用计算机实现,从理论上对时间表问题有了全新的认识。因而,众多的研究者们又开始考虑用其他方法来解决这一问题,比如使用组合逻辑、禁忌搜索、决策系统、贪心算法、图论、模拟退火算法、遗传算法[2,3]、免疫网络[4]等。其中,遗传算法因为其良好的智能性、并行性、简单易用、鲁棒性强等特点,成为一种优秀的亚启发式算法,并成功的应用于例如TSP、地图着色、卫星轨道控制等方面,在解决课程表问题方面也有着不俗的表现。
在国内,虽然较国外起步较晚,80年代以来,清华大学、大连理工大学、原南京工学院、西安交通大学等国内高校都进行了相关的研究并研制了相应的软件。比如清华大学的TISER系统,西安交大自行开发的排课系统,中山大学基于智能规划的排课系统,华中科技大学的基于模糊专家系统的排课系统,武汉大学基于回溯算法的排课系统等。
从实际情况来看,由于排课问题的复杂性和各个学校自身教学的特殊性,国内外研制开发的这些软件系统实用性仍然有待提高。排课问题作为NP问题,它的解决也有着典型的代表性。所以,对排课问题的研究无论从理论还是实践上都有着重要意义。
2课程表问题
2.1课程表问题简介
课程表问题是把教师、教室、班级、课程的组合安排到一天的各个时间段上。根据本院实际情况,一周中每一天分为4个时间段,上午两个,分别为两个小时,下午和晚上各一个,分别为三个小时。这样一周共有20个时间段。
2.2课程表问题中的基本约束
课程表问题在实际安排中的约束条件有以下几个方面。
2.2.1硬性约束,即必须满足的约束
1、教室不冲突:一个教室同一时间不能安排两门课程,且人数不能超过教室的最大容量;
2、班级不冲突:一个班级不能在同一时间段安排两门课或两门以上的课程,同一班级不能同一时间在不同地点上课;
3、教师不冲突:一个教师不能同一时间在不同地点上课。
2.2.2弹性约束,即尽量满足的约束,满足此种约束更利于教学
1、英语这类课程应尽量安排在上午进行;
2、每周课时量较多的课程应在一周的五天中均匀安排;
3、每周多次的课程尽量安排在同一间教室;
4、时长为三个学时的课程应该安排在下午或晚上;
5、学校规定有统一活动的时间不能安排课程。
另外,学校已经安排公共课程的时间段是不能给相关班级安排课程的。
3排课系统的具体设计实现
3.1模块划分
系统主要分为以下几个模块:
1、系统登录模块:作用是验证用户身份,并转入相应的界面。
2、信息管理模块:在左侧菜单栏显示的用户的权限,用户可以点击各菜单使用相
应的功能。包括:添加教室、添加课程、添加教师、添加班级。
3、信息显示模块:包括显示、查询和修改管理员信息、教室信息、教师信息、课
程信息、班级信息。
4、自动排课模块:包括预排公共课、添加本学期课程安排、自动排课、显示排课
结果、显示全系课表。
3.2课程表问题基本数据结构介绍
Professor类:保存教师的基本信息和操作
StudentGroups类:保存班级的基本信息和操作
Room类:表示教室
Course类:表示一门课程