集宁师范学院排课系统的设计与实现

2015-03-11 07:35张健立冯永祥
黑龙江教育学院学报 2015年1期
关键词:算法

张健立,冯永祥

(1.集宁师范学院 计算机系,内蒙古 乌兰察布 012000;2.内蒙古工业大学 信息学院,呼和浩特 010080)



集宁师范学院排课系统的设计与实现

张健立1,冯永祥2

(1.集宁师范学院 计算机系,内蒙古 乌兰察布 012000;2.内蒙古工业大学 信息学院,呼和浩特 010080)

摘要:以集宁师范学院为例,分析排课中会涉及到的各个要素,同时考虑到排课中的基本约束问题和模糊约束问题,通过计算机模拟手工排课过程,实现自动排课功能,以期为大幅度提高教务人员的工作效率提供借鉴。

关键词:手工排课;算法;排课约束

一、设计排课系统的背景及意义

近几年来,随着集宁师范学院招生规模的不断扩大,学校所开设的专业和课程也在逐年增加,教学资源日益紧缺,教学管理任务也变得越来越繁重,其中排课问题是教务管理工作中一项重要且繁杂的任务。一个好的排课系统,不仅能够让教务管理工作人员摆脱烦琐的手工排课工作,而且能够在很大程度上提高工作人员的效率,节省工作时间[1]。因此,设计开发一个合理有效的自动排课系统,对于提高教务管理人员的工作效率是很有意义的。

二、排课系统的详细设计

(一)排课问题中所涉及到的各种变量

排课问题中所涉及到的各种变量包括:时间、教师、课程、教室、班级等。

(二)排课变量之间的约束

排课涉及到两种约束,分别是基本约束和模糊约束。基本约束是指在排课过程中必须要遵循的原则,而模糊约束是要尽量坚持满足的原则。

课表要遵循的基本约束条件有:同一时间段内不能给一名教师安排两门不同的课程[2];同一时间段内一个班级只能安排一门课程[3];同一时间段内一个教室只能安排一门课程;教室的最大容量应不小于上课的学生人数。

模糊约束条件有:根据课程类型以及学生的接受程度,来为这类课程安排最合适的时间段;如:专业课、必修课一般安排在早上,而文体类的课程通常安排在下午;理论性课程尽量分散安排,理论与实践并重的课程最好将理论与实践课穿插安排;学生的上课时间不能过分集中,应尽量避免某一天课程安排得很满而另一天却没课的情况;考虑教师的工作负荷,一天内上课一般不超过四节;教师或学生接连上两门课程的地点尽量比较接近;对于教师、学生可能提出的一些特殊要求,根据情况安排,如若合理,尽量满足。此外,对于计算机预排的结果,还可以根据实际情况,通过人工交互的方式进行修改。

(三)排课问题的求解目标

本文的目标是在满足基本约束条件的情况下编排出无冲突的课表,并且编排出的课表尽可能多地满足模糊约束条件,从而使得排出的课表是可行的,且尽量达到优化。

使用计算机来排课,实际上就是要利用计算机来模拟人工排课的过程。进行手工排课,首先需要有三类表,分别为班级、教师以及教室课表。排课人员在对一门课程进行安排时,首先要确定这门课程的总学时,从而确定每周的课时数,然后在班级、教师以及教室的课表中选择一个时间来安排这门课程。然而通常时间的选择并不容易,排课人员要对与之相关的所有课表进行排列组合,并对其中部分课程的时间进行调整,直至形成最优的解决方案。

(四)手工排课流程

首先每周一至周五为上课时间,每天分为8小节课,上午和下午各安排4节,每2小节作为1个课时单元。表中黑色部分表示这个时间段、这个班级、教师以及教室已经安排了课程。若当前待安排课程为X(某专业课),任课教师为Y,涉及的班级为Z,课程X每周要安排3次课,对X课程可以分为下面4个步骤来进行安排:

1.首先查询班级Z的当前课表

排课人员可以在多种排列组合中选择,同时由于考虑到学生在早上的学习效率会相对高一些,排课人员大多会优先考虑将课程X安排到上午的1—2节,对于安排不下的课程则继续选择合适的时间点顺延,同一门课程尽量不要安排在一起。假设在表1中,标记为“N”表示该时间段已安排课程,则按前面提到的要求,可考虑将课程X安排在星期一、星期三的1—2节,以及星期五的3—4节,标记为“Y”。

