• 大小: 106KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签: 遗传算法  

资源简介

%用遗传算法进行简单函数的优化 clear bn=22; %个体串长度 inn=50; %初始种群大小 gnmax=200; %最大代数 pc=0.75; %交叉概率 pm=0.05; %变异概率 %产生初始种群 s=round(rand(inn,bn)); %计算适应度,返回适应度f和累积概率p [f,p]=objf(s); gn=1; while gn<gnmax+1 for j=1:2:inn %选择操作 seln=sel(s,p); %交叉操作 scro=cro(s,seln,pc); scnew(j,:)=scro(1,:); scnew(j+1,:)=scro(2,:); %变异操作 smnew(j,:)=mut(scnew(j,:),pm); smnew(j+1,:)=mut(scnew(j+1,:),pm); end s=smnew; %产生了新的种群 %计算新种群的适应度 [f,p]=objf(s); %记录当前代最好和平均的适应度 [fmax,nmax]=max(f); fmean=mean(f); ymax(gn)=fmax; ymean(gn)=fmean; %记录当前代的最佳个体 x=n2to10(s(nmax,:)); xx=-1.0+x*3/(power(2,bn)-1); xmax(gn)=xx; gn=gn+1 end gn=gn-1; %绘制曲线 subplot(2,1,1); plot(1:gn,[ymax;ymean]); title('历代适应度变化','fonts',10); legend('最大适应度','平均适应度'); string1=['最终适应度',num2str(ymax(gn))]; gtext(string1); subplot(2,1,2); plot(1:gn,xmax,'r-'); legend('自变量'); string2=['最终自变量',num2str(xmax(gn))]; gtext(string2);

资源截图

代码片段和文件信息

%“交叉”操作
function scro=cro(sselnpc);

[inn bn]=size(s);

if rand   chb=ceil(rand*(bn-1));  %在[1bn-1]范围内随机产生一个交叉位
   scro(1:)=[s(seln(1)1:chb) s(seln(2)chb+1:bn)];
   scro(2:)=[s(seln(2)1:chb) s(seln(1)chb+1:bn)];
else
   scro(1:)=s(seln(1):);
   scro(2:)=s(seln(2):);
end  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        320  2009-09-10 16:46  Matlab 程序\cro.m

     文件         52  2006-07-27 14:36  Matlab 程序\ft.m

     文件       3876  2009-09-10 16:43  Matlab 程序\ga.m

     文件    8157696  2007-09-26 09:50  Matlab 程序\garunning.avi

     文件       1288  2003-05-06 14:58  Matlab 程序\init.mat

     文件       1179  2006-07-27 17:01  Matlab 程序\main.m

     文件        189  2009-09-10 16:46  Matlab 程序\mut.m

     文件        128  2006-07-27 14:33  Matlab 程序\n2to10.m

     文件        466  2009-09-10 16:45  Matlab 程序\objf.m

     文件        225  2006-07-27 14:32  Matlab 程序\sel.m

     目录          0  2009-10-26 17:56  Matlab 程序

----------- ---------  ---------- -----  ----

              8165419                    11


评论

共有 条评论