遗传算法的matlab实现实例

遗传算法的matlab实现实例

ID:19500474

大小:542.77 KB

页数:6页

时间:2018-10-02

遗传算法的matlab实现实例_第1页
遗传算法的matlab实现实例_第2页
遗传算法的matlab实现实例_第3页
遗传算法的matlab实现实例_第4页
遗传算法的matlab实现实例_第5页
资源描述:

《遗传算法的matlab实现实例》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、遗传算法(GeneticAlgorithm)的MATLAB应用实例TouseOptimizationToolboxsoftware,youneedto1DefineyourobjectivefunctionintheMATLABlanguage,asafunctionfileoranonymousfunction.2Defineyourconstraint(s)asaseparatefileoranonymousfunction.首先建立目标函数的M文件;例1:如目标函数min100(x2-x12)+(1-x1)2;Function

2、FileforObjectiveFunctionAfunctionfileisatextfilecontainingMATLABcommandswiththeextension.m.Createanewfunctionfileinanytexteditor,orusethebuilt-inMATLABEditorasfollows:(1)Atthecommandlineenter:edit(想要建立的.m文件的文件名)TheMATLABEditoropens.(2)Intheeditorenter:functionf=rosenbr

3、ock(x)f=100*(x(2)-x(1)^2)^2+(1-x(1))^2;(3)SavethefilebyselectingFile>Save.把M文件保存在MATLAB默认的工作目录中;在命令行中输入命令:cd,就可以得到MATLAB默认的工作目录。TocheckthattheM-filereturnsthecorrectvalue,enterrosenbrock([11])ans=0注释:如果想建立rosenbrock.m文件,那么步骤1变为editrosenbrock。例2:minZ=-3x1+x2+x3;S.t.x1-2

4、x2+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(边界):变量的最小值和

5、最大值。矩阵形式表示,负无穷大为-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=[

6、];注意:c为非线性不等式约束,ceq为非线性等式约束;等式或不等式都必须返回,若无则为“[]”。此题没有非线性约束(见下图)。不需要设置参数的项不填写任何信息。(1)进入工具箱MATLAB—Start—Toolboxes—Optimization(2)选择(3)选择优化目标函数ceshi.M文件内容为(2)约束参数(3)右侧遗传算法选项全部默认设置(4)点击start后,程序运行结果为(2)通过大M算法计算结果为419Z=-2例3:求解函数f(x)=100﹡(x12-x2)2+(1-x1)2;s.t.x1﹡x2+x1-x2+1.5

7、≦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文件,

8、同样作为程序模块以备调用。x=0.812212.3122fval=1.3578e+004

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。