引入精英主义的遗传算法MATLAB程序实现..docVIP

引入精英主义的遗传算法MATLAB程序实现..doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引入精英主义的遗传算法MATLAB程序实现.

人工智能作业 题 目: 引入精英主义的遗传算法MATLAB程序实现 姓 名: 林俊杰 学 号: 130120052 学 院: 电气工程与自动化学院 专 业: 控制理论与控制工程 年 级: 2013 级 指导教师: 李玉蓉 2014 年 1月 8 日 一、基本遗传算法 遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了 达尔文的进化论和孟德尔的遗传学说。初始群体的产生个体编码适应度汁算选择运算交叉运算变异运算精英主义(Elitist Strategy)是基本遗传算法的一种优化。为了防止进化过程中产生的最优解被交叉和变异所破坏,可以将每一代中的最优解原封不动的复制到下一代中。和,其中后者为全局最大点。如图1、2、3所示为基本遗传算法在运行过程中,对最优解的跟踪曲线。可以看出未改进的基本遗传算法最优解跟踪曲线呈现出震荡,不稳定。甚至在整个寻求过程都无法找到最后的最优解,这样的遗传算法性能根本无法满足工程及应用要求。如图4所示基本遗传算法在某一代找到了最优解后,该最优解由于在轮盘选择中未被选中,所以很快的算法失去了该最有解,致使整个求解过程震荡,无结果。 图1 图2 图3 图4 三、引入精英主义的遗传算法程序运行结果与说明 引入精英主义后,很好的解决了该问题。如图5、6、7、8所示最优解寻求曲线快速的收敛到最优解,整个曲线平整无波动。具有较好的收敛速度、稳定性。明显克服了基本遗传算法的震荡不稳定。而且在数次运行过程中找出最优解的概率明显增加,但仍然存在不能求的最优解的情况。出现不能求解情况是待改进的地方。 图5 图6 图7 图8 四、总结 通过遗传算法程序的编写,熟悉了遗传算法的工作原理。通过引入精英主义对基本遗传算法进行了改进,解决了基本遗传算法的不稳定性、波动性、收敛速度慢的缺点。但在最优解求解的成功率上改进不是很大,有待将来改进。 五、程序附录 clc; clear; popsize=20; %群体大小 chromlength=20; %单个个体长度 pc=0.8; %交叉概率 pm=0.08; %变异概率 global tracenum; %全局变量用于每代中的最大值跟踪 tracenum=1; global maxtrace; pop=initpop(popsize,chromlength); %随机产生初始群体 for i=1:600 %600为进化代数 [objvalue]=calobjvalue(pop); %计算目标函数 fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度 [newpop]=selection(pop,fitvalue); %选择复制 %objvalue pop=newpop; %种群更新 [newpop]=crossover(pop,pc); %交叉 pop=newpop;%种群更新 [newpop]=mutation(pop,pm); %变异 pop=newpop;%种群更新 end [objvalue]=calobjvalue(pop); %计算目标函数 fitvalue=calfitvalue(objvalue); %计算群体中每个个体的适应度 [newpop]=selection(pop,fitvalue); %复制 pop=newpop;%种群更新 ****************************************************************************** [objvalue]=calobjvalue(pop)%计算目标函数 x =

文档评论(0)

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

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

1亿VIP精品文档

相关文档