表1 班级Z课表安排

2.查询任课老师的当前课表

由于在第一步中已选择星期一、星期三的1—2节和星期五的3—4节,此时对任课教师Y的时间安排进行查询,教师Y的课表安排如表2所示。由于Y教师星期五3—4节已安排课程,所以需要回到第一步对表1中已安排好的课程重新进行安排。

表2 教师课程安排

3.查询教室的当前课程安排时间表

表3为教室当前课程安排状态。考虑到前面两步中所安排好的课程X的时间和班级Z的学生人数,在教室安排课表中找到可以满足时间和座位需求的空教室,如果未能找到,则同样需要回到第1步进行重新安排。

表3 教室课程安排

4.确定课程X的上课时间

根据以上3个步骤,即可确定班级Z所授课程X的上课时间和教室。

通过上面4个环节的不断重复、调整,为所有教室、教师都已安排好课程。通过这些可以发现手工排课某种程度上能够得到最优排课方案,但是如果涉及大量课程,则各个课程之间难免会有时间上的冲突,同时反复不断地调整涉及到的工作量非常大,最终又不一定能得到全局最优解。

(五)排课算法流程

1.算法提出的假设条件

(1)一周只能上5天课,每天8节课。(2)一个系分成若干个专业,一个专业有若干年级。(3)所有教室资源硬性分配给不同专业的年级。也就是说,不同专业的不同年级的上课地点是相互独立的。只能在自己分配的教室上课。(4)公共课只能是同一专业的同一年级的所有学生在同一时间同一地点一起上课。

2.排课算法流程

(1)连接SQL Server数据库获得课程信息、班级信息、教室信息、公共课程信息、系别信息。(2)计算学期的总共教学周和每周课时。(3)通过假设情况1规定:一周只能上5天课,每天8节课。并且控制同一天不能上2节同样的课。将课程按照隔一天时间进行排课。如果课程数超过40,则表示学生所学课程数过多(输出排课失败信息)。(4)检测同一天,多个班级同时上一个课程的冲突。当班级数较多时,每天上课数少于班级个数的课程,在进行课程节轮训时会有冲突,不够轮训的用-1代替(熊婷,2006)。(5)设置同一天,不同班级的课程不能同时上课。并将同一专业,同一年级的所有课程排好。(6)调整公共课,检测公共课要放的位置并重排公共课。(7)进行一个专业,一个年级的教室单元初始化分配。(8)安排班级去教室上课,进行冲突检测,即检查教室容纳人数与班级人数是否符合。(9)检测已经排好的课中是否有教室冲突,并调整教室。(10)如果没有冲突退出排课,并输出排课结果。

三、结语

本文的排课算法实现了教师、教室、课程、时间等资源在教学活动中的合理配置与安排,大幅度地提高了教务人员的工作效率。虽然实现了自动排课功能,但是在实际应用中,还应该考虑到因为一些特殊原因导致的需要手工调节课表安排的情况,所以在今后还需要完善这方面的功能。

参考文献:

[1]大学教务管理系统设计[EB/OL].豆丁网,2013-09-21.

[2]汪力君.分治算法在排课系统中的分析与应用[J].安徽建筑工业学院学报:自然科学版,2007,(6).

[3]周芬.遗传算法在多校区排课系统中的应用[J].科技信息,2010,(6).

(责任编辑:朱岚)

中图分类号:G642

文献标志码:A

文章编号:1001-7836(2015)01-0027-02

作者简介:张健立(1978—),男(蒙古族),内蒙古赤峰人,讲师,硕士,从事计算机技术研究;冯永祥(1962—),男,内蒙古丰镇人,计算机系副教授,硕士生导师。

基金项目:内蒙古自治区高等教育科学“十二五”规划课题“遗传算法在高等学校智能排课问题方面的研究”(课题批准号:NGJGH2014083)

收稿日期:2014-11-10

doi:10.3969/j.issn.1001-7836.2015.01.013

猜你喜欢
算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于CC2530的改进TPSN算法
基于BCH和HOG的Mean Shift跟踪算法
基于增强随机搜索的OECI-ELM算法
一种改进的整周模糊度去相关算法
一种抗CPS控制层欺骗攻击的算法
Wiener核的快速提取算法
带跳的非线性随机延迟微分方程的Split-step算法