欢迎来到天天文库
浏览记录
ID:42704021
大小:31.00 KB
页数:3页
时间:2019-09-20
《遗传算法主程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、遗传算法主程序:%用遗传算法进行简单函数的优化clearbn=22;%个体串长度inn=50;%初始种群大小gnmax=200;%最大代数pc=0.75;%交叉概率pm=0.05;%变异概率%产生初始种群,0,1向量s=round(rand(inn,bn));%计算适应度,返回适应度f和累积概率p[f,p]=objf(s);gn=1;whilegn2、smnew(j,:)=mut(scnew(j,:),pm);smnew(j+1,:)=mut(scnew(j+1,:),pm);ends=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+1endgn=gn-1;%绘制曲线subplot(23、,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);
2、smnew(j,:)=mut(scnew(j,:),pm);smnew(j+1,:)=mut(scnew(j+1,:),pm);ends=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+1endgn=gn-1;%绘制曲线subplot(2
3、,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);
此文档下载收益归作者所有