变异概率自适应调整的遗传算法GA程序.docVIP

变异概率自适应调整的遗传算法GA程序.doc

  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文档。上传文档
查看更多
变异概率自适应调整的遗传算法GA程序

变异概率自适应调整的遗传算法算例 一:优化函数: A.变异概率自适应调整公式: B.遗传算法参数 (1)种群规模设为80,遗传算子分别为轮盘法选择,多点点交叉和多点自适应变异; (2)交叉概率0.7,变异概率0.01; (3)最大进化代数为100代,保优操作。 C.程序框图 图 1 程序流程框图 二:程序及运行结果 (1)%变异概率自适应调整的GA程序 %优化函数为f=x*sin(10*x)+2,其中,-1=x=2 %编码长度为12位 %种群规模设为80,遗传算子分别为轮盘法选择,多点点交叉和多点自适应变异。 %交叉概率0.7,变异概率0.01 %最大进化代数为100代,保优操作。 %**********************%主函数***************************************** function main() global chrom lchrom oldpop newpop varible fitness popsize sumfitness %定义全局变量 global pcross pmutation temp bestfit maxfit gen bestgen global maxgen po pp mp np lchrom=12; %染色体长度 popsize=80; %种群大小 pcross=0.7; %交叉概率 pmutation=0.01; %变异概率 maxgen=100; %最大代数 po=0.1; %淘汰概率 pp=0.1; %保护概率 mp=floor(pp*popsize); %保护的个数 np=floor(po*popsize); %淘汰的个数 initpop; % 初始化种群 for gen=1:maxgen objfun; %计算适应度值 pp_po; %执行保优操作 select; %选择操作 selfmutation; %自变异操作 crossover; %交叉操作 end best bestfit % 最佳个体适应度值输出 bestgen % 最佳个体所在代数输出 figure gen=1:maxgen; plot(gen,maxfit(1,gen)); % 进化曲线 hold on; plot(bestgen,bestfit); xlabel(Generation); ylabel(Fitness); %********************** 产生初始种群 ************************************ function initpop() global lchrom oldpop popsize chrom for i=1:popsize chrom=rand(1,lchrom); % lchrom=12 染色体长度 for j=1:lchrom if chrom(1,j)0.5 chrom(1,j)=0; else chrom(1,j)=1; end end oldpop(i,1:lchrom)=chrom; end %************************%计算适应度值************************************ function objfun() global lchrom oldpop fitness popsize chrom maxfit gen varible avgfiness savgfitness % a=0;b=3; a=0;b=10; for i=1:popsize chrom=oldpop(i,:); c=decimal(chrom); varible(1,i)=a+c*(b-a)/(2.^lchrom-1); %对应变量值 fitness(1,i)=varible(1,i)*sin(10*varible(1,i))+2; end avgfitness=sum(fitness)/popsize; lso

文档评论(0)

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

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

1亿VIP精品文档

相关文档