声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7068|回复: 13

[人工智能] 自适应遗传算法matlab代码

[复制链接]
发表于 2007-6-25 03:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
matlab程序是雷英杰课本中的第一个算例,
将其改为自适应的代码.

  1. figure(1);
  2. fplot('v.*sin(10*pi*v)+2.0',[-1,2]);
  3. NIND=40;
  4. MAXGEN=30;
  5. PRECI=20;
  6. GGAP=0.9;
  7. trace=zeros(2,MAXGEN);
  8. FieldD=[20;-1;2;1;0;1;1];
  9. Chrom=crtbp(NIND,PRECI);
  10. gen=0;
  11. v=bs2rv(Chrom,FieldD);
  12. ObjV=v.*sin(10*pi*v)+2.0;
  13. while gen<MAXGEN,
  14.     FitnV=ranking(-ObjV);
  15.     SelCh=select('sus',Chrom,FitnV,GGAP);
  16.     FitnVmax=max(FitnV);
  17.     FitnVave=sum(FitnV)/NIND;
  18.       if(FitnV>= FitnVave)
  19.          Index1=find(FitnV>= FitnVave);
  20.          Index2=find(FitnV< FitnVave);
  21.          Pc1=0.5*(FitnVmax- FitnV(Index,1))/(FitnVmax- FitnVave);
  22.          Pm1=0.02*(FitnVmax- FitnV(Index,1))/(FitnVmax- FitnVave);
  23.      else   
  24.          Pc2=0.85;
  25.          Pm2=0.05;
  26.     end
  27.   end
  28.     SelCh=recombin('xovsp',SelCh(Index1,1),Pc1);
  29.     SelCh=recombin('xovsp',SelCh(Index2,1),Pc2);
  30.     SelCh=mut(SelCh(Index1,1),Pm1);
  31.     SelCh=mut(SelCh(Index2,1),Pm2);
  32.     v=bs2rv(SelCh,FieldD);
  33.     ObjVSel=v.*sin(10*pi*v)+2.0;
  34.     [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
  35.     gen=gen+1;
  36.     variable=bs2rv(Chrom, FieldD)
  37.     [Y,I]=max(ObjV),hold on;
  38.     plot(I,Y,'bo');
  39.     trace(1,gen)=max(ObjV);
  40.     trace(2,gen)=sum(ObjV)/length(ObjV);
  41.     if (gen==20)
  42.         figure(2);
  43.         plot(ObjV);hold on;
  44.         plot(ObjV,'b*');grid;
  45.     end
  46. %end
  47. figure(3);
  48. plot(trace(1,:)','Pr');
  49. hold on;
  50. plot(trace(2,:)','-.');grid;
  51. legend('解的变化','种群均值的变化')
复制代码
回复
分享到:

使用道具 举报

发表于 2007-6-29 20:12 | 显示全部楼层
这是在哪节选的,程序中index在哪?就看到index1和index2了.还有上来就画图:@o
 楼主| 发表于 2007-7-1 09:36 | 显示全部楼层
发表于 2007-8-29 10:29 | 显示全部楼层
程序调试不通啊,问题在哪呢?高人请指点一下,先谢谢了!
发表于 2008-4-28 15:35 | 显示全部楼层
最好是能有注释之类的,这样看有点不是很清晰,谢谢楼主!!:'( :'(
发表于 2009-4-5 17:47 | 显示全部楼层

回复 楼主 frogfish 的帖子

运行时出现问题!不知道楼主发现了没?
发表于 2009-4-19 08:57 | 显示全部楼层
运行有问题,不过谢谢楼主
发表于 2009-7-5 11:34 | 显示全部楼层

运行有问题啊,楼主

Error: The input character is not valid in MATLAB statements or expressions.
发表于 2012-4-5 15:55 | 显示全部楼层
学习学习!!!!!!呵呵
发表于 2012-4-5 15:58 | 显示全部楼层
谢谢楼主分享!学习学习!!!!!
发表于 2012-9-7 08:20 | 显示全部楼层
学习了……
发表于 2012-12-18 18:16 | 显示全部楼层
本帖最后由 dyhkxydfbb 于 2012-12-18 18:38 编辑

下来研究下,谢谢


用2010运行好像一直都是busy  出不来结果?请问您运行成功吗?
发表于 2013-3-30 19:30 | 显示全部楼层
是的,有问题,我的也挑不出来
发表于 2013-4-1 16:04 | 显示全部楼层
先来看看
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 04:43 , Processed in 0.083283 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表