| 论文导读:多校区排课是一个典型的多因素的优化决策问题,是组合规划中的NP完全类问题,涉及信息较多且求解复杂性为课表规模的指数量级。遗传算法被证明解决该类问题是最合适的。采用截断选择法,染色体按适应度函数值从高到低排序,只有最优秀的个体才能被选作父个体。关键词:遗传算法,多校区排课,适应度函数
 
 排课是教务管理工作的一个重点和难点。排课涉及教师、学生人数、教室容量、教室类型、教室间距等诸多因素。尤其是多校区同时运行的高校格局增加了更多的约束条件,问题的复杂度也增加了许多。多校区排课是一个典型的多因素的优化决策问题,是组合规划中的NP完全类问题,涉及信息较多且求解复杂性为课表规模的指数量级。遗传算法被证明解决该类问题是最合适的。 一、排课问题描述 编排课表的整个过程中充满了矛盾运动,其中包括上课班级、所开课程、任课教师、上课时间、上课地点等方面在排列组合中所发生的冲突和矛盾现象。课表的编排必须精心组织,准确无误,科学合理,充分发挥时间、空间、人力、物力,以保证教学过程的正常运转。课表要有利于教学设备的充分利用,要符合教学规律。将这个原则进行细化、清晰化,一般可以归纳为以下具体要求。 课表中没有硬性冲突,在排课过程中必须遵守如下约束条件: 1. 每位教师在同一时间段内只能安排一门课程 2. 一个教室在某一时间只能安排一门课 3. 教室的位置数量与每个自然班的人数应尽量匹配 4. 必须根据核定的教学计划所规定的学时数排课,不得任意增减 5. 一个教师两节课间路程不超过10分钟,半天的工作必须安排在同一个校区 课表要求有较高质量,为了使排出的课表更优化、合理、排课还应考虑以下因素: 1. 一门课程在每个班的每两天只能安排一次 2. 专业必修课尽量安排在上午 3. 同一门课的上课地点尽量安排在同一教室 4. 体育课必须排在下午或者上午3-4节,体育课后避免安排讲授课 5. 实验、操作、训练、演示等课应排在下午 6. 满足个别教师的特殊上课时间要求 7. 编排课表时,先排公共课,后排专业课;先排合班课,后排单班课;先排多头课(一个教师有多门课),后排独头课;先排多时课,后排少时课。 二、排课问题的遗传算法设计 根据高校现状,许多院系都有各自独立的教学楼,且实验、体育课等应有固定的教学场所,为此可以利用遗传算法固有的并行性将排课问题分为若干个子问题。 首先,人工安排或计算机根据条件自动生成,集中安排实验、实习、社会实践等有固定 时间和地点的课程。 其次,剩余课程按照院系为单位分为若干个子块,用遗传算法对每个子块进行排课操作。 2.1染色体编码 遗传算法中首要考虑的是如何表现问题,即如何对其进行染色体编码,使之适用于GA操作。一条染色体中应包含课程、老师、教室、学生、时间和校区等相关信息。但由于某一门课程信息里面已经包含了老师、学生和校区信息,故染色体中仅需要对课程、教室和节次采用可拼接的二进制编码。若某院系一学期有40门课程,可编为X1=(a1,a2,a3,a4,a5,a6),ai∈{0,1}。每个院系一般有20个教室不等,可编为X2=(b1,b2,b3,b4,b5),bi∈{0,1}。每周上五天课,每天4次,共20次,可编为X3=(c1,c2,c3,c4,c5……,c19,c20),ci∈{0,1}。所有课程的DNA分子拼接形成一条染色体。 2.2初始化群体 群体初始化的规模数n应取适中。一般,n取值为染色体长度的两倍左右。根据上述的染色体编码,一个DNA分子长度为31,40门课程的一个染色体码长为1240,故n可取2480。 每条染色体中的DNA分子之间由于教室、时间、学生、老师、校区等因素会产生冲突,比如一个老师不能在同一时间安排两门或两门以上的课程。产生初始群体时,在不产生冲突的情况下(满足上述5条硬约束条件),随机为基因块赋0或1,直到满足群体规模。 2.3适应度函数设计 遗传算法根据适应度群体中个体的优良程度,适应度较高的个体遗传到下一代的概率较大。因此,遗传算法是在适应度函数的引导下运行的,适应度函数选择的好坏直接影响算法的优劣。在适应度函数设计中,我们主要考虑以下冲突; P1:教师冲突,教师安排是否冲突,同一时间段是否安排两次课。 P2:教室冲突,同一教室同一时间段不能安排两门课。 P3:班级冲突,同一班级同一时间的段不能安排两门课。 P4:交通冲突:对于多校区或单校区教学楼分散情况,教师或学生相邻时的教室间距不应超过10分钟; P5:教室大小与学生人数的冲突。 以上约束条件Pi∈{0,1},0表示有冲突,1表示没有冲突 首先对一条染色体中的每个DNA分子(一门课程)计算适应度,然后计算一条染色体所有DNA分子适应度之和,将该值作为个体适应度,数学表达式如下: fi=(P1×P2×P3×P4×P5×(f×Q1+j×Q2+h×Q3) 
 f表示节次优先度,j表示课程类别优先度,h表示组合优先度。Q1、Q2,Q3代表相应权值,F个体适应度。 2.4选择算子 采用截断选择法,染色体按适应度函数值从高到低排序,只有最优秀的个体才能被选作父个体。其中,用于决定染色体被选作父个体的百分比的参数称为截断阀值,范围取90%~80%。在该阀值之外的个体不能产生子个体。 2.5交叉算子   交叉只对复制产生的85%的个体进行,此时适当的选择交换概率p,p过大或过小都不易收敛到最优解,设p为0.95(保留的15%不参加交换)。采用一点交换方式,在排课问题中,每周某一课程上课节次是固定的,随机选择第n个DNA分子时间节次码中第m个基因位为1的基因。具体操作是: 2.6变异算子 排课系统中由于课表合法性问题,如果采用简单的随机变异,会出现大量的冲突,导致需要消耗大量精力去纠错。因此,我们在研究中采用有条件的基因变异。 变异操作的作用是防止丢失有用的可能解,保证搜索到空间的重要点,使算法具有全局收敛性,变异的概率较小,在本文中取0.01。和交叉算子一样仅是时间节次码参与交换,教室和课程码保持不变。选择两个点进行变异,具体操作是:随机选择第n个DNA分子,再随机选DNA分子中的时间码第p、q个点进行变异。具体操作时:  个体A ……00000000……
 
 新个体A ……10000000…… 2.7终止条件 采用迭代次数来决定,取2500。 三、结论 本文提出的利用遗传算法解决多校区排课问题的方案,很好地解决了多约束下的排课问题。该方法具有很大的现实意义,对遗传算法求解组合优化问题也有一定的借鉴作用。 【参考文献】
 [1]肖俊.遗传算法的工程应用[J].计算机科学,2005,11(32):247~250
 [2]徐宗本,张讲社,郑亚林.计算智能中的仿生学—理论和算法[M].科学出版社,2003
 [3]业宁,梁作鹏,董逸生.一种基于遗传算法的TTP问题求解算法.东南大学学报.2003(1):41-44
 
   |