当前位置: 首页 > 专利查询>重庆大学专利>正文

一种排课算法制造技术

技术编号:11763822 阅读:172 留言:0更新日期:2015-07-23 13:56
本发明专利技术涉及一种排课算法,它包括排时间模型的建立和排教室算法;排时间模型包括约束条件和目标函数两个部分,然后采用分枝定界算法求解排时间模型得到一组解,该组解即为D条排时间结果;排教室算法则是针对D条排时间结果进行,最后输出对排时间结果的排教室结果即课表。该排课算法先排时间后排教室的方法,排课过程不但简单,而且高效,从而使该方法更具普遍性,更重要的是该排课算法还定义了多个软性约束,通过这些软性约束的设定,可以满足更多高校对课表的特定要求,从而使该方法更具多样性,便于推广。

【技术实现步骤摘要】

本专利技术涉及电子信息
,特别涉及。
技术介绍
随着高校合并和扩大,排课是高校教学管理工作中的一项极其繁重且相当重要的 工作,是保证教学秩序正常进行的前提和基础。在高校招生规模扩大、教学资源紧缺和办学 形式多样化的今天,要想得到一张合理课表实属不易。 排课问题是典型的组合优化问题,已被证明是NP完全问题。 最早的排课大都采用人工的方式,由于工作繁琐,工作量巨大,尤其是规模较大的 高校进行排课时出现的问题更多。 现有的解决高校排课问题,大多是利用启发式算法来求其近似最优解。具体可以 分为两大类:构造型启发式搜索算法和改进型启发式搜索算法。前者一般是按照某种顺序 逐步安排每门课程,从而得到一张合法的课表,亦称为直接启发式算法。它们一般都是模拟 人工排课的过程,基本策略就是依据排课的约束条件随机地选择课程或者班级进行排课。 后者是在合法的课表基础上进行改进,使得课表更加符合要求,如、遗传算法。 构造型启发式搜索算法只给出一张基本的课表,只能起到一个辅助排课的作用, 若要投入使用,后期仍需花费大量的工作进行调整、补充和完善。典型的构造型启发式搜索 算法如回溯算法。回溯算法对空间的消耗较少,当其与分枝定界法一起使用时,对于所求解 在解答树中层次较深的问题有较好的效果,但其在后继节点可能与前继节点相同的问题中 使用,会产生循环。回溯算法应用在排课问题中,就是排不过去就调课,不能调课就倒退,而 且记忆走过的路,以此节约时间,但由于回溯法是一种穷举的办法,空间消耗虽然小,可是 时间开销却非常大,时间收敛慢。 改进型启发式搜索算法尽管具有一定的通用性和理论上的全局最优解,但其过程 复杂,实现难度大,且收敛速度慢,不能满足高校的一些具体要求。典型的改进型启发式搜 索算法如遗传算法。遗传算法是从代表问题可能潜在解集的一个种群开始的,在每一代,根 据问题域中个体的适应度大小挑选个体,并借助代表于自然遗传学的遗传算子进行组合交 叉和变异,产生出代表新的解集的种群。这个过程导致种群像自然进化一样,后生代种群比 前代更加适应于环境,末代种群中最优个体经过解码,可以作为问题的近似最优解。遗传算 法应用在排课问题中,是逐步接近设定目标,先按初始条件将课程排入到课表中,排满之后 根据后续条件逐步通过调课达到目标,进行逐步的进化,用遗传算法排课空间消耗大,其是 随机产生很多课表之后根据条件检查,不符合条件的放弃,留下来的再模仿遗传做随机改 动,形成很多新的子课表,不符合条件的放弃,直到完成任务;其模拟自然选择和遗传,即优 胜劣汰、适者生存,并没有主动依据条件生成课表,存在一定的盲目性,这也必然导致大量 时间的浪费。
技术实现思路
针对现有技术存在的上述问题,本专利技术的目的是提供。 为实现上述目的,本专利技术采用如下技术方案:,包括如下步骤: Sl:排时间模型的建立:排时间模型包括约束条件和目标函数两个部分; 设排时间模型的决策变量矩阵为Xnxni,Xu是Xnxn^元素,Xu的含义是:【主权项】1. ,其特征在于,包括如下步骤: S1 ;排时间模型的建立:排时间模型包括约束条件和目标函数两个部分; 设排时间模型的决策变量矩阵为X"xm,Xu是X 的元素,X。的含义是:Sla;约束条件包括: 1) 周次数约束: 设中为第i个教学任务的周次数,则有:其中m表示一周内时间片的总数,n表示教学任务的数目;m=tXS(3); 其中t表示一周可排课的天数,s表示每天可用排课的时间片数; 设M为时间片矩阵,m。。表示星期q的第P个时间片,q= 1,2,…7,将星期一至星期走 的时间片依次排列得到一维时间片矩阵M,该时间片矩阵M中共有m个时间片; 2) 时间片限制约束: 设时间片限制约束矩阵为B"xm,by是B 的元素,b。的含义是:则时间片限制约束表达为: Xij+bij^ 1,i= 1, 2, ???,n,j= 1, 2, ???m(5); 3) 教学任务冲突约束: 设教学任务冲突矩阵为C"x。,Cik是C"x。的元素,cik的含义是:则教学任务冲突约束表达为: Xu+Xkj'《1,j= 1,2,…,m,如果C化=1 (7); 4) 时间片分配平衡约束: 如果3,则如下;S化;目标函数如下; 设时间片效益矩阵为W"xm,Wu是的元素,WU的含义是第i个教学任务在第j个时 (10); 间片上的效益; 则目标函数为: sic;采用分枝定界算法求解上述排时间模型得到一组解,该组解为D条排时间结果;S2 ;排教室算法: S2a;输入D条排时间结果; S2b;设d= 1 ; S2c;获取第d条排时间结果所需的教室类型; S2d;获取属于步骤S2c中教室类型的所有教室; S2e;将步骤S2d获取的教室进行初过滤;对步骤S2d获取所有教室进行捜索,去掉被 占用的教室,留下没有被占用的教室; 如果留下的教室不为0,则进入S2h; 如果留下的教室为0,则输出对排时间结果的排教室失败,并进入下一步; S2f;令d=d+1 ; S2g;当d《D时,返回步骤S2c,否则输出对排时间结果的排教室结果,算法结束; S化;对初过滤后留下的教室进行再过滤,判断教室的容量与学生数量是否匹配: 当教室的容量是第d条排课结果中教学任务对应的学生数量的C倍时,认为教室的容 量与学生数量匹配,否则不匹配; 去掉教室的容量与学生数量不匹配的教室,留下教室的容量与学生数量匹配的教室;S2i;判断留下的教室是否为0 : 如果留下的教室不为0,则进入S2k; 如果留下的教室为0,则增加C的值并进入下一步; S2j;当C<Cma拥,返回步骤S2h; 否则,输出对排时间结果的排教室失败,并返回步骤S2f; S2k;判断留下的教室是否大于1 : 如果留下的教室大于1,则选择容量最小的教室,并返回步骤S2f; 否则选择留下的教室,并返回步骤S2f。2.如1权利要求1所述的排课算法,其特征在于;所述时间片限制约束矩阵的设置方 法如下: 2a)将时间片限制约束矩阵的所有元素初始化为0 ; 2b)输入n条教学任务; 2c)设j= 1 ; 2d)设i= 1 ; 2e)获取第i条教学任务的任课老师的排课结果,获取第i条教学任务的对象的排课结 果; 2f)当第i条教学任务的任课老师和/或第i条教学任务的对象在第j时间片有课,贝U将by设为1 ; 2g)令i=i+1 ; 2h)当i《n,返回步骤2e),否则执行下一步; 2i)j=j+1 ; 2j)当j《m,返回步骤2d),否则输出时间片限制约束矩阵。3.如1或2权利要求1所述的排课算法,其特征在于:所述教学任务冲突矩阵的设置 方法如下: 3a)将教学任务冲突矩阵的所有元素初始化为0 ; 3b)输入n条教学任务; 3c)设i= 1 ; 3d)k=i+1 ; 3e)当k《n时,执行下一步,否则i=i+1 ; 当i《n时,返回步骤3d),否则输出教学任务冲突矩阵; 3f)判断第i条教学任务与第k条教学任务的上课周次是否有交集: 如果第i条教学任务与第k条教学任务的上课周次有交集执行下一步; 否则k=k+l,返回步骤3e); 3g)判断第本文档来自技高网
...

