下载此文档

遗传算法matlab实现源程序.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
Forpersonaluseonlyinstudyandresearch;mercialuse附页::clc;clear;population;%评价目标函数值foruim=1:popsize   vector=population(uim,:);   obj(uim)=hanshu(hromlength,vector,phen);end%obj%min(obj)clearuim;objmin=min(obj);forsequ=1:popsize   ifobj(sequ)==objmin       opti=population(sequ,:);   endendclearsequ;fmax=22000;%==forgen=1:maxgen%选择操作%将求最小值的函数转化为适应度函数forindivi=1:popsize   obj1(indivi)=1/obj(indivi);endclearindivi;%适应度函数累加总合total=0;forindivi=1:popsize   total=total+obj1(indivi);endclearindivi;%每条染色体被选中的几率forindivi=1:popsize   fitness1(indivi)=obj1(indivi)/total;endclearindivi;%各条染色体被选中的范围forindivi=1:popsize   fitness(indivi)=0;   forj=1:indivi       fitness(indivi)=fitness(indivi)+fitness1(j);   endendclearj;fitness;%选择适应度高的个体forranseti=1:popsize   ran=rand;   while(ran>1||ran<0)       ran=rand;   end   ran;   ifran<=fitness(1)       newpopulation(ranseti,:)=population(1,:);   else       forfet=2:popsize           if(ran>fitness(fet-1))&&(ran<=fitness(fet))               newpopulation(ranseti,:)=population(fet,:);           end       end   endendclearran;newpopulation;%交叉forint=1:2:popsize-1   popmoth=newpopulation(int,:);                        popfath=newpopulation(int+1,:);                    popcross(int,:)=popmoth;   popcross(int+1,:)=popfath;   randnum=rand;   if(randnum<P>       cpoint1=round(rand*hromlength);                cpoint2=round(rand*hromlength);                  while(cpoint2==cpoint1)                            cpoint2=round(rand*hromlength);       end       ifcpoint1>cpoint2                                tem=cpoint1;           cpoint1=cpoint2;           cpoint2=tem;       end       cpoint1;       cpoint2;       forterm=cpoint1+1:cpoint2                              forss=1:hromlength               ifpopcross(int,ss)==popfath(term)                   tem1=popcross(int,ss);                   popcross(int,ss)=popcross(int,term);                   popcross(int,term)=tem1;               end           end           cleartem1;       end       forterm

遗传算法matlab实现源程序 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人雾里行舟
  • 文件大小62 KB
  • 时间2019-03-14