資源簡介
自適應遺傳算法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??
評論
共有 條評論