排课冲突检测的设计及实现.docx

上传人:b****9 文档编号:42214 上传时间:2022-10-01 格式:DOCX 页数:8 大小:89.36KB
下载 相关 举报
排课冲突检测的设计及实现.docx_第1页
第1页 / 共8页
排课冲突检测的设计及实现.docx_第2页
第2页 / 共8页
排课冲突检测的设计及实现.docx_第3页
第3页 / 共8页
排课冲突检测的设计及实现.docx_第4页
第4页 / 共8页
排课冲突检测的设计及实现.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

排课冲突检测的设计及实现.docx

《排课冲突检测的设计及实现.docx》由会员分享,可在线阅读,更多相关《排课冲突检测的设计及实现.docx(8页珍藏版)》请在冰豆网上搜索。

排课冲突检测的设计及实现.docx

排课冲突检测的设计及实现

摘要:

排课是高校一项重要而繁琐的教务工作,使用计算机排课是必然的选择,在排课系统中冲突检测算法的设计是关键,目前对于上课时段重叠、周次自由设置的排课冲突检测研究较少。

结合宁波电大课表编排的特点,提出了降低问题空间纬度进行冲突检测的算法,该算法在实际使用中有较好的效果。

关键词:

排课;冲突检测

0引言

电大系统生源的种类较多,有高职生、脱产成教学生、在职开放生、在职研究生等,各类学生对上课时间有不同的要求,加上各门课程不同的教学需求,因此电大与普通高校的排课有所不同,以宁波电大为例,排课有下列特点:

(1)上课时段有重叠,现有的上课时段有8个:

上午1-2

节、上午3-4节、上午1-4节、下午5-6节、下午5-7(13:

00开始)节、下午5-7节(13:

40开始)、晚上,另外还有非以上情况的自由设置时段。

在上述时段中,上午1-4节与上午另外两个时段有重叠,下午的3个时段也有重叠。

(2)上课周次设置灵活,周次设置不是普通高校课表中的单周、双周和全周3种情形,而是形如“1,3-8”的周次序列,一个课程安排(以下简称课元)的上课周次可以自由设置。

(3)同一班级同一课程可能由多名教师在不同的时间和不同的教室授课,因此一个教学班的一门课程安排可能包括多个课元。

由于上述原因,为普通高校排课系统设计的冲突检测方法根本不适用,采用全自动排课很难表述这种特殊性要求,实现起来比较困难,因此,宁波电大排课系统采取半自动排课方式,课表编排手工输入,而每当更改排课元素时,系统自动进行排课冲突检测,当所有课表编排都没有冲突时,所得课表就是一份没有冲突的有效课表。

1排课冲突检测算法设计

1.1排课冲突介绍

排课问题是满足教学计划和各种约束条件的组合规划问题,约束条件就是要避免课元的各排课元素之间存在冲突,排课元素包括课程、时间、教师、教室和班级,在冲突检测中,必须要满足的基本约束条件有:

①教师不冲突,同一时间,一个教师只能给一个班级上课;②教室不冲突,同一时间,一个教室不能安排两门不同的课程;③班级不冲突,同一时间不能给同一班级安排

两门不同的课程。

在排课冲突检测中还有一些其它的约束条件也要满足,例如上课的班级人数必须小于教室座位数等,本文不做考虑。

1.2冲突检测算法的概念设计

考虑到上课时间可以细分为周次、星期和上课时段,一个教学班一门课程安排的课表问题空间 T可表示为:

T=P×C×Z

×W×S, P

C Z

W 为星期集合,具体为

“周一”、“周二”„“周日”; S

上述的8个上课时段。

课元 a对应T中的一个向量,记做a=(p α,c β,z

γ,w δ,s κ),其中p α∈P,c β∈C,z γ∈Z,w δ

∈W,s κ∈S。

假设课表P有n条记录,为了检测课元a与课表P是否有冲突,那么系统要进行n排课的5个元素,而每当排课元素修改后,系统都要进行冲突检测,那么系统运行效率会很低。

考虑到教师冲突、教室冲突、班级课程冲突都是因为课元所选的教师、教室、班级没有空闲时间,它们都与时间关系密切,排课冲突检测的关键就是时间的冲突检测。

因此可以采取固定几个排课元素,缩小问题空间维度的方法进行检测,具体就是,固定课元中除周次外的4个排课元素,从课表中筛选有可能存在冲突的待检测数据集,然后将课元中的周次和

待检测数据集中的周次进行冲突检测,如果周次有冲突,则该课元与课表有冲突,否则,该课元与课表没有冲突。

在课表 P中筛选出与课元a有可能冲突的待检测数据集Y

:

