資源簡介
這個程序使用的是matlab遺傳算法工具箱

代碼片段和文件信息
figure(1);
fplot(‘v.*sin(10*pi*v)+2.0‘[-12]);
NIND=40;
MAXGEN=30;
PRECI=20;
GGAP=0.9;
trace=zeros(2MAXGEN);
FieldD=[20;-1;2;1;0;1;1];
Chrom=crtbp(NINDPRECI);
gen=0;
v=bs2rv(ChromFieldD);
ObjV=v.*sin(10*pi*v)+2.0;
while?gen ????FitnV=ranking(-ObjV);
????SelCh=select(‘sus‘ChromFitnVGGAP);
????FitnVmax=max(FitnV);
????FitnVave=sum(FitnV)/NIND;
??????if(FitnV>=?FitnVave)
?????????Index1=find(FitnV>=?FitnVave);
?????????Index2=find(FitnV?????????Pc1=0.5*(FitnVmax-?FitnV(Index1))/(FitnVmax-?FitnVave);
?????????Pm1=0.02*(FitnVmax-?FitnV(Index1))/(FitnVmax-?FitnVave);
?????else????
?????????Pc2=0.85;
?????????Pm2=0.05;
????end?
??end?
????SelCh=recombin(‘xovsp‘SelCh(Index11)Pc1);
????SelCh=recombin(‘xovsp‘SelCh(Index21)Pc2);
????SelCh=mut(SelCh(Index11)Pm1);
????SelCh=mut(SelCh(Index21)Pm2);
????v=bs2rv(SelChFieldD);
????ObjVSel=v.*sin(10*pi*v)+2.0;
????[Chrom?ObjV]=reins(ChromSelCh11ObjVObjVSel);
????gen=gen+1;
????variable=bs2rv(Chrom?FieldD)
????[YI]=max(ObjV)hold?on;
????plot(IY‘bo‘);
????trace(1gen)=max(ObjV);
????trace(2gen)=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(‘解的變化‘‘種群均值的變化‘)
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1394??2008-09-05?10:07??zishiyingGA.m
-----------?---------??----------?-----??----
?????????????????1394????????????????????1
評論
共有 條評論