基于遗传算法的高校排课问题研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于遗传算法的高校排课问题研究
作者:衷田田,陈妙霞
来源:《教育教学论坛》 2013年第27期
衷田田,陈妙霞
(韩山师范学院历史系,广东潮州521041)
摘要:排课问题一个是有约束的、多目标的组合优化问题,并且己经被证明是一个NP完全问题。
在高校,排课是高校教务管理的核心内容,是教学工作正常运转的基本要素之一。
本文
通过对排课问题的阐述以及对遗传算法操作的描述,结合自身实践建立了一个基于遗传算法的
数学模型,可以合理地解决各种冲突,并在一定程度上实现智能排课。
关键词:排课问题;遗传算法;适应度函数
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)27-0161-03
一、前言
在高校,教学工作无疑是其运作的基本要素,而排课问题更是教学工作的核心内容之一。
由于排课问题本身的性质是属于一个复杂的、难解的、有约束的、模糊多目标化的组合数学问题,所以排课是每个学校在学期进行中就要妥善解决的重要任务。
排课问题的本质是将教师、
教室、课程以及班级在适当的时间段内合理安排,由于其涉及范围比较广且相互约束,在运筹
学领域中也被称为时间表问题(TimeTableProblem,简称TTP)。
随着我国高等院校招生比例的扩大,学生、课程数目逐渐增多,同时教师、教室等固定资
源的不足,出现一位老师多门课、教师课时繁重等情况,间接导致高校排课难度增加,排课人
员在众多约束条件的限制下很难人工排出十分完美的课表。
利用计算机解决排课问题的方法有
许多种,其中以遗传算法最为突出。
排课问题是组合优化问题,而遗传算法有两大优点,分别
是智能性和并行性,利用遗传算法的搜索全局最优解的搜索能力能很好地解决该问题。
二、遗传算法基本思想
遗传算法是基于自然选择、生物进化理论和遗传学的搜索算法,它将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适配值函数及一系列遗
传操作对各个体进行筛选,从而使适配值高的个体被保留下来,组成新的群体,新群体包含上
一代的大量信息,并且引入了新的优于上一代的个体。
这样周而复始,群体中各个体适应度不
断提高,直至满足一定的极限条件[1]。
此时,群体中适配值最高的个体即为待优化参数的最优解。
遗传算法有着不同于传统优化方法的特点,主要体现在以下几个方面:(1 )在应用遗传
算法求解问题时,当确定好编码方案、适应度函数以及遗传算子后,算法将根据进化过程获得
的信息自行搜素;(2)遗传算法是按照并行方式进行搜索种群数目的点,而不仅仅是单点搜素,可以防止过程收敛于局部最优解而不是全局最优解;(3)遗传算法通过目标函数来计算适值,不需要其他推导和附加信息,对问题的依赖性比较小。
下面是遗传算法的一般算法过程:
1.随机产生初始群体。
通常,初始种群是随机产生的,这个群体中的个体都是带有特征的
染色体(chromosome)或基因(gene)。
2.计算适应度。
在根据种群的大小随机产生初始种群后,按照“适者生存,优胜劣汰”的
原理,需要根据某个物种对环境的适应程度来度量基因遗传到后代的相对能力。
遗传算法在进
化搜索中基本不利用外部信息,仅以适应度函数为依据,利用种群中每个个体的适应度值来进
行搜索[2]。
一般来说,适应度函数是由目标函数变换而成的。
3.遗传操作。
遗传算法包括三个基本操作,分别为:选择、交叉、变异。
在每一代,根据
适应度大小挑选出的个体,通过选择交叉等遗传操作下产生新的种群。
4.下一代。
通过以上操作,如果新的一代能够产生出一个解是与期望的答案相符或者相接近,那么,整个过程就结束了。
如果不是,那么子代的适应度又将被重新计算,子代插入到父
代形成新的父代,产生新的子代。
这个过程将一直循环进行,直到达到期望的解。
以下是遗传
算法的伪代码;
三、排课问题的描述
1.排课问题的描述。
排课是指学校对学生上课过程中的课程安排,具体指在什么时间地点
由哪位老师给哪个班级上什么课程。
简单而言,课表问题中包含几个相互制约的因素,分别为:上课时间、上课所用教室、老师所教授课程、授课人教师、对象学生。
一份好的课表就是能够
对时间和教室进行合理分配。
课程门类多、班级多、教师少、教室少是排课时发生冲突和矛盾
的主要因素,而班级多、教室少则是矛盾的重要方面[3]。
判断课表的好坏通常有两大类,分别为:软件约束条件和硬件约束条件。
软约束条件是指
在情况允许的条件下可以满足但也可以不完全满足的约束条件。
比如,难度较大的课程应安排
在学生及老师精力相对比较充沛的时间段;某些老师因为一些原因而产生的特殊要求等。
硬约
束条件是必须满足的,是由客观情况而出现的限制。
比如,教室的座位数需大于学生人数,同
位老师不能在同一时间内出现在两个不同的授课班级等。
2.排课问题的数学模型。
排课问题中,最核心的问题是为了解决教师、教室、课程、班级
在一周的时间内不冲突[4]。
假设:学校有t个时间段,r间教室,l门课程,p位教师,c个授课班级。
那么可以表达为:时间集合:T={t1,t2,t3…,tn},以韩山师范学院为例,一次课
以一大节为准,一大节为两节课,每节课45 分钟,即每次课程的时间约为两小时,每周上5
天课,每天上课时间是7:50~21:15,所以将一天的时间按课节时间分为5个时间段,作为上
课时间。
这样推算,一周上课时间为:5*5=25个时间段。
如11代表周一第一个教学单元,即
周一1、2 节,12 代表周一第二个教学单元,即周一3、4 节,依次类推这些时间段构成一个
时间集合t(11,12,13,…,55)。
教室集合:R={r1,r2,r3…rm},每间教室的容量为Xr;时间与教室相对应,时间与教室
的笛卡儿积为:
N={(t1,r1),(t2,r2),(t3,r3)…(tn,rm)}。
N 中的元素称为时间一教室对。
课程集合:L={l1,l2,l3…lt},
教师集合:P={p1,p2,p3…ps}。
一般来说,大学教师,都是多门课程由一名教师来教,因此,固定的多门课程与一名教师
相对应。
教师与固定的课程相对应,教师与课程的笛卡儿积为:
K={(l1,p1),(l2,p2),(l3,p3)…,(lt,ps)}。
K中的元素称为教师一课程对。
班级集合:C={c1,c2,c3…cu},
根据以上约定,我们可以把一次授课表示为:(kicj)RaPb,
把课表表示为:CL={(kicj)RaPb;其中:i=(1,…,C),j=(1,…,s),a∈(1,r),b∈(1,p)}
3. 排课问题中的适应度函数。
适应度函数(Fitness-Function)的选取直接影响到遗传算法的收敛速度以及能否找到最优解[5],遗传算法在优化搜索中基本不用外部信息,仅用适应度函数为寻优依据。
由于遗传算法中,适应度函数要比较排序并在此基础上计算选择概率,所以
适应度函数的值要取正值。
遗传算法的复杂度最大的诱因来自适应度函数的复杂度,所以只有
越简单的适应度函数,计算的时间复杂度才会越小。
四、实验与分析
1. 实验测试的环境和工具:(1 )硬件环境:Intel-CoreZT7200+2GRAM;(2)操作系统:MicrosoftWindowsXPProfessional;(3)编译环境:VisualStudio2008,Microsoft-SQLServer2000;(4)实验数据:本文以韩山师范学院政法系课程计划作为源数据,分别对两
个学期数据进行测试和分析。
为方便表示,选择其中一学期课程计划作为性能对比分析的源数据。
2.结果分析。
通过软件设计,经过不断优化,把最终得到的可以接受的排课结果录入到数
据库中的课程表,为了使得学生及老师更加满意课表的安排,接着对上面排好的课表进一步人
工优化。
总之,遗传算法对系统适应度的提升是比较明显的,这正是遗传算法的特点[6]。
五、结束语
本文通过对排课问题的阐述,建立了排课问题相对应的数学模型,将遗传算法融入至排课
系统的研究中并进行了实现。
排课问题是一个复杂的多学科交叉的难解问题,至今未有最完美
的解决方案,在本文的研究基础上今后可以在如何设定算法中各个控制参数上进行进一步探索。
参考文献:
[1]陈江.基于遗传算法的自动排课问题的研究[D].杭州:浙江大学,2001.
[2]王小平,曹立明.遗传算法———理论、应用与软件实现[M].西安:交通大学出版社,2002.
[3]梁飞鸿.基于遗传算法的排课系统研究[J].电脑与电信,2010,(08):51-53.
[4]郭芸俊.遗传算法在排课系统中的应用[J].电脑开发与应用,2009,163(22):75-77.
[5]樊星,利用遗传算法求解大学课表问题[D].科学与技术工程,2007:1990-1991.
[6]赵光哲.基于遗传算法的大学排课问题的研究[D].延边大学,2006.。