遗传算法工具箱使用实例PPT学习课件_第1页
遗传算法工具箱使用实例PPT学习课件_第2页
遗传算法工具箱使用实例PPT学习课件_第3页
遗传算法工具箱使用实例PPT学习课件_第4页
遗传算法工具箱使用实例PPT学习课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

遗传算法工具箱使用实例,1,2020/5/23,遗传算法运算流程:Step1:对遗传算法的运行参数进行赋值。参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。Step2:建立区域描述器。求解变量的约束条件,设置变量的取值范围。Step3:在Step2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。Step4:执行比例选择算子进行选择操作。Step5:按交叉概率对交叉算子执行交叉操作。Step6:按变异概率执行离散变异操作。Step7:计算Step6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。Step8:判断是否满足遗传运算的终止进化代数,不满足则返回Step4,满足则输出运算结果。,2,2020/5/23,遗传算法工具箱的使用,在MATLAB命令行窗口输入gatool,打开遗传算法工具箱:,3,2020/5/23,Solver(求解器):用于选择需要的算法。Problem:需要解决的问题。(1)Fitnessfunction:需要优化的目标函数,填写的格式为:funname,其中funname.m是编写目标函数的M文件,返回一个具体数值。(2)Numberofvariables:目标函数输入变量的数目。,4,2020/5/23,Constraints(约束):(1)Linearinequalities线性不等式约束:表示为:A*x=b,填写矩阵A和向量b的信息。(2)Linearequalities线性等式约束:表示为:Aeq*x=beq,填写矩阵Aeq和向量beq的信息。(3)Bounds:填写独立变量的取值范围。在Lower中填写变量的取值下界,Upper中填写变量的取值上界,均以向量形式表示。(4)Nonlinearconstraintfunction非线性约束函数:编写非线性约束函数的M文件nonlcon.m,则在此处填写nonlcon。,5,2020/5/23,Runsolverandviewresults运行求解器并观察结果:点击Start即可开始运行遗传算法。Currentiteration中将显示当前运行的代数。Finalpoint栏中显示最优解对应的变量的取值。,6,2020/5/23,Option部分是遗传算法参数的设定:Population种群参数设定:Populationtype编码方式:有浮点编码和二进制编码,默认为Doublevector。Populationsize种群大小:默认为20,定义每一代种群的个体数量。种群规模越大,遗传算法的运行速度越慢。Creationfunction创建函数:创建初始种群。,7,2020/5/23,Initialpopulation初始种群,如果不指定初始种群,则系统将运用创建建函数创建初始种群。Initialscores初始得分,如果此处没有定义初始得分,则系统应用适应度函数来计算初始得分。Initialrange初始范围,用于指定初始种群中的各变量的上下限。初始范围用一个矩阵表示,该矩阵行数为2,列数为变量的个数。其中第一行描述初始种群中变量的取值下限,第二行描述初始种群中变量的取值上限。,8,2020/5/23,Fitnessscaling:变换适应度函数值的函数句柄。Elitecount:直接保留上一代的个体的个数。Crossoverfraction:交叉的概率。Migration中,指定迁移的方向,概率,和频率。Stoppingcriteria中,指定结束条件。Generations和timelimit指定代数和时间的最大极限。Fitnesslimit指定fitness值相差小于某一阈值时就可以收敛了。Stallgeneration和stalltimelimit指经历多少代或多久,最优值都没有出现变化时即收敛。Plotfunctions与图形输出有关,plotinterval指定多少代输出一次,默认为1.bestfitness和bestinvividual表示将最优值和相应个体输出到图像上。Display通过commandwindow输出到命令窗口。有off,final,interative,diagnose4个选择。,9,2020/5/23,初始种群的生成函数:Functionpop=initializega(num,bounds,eevalFN,eevalOps,options)输出参数:pop:生成的初始种群输入参数:num:种群中的个体数目bounds:代表变量的上下界的矩阵eevalFN:适应度函数eevalOps:传递给适度函数的参数options:选择编码形式(浮点编码或二进制编码)precisionF_or_BPrecision:变量进行二进制编码时指定的精度,F_:选择浮点编码,_B:为二进制编码,核心函数:,10,2020/5/23,遗传算法函数:Functionx,endPop,bPop,traceInfo=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)输出参数:x:求得的最优解endPop:最终得到的种群bPop:最优种群的一个搜索轨迹traceInfo:每一代种群的最优个体和均值输入参数:bounds:代表变量上下界的矩阵evalFN:适应度函数evalOps:传递给适应度函数的参数startPop:初始种群,11,2020/5/23,opts:选择编码形式(浮点编码或二进制编码)1e-6101e-6:变量进行二进制编码时指定的精度,1:选择浮点编码,0:为二进制编码termFN:终止函数的名称termOps:传递给终止函数的参数,一般为需要的遗传代数selectFN:选择函数的名称selectOps:传递给选择函数的参数xOverFNs:交叉函数名称表,以空格分开xOverOps:传递给交叉函数的参数表mutFNs:变异函数表mutOps:传递给交叉函数的参数表,12,2020/5/23,【问题】求f(x)=x2-7*x+2;的最小值,其中0=x=10【分析】选择二进制编码,二进制编码长度为20,交叉概率为0.95,变异概率为0.08,%编写目标函数functiony=f(x)y=x2-7*x+2;%把上述函数存储为f.m文件并放在工作目录下,使用fplot(x2-7*x+2,0,10);画出目标函数,与遗传算法求出的最优解对比,验证是否正确。,13,2020/5/23,14,2020/5/23,遗传算法求出最小值为:x=3.322,y=-10.2173,15,2020/5/23,【问题】求f(x)=5*x+12*sin(3*x)+8*cos(7*x);的最小值,其中0=x=9【分析】选择二进制编码,二进制编码长度为20,交叉概率为0.95,变异概率为0.08,%编写目标函数functiony=f(x)y=5*x+12*sin(3*x)+8*cos(7*x);%把上述函数存储为f.m文件并放在工作目录下,使用fplot(y=5*x+12*sin(3*x)+8*cos(7*x),0,9);画出目标函数,与遗传算法求出的最优解对比,验证是否正确。,16,2020/5/23,17,2020/5/23,遗传算法求出最小值为:x=1.38,y=-10.9692根据原函数可以看出求出的最优解与实际最优解基本相等。,18,2020/5/23,遗传算法是一种全局优化概率算法,主要的优点有:1.遗传算法对所求解的优化问题没有太多的数学要求,由于他的进化特性,搜素过程中不需要问题的内在性质,对于任意形式的目标函数和约束,无论是线性的还是非线性的,离散的还是连

温馨提示

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

评论

0/150

提交评论