中小学辅助排课系统的设计及实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
word文档整理分享
中小学辅助排课系统的设计与实现
贺荣
摘要:编排课表是中小学教学管理中一项重要而又复杂的工作。它通过合理地安排时间、教师、课程、班级四大要素之间的关系,使全校各个班级一周内的每节课,都有合适的教师及课程与之对应。
针对我校自身的校务情况,在研究过当前一些优秀的排课算法的基础上,我研究出一套基本可行的排课程序。它可先根据教务人员输入的约束条件进行设置,通过逐步筛选细化,将特定的课自动安排在最合适的时间段中安排到最优级的班级中。如果自动排课尚有不成功的地方,会在课表显示区将该课程以红色显示进行警告。通过这种直观的辅助手段,教务人员再配合进一步手动调整,最终调整出满意的课表。
关键词:排课系统自动手动辅助
参考资料
一、排课系统的开发背景
随着教育事业的不断发展,学校对教师课程安排的复杂度不断增加,如何将一个学校各个学科每天的课程安排与教室资源的分配合理化是摆在每一个教务工作人员面前的一个难题。传统的人工排课方式不仅工作繁琐,工作量大,而且还很容易出现错误。因此,计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机自身的优势,将大量复杂的判断与运算交给计算机做,是真正意义上的人脑的“减负”。教师设置好学校基本情况及排课要求,让计算机自动排出课程表,适度调课后的课表就能满意地应用于新的学期。
早在上世纪60年代末,Grotlieb.C.C教授就对课程表问题进行了形式化描述[1]。排课表这样的时间表问题(TTP: T ime-Table-P rob lem ) , 是典型的组合优化和不确定性的调度问题[ 2, 3 ] , 并且已被证明是NP完全问题,有其自身固有的数学模型,即课表问题存在解,并且能找到解[4]。排课表问题的难度在于:它是一个多元受限的问题(受限于课程、时间、班级、教师、教室排课五要素) , 如果必须满足所有的约束条件(而这些条件通常是相互矛盾的) , 则极有可能找不到完整解[ 5 ]; 这也是为什么迄今为止还几乎没有完全自动生成课表系统的软件应用于实际,因为多数的排课效果好的软件还需后期手动辅助排课进行完善,而那些完全自动生成的排课软件,通常会以降低约束条件的满足程度为代价(比如不能均匀分布课程、主副科安排时间段不很合理等)。
目前, 解决课表问题的方法有: 模拟手工排课法[ 6,7 ] , 图论方法, 拉格朗日松弛法, 二次分配型法等多种方法[ 8, 9 ]。在以往的教学管理中,课表编排在许多学校只能通过人工或人工模拟的方式生成。但是,伴随着各类学科范围的不断扩大,各学科科目逐渐增多,以至于众多的教师和学生、庞大的课时、复杂的班级信息令学校的教务安排人员无法高效、合理地制定出相应的排课计划。这就促使我们的教务安排人员必须采用一些辅助的手段来帮助自己。因此,计算机辅助排课成了现代排课的需要,相应的排课算法成了人们探讨的主要问题。目前常见的排课算法有贪心算法、遗传算法、回溯算法等[10]。研究并使用一种好的算法不仅可以缩短排课时间,提高排课效率,更可以让使用者得心应手,提高教学效果。
word文档整理分享
二、排课系统开发目的及意义
排课问题的实质是为教师、学生的教学活动合理安排时间上和空间上的资源,以保证教学活动有秩序有计划地进行。排课工作在教务工作中处于十分重要地位。
用一个计算机自动排课系统来完全代替手工排课,是每个排课程序开发者的设计初衷,但随着研究的不断深入,好多开发者都会发现一个棘手的问题:由于排课众多的约束条件和超大的求解规模,使一个完全的自动排课系统的生成可能性变得很小。因此,在约束多、数量大的前提下,通过人工干涉达到合理的排课效果是很重要的。
开发“中小学辅助排课系统”旨在当前中小学教学模式下,提高排课效率,优化排课结果,探求算法的改进,既能首先使用自动排课替代以往的手工排课,又能在后期使用辅助手动排课进一步调整细化,使排课结果更为理想。
本设计借鉴当前成功的排课经验并结合本校的实际情况,探究出一种优化资源分配的自动排课,及后期利用手动处理优化排课结果的算法。主要有四个方面:首先是将教师信息按权值高低进行优先级排序。排课时总的原则是主科教师及课时量多的教师优先进行排课,但为了保证教师的排课均匀,设置变量turned代表轮流次数,每位教师排课后turned增加1,然后取下一位教师的排课信息,成功排课后该教师的turned变量也增加1,这样当所有教师排了一遍课程以后,再按教师优先级的排序结果重新来下一轮次,可以保障教师排课的均匀。第二:得到该教师所带课程及班级信息后,将教师课表、班级课表、约束条件设置表、星期区间表进行“与”操作,判断出该节课是否适合安排课程。这里主要体现在经过上述四大条件的“与”操作之后,适合安排该课的课节是一周里面最优的时间段。第三:为保证排课结果均匀而预先设置好“星期区间”。有的课程一周2节,有的课程一周8节,如何将这些课程在一周内均匀地安排,是中小学排课中一个很关键的问题。本文首先设定好一个“星期约束”表,将周课时从1节到8节分别进行星期区间的合理设定,当排到某课程特定的课节时,可以从区间表中找到它对应的星期区间,以达到排课结果的均匀;最后:在自动排课无法达到理想状态,即排课产生冲突的时候,为用户提供手动辅助排课,以达到进一步优化排课结果的效果。冲突检测主要通过5个集合来完成,分别为课程A,教师B,班级C,约束D,时段E。其中时段E即为基础数据模块中“周课节设置”后形成的时间区间。如一周上课5天,一天6节课。从课程A中提取一门需要安排的课,按时段取用规则从时段E中提取一个时间片,在这个时间片进行各种冲突检测,即对教师B、班级C和约束D进行检测,一旦冲突,则跳过此次排课结果,再进行其它尝试。自动排课和手动调整均适用此冲突检测规则。
三、排课准则及排课算法
(一)排课系统的准则
参考资料
一个排课系统成功与否,主要取决于排课结果是否符合以下准则:
1.是否满足“约束条件”,也称为“硬条件”
这是判断一个排课系统的生成结果是否成功的标志。本文之所以把约束条件称为“硬条件”,是因为它是排课系统必须遵循的条件,如果违背了这些条件形成结果,那么结果将视为无效。打个比方:全校的语文组要在每个周二的上午集体教研,那么之前设置的约束条件——周二的上午不能安排语文课,则是硬性的必先执行的约束条件,排课时必须做到遵守这一点,否则就会影响教学安排,违背了排课系统的设计初衷。
中小学的排课系统不同于高校,它没有教室因素这一要求,即每个班级固定为某个教室,其常见的约束条件如下所列:
(1)教师不能冲突:一名教师不能同时带多个班的课程,合班课除外;教师先前做好的约定不能被违背,比如张老师要求周一上午第4节不予安排课。
(2)班级不能冲突:同一时间段一个班级不能同时由多位教师上课,如初一1班周一第2节,同时由语文张老师和数学李老师上课是不合理的;班级的约束条件不能被违背,如全校周一下午第2节固定设置为班会。
2.是否满足“优化条件”,也可称为“软条件”
优化条件,又称软条件,是在排课过程中可以满足同时又可以不完全满足的约束条件,是在满足硬约束条件的基础上能尽量要求满足的约束条件,软约束条件可以根据不同的教学情况有所差异。有时可以通过调节软约束条件的满足程度而改变排课的效果,可以将一定要满足的软约束条件转换为“硬约束条件”。
常见的优化条件如下所列:
(1)同一班级的某门课程,一周内上课的时间尽量均匀分散安排。
(2)主科安排在主要时间段,一般为上午,副科安排在次要时间段。
(3)教师课程安排合理:任课多的教师一周的工作量要合理分布。
(4)占用公共资源的的课程如微机、体育,以及学时多的课程优先进行处理。
优化条件是判断一个排课系统的生成结果是否成功的标志。也就是说,一个排课程序,如果能实现所有的“约束条件”,也就是硬条件,那么说它是合格的,但未必代表它就是成功的。只有同时满足了“优化条件”,也就是软约束条件,才能说它是一款成功的排课系统。
(二)优化排课算法的实现
设计排课系统算法有一定的复杂性,因为它涉及到教师、班级、时间、课程四大信息对象,如果是高校的话,还会涉及到“教室”第五个因素。算法的目标是为满足学校教学需求而合理分配资源,其关键核心问题即在于:解决冲突。试想,一个学校几十个班级、十几门课程、百十名教师、几十个时间段……将这么多的因素交叉在一起形成一系列完全没有冲突的课表,绝不可能是随便一个简单的算法能够实现得了的。