论文部分内容阅读
1976年S.Even和Cooper证明了排课问题是一个NP完全问题,不存在精确求解排课问题的多项式时间算法,需借助智能算法寻找其较合理和满意的近似最优解。遗传算法通过模拟自然界生物遗传中的“优胜劣汰、适者生存”原则,避免陷入局部最优解,从而实现对最优解或次优解的快速搜索,被广泛应用于函数优化、组合优化等领域,是当今影响深远的进化计算方法之一,但其存在着局部早熟收敛和进化后期搜索速度下降等问题。病毒进化遗传算法通过引入病毒种群的感染、复制和删减操作在实现了种群的生物多样性的同时,又保持了遗传算法原有的同代间基因信息传递,有效的实现了上下代种群之间的纵向遗传信息传递和同代种群的横向进化信息传递,获得了较为满意的算法收敛性能,有效的克服了传统遗传算法固有早熟和收敛性能不佳的缺点。本文借鉴病毒进化遗传算法的思想对排课问题进行了研究与应用,其主要工作如下:1.系统研究了排课问题,并根据课题的实际需要,分析了排课问题的基本要素、各类软、硬约束条件和求解目标,建立了排课系统的数学优化模型。2.在总结了遗传算法在排课问题中的应用研究后,针对排课问题本身的特点,提出一个适宜解决该问题的改进病毒进化遗传算法(Improved Virus Evolutionary Genetic Algorithm,IVEGA),其主要改进在于:(1)改进传统病毒种群的随机生成方式,有效的利用了排课历史数据和约束条件,加快了病毒种群的收敛。(2)针对排课问题设计了一种有效的基因编码方式,使得原有算法更有针对性。使用典型测试函数对该算法的性能进行测试并与其它算法进行比较,表明了该算法的有效性。3.根据IVEGA算法,以Visual Studio2008为工具,使用C#语言实现了一个排课算法原型,并用实际数据进行了测试,测试结果表明,该原型系统能较好的完成排课任务的分派工作。