matlab遺传算法学习和全局化算法.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab遺传算法学习和全局化算法

1 遗传算法步骤 1 根据具体问题选择编码方式,随机产生初始种群,个体数目一定,每个个体表现为染色体的基因编码 2 选择合适的适应度函数,计算并评价群体中各个体的适应。 3 选择(selection)。根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体 4 交叉(crossover)。将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。 5 变异(mutation)。对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改n 变某一个或某一些基因位上的基因值为其他的等位基因 6 终止条件判断。若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算。否则,迭代执行Step2 至Step5。 适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体的适应度越大,被遗传到下一代的概率就越大,相反,被遗传到下一代的概率就越小。 1 [a,b,c]=gaopt(bound,fun)其中,bound=[xm,xM]为求解区间上届和下届构成的矩阵。Fun为用户编写的函数。a为有哪些信誉好的足球投注网站的结果向量,由有哪些信誉好的足球投注网站的出的最优x向量与目标函数构成,b为最终有哪些信誉好的足球投注网站种群,c为中间有哪些信誉好的足球投注网站过程变参数,其第一列为代数,后边列分别为该代最好的的个体与目标函数的值,可以认为寻优的中间结果。 2 ga函数。[X,F, FLAG,OUTPUT] = GA(fun, n,opts).n为自变量个数,opts为遗传算法控制选项,用gaoptimset()函数设置各种选项,InitialPopulation可以设置初始种群,用PopulationSize可以设置种群规模,SelectionFcn可以定义选择函数, 3 gatool 函数用于打开,GATOOL is now included in OPTIMTOOL。 2.2 通过GUI 使用遗传算法 在Matlab 工作窗口键入下列命令gatool, 或通过Start 打开其下子菜单Genetic Algorithm Tool,如图1。只要在相应的窗格选择相应的选项便可进行遗传算法的计算。其中fitnessfun 窗格为适应度函数, 填写形式为@fitnessfun,Number of variable 窗格为变量个数。其它窗格参数根据情况填入。填好各窗格内容,单击Start 按钮,便可运行遗传算法 例子1 应用实例 已知某一生物的总量y(单位:万个)与时间t(月)之间的关系为y=k0(1-exp(-k1*t)), 统计十个月得到数据见表1,试求关系式中的k0,k1。先编写目标函数,并以文件名myfung.m 存盘。 function y=myfung(x) TOT=[2.0567 3.6904 4.9881 6.0189 6.8371 7.4881 8.0047 8.4151 8.7411 9.0000]; t=1:10;[r,s]=size(TOT);y=0; for i=1:s y=y+(TOT(i)-x(:,1)*(1-exp(-x(:,2)*t(i))))^2 %最小估计原则 end 打开遗传算法的GUI,在Fitness function 窗格中输入@myfung,在Number of variables 窗格中输入数字2,在Stopping criteria 选项中设置generations 为300,fitness limit 为0.001,stall generations 为100,其它参数为缺省值,然后单击Start 运行遗传算法得到k0=9.99559,k1=0.23018,即 例子2 2 matlab 7 GA工具箱_木子一车(转载) 例子1求的最大值;也就是求负函数的最小值 最大值为-38.8503,在点 xmin=[11.6255 5.7250]; clear f=@(x1,x2)(-(21.5+x1.*sin(4*pi*x1)+x2.*sin(20*pi*x2))) t1=-3:0.1:12.1; t2=4:1.8/(length(t1)-1):5.8; [x,y]=meshgrid(t1,t2); mesh(x,y,f(x,y)) 方法1 遗传算法 f=@(x)-(21.5+x(1)*sin(4*pi*x(1))+x(2)*sin(20*pi*x(2))); opt1 = gaoptimset; opt1.PopInitRange = [[-3.0 4.1];[12.1 5.8]]; opt1.PopulationSize = 100

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档