一种基于权值的中小学自动排课方法

文档序号:9433219阅读:717来源:国知局
一种基于权值的中小学自动排课方法【
技术领域
】[0001]本发明属于计算机信息系统
技术领域
,具体涉及一种基于权值的中小学自动排课方法的设计。【
背景技术
】[0002]排课问题早在70年代就证明是一个NP完全问题,即算法的计算时间是呈指数增长的,目前大家对NP完全问题研究的主要思想是如何降低其计算复杂度,即利用一个近似算法来代替,力争使得解决问题的时间从指数增长化简到多项式增长。结合到课表问题就是建立一个合适的现实简约模型,利用该简约模型能够大大降低算法的复杂度,便于程序实现,这是解决排课问题一个很多的思路。[0003]目前,解决课表方法的问题有:模拟手工排课法,图论方法,拉格朗日法,二次分配型法等多种方法。由于课表约束复杂,用数学方法进行描述时往往导致问题规模剧烈增大,这已经成为应用数学编程解决课表问题的巨大障碍。国外的研究表明,解决大规模课表编排问题单纯靠数学方法是行不通的,而利用运筹学中分层规划的思想将问题分解,将是一个有希望得到成功的办法。在国内,对课表问题的研究开始于80年代初期,具有代表性的有:南京工学院的UTSS(AUniversityTimetableSchedulingSystem)系统,清华大学的TISER(TimetableSchedulER)系统,大连理工大学的智能教学组织管理与课程调度等,这些系统大多数都是模拟手工排课过程,以"班"为单位,运用启发式函数来进行编排的。但是这些系统课表编排系统往往比较依赖于各个学校的教学体制,不宜进行大量推广。[0004]从排课系统的使用范围和对像来看,目前大多数排课方法都是针对高校的需求,但在我国,中小学的排课与高校的排课有很大的差别,因此很多方法不能直接应用于中小学,比如,中小学的课程有等级差别,即主科和副科,另外中小学的教室是固定的,不存在教室安排的冲突问题等。【
发明内容】[0005]本发明的目的是为了解决现有技术中大多数排课方法无法满足中小学的排课要求的问题,提出了一种基于权值的中小学自动排课方法。[0006]本发明的技术方案为:一种基于权值的中小学自动排课方法,包括以下步骤:[0007]Sl、初始化排课过程中的相关参数;[0008]S2、建立教师权值序列;[0009]S3、安排教师至节次矩阵二维表中;[0010]S4、更新教师权值序列;[0011]S5、判断教师权值序列是否为空,若是则排课结束,否则返回步骤S2。[0012]进一步地,步骤Sl具体为:[0013]设所有参与排课的课程集合为:C={Cl,(v··cj,课程数:|C|=n;[0014]设授课教师集合为:T=It1,t2…tm},教师数:|τ|=m;[0015]定义课程权值函数:WC(ck)=wck,wcke(〇,1),ckeC,ke[1,η];[0016]定义教师-课程的映射函数为TCUi)=ck,t#T,ie[1,m],ckeC,ke[1,η];[0017]设参与排课的班级集合为:L=Il1,lv··lz},班级数量:IL|=z;[0018]定义教师-班级映射函数为:TL(ti)={1山t#T,ie[l,m],je[1,z],其反函数为班级-教师映射数函数:LT(Ik)=TL1(Ik)={tj,heT,ie[1,m],ke[1,z];[0019]定义班级-课程映射函数:LC(Ik)=ITcai)Kt1GLT(Ik);[0020]定义每个班的节次矩阵二维表:Mat(Ik)=[0022]其中班级IJilX第y节表示为:mat(Ik,X,y);[0023]当单元格没有排课时,表示为:mat(lk,x,y)=null;当已经排上某位教师tp时,表不为:mat(lk,X,y)=tp;[0024]定义节次权值函数为:WJ(x,y)=wjxy,wjxye(〇,I);[0025]定义每位教师在所授班的周节次数量为Count(lk,tj,其中t#T,IkeTL(t;)。[0026]进一步地,步骤S2具体为:[0027]按照课程权值函数建立教师权值序列:TQ=[ktytj;[0028]其中WC(TCajD)^WC(TCaj))》WC(TC(tj+1)),je(l,m)。[0029]进一步地,步骤S3包括以下分步骤:[0030]S31、取出TQ的第1位教师L,并得到^所授班级集合:TLai)={1山je[l,z];[0031]S32、遍历TLai)和所有对应班级的节次矩阵二维表,即对于▽7,.e丨),Vxe[丨,5],V:>'e[1,8],且保证matQj,X,y)=nul1;[0032]计算权值=Wj=WT(tD(x,y)+λ,其中WTU1)是L的权值,初始情况下WT(tD=WC(TCai)),λe(〇,1)为调节参数;[0033]最终得到权值集合W=IffjI;[0034]S33、计算集合W的最大值:max(W)=Wk,找到Wk所对应的班级Ik和周次X及节次y,将ti安排到该班级的该位置,即赋值:mat(lk,X,y)=t1;[0035]S34、重新设置^权值:WTU1)·α,其中ae(〇,1)是权值调节参数。[0036]进一步地,步骤S4包括以下分步骤:[0037]S41、检查h是否已经完成排课,若是则ti不再插入到TQ中,TQ中的教师数量量减1,否则更新得到^的新权值WT(tJnew,并根据该值重新插入到TQ中;[0038]S42、将TQ的序号按照Ι-m的顺序重新排列。[0039]本发明的有益效果是:本发明针对中小学的课程有等级差别以及中小学的教室是固定的,不存在教室安排的冲突问题等排课要求,通过定义课程和节次的权值,并计算出最优排课结果,快速、高效地实现面向中小学的排课方法。【附图说明】[0040]图1为本发明提供的一种基于权值的中小学自动排课方法。【具体实施方式】[0041]下面结合附图对本发明的实施例作进一步的说明。[0042]本发明主要面向中国的大部分中小学的排课需求,本方法的前置条件和相关定义包括:[0043](1)-位教师只教一门课。这符合目前我国大部分中小学的实际情况,对于少数偏远地区存在的一位教师任多门课的情况,本发明不适用。[0044](2)每个班有固定教室,即不存在教室的冲突。[0045](3)不同课程有不同的等级(权值),如一般学校的语、数、外课程优先级会高于其它学科。[0046](4)不同的节次有不同的等级(权值),如早上1-3节就比下午5、6节效果更好,因此等级更高。[0047](5)每个班的节次安排是一致的。[0048]本发明提供了一种基于权值的中小学自动排课方法,如图1所示,包括以下步骤:[0049]S1、初始化排课过程中的相关参数。[0050]设所有参与排课的课程集合为:C={Cl,(v··cj,课程数:|C|=η。[0051]设授课教师集合为:T=It1,t2…tm},教师数:|τ|=m。[0052]定义课程权值函数:WC(ck)=wck,wcke(〇,1),ckeC,ke[1,η]。wc亦值可根据各个学校的不同情况灵活设置,如某学校重点是外语,则外语课的权值可能更高,而其它学科的权值稍低。[0053]定义教师-课程的映射函数为TCUi)=ck,t#Τ,ie[1,m],ckeC,ke[1,η]。课程与教师是"一对多"的关系,即一位教师只教一门课,而一门课有多位教师教。[0054]设参与排课的班级集合为:L=Il1,V··IJ,班级数量:IL|=ζ。班级与任课教师的关系为"多对多",即一个班级有多位任课教师(多门课程),一位任课教师也会教多个班级。[0055]定义教师-班级映射函数为:TL(ti)={1山t#T,ie[l,m],je[1,z],其反函数为班级-教师映射数函数:LT(Ik)=TL当前第1页1 2 
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1