frogfish 发表于 2007-6-25 03: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=;
Chrom=crtbp(NIND,PRECI);
gen=0;
v=bs2rv(Chrom,FieldD);
ObjV=v.*sin(10*pi*v)+2.0;
while gen<MAXGEN,
    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;
    =reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
    gen=gen+1;
    variable=bs2rv(Chrom, FieldD)
    =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('解的变化','种群均值的变化')

wy558558558 发表于 2007-6-29 20:12

这是在哪节选的,程序中index在哪?就看到index1和index2了.还有上来就画图:@o

frogfish 发表于 2007-7-1 09:36

原帖由 wy558558558 于 2007-6-29 20:12 发表 http://www.chinavib.com/forum/images/common/back.gif
这是在哪节选的,程序中index在哪?就看到index1和index2了.还有上来就画图:@o

画图有问题吗

gh22 发表于 2007-8-29 10:29

程序调试不通啊,问题在哪呢?高人请指点一下,先谢谢了!

aduktxj 发表于 2008-4-28 15:35

最好是能有注释之类的,这样看有点不是很清晰,谢谢楼主!!:'( :'(

heqiangyong 发表于 2009-4-5 17:47

回复 楼主 frogfish 的帖子

运行时出现问题!不知道楼主发现了没?

nkdtxf 发表于 2009-4-19 08:57

运行有问题,不过谢谢楼主

gauss101 发表于 2009-7-5 11:34

运行有问题啊,楼主

Error: The input character is not valid in MATLAB statements or expressions.

hjd2003 发表于 2012-4-5 15:55

学习学习!!!!!!呵呵

hjd2003 发表于 2012-4-5 15:58

谢谢楼主分享!学习学习!!!!!

lujiujiji 发表于 2012-9-7 08:20

学习了……

dyhkxydfbb 发表于 2012-12-18 18:16

本帖最后由 dyhkxydfbb 于 2012-12-18 18:38 编辑

下来研究下,谢谢{:3_53:}


用2010运行好像一直都是busy出不来结果?请问您运行成功吗?

pingxuyufeng 发表于 2013-3-30 19:30

是的,有问题,我的也挑不出来{:{10}:}

hfuthj 发表于 2013-4-1 16:04

先来看看
页: [1]
查看完整版本: 自适应遗传算法matlab代码