论文摘要
遗传算法在复杂优化问题求解方面的优异性能,受到了广大研究人员的关注。但具体的代码实现以及在工程项目中的应用,还存在着许多困难,这大大限制了遗传算法在工业优化领域的进一步推广。因此本论文研究工作试图解决在遗传算法应用开发时碰到的困难与不便,提高它的应用实施效率。本文首先介绍了遗传算法的发展历史,应用范围,和在软件设计方面已取得的成果等内容,然后详细讨论了它的基本原理和技术实现。在这些分析研究基础上,利用面向对象的程序设计思想和方法,实现了遗传算法开发平台。该平台按照分层次,模块化进行架构设计和开发,以高效运行,使用简便和从仿真实验到实际生产部署的代码平滑迁移为目标,提供了遗传算法计算的总体框架,预置实现了常见的二进制编码,实数编码,符号编码等编码方式,和与之相关的遗传算子等基础类库组件,并提出了引擎驱动的遗传算法的使用方法。在这些工作之上,还提供了一系列辅助的参数设置,实验分析等的图形化工具。通过该平台,遗传算法的应用人员能将主要精力集中于业务相关的算法设计和调整部分,减少大部分通用的框架和算子代码实现工作,提高工作效率。在程序实现方面,充分利用了C++模板的语言特性,将遗传进化个体类型作为模板参数,使遗传算子等其他组件在程序编译期得到实例化确定,相对于传统的使用运行时多态来解决遗传编码不确定的问题,提高了运行时的执行效率。使用面向对象的设计技术,配合相应的设计模式,将程序与数据流相分离,合理组织底层组件类的关系,减少了对象之间的藕合关系,增强了平台的可扩展性和代码的可维护性。借助于标准C++和wxPython库的跨平台特性,平台中的底层类库和图形化工具能在Windows和Linux等多种操作系统下运行。使用平台对MaxOne问题,函数优化问题,TSP问题进行实验仿真,展示了基于平台进行遗传算法建模的一般性步骤和使用方法的一致性。在实验仿真过程中,结合各自问题特性,讨论了与编码相关的交叉、变异算子的设计,对于遗传算子和参数对优化效果的影响进行了各种实验,得出了精心选择的参数组合能大幅提高优化效果和优化领域“没有免费的午餐”的结论,这有助于用户在使用遗传算法时选择合适的参数。最后对炼钢组炉实例进行建模,用遗传算法对出钢记号和余材量进行优化计算,提出了一种改进的符号编码方式和启发式的变异操作方法,借助于平台快速完成了程序原型和相关的对比实验,获得的优化效果也令人满意。这些仿真和现场实例都说明了平台的应用价值和应用前景。