基本遗传算法(GA)的算法原理、步骤、及Matlab实现.doc

基本遗传算法(GA)的算法原理、步骤、及Matlab实现.doc

ID:51802563

大小:16.35 KB

页数:2页

时间:2020-03-15

基本遗传算法(GA)的算法原理、步骤、及Matlab实现.doc_第1页
基本遗传算法(GA)的算法原理、步骤、及Matlab实现.doc_第2页
资源描述:

《基本遗传算法(GA)的算法原理、步骤、及Matlab实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、算法原理遗传算法可以用来求函数的极值。 (1)用二进制编码来离散自变量,码长根据离散精度来确定。码长为log2[max-min精度+1](2)交叉方法采用单点交叉 (3)变异是根据变异概率反转子代某个位的值 (4)选择策略采用轮盘赌策略,令PPi=j=1ipi,其中PPi为累计概率,pi为个体的选择概率,公式为:pi=fitness(xi)i=1NPfitness(xi),其中fitness(xi)为个体的适应度,共轮转NP次,每次轮转时,产生随机数r,当PPi-1≤r

2、2.用轮盘赌策略确定个体的适应度,判断是否符合优化准则,若符合,输出最佳个体及其最优解,结束,否则,进行下一步3.依据适应度选择再生个体,适应度高的个体被选中的概率高,适应度低的个体被淘汰4.按照一定的交叉概率和交叉方法,生成新的个体5.按照一定的变异概率和变异方法,生成新的个体6.由交叉和变异产生新一代种群,返回步骤2算法的实现%基本遗传算法,一维无约束优化function[xv,fv]=mGA(fitness,a,b,NP,NG,Pc,Pm,eps)%待优化的目标函数:fitness%自变量下界:a%自变量上界:b%种群个体数:NP%最大

3、进化代数:NG%杂交常数:Pc%变异常数:Pm%自变量离散精度:eps%目标函数取最大值是的自变量值:xv%目标函数的最小值:fvL=ceil(log2((b-a)/eps+1));%码长x=zeros(NP,L);fori=1:NPx(i,:)=Initial(L);fx(i)=fitness(Dec(a,b,x(i,:),L));endfork=1:NGsumfx=sun(fx);Px=fx/sumfx;PPx=0;PPx(1)=Px(1);fori=2:NP%根据轮盘赌确定父亲PPx(i)=PPx(i-1)+PPx(i);endfori

4、=1:NPsita=rand();forn=1:NPifsita<=PPx(n)SelFather=n;break;endendSelmother=floor(rand()*(NP-1))+1;%随机选择母亲posCut=floor(rand()*(L-2))+1;%随机确定交叉点r1=rand();ifr1<=Pcnx(i,1:posCut)=x(SelFather,1:posCut);nx(I,(posCut+1):L)=x(Selmother,(posCut+1):L);r2=rand();ifr2<=Pm%变异posMut=round

5、(rand()*(L-1)+1);nx(i,posMut)=~nx(i,posMut);endelsenx(i,:)=x(SelFather,:);endendx=nx;fori=1:NPfx(i)=fitness(Dec(a,b,x(i,:),L);endendfv=-inf;fori=1:NPfitx=fitness(Dec(a,b,x(i,:),L));iffitx>fvfv=fitx;xv=Dec(a,b,x(i,:),L);endendendfunctionresult=Initial(length)%初始化函数fori=1:len

6、gthr=round();result(i)=round(r);endendfunctiony=Dec(a,b,x,L)%二进制转十进制base=2.^((L-1):-1:0);y=dot(base,x);y=a+y*(b-1)/(2^L-1)'end

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

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

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