基于贪心算法的排课系统的设计与实现

基于贪心算法的排课系统的设计与实现

ID:11624194

大小:106.50 KB

页数:9页

时间:2018-07-13

基于贪心算法的排课系统的设计与实现_第1页
基于贪心算法的排课系统的设计与实现_第2页
基于贪心算法的排课系统的设计与实现_第3页
基于贪心算法的排课系统的设计与实现_第4页
基于贪心算法的排课系统的设计与实现_第5页
资源描述:

《基于贪心算法的排课系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、青岛农业大学本科生课程论文论文题目基于贪心算法的排课系统的设计与实现专业班级计算机科学与技术08级2班学生姓名(学号)指导教师许海洋完成时间2010年11月10日2010年11月10日摘要:贪婪算法在解决诸如排课等NP完全问题中具有实用价值。本文通过描述排课问题及其数学模型,分析了基于优先级的贪婪算法在高校排课系统中的运用。利用该算法,既可以简化排课过程,缩短排课所花费的时间,同时也能提高排课结果的满意度。关键词:排课问题;教学模型;优先级;贪婪算法一一、引言排课是高校教务管理中一项十分重要的工作。它直接关系到全校的教学工作能否有序地按计划进

2、行。同时,排课又是一项相当复杂的工作,其复杂性源于排课中资源约束条件和特殊要求对有限时空目标的制约。随着我国教育体制改革的不断深入,高校办学规模连年扩大,在校学生人数、教师人数、课程门类都显著增加,这对高校教务排课工作提出了更高的要求。研究开发一个实用的排课系统具有十分重要的现实意义。排课问题的本质是多维资源的冲突与争夺。它是一种典型的组合规划和目标不确定性调度问题。早在2O世纪7O年代,美国人S·Even等就证明了排课问题是一个NP完全问题,其算法的时间复杂度呈指数增长。目前,除了使用“穷举法”获得近似最优解外,数学上还没有一个通用的算法能

3、获得NP完全问题的最优解。然而由于“穷举法”时问长,成本高,并无实际的应用价值。因此,降低解决NP完全问题的算法复杂度便成为研究课题,即利用一个近似算法,建立一个简约的模型,使解决问题的算法复杂度从指数增长简化为多项式增长,便于程序运行。在实际的应用中,很多研究者都提出了各种解决排课问题的算法,包括遗传算法、动态规划法、回溯法、模拟退火算法等,其中基于优先级的贪婪算法是一种简便有效的解决最优化问题的基本方法。根据贪婪算法设计的排课系统,可以简化排课过程,在实际的运行中再通过少量的人工干预,在资源条件充足的前提下,基本可以解决排课过程中的冲突和

4、死锁问题,使排课系统具有实用价值。二、排课问题描述(一)排课原则排课问题是一个集班级、课程、时间、教师、教室五维组合优化问题。排课的主要任务,就是根据学校的学期教学计划,对全校各班级所开设的课程在上课时间和上课地点的合理安排,确保排课不发生冲突。排课的目标,就是在满足各种约束条件的前提下,充分利用学校的教学资源,获得最好的教学效果。一个好的课表应能符合学校的管理要求,满足所有参与者的基本要求,尽可能使绝大多数课程的安排能够令师生满意。为了编排出满意的课表,在排课中必须遵守以下基本原则:(1)一个班级的学生在同一时间只能安排一门课程;(2)一位

5、教师在同一时间只能安排一门课程;(3)一间教室在同一时或只能安排一门课程且教室类型必须符合该门课程的要求;(4)同一时间安排的课程总数不能大于所能提供的教室总数;(5)每门课程参加学习的总人数不应大于所安排教室的座位数;(6)一个班级每门课程不能被重复安排;(7)体育课不排上午1、2节;(8)3课时的课安排在下午。同时,为了使排出的课表更合理、更具人性化,排课还应考虑以下因素:(1)每门课程在一周内的上课时间尽可能分布合理;(2)尽可能使同一个班级连续的两门课之间更换教室的机率小,或就近安排;(3)同一课程的不同讲次尽可能安排在同一教室,而且

6、要隔一天以上安排,使教师有充足的时间备课和批改作业,学生也有足够的时问复习消化;(4)学生每天的必修课安排尽可能趋于平衡:(5)尽可能满足每门课程教学的客观要求;(6)满足个别教师(如外聘教师)的特殊上课时间要求。在排课中必须遵守的基本原则、人性化因素和特殊要求构成了排课约束条件。(一)排课问题数学模型排课问题涉及班级、课程、时间、教师、教室五个方面数据,是一个典型的排列组合问题。由于排课前课程与教师的关系已经在教学计划中确定,因而,在排课时,只要对学校所有班级开设的每门课程,安排课程、教师、教室具有共同的空闲时间片上课即可,排课算法也就简化

7、为班级、教师、教室三方面数据在具有共同的空闲时间片前提下的排列组合问题,三者关系如图1所示。它们在三维空间上的交点P表示一个排课组合的选择,即可能的教学安排。排课问题就是遵循一定的约束规则,在这个三维空间搜索空闲时间片集合,如果该集合存在,说明排课问题有解。为了描述排课算法,定义CNi为课程课时单元,其中CN表示所开设的课程名称,下标表示该门课程的第i个课时,那么,课程的课时单元集合可以表示为{CNI,CN2,…,CNi},定义TC为排课瞬间班级空闲时间片集合,TT为排课瞬间教师空闲时间片集合,TR为排课瞬问所有教室空闲时间片集合,CARD用

8、于求集合的元素个数。显然,当每门课程都满足CARD(NT*TN*TR)>=CARD{CN1,CN2,…,CNi}时,排课问题有解。上面描述了排课算法有解时的理想化状

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。