遗传算法 最值

上传人:M****1 文档编号:508066856 上传时间:2023-12-06 格式:DOCX 页数:7 大小:115.17KB
返回 下载 相关 举报
遗传算法 最值_第1页
第1页 / 共7页
遗传算法 最值_第2页
第2页 / 共7页
遗传算法 最值_第3页
第3页 / 共7页
遗传算法 最值_第4页
第4页 / 共7页
遗传算法 最值_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《遗传算法 最值》由会员分享,可在线阅读,更多相关《遗传算法 最值(7页珍藏版)》请在金锄头文库上搜索。

1、遗传算法 最值遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自 然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自 然进化过程搜索最优解的方法,它最初由美国Michigan大学 J.Holland教授于1975年首先提出来的,并出版了颇有影响的专著Adaptation in Natural and Artificial System,GA 这个名称 才逐渐为人所知,J.Holland教授所提出的GA通常为简单遗传算法 (SGA)。产工誠沖|样匚二.- - L .二=J.- :!:: 1 : p : 1 : 1 r 戈 1J_ _ L _- L _ J- - L

2、 _ J-汇匚mi! 1s.: 1:计算个暮S适应度直Fftr-:-LL.J1 1 1 L -1选抒1 1: -怦r-LIT-Ll-r-! L , L 曲足终止眾IT t交叉图1.遗传算法的流程图所求函数为 y=x+10*sin(5*x)+7*cos(4*x) %主函数 function main()pmutation temp bestfit maxfit gen bestgen popp mp npglobal chrom lchrom oldpop newpop varible fitness popsize sumfitness % 定义全局变量 global pcross globa

3、l maxgen%染色体长度%种群大小%交叉概率%变异概率,取到了最大,可以适当的减小点设定为 0.05%最大代数%淘汰概率%保护概率lchrom=12; popsize=30;pcross=0.6; pmutation=0.1;maxgen=100;po=0.1; pp=0.1;% mp=floor(pp*popsize); %保护的个数np=floor(po*popsize); %淘汰的个数 %initpop;% 初始种群%for gen=1:maxgengeneration;end%best;bestfit% 最佳个体适应度值输出bestgen% 最佳个体所在代数输出gen=1:maxg

4、en;plot(gen,maxfit(1,gen); % 进化曲线 %* function initpop()global lchrom oldpop popsize chrom for i=1:popsizechrom=rand(1,lchrom); % lchrom=12 染色体长度 for j=1:lchromif chrom(1,j)0.5 chrom(1,j)=0;elsechrom(1,j)=1;endendoldpop(i,1:lchrom)=chrom;end%function generation() objfun;pp_po;select;%计算适应度值 %保护淘汰操作 %

5、选择操作crossover; mutation;%function objfun()global lchrom oldpop fitness popsize chrom maxfit gen varible a=0;b=30;for i=1:popsizechrom=oldpop(i,:); c=decimal(chrom);varible(l,i)二a+c *(b-a)/(2.lchrom-l);% 对应变量值fitness(1,i)=varible(1,i)*varible(1,i);% fitness(1,i)=20*cos(0.25*varible(1,i)-12*sin(0.33*v

6、arible(1,i)+40;%个体适应度函数值% lsort;%maxfit(1,gen)=max(fitness);%function c=decimal(chrom)end% 个体排序%求最大适应度值global lchrom popsize c=0;for j=1:lchromc=c+chrom(1,j )* 2(lchromj);end%function lsort()global popsize fitness oldpop for i=1:popsizej=i+1;while jfitness(1,j) tf=fitness(1,i); tc=oldpop(i,:);fitnes

7、s(1,i)=fitness(1,j); oldpop(i,:)=oldpop(j,:); fitness(1,j)=tf;oldpop(j,:)=tc;end j=j+1;end end%* %function pp_po() global popsize oldpop np i=np+1; % np=floor(po*popsize); %淘汰的个数j=1;while i=popsize toldpop(j,:)=oldpop(i,:); j=j+1;i=i+1;endfor i=1:(popsize-np) oldpop(i,:)=toldpop(i,:);end %*function

8、select()global fitness popsize sumfitness oldpop temp mp np sumfitness=0;for i=1:(popsize-np-mp) sumfitness=sumfitness+fitness(1,i);endfor i=1:(popsize-mp-np)p(1,i)=fitness(1,i)/sumfitness; % 个体染色体的选择概率 endq=cumsum(p);% 个体染色体的累积概率b=sort(rand(1,(popsize-mp);% mp 保护个体数j=1;k=1;while j=(popsize-mp)if b(

9、1,j)q(1,k) temp(j,:)=oldpop(k,:); j=j+1;elsek=k+1;endendfor i=(popsize-mp+1):popsize j=popsize-np-mp+1; temp(i,:)=oldpop(j,:); j=j+1;end %*function crossover()global temp popsize pcross lchrom mp n=floor(pcross*(popsize-mp);%交叉发生的次数if rem(n,2)=0n=n+1;endj=1;m=0;for i=1:(popsize-mp)p=rand;if ppcrossp

10、arent(j,:)=temp(i,:);% 产生两个父代k(1,j)=i;j=j+1;m=m+1;if (j=3)&(m=n) pos=round(rand*(lchrom-1)+1; for i=1:poschild1(1,i)=parent(1,i); child2(1,i)=parent(2,i);endfor i=(pos+1):lchromchild1(1,i)=parent(2,i); child2(1,i)=parent(1,i);endi=k(1,1);j=k(1,2);temp(i,:)=child1(1,:);temp(j,:)=child2(1,:);j=1;enden

11、dend%* %*变异操作* function mutation()global popsize lchrom pmutation temp newpop oldpop mp m=lchrom*(popsize-mp);%总的基因数n=round(pmutation*m);%变异发生的次数for i=1:nk=round(rand*(m-1)+1; j=ceil(k/lchrom);l=rem(k,lchrom);if l=0temp(j,lchrom)=temp(j,lchrom);elsetemp(j,l)=temp(j,l);endendfor i=1:popsizenewpop(i,:

12、)=temp(i,:);% 产生新的个体oldpop(i,:)=newpop(i,:);end%* %*最佳个体* function best()global maxfit bestfit gen maxgen bestgenbestfit=maxfit(1,1);gen=2;while gen=maxgenif bestfitmaxfit(1,gen)bestfit=maxfit(1,gen);bestgen=gen;endgen=gen+1;end%* functionsol,eval=fitness(sol,options)x=sol(1); eval=x+10*sin(5*x)+7*cos(4*x);%eval为个体适应度%遗传算法求最大值 figure(1)fplot(x+10*sin(5*x)+7*cos(4*x),0,9) hold oninitPop=initializega(10,0 9,fitness); figure(1)plot(initPop(:,1),initPop(:,2),b*) x,endPop=ga(09,fitness,initPop,1e-6:1 :1,maxGenTerm,25,normGeomSelect,. .0.08,arithXover

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号