%用遗传算法进行简单函数的优化 主函数 clear
bn=22; %个体串长度 inn=50; %初始种群大小 gnmax=500; %最大代数 pc=0.75; %交叉概率 pm=0.05; %变异概率
%产生初始种群 s=round(rand(inn,bn));
%计算适应度,返回适应度f和累积概率p [f,p]=objf(s);
gn=1; while gn
%选择操作 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; %产生了新的种群
%记录当前代最好和平均的适应度 [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; plot(ymax); hold on; plot(xmax);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/266139.html