【技术保护点】
一种排课算法,其特征在于,包括如下步骤:S1:排时间模型的建立:排时间模型包括约束条件和目标函数两个部分;设排时间模型的决策变量矩阵为Xn×m,xij是Xn×m的元素,xij的含义是:S1a:约束条件包括:1)周次数约束:设di为第i个教学任务的周次数,则有:Σj=1mxij=di,i=1,2,...n---(2);]]>其中m表示一周内时间片的总数,n表示教学任务的数目;m=t×s   (3);其中t表示一周可排课的天数,s表示每天可用排课的时间片数;设M为时间片矩阵,mqp表示星期q的第p个时间片,q=1,2,…7,将星期一至星期七的时间片依次排列得到一维时间片矩阵M,该时间片矩阵M中共有m个时间片;2)时间片限制约束:设时间片限制约束矩阵为Bn×m,bij是Bn×m的元素,bij的含义是:则时间片限制约束表达为:xij+bij≤1,i=1,2,…,n,j=1,2,…m   (5);3)教学任务冲突约束:设教学任务冲突矩阵为Cn×n,cik是Cn×n的元素,cik的含义是:则教学任务冲突约束表达为:xij+xkj≤1,j=1,2,…,m,如果cik=1   (7);4)时间片分配平衡约束:如果di≤3,则如下:Σj=(h-1)·s+1(h-1)·s+1+2sxij≤1,h=1,2,...,t-1,i=1,2,...,n---(8);]]>如果di≥4且di≤t,则如下:Σj=(h-1)·s+1(h-1)·s+1+sxij≤1,h=1,2,...,t,i=1,2,...,n---(9);]]>S1b:目标函数如下:设时间片效益矩阵为Wn×m,wij是Wn×m的元素,wij的含义是第i个教学任务在第j个时间片上的效益;则目标函数为:wij=maxΣi=1nΣj=1mtijxij---(10);]]>S1c:采用分枝定界算法求解上述排时间模型得到一组解,该组解为D条排时间结果;S2:排教室算法:S2a:输入D条排时间结果;S2b:设d=1;S2c:获取第d条排时间结果所需的教室类型;S2d:获取属于步骤S2c中教室类型的所有教室;S2e:将步骤S2d获取的教室进行初过滤:对步骤S2d获取所有教室进行搜索,去掉被占用的教室,留下没有被占用的教室;如果留下的教室不为0,则进入S2h;如果留下的教室为0,则输出对排时间结果的排教室失败,并进入下一步;S2f:令d=d+1;S2g:当d≤D时,返回步骤S2c,否则输出对排时间结果的排教室结果,算法结束;S2h:对初过滤后留下的教室进行再过滤,判断教室的容量与学生数量是否匹配:当教室的容量是第d条排课结果中教学任务对应的学生数量的C倍时,认为教室的容量与学生数量匹配,否则不匹配;去掉教室的容量与学生数量不匹配的教室,留下教室的容量与学生数量匹配的教室;S2i:判断留下的教室是否为0:如果留下的教室不为0,则进入S2k;如果留下的教室为0,则增加C的值并进入下一步;S2j:当C<Cmax时,返回步骤S2h;否则,输出对排时间结果的排教室失败,并返回步骤S2f;S2k:判断留下的教室是否大于1:如果留下的教室大于1,则选择容量最小的教室,并返回步骤S2f;否则选择留下的教室,并返回步骤S2f。...

【技术特征摘要】

【专利技术属性】
技术研发人员:杨梦宁李小斌葛永新徐玲房锦章洪明坚张小洪杨丹
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆;85

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

1