GA(遗传算法)的Matlab程序原理.doc

GA(遗传算法)的Matlab程序原理.doc

ID:57688054

大小:16.00 KB

页数:2页

时间:2020-09-01

GA(遗传算法)的Matlab程序原理.doc_第1页
GA(遗传算法)的Matlab程序原理.doc_第2页
资源描述:

《GA(遗传算法)的Matlab程序原理.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、GA(遗传算法)的Matlab程序原理(转载于六分之一工作室)z=f(x,y)1、编码(解决初始化种群),先创建一个数组pop(popsizestringlenth)有popsize表示染色体个数列stringlenth的前一部分代表x的染色体,后一部分代表y的染色体。计算x,y染色体对所对应的十进制数值并记数组pop的第stringlenth+1,stringlenth+2列,计算f(x,y)的值并计为数组pop的第stringlenth+3列,计算每个染色体的复制概率并计为数组pop的第stringlenth+4列function[pop1fdpestringlenth]=ini

2、tialize(popsizestringlenthpop),pop=round(rand(popsizestringlenth)),pop(.stringlenth+1=((2.^(size(pop(.1.stringlenth1).2)-1.-1.0)*pop(.1.stringlenth)).*()/(2.^stringlenth1-1)+),pop(.stringlenth+3)=fun(pop(.stringlenth+1)pop(.stringlenth+2)),pop(.stringlenth+4)=pop(.stringlenth+4)=pop(.stringlent

3、h+3)./sum(pop(.stringlenth+3)),其中fun(x)为目标函数的matlab.m文件.2、确保复制过程中染色体个数保持不变的情况下确定每个染色体复制数,如果是某一染色体的复制数为负数,则令此染色体的复制数为0,复制概率为止的染色体的复制数根据其占正值总体的比率来确定,复制数=比率popsizepop(.stringlenth+5)=round(pop.Stringlenth+4).*popsize),A=sort(pop(.stringlenth+5)),b=sum(A((11-a).10),(其中a为复制概率为正值的染色体个数)pop(.stringlen

4、th+6)=round(pop(.stringlenth+5)./b).*popsize).pop(.stringlenth+6)表示每个染色体复制数.3、染色体复制数,根据每个染色体的复制数重新创建新的染色体数组pop1function[parent1parent2stringlenth]=parent(fdpopstringlenth),Ci=repmat(pop(i1.stringlenth)[pop(istringlenth+6)11]).(i=12…popsize)pop1=[C1][C2]…[Cpopsize],pop1=round([C1][C2]…[Cpopsize]

5、).每个初始染色体按其复制数进行复制.4、选择父代进行父叉,在数组pop1中随机地使各染色体两两配对,作为父代进行父叉,创建新的数组child1和child2父叉点cpoint随机选取父叉概率pc根据实际情况人为选取function[child1child2pmparentstringlenth]=crossover(parent1parent2pcstringlenth),f=round(9*rand(1.10))+1,d=[12345678910],parent1=pop1(f.),parent2=pop1(d.),if(randcpoint=round(rand*(string

6、lenth-2))+1,child1=[parent1(.1.cpoint)][parent2(.cpoint+1.stringlenth)],child2=[parent2(.1.cpoint)][parent1(.cpoint+1.stringlenth)],elsechild1=parent1,child2=parent2.5、染色体变异随机选取染色体中某一个或几个基因进行变异创建新的数组child作为父代function[child]=mutation(parentpm),parent=child,if(randmpoint=round(rand*(stringlenth-1

7、))+1,child=parent,child(.mpoint)=abs(parent(.mpoint)-1),elsechild=parent,end6、保留上一代的优良染色体作为部分初始值和随机染色体组成新的染色体组function[pop2mW]=best(childchild1child2pop),Q1=child(.stringlenth+3),fori=1.10if(Q1(i)>(max(Q1)-0.0001))q1=i,endendW=rou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。