数学建模社区-数学中国

标题: 遗传算法MATLAB实现 [打印本页]

作者: dean0514    时间: 2009-8-25 13:24
标题: 遗传算法MATLAB实现
哪位大侠帮帮忙,能演示一下拿一个结构完整的MATLAB遗传算法程序去解决一个非线性规划问题,要求结果以word形式给出,内容越详尽越好,包括操作步骤和截图什么的,不胜感激,小弟乃初学之人,对于算法更是没入门啊,想请哪位大侠给指点迷津啊!
价格好商量哈!
作者: wlch1990    时间: 2009-8-25 13:24
呵呵 这是我们老师给的 希望对你有用

200431814241431836.rar

88.31 KB, 下载次数: 142, 下载积分: 体力 -2 点

20043181424023519.rar

195.31 KB, 下载次数: 121, 下载积分: 体力 -2 点

20043181424882384.rar

195.31 KB, 下载次数: 118, 下载积分: 体力 -2 点


作者: ddpbhxz    时间: 2009-8-25 13:51
学习学习啊!!!!!
作者: mikewang719    时间: 2009-8-25 14:45
我还以为是资源啊
作者: 东方明珠-WDZYQ    时间: 2009-8-25 15:14
呵呵,可以啊,
作者: byit    时间: 2009-8-25 16:07
me too ~~~
作者: madpoorguy    时间: 2009-8-25 17:46
我也想学习学习呵
作者: dean0514    时间: 2009-8-25 22:37
啊,谢谢谢谢,不胜感激啊!呵呵
作者: AK4    时间: 2009-8-26 09:34
不要东西了,看看行吗?
【问题】求f(x)=x+10*sin(5x)+7*cos(4x)的最大值,其中0<=x<=9
【分析】选择二进制编码,种群中的个体数目为10,二进制编码长度为20,交叉概率为0.95,变异概率为0.08
【程序清单】
   %编写目标函数
     function[sol,eval]=fitness(sol,options)
       x=sol(1);
       eval=x+10*sin(5*x)+7*cos(4*x);
   %把上述函数存储为fitness.m文件并放在工作目录下  
   initPop=initializega(10,[0 9],'fitness');%生成初始种群,大小为10
   [x endPop,bPop,trace]=ga([0 9],'fitness',[],initPop,[1e-6 1 1],'maxGenTerm',25,'normGeomSelect',...
     [0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]) %25次遗传迭代
运算借过为:x =
   7.8562 24.8553(当x为7.8562时,f(x)取最大值24.8553)
注:遗传算法一般用来取得近似最优解,而不是最优解。
遗传算法实例2
【问题】在-5<=Xi<=5,i=1,2区间内,求解
       f(x1,x2)=-20*exp(-0.2*sqrt(0.5*(x1.^2+x2.^2)))-exp(0.5*(cos(2*pi*x1)+cos(2*pi*x2)))+22.71282的最小值。
【分析】种群大小10,最大代数1000,变异率0.1,交叉率0.3
【程序清单】
   %源函数的matlab代码
      function [eval]=f(sol)
        numv=size(sol,2);
        x=sol(1:numv);
        eval=-20*exp(-0.2*sqrt(sum(x.^2)/numv)))-exp(sum(cos(2*pi*x))/numv)+22.71282;
  %适应度函数的matlab代码
      function [sol,eval]=fitness(sol,options)
        numv=size(sol,2)-1;
        x=sol(1:numv);
        eval=f(x);
        eval=-eval;
  %遗传算法的matlab代码
      bounds=ones(2,1)*[-5 5];
      [p,endPop,bestSols,trace]=ga(bounds,'fitness')
注:前两个文件存储为m文件并放在工作目录下,运行结果为
   p =
   0.0000 -0.0000 0.0055
大家可以直接绘出f(x)的图形来大概看看f(x)的最值是多少,也可是使用优化函数来验证。matlab命令行执行命令:
fplot('x+10*sin(5*x)+7*cos(4*x)',[0,9])
evalops是传递给适应度函数的参数,opts是二进制编码的精度,termops是选择maxGenTerm结束函数时传递个maxGenTerm的参数,即遗传代数。xoverops是传递给交叉函数的参数。mutops是传递给变异函数的参数。
作者: dean0514    时间: 2009-8-26 09:52
感谢大家热心和无私的帮助哈,小弟这里有一些其他网站上下载的学习资料,以后放在空间上或直接在论坛里发布供大家相互交流也表达小弟感激之情哈!
作者: wangluan    时间: 2009-8-26 11:45
遗传算法确实很强,学习下
作者: alle1988    时间: 2009-8-27 12:23
果然没来错~谢谢~~~~~~·
作者: wuyuxian1234    时间: 2009-8-27 16:11
全是程序,不是文本资料啊@!
作者: gshm120    时间: 2009-8-27 16:21
真是不错 谢谢
作者: cherry_s1218    时间: 2009-8-30 19:04
看不到什么东西
作者: stuesx001    时间: 2009-9-4 12:03
有用的好资源,看看
作者: zsuzengli    时间: 2009-9-9 10:50
你的解压缩文件解压不了啊,需要其他压缩包才可以哦
作者: 杨帆    时间: 2009-10-26 21:44
学习学习啊!!!!!
作者: 阿鑫    时间: 2009-10-30 22:49
学学习,O(∩_∩)O谢谢!
作者: zhangxu90    时间: 2010-2-7 10:21
非常谢谢了,,,,,,,,,,,,,,,,,,,,,。
作者: bjrabbit    时间: 2010-3-23 22:23
先学习学习再说吧。。。还不知道能学成什么情况哦。
作者: xuchangshou0604    时间: 2010-4-11 11:28
感谢分享。。
辛苦了楼主。。。
作者: kanoy    时间: 2010-4-12 20:35
谢谢,不胜感激啊!真的非常好的说
真的真的
作者: 文霭    时间: 2010-5-8 16:38
太感谢啦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: meixiaotiancai    时间: 2010-7-4 15:16
谢谢你们提供的好材料
作者: rrock    时间: 2010-7-13 19:53
ding tie

作者: 文素    时间: 2011-1-3 15:28
看不懂??????
作者: ArmyLee    时间: 2011-1-28 15:18
真给力啊 ,顶
作者: alair009    时间: 2012-1-26 12:48
适合自己的才好~不过还是多谢分享70690137917668108868693711226118224598959595460822632331948635694012664062217069
作者: kti0813    时间: 2012-2-22 22:23
h``````````````````````````
作者: zj-jscsbao    时间: 2012-3-4 20:59
嗯 不错 有推荐书吗?
作者: 我是蓝色de    时间: 2015-9-20 12:03
支持一下楼主啊!!!!1

作者: alcu123    时间: 2017-4-22 23:56
卡卡卡卡卡卡卡卡卡卡卡





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5