3遺传算法的MATLAB实现实例.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3遺传算法的MATLAB实现实例

遗传算法(Genetic Algorithm)的MATLAB应用实例To use Optimization Toolbox software, you need to 1 Define your objective function in the MATLAB language, as a function file or anonymous function. 2 Define your constraint(s) as a separate file or anonymous function.首先建立目标函数的M文件;例1:如目标函数 min 100()+ ;Function File for Objective FunctionA function file is a text file containing MATLAB commands with the extension .m. Create a new function file in any text editor, or use the built-in MATLAB Editor as follows:(1)At the command line enter:edit (想要建立的.m文件的文件名)The MATLAB Editor opens.(2) In the editor enter:function f = rosenbrock(x)f = 100*(x(2) - x(1)^2)^2 + (1 - x(1))^2;(3) Save the file by selecting File Save.把M文件保存在MATLAB默认的工作目录中;在命令行中输入命令:cd ,就可以得到MATLAB默认的工作目录。To check that the M-file returns the correct value, enterrosenbrock ([1 1])ans = 0注释:如果想建立rosenbrock.m文件,那么步骤1变为edit rosenbrock。例2:min Z=-3++ ; S.t. -2+≦11 已经标准化 -4++2≧3遗传算法标准形式 4--2≦-3 -2 + =1属于线性等式约束 ≧0 , j=1,2,3;遗传算法标准化Linear inequalities(线性不等式):A﹡x=b。其中A是矩阵,b是列向量书写格式此题中如A中填写[ 1,-2,1;4,-1,-2 ], b中填写[ 11;-3];Linear equalities(线性等式):Aeq﹡x=beq。其中Aeq是矩阵,beq是列向量,格式同上;此题中Aeq中填写 [ -2,0,1 ] ,b中填写 [1];Bounds(边界):变量的最小值和最大值。矩阵形式表示,负无穷大为-inf,正无穷大为inf。(此题Lower填写0,Upper填写inf。)如果问题中有1≦≦3,2≦≦5;则在Lower中填入[1;2],在Upper中填入[3;5]。Nonlinear constraint function (非线性限制函数):类似于Fitness Function中的输入,首先生成对应的 .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选择选择优化目标函数ceshi.M 文件内容为约束参数右侧遗传算法选项全部默认设置点击start 后,程序运行结果为通过大M 算法计算结果为4 1 9Z=-2例3:求解函数f(x) = 100﹡ + ;s.t.﹡+-+1.5≦0 10-﹡≦0 0≦≦1 0≦≦13采用遗传算法函数ga( )来求解,首先,编写求解的目标函数:function y = 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.812

您可能关注的文档

文档评论(0)

cv7c8hj6b4I + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档