毕设第三周(12月19日——12月25日)

接上周

5.3.3确定适当的时间模式

        一周为6学时的课程,在一周内要分3次上课,约束条件为满足隔天上课,那么周一到周五只能周一、三、五进行排课,像此类的课程可排的时间就比较固定,因此应该优先进行考虑,通过时间矩阵△[i, g]中的g值来确定排课模型。设上次排此课的时间T[i,g1],本次为T[i,g2],后一次为T[i,g3]。则|g1-g2|/5=2and | g2-g3|/5=2 (模式1)

把该类模型写入可排课的时间模式库。

7b02aeff5f6b43dea1f8c9dbe02132f2.png

       在此表中,我们再设定优先级,一周有三次课,每周一、三、五上午1-2节课为最优上课时间时间段,3-4节为次优时间时间段,以此类推下去,我们把所有合理的时间模式存进时间模式库以便排课时对各种模式进行匹配。

        除此之外我们还要考虑在一学期内只要选好一个时间模式,那以后每周的模式均和这个模式相同,以便教师和学生便于掌握时间统一管理。

        对于周学时少的课程相对于周学时多的课程就要灵活得多,例如周学时为4的课,可以排到周一和周三或周二和周四、周三和周五,只要做到隔天编排就可以了,周学时为2的课程就要更加灵活,只要教师没有特殊要求那么安排在一周内的任何时间段都可以,只要找到在时间单元矩阵内可排课的一列就可以对课程进行编排。所以此类课应最后排,它的优先级最低。

5.3.4对排课过程中的约束条件进行处理

       在进行排课算法设计时,把排课过程中的约束条件设定为三类,即基本约束、约束、软约束三类。

为了用计算机解决问题,对上面列的三个约束条件来进行数学表示。

1、基本约束条件为:一个班级在相同时间必须上一门课;一个任课老师在同一个时间也只能上一门课;一个实验室在相同时间也只能上一门理论课(单纯实验课除外)。

       对于基本约束给出的三个条件,为避免冲突,我们采用三张矩阵匹配相加来进行运算,对三张矩阵表教师Tn[i,g]、班级Cn[i,g]、教室Rn[i, g]进行加法运算,只要能得出的综合矩阵表△[i,g]中的数值均为0就表示此门课可排。

2、约束条件为:教室容量必须能满足学生人数;课程要安排在它所需教室类型中上课,如有的老师上课需要多媒体演示那就只能安排在多媒体机房中上课;同一个班级上的同一门课在一周内要隔天排。

       那么为了保证教室容量必须满足学生人数则Max(Num{Ri})≥Num(Clas__cap)。在选择学生人数时,如找不到与之相匹配的教室,那么为了避免教室资源的浪费.就选则与之类型一样但可容纳人数较多的教室。

       一周内间隔排列同班上的同门课程,设上次排这门课的时间为T[i,g],本次排这门课程的时间为T[i, k]。由此得出|g- k|/5>1,可以保证同一班级同一课程的两次课尽量不安排在相近的两天。

3、软约束条件为:重要课、繁难课应安排在上午,上课,设排此课程的时间为T[i,g],则1≤Mod(g, 5)≤2。纯实验课应安排在下午和晚上;设排此课程的时间为T[i,g],则2<Mod(g,5) ≤4 or Mod(g,5)=0。一个班级的同一门课一天中不要超三学时,设前一次排此课程的时间为T[i,g],本次为T[i,k],则|g- k|/5>0

5.3.5设定编排课程的优先级

       采用先难后易的决策对教师、学生、教室等排课各要素进行分类和优化,也就是优先安排周学时多需要在上午上的课程,接下去一步步降低优先级,由难到易,按优先级进行排课。

例如设C1班和C2班,

C1和C2两个班分别需要对课程L1和L2进行学习,

      最后需一起学习课程L3。那么就设L1和L2的优先级比L3高,把L3放到最后编排。设时间单元H1内安排L1,时间单元H2安排L2课程,则H1+H2= L3,这时编排失败

6a6e9484db9f42489f921a76930ab75b.png

      如果我们调整3门课的优先级,改变课程编排的先后顺序,那么就可以避免此冲突的发生,使L3的优先级高于L2和L1,那么排课状况就会出现表4. 7所示。

828aff871dea4cf782f8679629e7cda4.png

       通过此例子我们可以看出,把课程的优先级确定好在排课中是非常重要的,我们设定课程的优先级:大班课优先编排;总学时多的课优先排编;对时间和教室有特殊要求的课优先编排。

5.3.6查找可用的时间单元

       确定好课程的优先级后,下一步按照优先级从高到低的顺序进行调取。首先,初始化这门课程的时间单元矩阵见表5.7所示(设第10周不排课,其余时间可排课)。

06702dbd33b9472986a9131d6a4b8097.png

       查找上这门课程的教师的可排课时间单元矩阵T[i,g],然后按学生人数多少选择相应类型的教室,R[i, g]找出该教室的可用时间单元,最后,把三个矩阵表相加,得出一个新的矩阵△[i,g],在这个新矩阵中,全部为0的均表示可排课。例如,设教师和教室的可用时间矩阵为表5.8、表5.9所示

e5e913e907e24c9ab321a78072538fbe.png

b1fdd27749cf4e2c846fc5195b17ea4d.png

 三个矩阵相加得到综合矩阵表5.10:

01ca4769b9a74477b21381cde7b8a7e7.png

上表为0的时间单元则表示可以在该教室内排课的时间单元。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值