基于遗传算法的智能排课模型

时间:2013-07-11 12:07:04 来源:论文投稿

摘要:随着高校的不断扩招,如何用有限的资源来保持教学的有序性,使高校智能排课成为一个多约束、多目标优化问题。传统的智能排课算法效率低,并且不能很好的解决课程冲突的问题,无法满足现代高校教务管理的要求。该文对排课问题进行分析,在对可能的约束条件进行归纳的基础上,建立了比较通用的排课模型;然后根据模型,设计了相应的改进遗传算法,常识在满足所有硬约束条件和尽可能多的软约束条件的情况下实现多校区智能排课。实验结果表明,利用算法进行不同场景下的排课性能测试,测试结果表明了算法的实际可行性。 
  关键词:智能排课;遗传算法;多约束;多目标优化 
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)03-0610-04 
  随着高校规模的不断扩大和教学管理信息化的不断深入,传统的手工排课和计算机辅助排课已远不能满足实现需求,因而智能排课问题又凸现出来[1]。智能排课也被称为大学课程表问题,是一个组合优化问题,需要有效的利用有限的教师、教室和时间资源安排课程[3]。它涉及到很多因素,具有巨大的复杂性。1975年,Even.S 证明了智能排课问题是NP完全问题,宣布了这一时空组合问题的学术地位和难度[4,9]。 
  遗传算法是受诸如遗传、变异、选择、交叉这样的生物进化过程启发的一种搜索算法。它能够自适应到全局最优,经常被用来对优化问题和搜索问题寻找近优解。但是缺陷是交叉和变异概率不能自适应的调整,容易导致早熟和收敛慢等现象[5]。 
  为了提高智能排课算法的效率和成功率,结合智能排课问题,该文提出一种改进的遗传算法来求解问题:对遗传算法的编码方式进行改进,对其交叉和变异算法进行自适应操作,这样可以加快收敛速度,防止早熟现象。最后通过仿真实验对算法进行测试,结果表明改进的遗传算法能够降低冲突率,并且在满足约束条件的情况下提高效率,较好的解决了智能排课问题。 
  1 基于遗传算法的智能排课模型 
  1.1 智能排课问题遗传算法设计 
  由于简单遗传算法有一定的缺陷,所以在解决智能排课问题时,编码以及遗传操作的方式必须要加以改进。 
  1.1.1 基因的编码方式 
  基因是遗传操作的基本执行单位,基因编码方式的优劣影响到信息表达的完美性、遗传操作的设计和执行效率,最终关系到算法的收敛速度。 
  简单遗传算法使用二进制编码方式,由于智能排课问题的复杂性,不能很好的表达课程安排的信息。所以我们使用自然编码的方式:以时间片为基因,以班级作为染色体,因此每个染色体共有20个基因,编号记为G0-G19。每个基因由两部分构成:课程ID(courseID)和教室ID(roomID)。染色体的结构如图1所示: 
  1.1.2 冲突检测 
  时间片和教室资源分配可能会引起冲突,可以使用约束数据模型来检测冲突。为课程分配资源时,应当检查是否满足硬约束条件。如果存在冲突,则资源必须被重新分配。例如,我们可以使用公式(1)-(3)来检查1.2中列出的条件: 
  [i=1nj=1nClassM[cli][wki]=0] (1) 
  [j=1nTeacherM[i][wkj]=0] (2) 
  [i=1nj=1nRoomM[rmi][wkj]=0] (3) 
  1.1.3 种群初始化 
  初始化种群时,为每一门课程分配时间片和教室资源,然后使用资源分配的信息初始化染色体。 
  随机初始化的方式会造成很多冲突,所以我们改进初始化对的方式:在初始化种群时检测和避免冲突,这样保证初始化的结果是正确的。改进的种群初始化方法如下所示: 
  1)对于每一门课,根据课程的周时间片数,生成每周的授课次数,然后为每次授课分配时间; 
  2)对分配的时间片进行冲突检测,即检测所涉及的班级、教师、教室等硬约束条件是否能完全满足要求。若能满足,则3);否则4); 
  3)为该门课程分配满足硬约束条件的教室;将课程ID,教室ID等信息记录在相应的染色体中;按照课程的上课周次和时间片,将相关信息记录约束数据模型中,以作冲突检测用。转5); 
  3)为该门课程重新分配时间片,转2); 
  5)若所有课程都已执行了上述操作,转6);否则转1); 
  6)初始化结束。 
  1.1.4 适应度函数 
  在遗传算法的进化过程中,适应度函数决定着进化方向,因此适应度函数直接决定着排课算法的寻优速度。 
  适应度函数的设计和适应度值的计算取决于软约束条件。软约束条件记为soft1,...,softn。适应度函数设计如下: 
  每个约束条件的总分是100,为每个约束条件设定权值,依次记为W1…W6,且满足[i=1nwi=1]。 
  将软约束条件i的得分记为ScoreOfSoft(i),则使用公式(4)计算课程j的得分: 
  [ScoreOfCourse(j)=i=1nScoreOfSoft(i)*wi] (4) 
  设某班级一周内的课程总数记为COUNT,则使用公式(5)计算该染色体k的得分: 
  [ScoreOfClass(k)=j=0COUNT-1ScoreOfCourse(j)COUNT] (5) 
  进而,该染色体k的适应度Adaptability(k) = [ScoreOfClass(k)100]。 
  1.1.5 遗传操作 
  遗传算法中,操作主要包括选择、交叉和变异。 
  选择操作:采用轮盘赌法,适应度值搞的个体更容易被选中。为了计算个体的适应度比例,记种群规模为IndividualCount,个体K的适应度值记为Adaptability(k)。所以个体K的适应度值比例为:


更多计算机论文论文详细信息: 基于遗传算法的智能排课模型 论文代写
http://m.400qikan.com/lw-3326 论文代发

相关专题:地基溶洞处理 存货管理

相关论文
相关学术期刊
《中国普外基础与临床杂志》 《数学学报》 《重庆邮电大学学报》 《国际麻醉学与复苏杂志》 《清华法治论衡》 《农业与技术》 《江苏煤炭》 《血栓与止血学》 《广播电视信息》 《城市发展研究》

< 返回首页