[发明专利]约束粒度可控的排课方法及系统在审
申请号: | 201611220114.2 | 申请日: | 2016-12-26 |
公开(公告)号: | CN106846193A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 杨卫东;高泽民;王珂;陈文;秦鹏;王亚飞;徐振强;肖乐;徐溢凡 | 申请(专利权)人: | 河南工业大学 |
主分类号: | G06Q50/20 | 分类号: | G06Q50/20 |
代理公司: | 郑州睿信知识产权代理有限公司41119 | 代理人: | 崔旭东 |
地址: | 450001 河南省郑州市高新技术*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 约束 粒度 可控 方法 系统 | ||
技术领域
本发明属于教学管理领域,具体涉及一种约束粒度可控的排课方法及系统。
背景技术
现有的排课方法,不论是人工排课还是计算机自动排课,都是处理教师、教室或场地、班级等资源冲突问题。
在大学和大型中学,由于人员极多,人工排课越来越无法施行。必须借助自动排课算法。
现有的自动排课算法,主要是基于规则和约束条件的贪婪算法、回溯算法、动态规划法和遗传算法等。但这些方法都有一定缺陷。比如回溯算法,其相当于先根遍历,空间复杂度,特别是时间复杂度非常大。而且算法本身复杂,变量多,在约束条件太苛刻时无可行解。贪心算法虽然时间复杂度比较低,但是比较容易出现局部最优,也可能找不到可行解。遗传算法需要通过生成大量的初始值后再不断的优胜劣汰,需要消耗大量的空间,而没有主动依据条件生成课表,存在一定的随机性,也导致大量时间的浪费。
发明内容
本发明提供了一种约束粒度可控的排课方法及系统,以解决现有的自动排课算法复杂度高、效率低且准确率不高的问题。
为解决上述技术问题,本发明的约束粒度可控的排课方法为:
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;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河南工业大学,未经河南工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611220114.2/2.html,转载请声明来源钻瓜专利网。