教师A的初始时点度d反映了教师A最多可排d次课,d根据教师的时间、分点要求得到。教师的时点度随教师的选择不断变化,如教师A的初始时点度d为4,教师B被选择后,因为受某约束(如14)的限制,教师A的时点度变为3。教师A尽管是级别最高的教师之一,但可能一次也没有排课,因为其时点度随其他教师的选取变为0。
设计算法:r=r1*d+r2*(-x),用r作为每次选教师的依据,每次为<d,w,s>选择教师t时,计算所有教师的r值,选择r值最小的教师,若r值最小的教师有多个,随机选一个。其中r1、r2分别表示教师的时点度、最小学时的绝对权(如各占50%),其值由用户根据需要设置,x表示教练的最小学时,d表示教师的时点度。某个时刻,当教师A比教师B的时点度小,两人的最小学时相同时,系统通过计算知A的r小于b的r,会选择教师A,与A同级别的教师B可进入下一轮选择。采用这种算法选择教师,兼顾了教师的级别和教师的要求,排出的课表其教师级别之和更高,课表编排的解更优。
1.5 设计方案
计算机排课问题的难点归结为多约束条件与解的不确定性。众所周知,排课时要受到时间、空间等各种条件的限制;在一定条件下,某一课程可排在课表的位置又不是唯一的。综合诸多因素,如何才能排出理想的课表?解决课表的无冲突性、合理性是排课问题的关键。教务工作者有长期实践的经验,有一套技巧与方法。模拟人工排课方法于计算机排课系统是一主要方法。
现有的排课系统,一般存在两个问题不能适应当前需求:其一是只能针对固
定教室,其二是不能扩充约束条件,并且从信息有效到输出结果的等待时间长。该高校智能排课系统使用改进的算法处理排课冲突的问题。它由以下几个主要的过程组成:
1) 系统数据初始化,形成本期教学信息二维数据库;(包括数据属性、条件属性及信息编码等)。
2) 课程定位,按照预排算法,形成无任何决策信息的课表样本视图。
3) 按构建规则对课表样本库进行课表混排。
4) 通过算法定位课表混排库中出现的冲突。
5) 按优先处理冲突计数值最高元素的原则消除冲突。
6) 系统综合检测原始信息和约束条件,输出结果。
用这种算法处理冲突,比常规的递归排序方法有更高的效率。
排课涉及的对象主要有5个:班级、课程、教师、教室、时间,排课最终结果是要按教学任务给出这5个对象的合理匹配需求矩阵法,分3个阶段完成此匹配过程,第1个阶段进行教室和班级间的匹配,第2个阶段进行班级上课时间和教师间的匹配,第3个阶段在前2个阶段的基础上考虑课程对象。在这3个阶段中教学任务都起到了至关重要的作用
这种排课方法从一开始就把握全局,好象网页中的图片一开始就全部出现,然后逐步清晰.而手工排课是从局部逐步推进到全局,但每一局部的时间安排都是一步到位。需求矩阵法与人工排课(许多排课软件就是模仿人工排课的思路)实际上是从两个不同角度来解决这个问题的,
1.6 基于优先级自动排课算法设计
从数学上讲,排课问题是一个在时间、教师、学生和教室四维空间,以教学计划和各种特殊要求为约束条件的组合规划问题,其实质就是解决各因素之间的冲突。在设计算法时,为了降低课程调度的算法复杂性,该系统主要采用了化整为零的思想及优先级算法。
在排课的预处理中:1)通过等价类的划分,将具有共同听课对象的任务划分在同一等价类中,在每个等价类之间只存在地点上的冲突,而没有时间上的冲突.然后按照大小,从大到小的进行处理。等价类的划分是先按年级分,然后再按系别分。2)根据分治法的思想把整个排课过程分成时间分配和教室分配两个阶段。然后,依据贪婪法的算法思想,在时间分配时,总是在尚未分配的时间单元中选择上课效果最好的单元。而在时间分配发生死锁时,会向上回溯搜索到发生冲突的最近一个记录,然后对它进行重排以解决冲突。
1.7 当课程选择不优时的处理算法
采用回溯算法,这是一种优先搜索法。它按优先条件向前搜索,以达到目标,但当搜索到某一步时,
第三章 问题与展望
3.1 成功与特色
本文是在参考各种市场上流行的排课软件的基础上尝试性地提出了一种大学排课算法,并开发而成小型自动排课系统。排课问题的研究主要是解决各种教学资源如教室、教师的合理有效利用问题,避免教师、班级在上课时间、地点上的冲突,使排课时间分配均匀。在算法设计中为排课操作设置了不同的优先级,逐级排课,有效地降低了排课时间冲突的几率,提高了排课的成功率。另外,系统为教师和教室分别设计了排课级别,从而能够避免教学资源过于集中地使用,实现均衡化利用。
小型自动排课系统只是一种尝试,还有很多不完善的地方,需待日后改进。也可以说这个排课系统还不是一个成熟的软件,例如在目前的高校中一般都有很多院系,每个院系还分有很多不同的专业,因此这个排课系统所需要的基本信息的数据量是非常的大,如果每个学期开始排课的时候,这些数据都像本排课系统一样都需要手工输入,那么这是一件非常令人头痛的事情,而且排课效率非常的低。如果这些基本信息能从Microsoft Access表自动的导入,那将是一件令人愉快的事。
在这次毕业设计的过程中,我用积极的态度去面对它,并付出了艰辛的劳动,令我欣慰的是我有了一些实际的收获。此排课系统的开发最大的一个特点是数据库的开发与算法的实现结合在一起。这一点让我更加体会到了数据结构与算法在软件开发中的地位。