遗传算法的MATLAB实现实例

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

遗传算法(GeneticAlgorithm)的MATLAB应用实例TouseOptimizationToolboxsoftware,youneedto1DefineyourobjectivefunctionintheMATLABlanguage,asafunctionfileoranonymousfunction.2Defineyourconstraint(s)asaseparatefileoranonymousfunction.首先建立目标函数的M文件;例1:如目标函数min100(x2−x12)+(1−x1)2;FunctionFileforObjectiveFunctionAfunctionfileisatextfilecontainingMATLABcommandswiththeextension.m.Createanewfunctionfileinanytexteditor,orusethebuilt-inMATLABEditorasfollows:(1)Atthecommandlineenter:edit(想要建立的.m文件的文件名)TheMATLABEditoropens.(2)Intheeditorenter:functionf=rosenbrock(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;(3)SavethefilebyselectingFileSave.把M文件保存在MATLAB默认的工作目录中;在命令行中输入命令:cd,就可以得到MATLAB默认的工作目录。TocheckthattheM-filereturnsthecorrectvalue,enterrosenbrock([11])ans=0注释:如果想建立rosenbrock.m文件,那么步骤1变为editrosenbrock。例2:minZ=-3x1+x2+x3;S.t.x1-2x2+x3≦11已经标准化-4x1+x2+2x3≧3遗传算法标准形式4x1-x2-2x3≦-3-2x1+x3=1属于线性等式约束xj≧0,j=1,2,3;遗传算法标准化Linearinequalities(线性不等式):A﹡x=b。其中A是矩阵,b是列向量书写格式此题中如A中填写[1,-2,1;4,-1,-2],b中填写[11;-3];Linearequalities(线性等式):Aeq﹡x=beq。其中Aeq是矩阵,beq是列向量,格式同上;此题中Aeq中填写[-2,0,1],b中填写[1];Bounds(边界):变量的最小值和最大值。矩阵形式表示,负无穷大为-inf,正无穷大为inf。(此题Lower填写0,Upper填写inf。)如果问题中有1≦x1≦3,2≦x2≦5;则在Lower中填入[1;2],在Upper中填入[3;5]。Nonlinearconstraintfunction(非线性限制函数):类似于FitnessFunction中的输入,首先生成对应的.M文件,此处输入函数的句柄,调用其中的(非线性限制)函数。M文件格式一般为:Function[c,ceq]=fxxys(x)C(1)=(x(1)^2)/9+(x(2)^2)/4-1;Ceq=[];注意:c为非线性不等式约束,ceq为非线性等式约束;等式或不等式都必须返回,若无则为“[]”。此题没有非线性约束(见下图)。不需要设置参数的项不填写任何信息。(1)进入工具箱MATLAB—Start—Toolboxes—Optimization(2)选择(3)选择优化目标函数ceshi.M文件内容为(4)约束参数(5)右侧遗传算法选项全部默认设置(6)点击start后,程序运行结果为(7)通过大M算法计算结果为419Z=-2例3:求解函数f(x)=100﹡(x12−x2)2+(1−x1)2;s.t.x1﹡x2+x1-x2+1.5≦010-x1﹡x2≦00≦x1≦10≦x2≦13采用遗传算法函数ga()来求解,首先,编写求解的目标函数:functiony=simple_fitness(x)y=100*(x(1)^2-x(2))^2+(1-x(1))^2;将其存为simple_fitness.m文件,作为程序模块以备被调用,而后编写约束边界条件:function[c,ceq]=simple_constraint(x)c=[1.5+x(1)*x(2)+x(1)-x(2);-x(1)*x(2)+10];ceq=[];存为simple_constraint.m文件,同样作为程序模块以备调用。x=0.812212.3122fval=1.3578e+004

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功