- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
求解课程表问题启发式算法综述
求解课程表问题启发式算法综述 摘 要:课程表问题具有约束较多,关系复杂等特点,是一种特殊的调度问题,在算法复杂度上是NP完全的。该问题具有广泛的应用价值。本文主要对求解该问题的启发式算发的内容和研究进展进行了探讨。 关键词:课程表问题;启发式算法 中图分类号:TP18 课程表问题是协调教师、学生、教室、上课时间这四个因素,并满足一定的约束条件,例如教室内的座位数目是否可以容纳某一堂课的所有上课的学生数目。由于上课时间一般是固定的,且课程表是按固定周期(例如一周)循环使用的,所以问题转化成为根据一定的约束条件对一个分别用教师、学生、教室这三维构成的整型数组进行赋值,所赋的值就是上课时间。由于该问题的约束条件较复杂,求解规模较大,所以求解的复杂性较高,属于NP完全问题[1]。 1 问题描述 由于课程表问题的复杂性,将该问题简化显得尤为重要。从有利于研究的角度出发,将问题的约束简化成如下约束,其中(1)-(4)是必须满足的条件,(5)-(8)不是必须满足,但其代价大小代表解的优劣。 (1)一门课的所有课时都必须被安排在一个教室和上课时间。 (2)教室必须独占,不允许出现两个课程在同一个上课时间出现在同一个教室。 (3)同一个课程的多门课或者被同一个教师教授的多门课不能被安排在同一个上课时间。换句话说,同一个上课时间的所有课不能有重叠的老师和学生。 (4)如果某个教师所教授的某一门课不能安排在某一个上课时间,则该门课不能安排在这个上课时间。 (5)上课的教室的容量应该大于等于上课的人数。 (6)任何一门课的上课教室应该是固定的。如果不能固定,则上课的教室数量应该尽可能的少。 (7)某一门课的上课天数应该不少于一个给定的阈值。 (8)课程的持续性。给定一个课程,在一天中尽量保持课程中的课是紧挨着上的。这意味对学生的日程安排的影响应该尽可能的少。 随着问题研究的深入,还有更复杂的约束加入到问题中。 2 ITC竞赛 ITC竞赛[4]的全称是国际时间表竞赛,是由PATAT会议赞助举行的。距今已经举办了三届比赛,第二届比赛时将比赛类型扩展到三种,包括考试时间表、基于课程的课时时间表、基于新生的课时时间表;约束条件则包括上课地点的距离远近、某些教室在某段时间不能有课、教室太大而上课的学生数量太少等等。不同的约束带来不同的问题。实际应用场景中,各个学校的情况也不一样,这些加入的约束对算法的应用具有很好的帮助。第三届比赛则将约束条件扩展到16种,并将输入格式唯一地确定为xml文件。该竞赛的举办为该问题的输入和输出的标准化带来了福音。 3 典型的启发式方法 遗传算法是模拟生物进化过程,算法会将问题的解经过特定的转换得到适合遗传算法的编码。这样,解就是一个染色体,多个染色体构成种群。种群在杂交、变异和选择这三个遗传操作中进行进化产生新一代个体。其中选择是在启发式函数的指导下进行的,即对应生物界的适者生存法则。在遗传算法中是把教室和上课时间构成的矩阵X顺序存储作为染色体的[2]。每一个基因位点上的值即表示某一门课。种群的初始化一般是随机产生的。这样保证了种群多样性,但会存在大量的冲突。启发式函数即为违反约束条件的次数总和,计算得到的权值是选择操作的依据。交叉过程则是两个染色体通过交换对应基因位点。变异操作则是以小概率改变基因位点上的值。这主要是维护种群的多样性,防止算法陷入局部次优解中。 模拟退火算法来源于物理学,高温时,原子能量就加大,原子的随机运动就会加快,而低温时,原子就会有机会达到比初始状态能量更低的状态。模拟退火算法的每一步都尝试在当前的解的临近解中寻找更好的解以一定的概率来代替当前的解。当温度较高时,原来的解被替换的概率会较大,温度较低时,新解被接收的概率较小。模拟退火算法的每一步冷却过程中均要进行热平衡操作。冷却过程相当于全局搜索,热平衡相当于局部搜索。在算法中还需要对降温的快慢和幅度进行控制,如果太快,就会丢失最优解;如果太慢,则会使算法的收敛速度大大降低从而影响算法效率。而将模拟退火算法应用课表问题则需要将课表问题转换成图着色问题[3],这样就将问题的求解难度降低了。在算法中为了获得更好的多样性,还会在热平衡过程中加入干扰操作。 禁忌搜索是在局部搜索算法中加入了禁忌表这一数据结构,并将藐视准则加入到禁忌表的出表策略中。禁忌搜索将当前达到的状态或者操作的步骤放入禁忌表中,在禁忌表的状态或者操作不能在一定的时间内出现,这样避免局部搜索陷入局部最优,而藐视准则则增加了搜索的多样性。禁忌应用于课程表问题最早是由A.Hertz提出。目前效果最好的是Z Lu等提出的自适应禁忌搜索,这个效果之所以好是因为其比较特殊的初始化方式——构造一个满足约束的候选解作为初始解,其
原创力文档


文档评论(0)