1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > matlab自适应遗传算法代码 自适应遗传算法MATLAB代码

matlab自适应遗传算法代码 自适应遗传算法MATLAB代码

时间:2018-09-03 18:07:53

相关推荐

matlab自适应遗传算法代码 自适应遗传算法MATLAB代码

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

为什么网上下载的代码运行不出结果

figure(1);

fplot('v.*sin(10*pi*v)+2.0',[-1,2]);

NIND=40;

MAXGEN=30;

PRECI=20;

GGAP=0.9;

trace=zeros(2,MAXGEN);

FieldD=[20;-1;2;1;0;1;1];

Chrom=crtbp(NIND,PRECI);

gen=0;

v=bs2rv(Chrom,FieldD);

ObjV=v.*sin(10*pi*v)+2.0;

while gen

FitnV=ranking(-ObjV);

SelCh=select('sus',Chrom,FitnV,GGAP);

FitnVmax=max(FitnV);

FitnVave=sum(FitnV)/NIND;

if(FitnV>= FitnVave)

Index1=find(FitnV>= FitnVave);

Index2=find(FitnV< FitnVave);

Pc1=0.5*(FitnVmax- FitnV(Index,1))/(FitnVmax- FitnVave);

Pm1=0.02*(FitnVmax- FitnV(Index,1))/(FitnVmax- FitnVave);

else

Pc2=0.85;

Pm2=0.05;

end

end

SelCh=recombin('xovsp',SelCh(Index1,1),Pc1);

SelCh=recombin('xovsp',SelCh(Index2,1),Pc2);

SelCh=mut(SelCh(Index1,1),Pm1);

SelCh=mut(SelCh(Index2,1),Pm2);

v=bs2rv(SelCh,FieldD);

ObjVSel=v.*sin(10*pi*v)+2.0;

[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);

gen=gen+1;

variable=bs2rv(Chrom, FieldD)

[Y,I]=max(ObjV),hold on;

plot(I,Y,'bo');

trace(1,gen)=max(ObjV);

trace(2,gen)=sum(ObjV)/length(ObjV);

if (gen==20)

figure(2);

plot(ObjV);hold on;

plot(ObjV,'b*');grid;

end

%end

figure(3);

plot(trace(1,:)','Pr');

hold on;

plot(trace(2,:)','-.');grid;

legend('解的变化','种群均值的变化')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。