资源简介

这个程序使用的是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< FitnVave);
         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


评论

共有 条评论