课表编排问题中冲突回溯算法设计与实现

来源 :中国商界·下半月 | 被引量 : 0次 | 上传用户:zhouqjj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  中图分类号:G47 文献标识:A 文章编号:1006-7833(2012)02-000-02
  
  摘 要 排课问题及相关算法是一种基于动态规划思想和优先级编排的混合排课算法。排课算法分为三个阶段:课程归档阶段、贪心求解阶段、回溯求解阶段,此算法可根据教室、教师、时间和班级的约束关系,根据所设定的优先级顺序完成一次性扫描排课,尽量避免冲突并调整冲突。
  关键词 排课 算法 动态规划思想 冲突 回溯
  一、课程表编排问题
  排课问题是一个涉及多种因素的动态组合规划问题,它要保证各种教学资源不产生冲突,并且要满足教学资源各方面的约束条件。教学资源主要包括课程、教师、教室、时间。排课问题的求解过程就是对任何课程、班级、教师、教室安排出一个相同的空闲时间,在排课时不能发生冲突,同时遵守一些约束条件。所谓冲突就是将上不同课程的两个或多个班排成了同一时间或同一教室,或在同一时间为一个教师安排了多门课程等等。排课流程一般是:首先,各院系将各自的新学期课程表、任课教师情况、班级课程安排情况的数据录入排课系统,然后,排课系统根据本学校的教室情况以及各种约束条件进行排课。
  二、课程表编排问题的数学模型
  班级集合:B={B1,B2,B3,B4,…,Bi,…,Bu);Bi={bi1,bi2,…,bij,…,biv },其中bij表示单个自然班级,Bi表示专业和年级相关的实际班级,它可以是一个自然班,也可以是多个自然班。课程集合:C={C1,C2,C3,C4,…,Ci,…,Ck};教师集合:S={Sl,S2,S3,S4,…,Si,…,Sl};教室集合:R={R1,R2,R3,R4,…,Ri,…, Rk,…,Rm};其中,Rk表示具体教室,属性包括:楼号、序号、大小(以容纳人数为衡量标准)、是否多媒体或语音室等等。时间集合:T={tl,t2,t3,t4,…,ti,…, tn};时间tn包含周次(Z,Z∈[l,26]),星期(W,W∈[1,7]),节次(J,J∈[1,5]),一般课程是两节连排,节次中1表示1、2节,2表示3、4节以此类推。Z、W、J均可根据实际情况的需要确定取值范围[1]。
  系统执行课程编排之前,(B×C×S)都是一一对应的任务单元(task),排课的目的就是为每一任务单元分别安排相应的时间与地点(R×T),同时必须满足一定的约束条件。
  三、排课算法研究
  课程表编排实质是为课程、班级、教师安排一个合理的时间和地点,故将课程、班级、教师看作任务单元,用三元组表示T(c,b,t),其中c代表课程,b代表班级,t代表任课教师;课程表编排的目的是为T(c,b,t)固定一个合理的时间和地点进行正常的教学活动。考虑到单一的算法无法适应多样化的排课需求,因此此排课算法融入了贪心、局部搜索、回溯算法等多种算法,以期望在面对不同排课需求时,排课算法均能够较好的完成排课。
  (一)课程归案阶段
  该阶段主要是对课程进行预处理,为每一个任务单元确定优先级。任务单元的优先级由三个方面因素决定:首先是课程影响范围的大小。课程影响范围越大优先级高,反之,优先级低。其次是任课教师担任的课程数。在第一因素相同的前提下,教师担任的课程数越多,优先级越高。第三是任课教师担任的班级数。在第一因素和第二因素相同的前提下,教师担任的自然班越多,优先级越高。
  (二)贪心求解阶段
  贪心算法采用逐步构造最优解的方法,它对很多问题产生整体最优解,即使不能得到整体最优解,也能找到最优解的很好的近似解。更关键的是,贪心算法的时间复杂度很低,在处理大规模数据时速度很快,非常适合用来处理排课问题。
  贪心求解阶段,设置一个评估函数f(i,j,k)。计算将任务单元i安排到第j天的第k次课的函数值(一天中,第1次课为的1,2节,第2次课为3,4节,以此类推,第5次课为9,10节)。根据课程表编排的约束条件,令C(i,j,k)表示将任务单元i安排到第j天第k次课是否满足所有的硬性约束, ;令r(i,j,k)表示满足软性约束的条件数,r(i,j,k)=a表示将任务单元i安排的第j天第k次课满足a条软性约束;令bcc表示正在安排的任务单元对应的班级第j天已安排的课程数,初始值为1,则f(i,j,k)定义为: ,利用计算评估函数所得的函数值,将课程安排在函数值大于0且最大的第j天第k次课。如果贪心求解成功,则本次排课成功;反之,贪心求解失败,将此课程抛入死锁队列。
  使用贪心算法极大的提高了大部分课程的排课速度,设计合理的评估函数也使自动排课的结果较为合理,具有较好的实际意义。
  (三)回溯求解阶段
  虽然贪心求解能够合理安排大部分课程,但是由于贪心算法只考虑局部最优而没有考虑全局最优,因此很可能有一些课程无法通过贪心策略进行安排,而有时通过对已安排课程的微调是可以完成对这些课程的安排的。回溯算法就是为了处理这种情况而设计的。
  回溯算法的基本原理是通过递归和回溯的方式来寻找增广路径,寻求死锁课程安排时间,同时通过控制递归的最大深度来减少搜索的次数,避免了完全搜索速度慢的问题。回溯算法根据用户约束,依此枚举每一个上课时间,尝试调整当前课程a至新的时间从而为死锁课程让开时间。如a没有无法通过寻求新的时间来完成本次要求,那么开始进入递归阶段开始尝试为调整b为a让开时间。依次调整后最终至c寻找出通路,然后c调整至新的时间,b、a依次调整后,死锁课程安排完毕[2]。
  回溯搜索算法极大地弥补了贪心算法无法安排课程的问题,虽然算法占用时间较多,但是该算法的加入使得自动排课的正确性得到很大提高,减轻了后期手动排课的压力。
  四、冲突回溯算法设计
  排课问题中出现的冲突问题往往采用回溯方式进行处理。首先,针对已经安排的任务单元进行重新编排,然后,尝试将引起冲突的任务单元重新排入课表,最终达到解决冲突问题的目的[3]。具体如图1所示。
  
  图1 回溯结构树
  
  Tc表示产生冲突的某个任务单元,当发生冲突时从此节点向前产生回溯,对前面已经编排就绪的任务单元,即ta,tb,tc,td进行重新编排。任意选择一个任务单元ta编排并检测重新编排后与其它任务单元发生冲突情况,同时将tc排入课表,若冲突或Tc仍然不能排入,则以ta为新的节点,进一步向前回溯,对前面已排好的任务单元(tc,tf)进行重新编排。选择其中一个任务单元tf编排并检测重新编排后与其它任务单元发生冲突情况,同时将tc、ta排入课表,若冲突或tc、ta仍然不能排入,则以tf为新的节点向前回溯。依此类推,向前回溯直到解决冲突为止。
  这是一种自顶向下的回溯方式,从根结点出发以深度优先的方式搜索整个解空间。这种搜索方式采用深度优先有界启发式。事先需要设置搜索深度为防止无限制向前搜索,从而造成计算机锁死。当超过这个深度,还未找到解决办法时就需要返回进行重新选择另一组进行冲突解决。回溯处理过程本质是一个在若干有限集合构成的笛卡儿集内,选取一个满足一定条件的元素的有限穷举过程。若找不到满足条件的元素则回溯失败。造成回溯失败的原因主要有①时间编排设置过于理想化;②部分班级或者教师的课程编排相对过于集中;③合班编排不合理;④教室资源相对不足。针对以上4个原因,可以在实际排课过程中通过优化配置资源来进行解决。
  五、冲突回朔算法实现
  系统排课的初期阶段无论是时间还是教室资源都相对比较充足,发生冲突的几率较少,随着编排的逐渐进行,时间和教室资源越来越紧缺,可供选择的越来越少,此时发生冲突的几率迅速提高。当发生冲突的时候需要向上回溯至离发生冲突最近的一个编排成功的任务单元,并完成重新编排直至无冲突发生为止。回溯策略的处理方法按照选择编排任务单元方式的不同可以分为三种,具体情况如下:
  (一)直接回溯[5]
  将已经编排好的课表的任务单元由后向前逐一重排。每重排一个任务单元就试探将其后所有的任务单元重排直到将引起冲突的任务单元排入课表为止,其特点是方法简单、效率不高,因此,在实用算法中一般不宜使用。
  (二)班级相关回溯
  将已排入课表的任务单元与引起冲突的任务单元的上课班级相关的任务单元由后向前逐一重排,每重排一个任务单元就试探将其后所有的任务单元重排直到将引起冲突的任务单元排入课表为止。
  (三)教师相关回溯处理
  将已排入课表的任务单元与引起冲突的任务单元的教师相关的任务单元由后向前逐一重排,每重排一个任务单元就试探将其后所有的任务单元重排直到将引起冲突的任务单元排入课表为止。
  六、结论
  本文研究的是基于运筹学中的动态规划思想的优先级自动排课调度算法,其中重点讲解了回溯算法解决冲突问题。要想实现排课,还需要把其他相关算法进行设计与实现,但是已不是重要问题之所在。
  参考文献:
  [1]王健,董改芳,许道云.基于遗传算法的自动排课系统.青岛:中国计算机学会.2003.
  [2]Thomas H Cormen, Charles ELeiserson, Ronaldl Rivest, et al.算法导论.北京:高等教育出版社.2002:664-669.
  [3]任曦平,王新房,王煜.基于WEB的选修课管理系统的设计与实现.微电脑应用.2001.17(9):26-28.
  [4]程国忠,张世禄.三个典型问题的回溯算法.四川师范学院学报(自然科学版).2000.21(2):187-191.
  [5]王岩冰,郑明春,刘弘.回溯算法的形式模型.计算机研究与发展.2001.38(9):1066-1079.
