遗传算法搜索最优解.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一:基于遗传算法的函数优化 1、实验目的1)掌握Matlab子函数的编写与调用。 2)理解基本遗传算法的原理,并利用程序实现利用遗传算法优化非线性函数的解。 2、实验内容与实验要求1)掌握基本遗传算法方法原理。 2)掌握matlab子函数的编写方法及调用方法。 3)根据基本遗传算法方法原理,编写Matlab程序,优化非线性函数的解。 4)设f(x)=-x2-4x+1,求maxf(x),x[-2,2],解的精度保留二位小数3、遗传算法原理 遗传算法模拟自然选择和自然遗传过程中发生的繁殖、交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从解群中选取较优的个体,利用遗传算子(选择、交叉和变异)对这些个体进行组合,产生新一代的候选解群,重复此过程,直到满足某种收敛指标为止。 4、主程序及子函数: 主函数: clearclcmy_scale=80;%种群规模gen_len=22;%基因长度M=100;%迭代次数pc=0.7;%交叉概率pm=0.05;%变异概率new_scale二produscale(my_scale,gen_len);%产生初始种群fitfit=[];fittimer=[];best_f1=[];best_x1=[];fori=1:M my_f=cal_my_f(new_scale);%计算函数值 my_fit=cal_my_fit(my_f);%计算适应度值 next_scale=my_sellect(new_scale,my_fit);%采用赌轮盘法选择 cross_scale=my_cross(next_scale,pc);%按概率交叉 mut_scale=my_mutat(cross_scale,pm);%按概率变异 %寻找每一代中的最优适应度值所对应的个体 best_fit=my_fit(1);[sx,sy]=size(new_scale);forj=2:length(my_fit)ifbest_fitmy_fit(j)best_fit=my_fit(j);best_f=my_f(j);best_x=my2to10(new_scale(j,:));best_x=-2+best_x.*4./(2八sy-1);endend new_scale=mut_scale; fitfit=[fitfit,best_fit]; best_f1=[best_f1,best_f]; best_x1=[best_x1,best_x]; fittimer=[fittimer,i];end [best_fit,loca]=max(fitfit); best_f=best_f1(loca); best_x=best_x1(loca); disp([best_fit,best_f,best_x]=’)disp([best_fit,best_f,best_x])subplot(2,2,1)plot(fittimer,fitfit)xlabel(迭代次数(l)-wxb);ylabel(适应度函数’)gridon%子函数:产生初始种群functioninitscale二produscale(my_scale,gen_len)initscale二round(rand(my_scale,gen_len));end%子函数:计算函数值functionmy_f=cal_my_f(new_scale)mychange二my2to10(new_scale);[sx,sy]=size(new_scale);change_x=-2+mychange.*4./(2八sy-1);my_f=-change_x.八2-4.*change_x+1;end%子函数:计算适应度值functionmy_fit=cal_my_fit(my_f)f_min=5;fori=1:length(my_f)ifmy_f(i)+f_min=0my_fit(i)=0;elsemy_fit(i)=my_f(i)+f_min;endendmy_fit=my_fit;end%子函数:采用赌轮盘法选择functionnext_scale=my_sellect(new_scale,my_fit)sum_of_f=sum(my_fit);accum=my_fit/sum_of_f;accum=cumsum(accum);[sx,sy]=size(new_scale);j=1;whilej=sxa二rand;fori=1:sx-1ifaccum(1)=anext_scale(j,:)二new_scale(1,:);elseifaccum(i)aaccum(i+1)=anext_scale(j,:)二new_scale(i+1,:);j=j+1;endendendendend%子函数:按概

您可能关注的文档

文档评论(0)

gaozhigang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档