m遗传 第一次作业【DOC精选】.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
遗传算法 组员:张云云 杨亚飞 林琪琦 %初始值程序 cs.m bound=[-3.0 12.1;4.1 5.8]; L=bound(:,2)-bound(:,1); R=L*10^4; a=rand(10,1); s1=floor(R(1)*a); s2=floor(R(2)*a); b1=ones(10,1)*bound(1,1); b2=ones(10,1)*bound(2,1); r=[b1+s1/10^4,b2+s2/10^4]; %编码函数(十进制转化为二进制编码) B2F.m %r 编码向量(十进制码) %bound 边界约束 %b 二进制编码串 function [b,len,v]=B2F(r,bound) len=[];v=[];b =[];b1=[];b2=[]; L=bound(:,2)-bound(:,1); R=floor(L*10^4); l1=length(de2bi(R(1))); l2=length(de2bi(R(2))); v1=r(:,1)-ones(10,1)*bound(1,1); v1=floor(v1*10^4); for i=1:10 B1=de2bi(v1(i),l1); b1=[b1;B1]; end v2=r(:,2)-ones(10,1)*bound(2,1); v2=floor(v2*10^4); for i=1:10 B2=de2bi(v2(i),l2); b2=[b2;B2]; end b=[b1,b2]; v=[v1,v2]; len=l1+l2; %解码函数(二进制编码转化为十进制) F2B.m %二进制编码转化为十进制 %x 解码向量(二进制码) %bound 边界约束 %z 十进制码 function z=F2B(x,bound) d=[];d1=[];d2=[]; x1=x(:,1:18); x2=x(:,19:33); d1=bi2de(x1); d2=bi2de(x2); for i=1:10 if d1(i)bound(1,2); d1(i)=bound(1,2); end if d2(i)bound(2,2); d2(i)=bound(2,2); end end d=[d1,d2]; z=[ones(10,1)*bound(1,1)+d1/10^4,ones(10,1)*bound(2,1)+d2/10^4]; %个体适应度评价函数 myfun.m function f=myfun(x1,x2) f=21.5+x1.*sin(4*pi.*x1)+x2.*sin(20*pi.*x2); %选择函数(轮盘赌)lp.m %采取小盘轮转法 %child 返回选择后的染色体(十进制码) %f 个体适应度 function child=lp(f,r) value=sum(f); for i=1:10 p(i)=f(i)/value; q(i)=sum(p(1:i)); end t=rand(10,1); for j=1:10 for k=1:10 if t(j)q(k) v(j)=k; break end end end for i=1:10; child(i,:)=r(v(i),:); end %交叉函数 cross.m %采取点交叉 %child 选择后的种群基因(二进制码) %CP 交叉概率 %cpop 交叉后的种群基因(二进制码) %v 用于交叉的亲代 function [cpop,v]=cross(child,CP) B=[];t=[]; v=[]; p=rand(10,1); k=1; for i=1:10 if p(i)CP v(k)=i; k=k+1; end end if isempty(v) B=[]; else for i=1:k-1 B(i,:)=child(v(i),:); end for i=1:2:k-2 p2=floor(rand*32)+1; t=zeros(1,p2); t=B(i,1:p2); B(i,

文档评论(0)

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

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

1亿VIP精品文档

相关文档