设 a=(p,c,z,w,s),则Y={t|t∈P,(t.p=a.p或t.c=a.c)且

t.w=a.w且t.s与a.s时间冲突},其中“.”表示向量的分量,t.p

表示课元t的教师(p)

有效课表 P不冲突可表示为:

P T且 a∈P, b∈P,a≠b有a与b

1.3上课时段冲突检测

在上述上课时段中,上午1-4节与上午1-2节、上午3-4节冲突,下午5-6节、下午5-7(13:

40开始)节和下午5-7节(13:

00开始)冲突。

为了判断上课时段是否有冲突,对上课时段的编码设计如表1所示:

1.4周次冲突检测

设一个学期有20周,课元的周次设置可以用一个20位的二进制数z表示,z的位数对应周次,z数位上的值表示有无课程安排,“1”表示有课程安排,“0”表示无课程安排,例如,周次设置“1-2,15,20”的二进制编码为:

判断一个课元a与待检测数据集Y的周次设置是否存在冲突,可采取下列方法:

a.z∧(y 1.zVy 2.zVy 3.zV„ Vy n.z)0a与Y有冲突 0a与Y没有冲突

其中 a.z表示课元a周次设置的二进制编码,其余符号类似地表示数据集Y

1.5算法流程图

在上述基本概念的基础上,排课冲突检测算法的流程。

2实现

宁波电大排课系统采用B/S结构,选用VisualStudio.Net

2008开发平台,VB.NET开发语言开发,系统开发采用面向对象的技术,数据访问技术选用ADO.NET。

2.1排课页面

排课页面如图2所示,该图显示经管系对课程“会计”进行课表编排,该门课程有两个教学班,教学班各有1、2个课元,其中教学班1有排课冲突。

在该页面中用户可以增删教学班,教学班中的课元也可增删,课元的排课元素除了周次和非固定时段是直接输入外,其余排课元素都为下拉列表,下拉列表数据来自对应的数据表。

如果排课没有冲突,在总课时栏会显示总的课时,否则显示冲突的详细信息。

页面中教学班和教学班内的课元由具有主细关系的Repeate和GridView两个控件表示,Repeate控件负责显示教学班、

Gridview控件负责显示教学班内的课元,表格的内容和样式在控件单元格数据绑定的事件中编程控制。

每当排课元素修改后,页面将自动刷新,重新进行冲突检测,返回冲突的结果。

2.2数据库的逻辑设计

数据表中存储了排课信息和各类排课基础信息,为了保证冲突检测时排课元素的唯一性,对排课元素记录进行自动编码,在课元表中保存的是排课元素的ID号,冲突检测以ID为准,教学班与课元是一对多的关系,通过关键字“教学班ID”关联。

数据表关系如图3所示。

2.3冲突检测类

冲突检测由自定义类GetDayFromStr实现,类中包含用来设置课元排课元素的方法,在设置了待检测教学班的排课元素后,调用方法GetCount()实现冲突检测。

GetCount()方法在不存在排课冲突的情况下,返回周次序列所表示的课时数,否则,将冲突的详细信息保存到类的错误属性(ErrorMsg)中,并返回一

个负数,不同的返回值代表不同的冲突类型,具体情况见表2。

3结束语

本文提出了解决上课时段重叠、周次自由设置的排课冲突检测算法,并在宁波电大排课系统中加以实现,在2011年春季排课的试用中,排课系统能准确地检测出上课冲突,验证了该算法的正确性和可行性。

通过采取缩小问题空间纬度的方法,将排课冲突检测问题空间的纬度从5降低为1,能提高排课冲突检测的效率,并且算法简单,有一定的通用性,稍做修改可以应用到多种排课情况。

参考文献:

[1]陶滔,毛宁,夏石莹,等.有限维冲突算法及应用研究[J].南华大学学报(自然科学版),2005(9).

[2]彭秀萍.排课系统的研究与实现[D].成都:

电子科技大学,2009.

DesignandImplementationofConflicts DetectingofCurriculumScheduling

Abstract:

Curriculum scheduling is an important and

complicateduniversityeducationalmanagementwork.Computeraidedcurriculumschedulingbecomestheinevitablechoice.Thekeyofthecurriculumschedulingsystemisthealgorithmsofconflictdetection.Fewstudieshavebeentakenonconflictdetectionincourseoverlapsandarbitrarysettingofcyclesnumber.Consideringthe curriculum scheduling features of Ningbo Radio & TVUniversity,thealgorithmsofconflictdetectionareproposedtoreducethedimensionsofproblemspace.Thealgorithmshavegoodeffectinthepracticalapplications.

KeyWords:

CurriculumScheduling;ConflictDetecting

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1