约束粒度可控的排课方法及系统技术方案

技术编号:15641131 阅读:240 留言:0更新日期:2017-06-16 10:14
本发明专利技术涉及约束粒度可控的排课方法及系统,方法为:1)计算课元组的空闲时间,根据空闲时间,查找最优的排课时间;2)在最优排课时间内计算最合适的排课教室,若存在最合适的排课教室,则课元组排课成功;3)否则,对课元组进行冲突处理,若冲突处理成功,则排课成功,否则,将该课元组排课失败;4)当课元组遍历完后,调整约束粒度返回步骤1)对排课失败课元组重新排课或手动调整。系统包括自动排课单元及调整单元,自动排课单元包括最优排课时间计算模块、最合适排课教室计算模块及冲突处理模块;调整单元包括重新调整约束粒度模块或手动调整模块。本发明专利技术能够适应多种排课约束粒度嵌套,教学资源复杂及教学任务巨大的排课数据。

【技术实现步骤摘要】
约束粒度可控的排课方法及系统
本专利技术属于教学管理领域,具体涉及一种约束粒度可控的排课方法及系统。
技术介绍
现有的排课方法,不论是人工排课还是计算机自动排课,都是处理教师、教室或场地、班级等资源冲突问题。在大学和大型中学,由于人员极多,人工排课越来越无法施行。必须借助自动排课算法。现有的自动排课算法,主要是基于规则和约束条件的贪婪算法、回溯算法、动态规划法和遗传算法等。但这些方法都有一定缺陷。比如回溯算法,其相当于先根遍历,空间复杂度,特别是时间复杂度非常大。而且算法本身复杂,变量多,在约束条件太苛刻时无可行解。贪心算法虽然时间复杂度比较低,但是比较容易出现局部最优,也可能找不到可行解。遗传算法需要通过生成大量的初始值后再不断的优胜劣汰,需要消耗大量的空间,而没有主动依据条件生成课表,存在一定的随机性,也导致大量时间的浪费。
技术实现思路
本专利技术提供了一种约束粒度可控的排课方法及系统,以解决现有的自动排课算法复杂度高、效率低且准确率不高的问题。为解决上述技术问题,本专利技术的约束粒度可控的排课方法为:1)计算课元组的空闲时间,当空闲时间的空余周课时大于课元组的周课时,查找最优的排课时间;2)在最优排课时间BT内计算最合适的排课教室,若存在最合适的排课教室,则课元组排课成功;3)否则,对课元组进行冲突处理,若冲突处理成功,则课元组排课成功,否则,将该课元组排课失败;4)当所有课元组排课完成后,对排课失败课元组,调整约束粒度返回步骤1)重新排课或进行手动调整。所述最优排课时间的计算方法包括以下步骤:A)计算课元组的上课性质CP、周课时CT及一周内的排课次数N;B)在全局设置中查找符合属性(CP,CT,N)的课元组最优排课时间序列BT′=[(D1,H1),(D2,H2),…,(DN,HN)],(D1,D2,…,DN)为一周内上课天数的最优序列,(H1,H2,…,HN)为一天内上课节数的最优序列;C)若时间片(D1,H1)包含在空闲时间内,计算在该时间片下,上课教师和上课班级的时间均匀分布程度,当时间均匀分布程度高于预设值,则获得最优排课时间BT=(D1,H1),查找结束;若时间片(D1,H1)不在空闲时间内或时间均匀程度低于预设值,判断下一个时间片是否为最优排课时间。所述最合适的排课教室的计算方法包括以下步骤:a)计算课元组的上课校区CA、上课教室类型CL及上课教室大小CS;b)查找符合课元组属性(CA,CL,CS)的教室列表,从教室列表中选取优先级最高的教室,计算该教室在课元组的上课起始周内的空闲时间表,当空闲时间表与最优排课时间逻辑与后等于最优排课时间,则该教室为最合理的上课教室,否则,判断下一个教室是否为最合理的上课教室。步骤3)中对课元组进行冲突处理的方法包括以下步骤:Ⅰ)将需要冲突处理的课元组压入堆栈,并查找该课元组的相关课元组,将相关课元组按优先级从低到高加入到队列Queue,并记录需要冲突处理的课元组为相关课元组的父课元组;Ⅱ)取队列Queue中的首课元组,将其进行重新排课,排课成功,对其父课元组进行重排,排课成功,则冲突处理成功;否则,将首课元组的相关课元组加入队列Queue,将首课元弹出队列并压入堆栈;Ш)重复步骤Ⅱ),当父课元组出栈且重排成功,则冲突处理成功。所述初始输入数据包括全局设置、班级信息、教室信息、教师信息、课元组信息、课程信息、教室约束、教师约束和课元组约束。本专利技术的约束粒度可控的排课系统包括自动排课单元及调整单元,所述自动排课单元包括最优排课时间计算模块、最合适排课教室计算模块、冲突处理模块;所述调整单元包括重新调整约束粒度模块或手动调整模块;所述自动排课单元用于按优先级高低对课元组排序,根据初始输入数据,从优先级最高的课元组开始依次进行排课;所述最优排课时间计算模块用于计算课元组的空闲时间,当空闲时间的空余周课时大于课元组的周课时,查找最优的排课时间;所述最合适排课教室计算模块用于在最优的排课时间BT内计算最合适的排课教室;所述冲突处理模块用于对课元组进行冲突处理。所述最优排课时间计算模块的计算方法包括以下步骤:A)计算课元组的上课性质CP、周课时CT及一周内的排课次数N;B)在全局设置中查找符合属性(CP,CT,N)的课元组最优排课时间序列BT′=[(D1,H1),(D2,H2),…,(DN,HN)],(D1,D2,…,DN)为一周内上课天数的最优序列,(H1,H2,…,HN)为一天内上课节数的最优序列;C)若时间片(D1,H1)包含在空闲时间内,计算在该时间片下,上课教师和上课班级的时间均匀分布程度,当时间均匀分布程度高于预设值,则获得最优排课时间BT=(D1,H1),查找结束;若时间片(D1,H1)不在空闲时间内或时间均匀程度低于预设值,判断下一个时间片是否为最优排课时间。所述最合适的排课教室计算模块的计算方法包括以下步骤:a)计算课元组的上课校区CA、上课教室类型CL及上课教室大小CS;b)查找符合课元组属性(CA,CL,CS)的教室列表,从教室列表中选取优先级最高的教室,计算该教室在课元组的上课起始周内的空闲时间表,当空闲时间表与最优排课时间逻辑与后等于最优排课时间,则该教室为最合理的上课教室,否则,判断下一个教室是否为最合理的上课教室。所述冲突处理模块对课元组进行冲突处理的方法包括以下步骤:Ⅰ)将需要冲突处理的课元组压入堆栈,并查找该课元组的相关课元组,将相关课元组按优先级从低到高加入到队列Queue,并记录需要冲突处理的课元组为相关课元组的父课元组;Ⅱ)取队列Queue中的首课元组,将其进行重新排课,排课成功,对其父课元组进行重排,排课成功,则冲突处理成功;否则,将首课元组的相关课元组加入队列Queue,将首课元弹出队列并压入堆栈;Ш)重复步骤Ⅱ),当父课元组出栈且重排成功,则冲突处理成功。本专利技术的排课方法和系统首先通过自动排课模块生成理想约束条件下的最优课表,然后进入调整模块,通过人工对课表的分析或排课系统对课元组未排原因提示,重新调整约束条件,再次调用自动排课模块对剩余未排课元组进行新一轮的排课,以此多次迭代,最终生成在多种约束条件嵌套下的交互优化课表。本专利技术的方法和系统能够适应多种排课约束粒度嵌套,教学资源复杂以及教学任务巨大的排课数据,并且提高了排课的效率和准确率,降低了计算复杂度。附图说明图1为本专利技术交互优化排课算法总流程图;图2为本专利技术自动排课模块流程图;图3为本专利技术计算最优的排课时间流程图;图4为本专利技术计算最合理的上课教室流程图;图5为本专利技术处理冲突算法流程图;图6(a)为本专利技术课元组A为根节点的相关课元组树;图6(b)为本专利技术Queue和Stack的状态图。具体实施方式下面结合附图对本专利技术的技术方案作进一步详细介绍。首先对课表进行数学表述。1、课元组:课元组是每个学期教学单位开设的教学任务,下面是课元组的结构类型定义:CT={教师集合,班级集合,课程号,起始周,周课时,上课人数,课元组优先级,课程性质,是否为强化周标志,总课时,开课学院,上课校区,上课教室要求,上课时间要求,安排教室,安排时间}2、相关课元组:设A,B都是待排课元组,若A和B为相关课元组,则A和B有如下关系:1)若则A和B为老师相关。2)若则A和B为班级相关。3)若则A本文档来自技高网...
约束粒度可控的排课方法及系统

