遗传算法matlab代码

遗传算法matlab代码

ID:26599590

大小:94.50 KB

页数:9页

时间:2018-11-27

遗传算法matlab代码_第1页
遗传算法matlab代码_第2页
遗传算法matlab代码_第3页
遗传算法matlab代码_第4页
遗传算法matlab代码_第5页
资源描述:

《遗传算法matlab代码》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、functionyouhuafunD=code;N=50;        %Tunablemaxgen=50;    %Tunablecrossrate=0.5;%Tunablemuterate=0.08;%Tunablegeneration=1;  num=length(D);fatherrand=randint(num,N,3);score=zeros(maxgen,N);whilegeneration<=maxgen  ind=randperm(N-2)+2;%随机配对交叉  A=fatherrand(:,ind(1:(N-2)/

2、2));  B=fatherrand(:,ind((N-2)/2+1:end));%    多点交叉  rnd=rand(num,(N-2)/2);  ind=rnd  tmp=A(ind);  A(ind)=B(ind);  B(ind)=tmp;%%两点交叉%    forkk=1:(N-2)/2%        rndtmp=randint(1,1,num)+1;%        tmp=A(1:rndtmp,kk);%        A(1:rndtmp,kk)=B(1:rndtmp,kk);%        B(1:rndtm

3、p,kk)=tmp;%    end  fatherrand=[fatherrand(:,1:2),A,B];     %变异  rnd=rand(num,N);  ind=rnd  [m,n]=size(ind);  tmp=randint(m,n,2)+1;  tmp(:,1:2)=0;  fatherrand=tmp+fatherrand;  fatherrand=mod(fatherrand,3);%    fatherrand(ind)=tmp;     %评价、选择  scoreN=scorefun(fatherrand,D

4、);%求得N个个体的评价函数  score(generation,:)=scoreN;  [scoreSort,scoreind]=sort(scoreN);  sumscore=cumsum(scoreSort);  sumscore=sumscore./sumscore(end);  childind(1:2)=scoreind(end-1:end);  fork=3:N      tmprnd=rand;      tmpind=tmprnd      difind=[0,diff(tmpind)];      if~any(di

5、find)          difind(1)=1;      end      childind(k)=scoreind(logical(difind));  end  fatherrand=fatherrand(:,childind);      generation=generation+1;end%scoremaxV=max(score,[],2);minV=11*300-maxV;plot(minV,'*');title('各代的目标函数值');F4=D(:,4);FF4=F4-fatherrand(:,1);FF4=max

6、(FF4,1);D(:,5)=FF4;saveDDataDfunctionD=codeloadyouhua.mat%propertiesF2andF3F1=A(:,1);F2=A(:,2);F3=A(:,3);if(max(F2)>1450)

7、

8、(min(F2)<=900)  error('DATApropertyF2exceedit''srange(900,1450]')end%getgrouppropertyF1ofdata,accordingtoF2valueF4=zeros(size(F1));forite=11:-1:1  i

9、ndex=find(F2<=900+ite*50);  F4(index)=ite;endD=[F1,F2,F3,F4];functionScoreN=scorefun(fatherrand,D)F3=D(:,3);F4=D(:,4);N=size(fatherrand,2);FF4=F4*ones(1,N);FF4rnd=FF4-fatherrand;FF4rnd=max(FF4rnd,1);ScoreN=ones(1,N)*300*11;%这里有待优化fork=1:N  FF4k=FF4rnd(:,k);  forite=1:11 

10、     F0index=find(FF4k==ite);      if~isempty(F0index)          tmpMat=F3(F0index);          tmpSco=sum

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

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

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