网站大量收购闲置独家精品文档,联系QQ:2885784924

遗传算法Matlab实例讲解PPT课件.pptx

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

遗传算法(GA)实例讲解求函数f(x)=10*sin(5x)+7*cos(4x),x∈[0,10]的最大值:1.

函数最大值f(x)=10*sin(5x)+7*cos(4x)的最大值f1(x)=-f(x)-10*sin(5x)-7*cos(4x)的最小值[x,fval]=fminbnd(‘-10*sin(5*x)-7*cos(4*x)’,0,10)x=1.5708fval=-17.0000x=7.8540fval=-17.0000f(x)=10*sin(5x)+7*cos(4x),x∈[0,10]的最大值为:x1=1.5708x2=7.8540F(x1)=f(x2)=17.00002.

主函数Matlab仿真主程序将x的值用一个10位的二值形式表示为二值问题(编码),一个10位的二值数提供的分辨率是(10-0)/(2^10-1)≈0.01。3.

群体初始化

将x的值用一个10位的二值形式表示为二值问题(编码),一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈0.01。4.

计算目标函数值function[objvalue]=calobjvalue(pop)temp1=decodechrom(pop,1,10);x=temp1*10/1023;objvalue=10*sin(5*x)+7*cos(4*x);end5.

计算个体适应值functionfitvalue=calfitvalue(objvalue)globalCmin;Cmin=0;[px,py]=size(objvalue);fori=1:pxifobjvalue(i)+Cmin0temp=Cmin+objvalue(i);elsetemp=0.0;endfitvalue(i)=temp;endfitvalue=fitvalue;end6.

选择function[newpop]=selection(pop,fitvalue)totalfit=sum(fitvalue);fitvalue=fitvalue/totalfit;fitvalue=cumsum(fitvalue);[px,py]=size(pop);ms=sort(rand(px,1));fitin=1;newin=1;whilenewin=pxif(ms(newin))fitvalue(fitin)newpop(newin)=pop(fitin);newin=newin+1;elsefitin=fitin+1;endendend7.

交叉function[newpop]=crossover(pop,pc)[px,py]=size(pop);newpop=ones(size(pop));fori=1:2:px-1if(randpc)cpoint=round(rand*py);newpop(i,:)=[pop(i,1:cpoint),pop(i+1,cpoint+1:py)];newpop(i+1,:)=[pop(i+1,1:cpoint),pop(i,cpoint+1:py)];elsenewpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endendend8.

变异function[newpop]=mutation(pop,pm)[px,py]=size(pop);fori=1:pxif(randpm)mpoint=round(rand*py);ifmpoint=0mpoint=1;endnewpop(i)=pop(i);ifany(newpop(i,mpoint)==0)newpop(i,mpoint)=1;elsenewpop(i,mpoint)=0;endelsenewpop(i)=pop(i);endendend9.

计算最大适应值function[bestindividual,bestfit]=best(pop,fitvalue)[px,py]=size(pop);bestindividual=pop(1,:);bestfit=fitvalue

文档评论(0)

【晓娣】 + 关注
实名认证
内容提供者

好文档大家想

1亿VIP精品文档

相关文档