其他文献
中图分类号:D923 文献标识:A 文章编号:1006-7833(2012)02-000-01    摘 要 公司诞生以来,已在全世界的经济生活中发挥了不可替代的作用,这种商业组织形式在历史长河中仍将肩负重任。我国公司发展与发达国家相比时间较短,但发展速度较快,这就恰如其分的给了我们法学学者研究公司制度更有利的契机。公司问世我国以来,公司的治理结构发生了诸多变化,传统公司治理结构中董事
期刊
中图分类号:D925 文献标识:A 文章编号:1006-7833(2012)02-000-01     摘 要 本文结合我国立法实践,分析了我国刑事证据开示制度存在问题,并就完善我国刑事证据开示制度提出了相关见解。  关键词 证据开示 现状 问题  证据开示一词是来源于英美法系,在我国又被译为证据展示、证据先悉、证据发现、证据告知和证据公开等。在刑事诉讼过程中,证据开示
期刊
中图分类号:D90 文献标识:A 文章编号:1006-7833(2012)02-000-01   摘 要 法律只能要求人们做其有可能去做的事,不能强迫他人做其不可能做的事,即法不强人所难。依据行为之际的现实情形,能够期待行为人不实施犯罪行为而实施适法行为;反之,则为期待不可能性。它是期待可能性理论的核心,本文将围绕其涵义、运用价值和在中国的发展情况等问题加以探习。   关
期刊
中图分类号:D926.2 文献标识:A 文章编号:1006-7833(2012)02-000-01  摘 要 新闻监督与审判独立均作为现代社会的基本原则,但在我国现在司法实践中,仍然出现诸多的冲突,如何更好地认识两者的关系,本文将以此为出发点试图去平衡二者之间的关系,探讨如何把握新闻监督的度,在舆论监督之下如何保持审判的独立。  关键词 新闻监督 审判独立 关系  一、新闻
期刊
中图分类号:D922.29 文献标识:A 文章编号:1006-7833(2012)02-000-01    摘 要 经济法的公平、公正对当今和谐社会的构建而言,已经是一个不可或缺的重要元素。胡锦涛主席曾指出:“实现社会和谐,建设美好社会,始终是人类孜孜以求的一个社会理想,也是包括中国共产党在内的马克思主义政党不懈追求的一个社会理想。”那么更好的构建社会主义和谐社会就对我国经济法律提
期刊
中图分类号:D601 文献标识:A 文章编号:1006-7833(2012)02-000-02    摘 要 政策执行是政策过程中间的一个环节,它是实现政策的一个最重要、最直接的阶段。一项政策制定出来以后,没有执行是无法将政策变为现实的,而执行产生偏差也会导致既定的政策目标无法实现。影响政策执行的因素有很多,本文在借鉴金登多源流框架的基础上,将影响政策有效执行的因素划分为问题流、政策流
期刊
中图分类号:D922.1 文献标识:A 文章编号:1006-7833(2012)02-000-01     摘 要 地方行政立法在主体和程序上有其特殊性,这也造成一定隐患,针对这些问题,有必要通过完善公众参与机制加以解决,本文基于对完善公众参与机制的法理基础的分析,联系现存地方行政立法中公众参与的不足,提出相应的完善建议。   关键词 地方行政立法 公众参与 法理基
期刊
中图分类号:J523 文献标识:A 文章编号:1006-7833(2012)02-000-01    摘 要 随着艺术与时尚的不断发展,大众文化修养和审美观在不断的颠覆着传统,男人们开始为自己的着装地位不断受到压迫而奋起反抗,他们开始佩戴首饰,蓄长发,化妆,甚至尝试穿裙装。单一的、刻板的“男装世界”已经不足以满足男士的需求,许多男装设计中开始不断加入女性服装元素来吸引消费者。本文主要针
期刊
中图分类号:D922.29 文献标识:A 文章编号:1006-7833(2012)02-000-02    摘 要 《中华人民共和国车船税法》已经于2011年2月在第十一届全国人大常委会第十九次会议通过,并将于2012年元月一日正式实施。这是我国首次将车船税的征收由条例上升为法律,使得其更加符合社会主义法治国家的建设。在此法即将实施之际,笔者欲通过本文来探析新车船税法立法的始终,探
期刊
中图分类号:D922.29 文献标识:A 文章编号:1006-7833(2012)02-000-01     “山寨”商品的存在不仅损害了正牌厂商的合法利益,而且目的明显在于误导消费者,以低廉的成本牟取暴利,更加损害了消费者的知情权及自主选择权,误导消费者选择“山寨”产品,而不是人们自主希望选择的品牌。长此以往,必会造成市场秩序的混乱,使厂商和消费者遭受损失。  例如,模仿全聚德的
期刊