本文档下载自文库下载网,内容可能不完整,您可以点击以下网址继续阅读或下载:http://www.wenkuxiazai.com/doc/c45755d376eeaeaad1f330af.html用MATLAB实现遗传算法程序简要阐述了遗传算法的基本原理,探讨了在MATLAB环境中实现遗传算法各算子的编程方法,并以一个简单的实例说明所编程序在函数全局寻优中的应用。?80?计算机应用研究2001年用MATLAB实现遗传算法程序3刘国华,包宏,李文超(北京科技大学,北京100083)摘要:简要阐述了遗传算法的基本原理,探讨了在MATLAB环境中实现遗传算法各算子的编程方法,并以一个简单的实例说明所编程序在函数全局寻优中的应用。关键词:遗传算法(GA);MATLAB中图分类号:TP301.6文献标识码:A文章编号:100123695(2001)0820080203AGeneticAlgorithminMATLABLIUGuo2hua,BAOHong,Wen2(BeijingUniversityofScience&Technology,,)Abstract:TheprincipleofgeneticalgMhasbeendiscussed.Afunctionopti2mizationproblemhasoftheMATLABprogram.Keywords:GG)AT遗传算法(GeneticAlgorithm,GA)是借鉴生物界自然选择和群体进化机制形成的一种全局寻优算法。与传统的优化算法相比,遗传算法具有如下优点[1]:1)不是从单个点,而是从多个点构成的群体开始搜索;2)在搜索最优解过程中,只需要由目标函数值转换得来的适应值信息,而不需要导数等其它辅助信息;3)搜索过程不易陷入局部最优点。目前,该算法已渗透到许多领域,并成为解决各领域复杂问题的有力工具[2]。在遗传算法中,将问题空间中的决策变量通过一定编码方法表示成遗传空间的一个个体,它是一个基因型串结构数据;同时,将目标函数值转换成适应值,它用来评价个体的优劣,并作为遗传操作的依据。遗传操作包括三个算子:选择、交叉和变异。选择用来实施适者生存的原则,即把当前群体中的个体按与适应值成比例的概率复制到新的群体中,构成交配池(当前代与下一代之间的中间群体)。选择算子的作用效果是提高了群体的平均适应值。由于选择算子没有产生新个体,所以群体中最好http://www.wenkuxiazai.com/doc/c45755d376eeaeaad1f330af.html个体的适应值不会因选择操作而有所改进。交叉算子可以产生新的个体,它首先使从交配池中的个体随机配对,然后将两两配对的个体按某种方式相互交换部分基因。变异是对个体的某一个或某一些基因值按某一较小概率进行改变。从产生新个体的能力方面来说,交叉算子是产生新个体的主要方法,它决定了遗传算法的全局搜索能力;而变异算子只是产生新个体的辅助方法,但也必不可少,因为它决定了遗传算法的局部搜索能力。交叉和变异相配合,共同完成对搜索空间的全局和局部搜索。1遗传算法概述遗传算法的基本步骤[3]如下:1)在一定编码方案下,随机产生一个初始种群;2)用相应的解码方法,将编码后的个体转换成问题空间的决策变量,并求得个体的适应值;3)按照个体适应值的大小,从种群中选出适应值较大的一些个体构成交配池;4)由交叉和变异这两个遗传算子对交配池中的个体进行操作,并形成新一代的种群;5)反复执行步骤2~4,直至满足收敛判据为止。使用遗传算法需要决定的运行参数有:编码串长度、种群大小、交叉和变异概率[4]。编码串长度由优化问题所要求的求解精度决定。种群大小表示种群中所含个体的数量,种群较小时,可提高遗传算法的运算速度,但却降低了群体的多样性,可能找不出最优解;种群较大时,又会增加计算量,使遗传算法的运行效率降低。一般取种群数目为20~100。交叉概率控制着交叉操作的频率,由于交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率通常应取较大值;但若过大的话,又可能破坏群体的优良模式。一般取0.4~0.99。变异概率也是影响新个体产生的一个因素,变异概率小,产生新个体少;变异概率太大,又会使遗传算法变成随机搜索。一般取变异概率为0.0001~0.1。遗传算法常采用的收敛判据有:规定遗传代数;连续几次得到的最优个体的适应值没有变化或变化很小等[5]。2用MATLAB实现遗传算法MATLAB是Matwork公司的产品,是一个功能强大的数学软件,其优秀的数值计算能力使其在工业界和学术界的使用率都非常高。MATLAB还十http://www.wenkuxiazai.com/doc/c45755d376eeaeaad1f330af.html分便于使用,它以直观...