排课冲突检测的设计及实现
- 格式:doc
- 大小:20.00 KB
- 文档页数:6
排课冲突检测C语言课表编排实际上就是一个组合规划问题,也就是将时间、课程、教师、教室和学生这几点相结合的过程。
排课过程中的首要问题是解决冲突问题,也就是教师、教室和学生之间的安排要合理,不能产生冲突,例如一个教师只能给一个班上课,一个教室也不能同时容纳两个班上课(合班课除外),但是有冲突的课表一定不是好课表,那么有没有冲突也不是判断课表好坏的唯一条件。
例如有的课程或教师可能在时间上有一些具体的要求,有些课程还可能对教室或场地有不同的要求,这些都要求在排课过程中予以考虑。
在避免了冲突和考虑到所有特殊要求之后安排出的课表才能够符合学生和教师的需要,与学校的管理要求相符合。
从而提高学校资源的利用率,提高学生的学习效率。
在排课过程在之前,用户首先要在表格中输人原始的数据,然后按照前面的算法来进行操作,在排课过程中最主要的问题是数据结构的实现,在这里用用数据库中的多张表格来实现数据结构,然后再输人原始数据,所以这里必须要设计一种简洁合理的方式来实现这个问题。
在实现过程中,将这些先决条件分为两类:字典表维护类和排课初始信息设置类。
其中,维护字典表类主要是对排课用到的字典表(科目字典表、固定教室字典表、教师字典表)进行操作,这些操作相对来说比较简单,包括添加、删除(置无效)等。
由于这两张表会因学校情况不同而有不同数量的记录,并且在排课系统初始设置后一般不会更改。
排课算法的优劣不仅仅在于它是否满足了所有的硬约束条件,还要看它是否满足尽可能多的软约束条件。
满足的软约束条件越多,排课的效果就越好。
为了避免冲突,我们在排课时还设定了不同的约束条件,这样才能保证教学工作的正常运行,例如一个教学班在同一时间内只能上--门课,一名教师在同--时间只能给-一个班上课(合班课除外)。
设计排课算法的重点是对教师、时间、教室、课程等资源进行组合优化,并能够;充分发挥各种资源的优势来避免冲突的发生。
这样才能取得最好的排课效果。
在实际计算的过程中每个约束条件都会被赋予一个优先级别,优先级别高的约束条件要首先满足,然后再考虑优先级别低的约束条件。
面向高校教务管理的智能排课系统设计与实现随着信息技术的快速发展和高校规模的不断扩大,高校教务管理日益复杂化。
为了提高教务工作效率和质量,智能排课系统的设计与实现成为高校教务管理的重要课题。
本文将围绕面向高校教务管理的智能排课系统,从需求分析、系统设计和实现等方面进行讨论。
一、需求分析1. 教学资源管理:教务系统需要对教学资源进行管理,包括教室、教学设备以及教师等资源的管理与调配,以保证教学的顺利进行。
2. 课程安排与调整:教务系统应具备对课程的安排和调整功能,可以根据学生的选课情况和教师的排课要求进行智能调配。
3. 课程冲突检测与解决:系统应具备检测课程冲突的功能,当出现课程时间冲突时,能够自动解决冲突并给出解决方案。
4. 学生选课管理:系统需要提供学生选课的功能,并能够根据学生的选课结果自动生成课表,并进行课程地点和时间的智能安排。
5. 教学评价与分析:系统应具备对教学质量进行评价和分析的功能,包括学生的学习成绩、教师的教学反馈等指标的统计与分析。
二、系统设计1. 架构设计:系统采用分布式架构,包括前端、后端和数据库三个层次。
前端负责与用户进行互动,后端处理业务逻辑,数据库存储相关数据。
2. 数据库设计:根据需求分析,系统需要设计合理的数据库结构,包括学生、教师、课程、教室等表,以及相关的关系表。
3. 界面设计:系统的界面应简洁明了,方便用户操作,通过图表、表格等可视化方式展示排课结果和教学评价等信息。
4. 智能算法:系统需要设计智能的排课算法,结合学生选课情况、教师排课要求和教室资源等因素进行排课,尽量避免课程冲突。
三、系统实现1. 技术选择:基于需求分析和系统设计,选择合适的开发技术和工具进行系统实现,如Java、Python等编程语言和相关的框架和库。
2. 功能开发:根据需求分析和系统设计的结果,按模块逐步实现系统的各项功能,包括教学资源管理、课程安排与调整、学生选课管理等功能。
3. 测试与优化:在系统实现的过程中,不断进行功能测试和优化,确保系统的稳定性和性能。
冲突检测物理原理
冲突检测是在计算机中常用的一种技术手段,它的原理是能够检测出一个时刻
的数据有冲突的情况,从而把错误的行为拦住,从而保证数据处理的正确性。
下面就来讲解冲突检测的物理原理。
一般来说,冲突的检测,一般都是采用计算机中的各种层次结构,来进行判断
和计算。
比如说,在层次结构中,每层次元素之间存在着一定的规律,并且该规律可以被形象地表达出来。
然后,检测这种规律有没有发生冲突,当发现有冲突产生时,可以根据规则来处理,以此来检测冲突。
其次,冲突检测也可以使用计算机中的算法来完成。
一般来说,冲突检测算法,采用的是哈希表的技术。
它的原理是,哈希表的存储结构可以有效地将各个数据进行统一计算,从而实现冲突检测的目的。
事实上,哈希表比较适合用于小型数据集中,如果遇到大型数据集,那么哈希表的需求就更大了。
再次,冲突检测也可以采用抽象的数据结构来完成。
它的本质是,将数据抽象
成一种抽象的结构,然后将数据里面的冲突信息抽象出来,然后将这些信息按照一定的算法进行处理,从而实现冲突检测的目的。
以上就是关于冲突检测的物理原理的介绍,可以看出,冲突检测有很多种物理
技术,可以满足不同的应用场景。
而且冲突检测在计算机中也是很常见的应用,它可以有效率地帮助计算机解决各种操作问题,更加有效地处理数据。
冲突检测名词解释
冲突检测(Conflict detection)是指在特定环境或系统中发现并识别存在冲突或矛盾的情况或事件的过程。
它是一种监测和识别冲突的方法,旨在及时发现并解决冲突,以避免进一步的问题或损失。
冲突检测可以应用于各种领域和情境,包括计算机系统、航空交通、项目管理、人际关系等。
在不同的领域中,冲突检测可以涉及不同类型的冲突,例如资源冲突、时间冲突、兴趣冲突、目标冲突等。
冲突检测的过程通常包括以下步骤:
1.收集信息:获取相关的数据、信息或事件,包括参与者的需求、资源的使用情况、时间表等。
2.分析与比较:对收集到的信息进行分析和比较,以确定是否存在冲突或矛盾的情况。
这可能涉及对数据进行对比、交叉验证和分析模型等。
3.冲突检测:通过比较和分析,识别出存在的冲突或矛盾,明确冲突的性质、原因和影响。
4.通知和沟通:将冲突检测结果通知相关方,并进行有效的沟通,以便达成共识和解决方案。
5.解决冲突:采取相应的措施和行动来解决冲突,可能包括调整资源分配、修改时间表、进行谈判、协商或决策等。
冲突检测对于组织和系统的正常运行至关重要。
它有助于提早识别和解决潜在的冲突,减少损失和延误,并确保各方的需求和利益得到合理的平衡。
通过及时的冲突检测和解决,可以增强工作效率、改善合作关系,并促进可持续发展。
1/ 1。
排课冲突检测的设计及实现摘要:排课是高校一项重要而繁琐的教务工作,使用计算机排课是必然的选择,在排课系统中冲突检测算法的设计是关键,目前对于上课时段重叠、周次自由设置的排课冲突检测研究较少。
结合宁波电大课表编排的特点,提出了降低问题空间纬度进行冲突检测的算法,该算法在实际使用中有较好的效果。
关键词:排课;冲突检测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.1排课算法设计
2.2.1 排课系统用到的数据库表
RoomInfo表存放机房信息表,TeacherInfo表存放教师信息表,BookInfo表存放教师的实验室预约表,TimetableInfo存放最终排好课的课表,在排课过程中如果出现冲突无法排上的预约记录,则暂时保存到冲突信息表ConflictInfo中,最后使用冲突解决方案来解决这些冲突问题。
数据库表及表之间的关系如图1所示。
图1. 数据库表及表之间的关系
2.2.2 排课算法用到的数据结构
课表的定义:
周课表的定义:
日课表的定义:
节课表的定义:
课表信息的定义:
2.2.3 算法设计
算法流程图如图2所示
图2. 排课算法流程图
排课算法流程如下:
2.2.4冲突解决方法
冲突解决方法流程图如图3所示
图3. 冲突解决方法流程图
冲突解决方法流程描述如下:。
冲突检测和消解算法的研究与实现一、引言冲突检测和消解是计算机科学中一个重要的研究领域,它涉及到解决资源竞争和数据一致性问题。
本文将围绕冲突检测和消解算法的研究与实现展开讨论。
二、冲突检测算法冲突检测算法是指通过分析系统中的资源访问序列,确定是否存在资源竞争的问题。
常见的冲突检测算法有静态分析和动态分析两种方法。
1. 静态分析静态分析是指在程序运行之前对源代码进行分析,通过检查代码中的访问规则和约束来判断是否存在潜在的冲突。
静态分析的优点是可以提前发现问题,但缺点是可能存在误报和漏报的情况。
2. 动态分析动态分析是指在程序运行时对资源访问进行监控和分析,通过记录和分析访问序列来检测是否存在冲突。
动态分析的优点是可以准确地检测到实际发生的冲突,但缺点是需要额外的运行开销。
三、冲突消解算法冲突消解算法是指在发现冲突后,采取一定的策略来解决冲突问题,以保证系统的数据一致性和正确性。
1. 互斥访问互斥访问是指通过加锁机制来保证同时只有一个线程可以访问某个资源。
常见的互斥访问算法有互斥锁、读写锁和信号量等。
互斥访问算法的优点是简单易懂,但缺点是可能导致资源的不公平访问和死锁问题。
2. 事务处理事务处理是指将一系列对资源的操作组合成一个原子操作,要么全部成功执行,要么全部回滚。
事务处理的优点是能够保证数据的一致性和完整性,但缺点是可能导致并发性能下降。
3. 冲突检测与回滚冲突检测与回滚是指在发现冲突后,将已经执行的操作回滚到冲突点,然后重新执行。
这种方法能够最大程度地避免冲突,并保证数据的一致性,但缺点是需要额外的开销。
四、研究与实现冲突检测和消解算法的研究与实现需要考虑多个方面的因素,包括算法的效率、正确性、可扩展性和适用性等。
1. 算法效率冲突检测和消解算法的效率是衡量算法优劣的重要指标。
算法应该尽可能地减少冲突检测和消解的时间和资源消耗,以提高系统的吞吐量和并发性能。
2. 算法正确性冲突检测和消解算法的正确性是保证系统数据一致性和正确性的基础。
基于VBA的排课系统的设计与实现吐尔尼亚孜·艾比布;米热吉古丽·热扎克【摘要】为提高实验室的资源利用率,减轻管理人员的劳动强度,方便学生、解决各种教学资源如实验室、教师的合理有效利用问题,避免教师、班级在上课时间、地点上的冲突,通过对手工排课过程的调研与分析,文章设计了基于VBA的排课系统.在此基础上给出了自动分析并发现同一个时间内不同老师实验课冲突、课表的导出与打印等功能.【期刊名称】《电脑与信息技术》【年(卷),期】2018(026)004【总页数】3页(P59-60,74)【关键词】VBA;排课;实验室【作者】吐尔尼亚孜·艾比布;米热吉古丽·热扎克【作者单位】新疆交通职业技术学校机电工程学院,新疆乌鲁木齐831400;新疆职业大学信息技术学院,新疆乌鲁木齐 830013【正文语种】中文【中图分类】TP311.11随着我国职业教育的飞速发展,职业院校实践教育大大加强,学校大力培养学生的实践动手能力。
学校实验室课程安排非常多。
高质量的教学需要高效率的管理支持,随着开放式实验教学管理模式的改革和学院办公信息化项目的推广,传统的实验室人工管理模式已经不能满足我们工作学习的需求,无法有效合理的提高实验室资源的利用率[1]。
为促进实验室高效的运行,避免排课冲突等问题,职业院校强烈要求有一个实验室排课系统。
实验室排课系统的实施,不仅可以提高实验室的管理水平、教学质量,而且可以使实验室达到高效、有序、网络化的管理[2]。
本文设计了基于VBA的排课系统。
在此基础上给出了自动分析并发现同一个时间内不同老师实验课冲突、课表的导出与打印等功能。
1 关于排课实验室课程安排是根据理论课和实验课的教学计划,对一学期的每门实验课程进行规划。
排课问题是一个在时间、教师、学生和教室四维空间,以教学计划和各种特殊要求(如指定时间、指定教室、排课等级)为制约条件的组合规划问题,其实质是解决各个因素之间的冲突。
**冲突检测方法**冲突是任何组织或团队中不可避免的现象。
有效地检测和解决冲突对于维护和谐的工作环境、提高团队效率以及促进成员之间的良好关系至关重要。
以下介绍几种常用的冲突检测方法:**1. 观察行为变化**团队成员的行为变化通常是冲突的早期信号。
例如,某成员可能变得沉默寡言、易怒或避免与其他成员交往。
通过日常互动和细心观察,可以及早捕捉到这些迹象,从而预防冲突升级。
**2. 监测沟通模式**沟通是解决和检测冲突的关键途径。
团队内的沟通应该是开放和诚实的。
当沟通变得含糊不清、间接或带有攻击性时,可能意味着存在潜在的冲突。
监测沟通模式的变化有助于及时发现并介入解决冲突。
**3. 定期检查团队氛围**团队氛围是团队成员共同感受到的工作环境的总和。
定期通过团队会议、问卷调查或个别谈话了解团队氛围,可以及时发现并解决潜在的冲突。
例如,团队成员对工作分配、决策过程或团队目标的满意度降低可能预示着冲突的存在。
**4. 分析工作绩效**工作绩效的下降可能是冲突的一个明显迹象。
当团队成员的工作效率降低、错误率上升或无法达到预期的目标时,可能意味着他们正受到某种冲突的困扰。
分析工作绩效数据有助于识别潜在冲突并采取相应措施。
**5. 倾听员工反馈**鼓励员工提供反馈是检测冲突的有效途径。
通过设立匿名建议箱、定期召开员工座谈会或建立在线反馈系统等方式收集员工意见,可以及时发现并解决潜在的冲突问题。
认真倾听员工的关切和不满,并采取积极措施回应他们的诉求,有助于维护团队的稳定与和谐。
总之,冲突检测是冲突管理的重要环节。
通过综合运用上述方法,组织或团队可以及时发现并解决潜在的冲突问题,从而营造一个积极、健康的工作环境。
622000年第2期【摘要】本系统是在自动排课软件无法满足实际需要的情况下而开发的一套排课自动校验系统,它可以自动检查出排课中的错误,并根据排课数据自动生成学生课程表和教师任务书。
【关键词】M IS ;排课;自动校验【中图分类号】TP391【文献标识码】A【文章编号】1008-9101(2000)02-0062-03排课自动校验系统的研制与开发□肖玉巍弓志刚刘臣洲一、引言在教学管理过程中,排课无疑是最重要也是最繁琐的一个环节,为了让计算机自动完成这一任务,许多软件厂商作了很大努力,开发出相应的通用自动排课系统,但从实际使用情况来看,这些系统在实用性上仍不尽如人意,这一方面归咎于排课一个很复杂的系统,要想面面俱到是一件很困难的事,另一方面每个学校由于其各自的特殊性,自动排课软件很难普遍适用,完全满足所有要求,特别是在调课的过程中一个很小的变动,要引起全部排课情况的大调整,这意味着全校课程大变动,在实际的应用中这是很难于实现的事。
因而有些学校仍然喜欢手工排课,但对排课中的错误却又不能及时发现,等上课时再发生冲突就会影响教学计划,为了解决这一难题,我们开发了一套以手工排课为主,计算机校验为辅的计算机课表自动生成系统。
二、系统设计1.系统设计要求:本系统的设计要求是在手工排课的基础上以方便快捷的录入界面接收排课信息,在录入的同时进行数据校验,检查出排课中的错误,如某班同时上两门课,某教师为两个班上课,某教室同时上不同的课等,对错误内容拒绝接收,而校验无误后的数据存入缓冲表,以后可以再根据这些数据自动生成教师任务书和学生课程表,让用户能随时有选择性的打印这两种表格。
2.开发环境:Microsoft 公司的Visual FoxPro (V FP )是新一代面向对象数据库开发工具,它在继承原FoxPro 的基础上,对数据库的概念进行了很大的调整,从而与关系数据库的模型更加吻合,由于它以面向对象方法为开发手段,很适合于原型法软件开发,使开发的周期大为缩短,能很好的适应小型数据库管理系统的研制与开发。
毕业论文高校排课系统目录第一章引言 ...................................................................................................... 错误!未定义书签。
1.1 研究背景ﻩ错误!未定义书签。
1。
2 研究的目的和意义ﻩ错误!未定义书签。
1.3 本人的主要工作和贡献ﻩ错误!未定义书签。
1.4 论文结构 .............................................................................................. 错误!未定义书签。
第二章高校排课系统的现状分析ﻩ错误!未定义书签。
2.1 国内教学教务管理模式与体制ﻩ错误!未定义书签。
2。
1.1 教务管理模式 ...................................................................... 错误!未定义书签。
2。
1.2 教育管理体制ﻩ错误!未定义书签。
2.2高校排课系统概述 ........................................................................ 错误!未定义书签。
2.2.1排课系统的发展历史 .......................................................... 错误!未定义书签。
2。
2.2 排课系统的现状分析 ............................................................ 错误!未定义书签。
2。
3教务管理信息化建设 ...................................................................... 错误!未定义书签。
排课冲突检测的设计及实现
作者:肖刚
来源:《软件导刊》2011年第05期
摘要:排课是高校一项重要而繁琐的教务工作,使用计算机排课是必然的选择,在排课系统中冲突检测算法的设计是关键,目前对于上课时段重叠、周次自由设置的排课冲突检测研究较少。
结合宁波电大课表编排的特点,提出了降低问题空间纬度进行冲突检测的算法,该算法在实际使用中有较好的效果。
关键词:排课;冲突检测
中图分类号:TP306 文献标识码:A 文章编号:1672-7800(2011)05-0005-
基金项目:2010年宁波市教育科学规划课题()
作者简介:肖刚(1973-),男,湖北孝感人,硕士,宁波广播电视大学信息与教学资源中心实验师,研究方向为计算机应用。
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 冲突检测算法的概念设计
考虑到上课时间可以细分为周次、星期和上课时段,一个教学班一门课程安排的课表问题空间可表示为:其中为教师集合,表示全校所有任课的教师;
为教室集合,表示学校所有的教室;为周次序列集合,可为任何有效的周次序列;为星期集合,具体为“周一”、“周二”…“周日”;为上课时段集合,具体为上
述的8个上课时段。
课元对应T中的一个向量,记做a=其中
∈∈∈∈∈S。
假设课表P有n条记录,为了检测课元a与课表P是否有冲突,那么系统要进行次检测,每次检测要考虑排课的5个元素,而每当排课元素修改后,系统都要进行冲突检测,那么系统运行效率会很低。
考虑到教师冲突、教室冲突、班级课程冲突都是因为课元所选的教师、教室、班级没有空闲时间,它们都与时间关系密切,排课冲突检测的关键就是时间的冲突检测。
因此可以采取固定几个排课元素,缩小问题空间维度的方法进行检测,具体就是,固定课元中除周次外的4个排课元素,从课表中筛选有可能存在冲
突的待检测数据集,然后将课元中的周次和待检测数据集中的周次进行冲突检测,如果周次有
冲突,则该课元与课表有冲突,否则,该课元与课表没有冲突。
在课表中筛选出与课元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,a≠ b有a与不冲突。
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的周次设置是否存在冲突,可采取下列方法:
∧
非0 a与Y有冲突与Y没有冲突
其中表示课元a周次设置的二进制编码,其余符号类似地表示数据集中课元周
次设置的二进制编码。
1.5 算法流程图
在上述基本概念的基础上,排课冲突检测算法的流程。
2 实现
宁波电大排课系统采用B/S结构,选用Visual 2008开发平台,开发语
言开发,系统开发采用面向对象的技术,数据访问技术选用。
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.
(责任编辑:周晓辉)
Abstract:Curriculum scheduling is an important and complicated university educational management puter aided curriculum scheduling becomes the inevitable choice.The key of the curriculum scheduling system is the algorithms of conflict detection .Few studies have been taken on conflict detection in course overlaps and arbitrary setting of cycles number.Considering the curriculum scheduling features of Ningbo Radio & TV University,the algorithms of conflict detection are proposed to reduce the dimensions of problem space.The algorithms have good effect in the
Key Words: Curriculum Scheduling;Conflict Detecting。