《MATLAB遗传算法工具箱及应用》课件第8章.ppt

《MATLAB遗传算法工具箱及应用》课件第8章.ppt

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

display(xbest);

xbest=

Columns1through7

3.000060.00002.830656.59852.562551.19462.2258

Columns8through10

44.49911.768435.3489

可以调用ga直接返回悬臂梁的体积:

fprintf(′\nCostfunctionreturnedbyga=%g\n′,fbest);

Costfunctionreturnedbyga=63295.44.增加离散非整数变量约束

若要求悬臂梁的第二级和第三级部分的高度和宽度只能从一个新增的标准集中选择,则必须在优化问题中添加约束条件。本小节将介绍如何在优化问题中添加这种约束条件。

首先,需要对添加到上述优化问题中的额外约束条件进行数学描述。

(1)悬臂梁的第二级和第三级部分的宽度值必须从如下标准集中选取:[2.4,2.6,2.8,3.1]cm。(2)悬臂梁的第二级和第三级部分的高度值必须从如下标准集中选取:[45,50,55,60]cm。

其次,为了解决这个问题,需要将变量x3、x4、x5和x6定义为离散变量。将变量xj离散化,就是从集合S=v1,…,vk中取得离散值,令xj取1~k的整数量。其中,1表示下界,k表示上界;用S(xj)表示离散值。

因此,首先需要将边界转化为离散变量。将离散变量的值映射到区间[1,4]上的整数,使得每个集合有4个元素。为了将这些变量映射成整数,将每个变量的下界设为1,上界设为4。lb=[1301111130130];

ub=[5654444565565];

当调用ga求解器时,就将转化后的x3、x4、x5和x6传递给适应度函数和约束函数。为了正确地计算函数值,x3、x4、x5和x6需要转化成适应于这些函数的离散集合。具体做法可参见MATLAB中包含的文件cantileverVolumeWithDisc.m,cantileverConstraintsWithDisc.m和

cantileverMapVariables.m。

现在,调用ga使用离散变量求解问题。下面例子中,x1,…,x6是整数,也就是说,将索引1:6传递给ga来定义整数变量:rng(0,twister);

[xbestDisc,fbestDisc,exitflagDisc]=ga(@cantileverVolumeWithDisc,...

10,[],[],[],[],lb,ub,@cantileverConstraintsWithDisc,1:6,opts);

Optimizationterminated:averagechangeinthepenaltyfitnessvaluelessthanoptions.TolFun

andconstraintviolationislessthanoptions.TolCon.图8.71增加离散非整数变量约束后的运行结果对上述结果进行分析。xbestDisc(3:6)由ga作为转化后的整数形式返回,这就需要进行逆转化来重新得到工程单位的值。

xbestDisc=cantileverMapVariables(xbestDisc);

display(xbestDisc);

xbestDisc=

Columns1through7

3.000060.00003.100055.00002.600050.00002.2808

Columns8through10

45.61541.750035.0000从ga返回的结果是遵守约束条件的,是整数,、从集合[2.4,2.6,2.8,3.1]cm中取值,、从集合[45,50,55,60]cm中取值。

注意:给变量x(3),x(4),x(5)和x(6)的约束条件是之前额外增加的。正如预期的那样,如果变量有额外的离散约束条件,优化计算得到的最小值就大一些。进一步分析发现参考文件[1]中的最小值是64558cm3,这里得到了与其几乎相同的值。

fprintf(\nCostfunctionreturnedbyga=%g\n,fbestDisc);

Costfunctionreturnedbyga=64578.95.小结

本例阐明了如何使用遗传算法求解器ga来求解一个具有整数约束条件的

文档评论(0)

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

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

1亿VIP精品文档

相关文档