【技术保护点】
约束粒度可控的排课方法,其特征在于,该方法包括以下步骤:1)计算课元组的空闲时间,当空闲时间的空余周课时大于课元组的周课时,查找最优的排课时间;2)在最优排课时间BT内计算最合适的排课教室,若存在最合适的排课教室,则课元组排课成功;3)否则,对课元组进行冲突处理,若冲突处理成功,则课元组排课成功,否则,将该课元组排课失败;4)当所有课元组排课完成后,对排课失败课元组,调整约束粒度返回步骤1)重新排课或进行手动调整。

【技术特征摘要】
1.约束粒度可控的排课方法,其特征在于,该方法包括以下步骤:1)计算课元组的空闲时间,当空闲时间的空余周课时大于课元组的周课时,查找最优的排课时间;2)在最优排课时间BT内计算最合适的排课教室,若存在最合适的排课教室,则课元组排课成功;3)否则,对课元组进行冲突处理,若冲突处理成功,则课元组排课成功,否则,将该课元组排课失败;4)当所有课元组排课完成后,对排课失败课元组,调整约束粒度返回步骤1)重新排课或进行手动调整。2.根据权利要求1所述约束粒度可控的排课方法,其特征在于,所述最优排课时间的计算方法包括以下步骤:A)计算课元组的上课性质CP、周课时CT及一周内的排课次数N;B)在全局设置中查找符合属性(CP,CT,N)的课元组最优排课时间序列BT′=[(D1,H1),(D2,H2),…,(DN,HN)],(D1,D2,…,DN)为一周内上课天数的最优序列,(H1,H2,…,HN)为一天内上课节数的最优序列;C)若时间片(D1,H1)包含在空闲时间内,计算在该时间片下,上课教师和上课班级的时间均匀分布程度,当时间均匀分布程度高于预设值,则获得最优排课时间BT=(D1,H1),查找结束;若时间片(D1,H1)不在空闲时间内或时间均匀程度低于预设值,判断下一个时间片是否为最优排课时间。3.根据权利要求1所述约束粒度可控的排课方法,其特征在于,所述最合适的排课教室的计算方法包括以下步骤:a)计算课元组的上课校区CA、上课教室类型CL及上课教室大小CS;b)查找符合课元组属性(CA,CL,CS)的教室列表,从教室列表中选取优先级最高的教室,计算该教室在课元组的上课起始周内的空闲时间表,当空闲时间表与最优排课时间逻辑与后等于最优排课时间,则该教室为最合理的上课教室,否则,判断下一个教室是否为最合理的上课教室。4.根据权利要求1所述约束粒度可控的排课方法,其特征在于,步骤3)中对课元组进行冲突处理的方法包括以下步骤:Ⅰ)将需要冲突处理的课元组压入堆栈,并查找该课元组的相关课元组,将相关课元组按优先级从低到高加入到队列Queue,并记录需要冲突处理的课元组为相关课元组的父课元组;Ⅱ)取队列Queue中的首课元组,将其进行重新排课,排课成功,对其父课元组进行重排,排课成功,则冲突处理成功;否则,将首课元组的相关课元组加入队列Queue,将首课元弹出队列并压入堆栈;Ш)重复步骤Ⅱ),当父课元组出栈且重排成功,则冲突处理成功。5.根据权利要求1所述约束粒度可控的排课方法,其特征在于,所述初始输入数据包括全局设置、班级信息、教室信息、教师信息、课元组信息、课程信息、教室约束、教师...

【专利技术属性】
技术研发人员:杨卫东高泽民王珂陈文秦鹏王亚飞徐振强肖乐徐溢凡
申请(专利权)人:河南工业大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1