matlab基本遗传算法应用实例.doc

matlab基本遗传算法应用实例.doc

ID:57689085

大小:21.00 KB

页数:2页

时间:2020-09-01

matlab基本遗传算法应用实例.doc_第1页
matlab基本遗传算法应用实例.doc_第2页
资源描述:

《matlab基本遗传算法应用实例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基本遗传算法应用实例。用基本遗传算法求下面函数的最大值个体数目取50,最大进化代数取100,离散精度取0.001,杂交概率取0.9,变异概率取0.0041、在editor中建立基本遗传算法函数:GA程序如下:function[xv,fv]=GA(fitness,a,b,NP,NG,pc,pm,eps)%待优化的目标函数:fitness%自变量下界:a%自变量上界:b%种群个体数:NP%最大进化代数:NG%杂交概率:pc%自变量概率:pm%自变量离散精度:eps%目标函数取最小值时的自变量值:xm%目标函数的最小值:fvL=ceil(log2((b-

2、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=sum(fx);%所有个体适应值之和px=fx/sumfx;%所有个体适应值的平均值ppx=0;ppx(1)=px(1);fori=2:NP%用于轮盘赌策略的累加ppx(i)=ppx(i-1)+px(i);endfori=1:NPsita=rand();forn=1:NPifsita

3、<=ppx(n)SelFather=n;%根据轮盘赌策略确定的父亲break;endendSelmother=floor(rand()*(NP-1))+1;%随机选择母亲posCut=floor(rand()*(L-2))+1;%随机选择交叉点r1=rand();ifr1<=pc%交叉nx(i,1:posCut)=x(SelFather,1:posCut);nx(i,(posCut+1):L)=x(Selmother,(posCut+1):L);r2=rand();ifr2<=pm%变异posMut=round(rand()*(L-1)+1);nx

4、(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);endendfunctionresult=Initial(length)%初始化函数fori=1:length

5、r=rand();result(i)=round(r);endfunctiony=Dec(a,b,x,L)%二进制编码转换为十进制编码base=2.^((L-1):-1:0);y=dot(base,x);y=a+y*(b-a)/(2^L-1);%[xv,fv]=GA(@fitness,0,30,50,100,0.9,0.04,0.01)2、建立目标函数文件fitness.m文件:functionF=fitness(x)F=x^3-60*x^2+900*x+100;3、在命令窗口输入:[xv,fv]=GA(@fitness,0,30,100,500,

6、0.9,0.04,0.01)4、结果(结果不唯一)xv=10fv=4100

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

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

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