ga工具箱的经典编写程序示例_yalmip工具箱使用范例
ga工具箱的经典编写程序示例由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“yalmip工具箱使用范例”。
nvar=20;%变量个数 nind=100;%种群大小 subpop=10;%子种群数量 maxgen=500;%最大遗传代数 miggen=20;%每隔20代发生迁移 range=[0;200];%变量范围 ggap=0.8;%代沟率 xovr=1;%交叉率
mutr=1/xovr;%变异率 insr=0.9;%插入率 migr=0.2;%迁移率 selfun='sus';%选择函数 xovfun='recdis';%重组函数 mutfun='mutbga';%变异函数 gen=0;trace=zeros(maxgen,2);%遗传算法性能跟踪 fieldDD=rep(range,[1,nvar]);%译码矩阵 chorm=crtrp(nind,fieldDD);%创建初始种群 objv=objfun(chorm);%计算目标函数
while gen
fitv=ranking(objv,[2,1],subpop);%分配适度值
selch=selet(selfun,chorn,fitv,ggap,subpop);%选择
recch=recombin(xovfun,selch,xovr,subpop);%重组
mutch=mutate(mutfun,recch,fieldDD,mutr,subpop);%变异
objvoff=objfun(mutch);%计算目标函数值
[chorm,objv]=reins(chorm,mutch,subpop,[1 indr],objv,objvoff);%替代
gen=gen+1;
trace(gen,1)=min(objv);
trace(gen,2)=mean(objv);
%在子种群中迁移个体
if(rem(gen,miggen)==0)
[chorm,objv]=migrate(chor,subpop,[migr,1,1],objv);
end end
[yy,ii]=min(objv);%输出最有解及序号 figure(1)plot(chorm(ii,:),’-ro’);
figure(2);%遗传算法性能跟踪图 plot(trace(:,1));hold on plot(trace(:,2),’-.r’);
legend('解的变化','种群均值的变化');xlabel('迭代次数');