遗传算法及matlab实现_第1页
遗传算法及matlab实现_第2页
遗传算法及matlab实现_第3页
遗传算法及matlab实现_第4页
遗传算法及matlab实现_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

参考书目MATLAB遗传算法工具箱及应用niuyongjie的专栏:

/niuyongjie/archive/2009/11/24/4863979.aspx特点群体搜索特性:许多传统的搜索方法都是单点搜索,遗传算法采用的是同时处理群体中多个个体的方法使遗传算法具有较好的全局搜索性能,不容易陷入局部最优;遗传算法的适应度函数(目标函数)可以解决不连续、不可微、随机或高度非线性的问题,而且其定义域可以任意设定;遗传算法具有可扩展性,易于同别的技术混合使用。遗传算法的定义

遗传算法(GeneticAlgorithm:GA)是一种寻求函数(问题)最优解的数学方法。其基本原理是:模拟自然界生物繁衍过程中基因重组与进化的自然过程,把待解决问题的参数编成二进制码或十进制码(也可编成其他进制码),即基因,若干基因组成一个染色体(个体),许多染色体进行类似于自然选择、配对交叉和变异的运算,经过多次重复迭代(即世代遗传)直至得到最后的优化结果。遗传算法的计算过程(随机)产生初始种群是否满足停止准则是输出结果并结束计算个体适应度值选择运算交叉运算变异运算否产生新一代种群随机产生种群种群(种群数为2)个体1:初始解1相当于染色体1基因1:x1基因2:x2基因3:x3个体2:初始解2相当于染色体2基因1:x1基因2:x2基因3:x3编码与解码

在遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法就称为编码。而由遗传算法解空间向问题空间的转换称为解码。如二进制编码,格雷码编码,浮点数编码,多参数级联编码等。例如:一组x1,x2,x3编码为0010

1100

0010更高精度基因型1000101110110101000111表现型:0.637197

编码解码个体(染色体)适应度函数(FitnessFunction)

定义:度量个体适应度的函数。

在某种程度上来说,适应度函数就相当于实际问题的目标函数,只是它只求最小值,因此,当实际问题是求最大值时,需要做相应转换。选择(Slection)选择(或称为复制)是在种群中选择适应度高(函数更加优化)的个体产生新的种群的过程。遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到下一代群体中的一种遗传运算,用来确定重组或交叉个体。如轮盘赌选择,随机竞争选择等交叉(Crossover)交叉是按较大的概率从群体中选择两个个体,交换两个个体的某个或某些位。如单点交叉,多点交叉等。例如:交叉前:交叉后:个体1:00000|0111000000001000000000|00000111111000101个体2:11100|0000011111100010111100|01110000000010000变异(Mutation)以较小的概率对个体编码串上的某个或某些位值进行改变,如二进制编码中0”变为“1”,“1”变为“0”,进而生成新个体。它决定了遗传算法的局部搜索能力,同时保持种群的多样性。交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索。MATLAB遗传算法工具箱Matlab遗传算法工具箱操作打开工具箱:键入命令:gatool点击命令:工具箱界面1243第1部分:定义函数句柄在FitnessFunction中输入一个计算适应度函数的.M文件函数的句柄(handle),以调用文件中函数。格式:@test(与相应的M文件名一致)在 Numberofvariance中输入变量个数生成.M文件定义对应的函数:编辑并生成适应度函数的.M文件——便于工具箱使用时调用。格式:functionz=test(x)

z=具体函数

注意事项:一个函数中变量只能是X1,X2,……,不能是x,y,z;.M文件名无需与函数名对应。英文,自由命名第2部分:约束条件Linearinequalities(线性不等式):A*x<=b。其中A是矩阵,b是列向量,书写格式如A中填写[1,2,3;12,3,43;1,23,4],b中填写[5;4;7];Linearequalities(线性等式):Aeq*x=beq。其中Aeq是矩阵,beq是列向量,格式同上;Bounds(边界):变量的最小和最大值。矩阵形式表示,负无穷大为-Inf,正无穷大为Inf。Nonlinearconstraintfunction(非线性限制函数)

:类似于“FitnessFunction”中的输入,首先生成对应的.M文件,此处输入函数的句柄,调用其中的(非线性限制)函数。格式为:function[c,ceq]=game(x)c(1)=(x(1)^2)/9+(x(2)^2)/4-1;ceq=[];第3部分:运算参数

参数的设置主要影响到运算过程的速度和运算结果的精准性,两者在很多时候是相互矛盾的。运算参数有很多,均有缺省值,一般都不需要修改。各个参数选项的详细信息在参考书中有详细介绍,另外在工具箱操作界面的右侧也有相应的英文介绍。第4部分:运行显示Plot对话框:运算过程的图形显示界面,可同时选择多项,在运算过程中将显示对应的运算过程。比如:bestfitness将显示每一代中最佳适应度的函数值;Bestfitness将显示每一代最佳个体的取值;Scores将显示每一代所有个体的取值等。第4部分:运行命令和结果RunsolverUserandomstatesfrompreviousrun:重复运算上一次运算过程—运算结果一致。Start、Pause、Stop:开始、暂停、停止。Statusandresults:状态和结果。提示是否正常计算,以及正常运算的最优结果。Finalpoint:最优结果时的参数值。Export

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论