ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:21.43KB ,
资源ID:3083221      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3083221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(三个遗传算法matlab程序实例.doc)为本站会员(tangtianxu1)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

三个遗传算法matlab程序实例.doc

1、遗传算法程序(一):说明: fga.m 为遗传算法的主程序 ; 采用二进制 Gray 编码 ,采用基于轮盘赌法的非线性排名选择, 均匀交叉 ,变异操作,而且还引入了倒位操作!function BestPop,Trace=fga(FUN,LB,UB,eranum,popsize,pCross,pMutation,pInversion,options) % BestPop,Trace=fmaxga(FUN,LB,UB,eranum,popsize,pcross,pmutation) % Finds a maximum of a function of several variables.% fma

2、xga solves problems of the form: % max F(X) subject to: LB 0)error(数据输入错误 ,请重新输入 (LB1 时,b(i)=mod(a(i-1)+a(i),2)%其中原二进制串:a(1)a(2).a(n),Gray 串:b(1)b(2).b(n)initpop(i,:)=pop(1:end-1);endinitpop(popsize,:)=ones(1,len);%The whole one encoding individual%解码function fval = b2f(bval,bounds,bits) % fval - 表征

3、各变量的十进制数% bval - 表征各变量的二进制编码串% bounds - 各变量的取值范围% bits - 各变量的二进制编码长度scale=(bounds(:,2)-bounds(:,1)./(2.bits-1); %The range of the variablesnumV=size(bounds,1);cs=0 cumsum(bits); for i=1:numVa=bval(cs(i)+1):cs(i+1);fval(i)=sum(2.(size(a,2)-1:-1:0).*a)*scale(i)+bounds(i,1);end%选择操作%采用基于轮盘赌法的非线性排名选择%各个

4、体成员按适应值从大到小分配选择概率:%P(i)=(q/1-(1-q)n)*(1-q)i, 其中 P(0)P(1).P(n), sum(P(i)=1function selectpop=NonlinearRankSelect(FUN,pop,bounds,bits) global m nselectpop=zeros(m,n);fit=zeros(m,1);for i=1:mfit(i)=feval(FUN(1,:),(b2f(pop(i,:),bounds,bits);%以函数值为适应值做排名依据endselectprob=fit/sum(fit);%计算各个体相对适应度(0,1)q=max(

5、selectprob);%选择最优的概率x=zeros(m,2);x(:,1)=m:-1:1;y x(:,2)=sort(selectprob);r=q/(1-(1-q)m);%标准分布基值newfit(x(:,2)=r*(1-q).(x(:,1)-1);%生成选择概率newfit=cumsum(newfit);%计算各选择概率之和rNums=sort(rand(m,1);fitIn=1;newIn=1;while newIn=pCross);len=length(y1);if len2y1(len)=;endif length(y1)=2for i=0:2:length(y1)-2if op

6、ts=0NewPop(y1(i+1),:),NewPop(y1(i+2),:)=EqualCrossOver(OldPop(y1(i+1),:),OldPop(y1(i+2),:);elseNewPop(y1(i+1),:),NewPop(y1(i+2),:)=MultiPointCross(OldPop(y1(i+1),:),OldPop(y1(i+2),:);endend endNewPop(y2,:)=OldPop(y2,:);%采用均匀交叉function children1,children2=EqualCrossOver(parent1,parent2)global n child

7、ren1 children2 hidecode=round(rand(1,n);%随机生成掩码crossposition=find(hidecode=1);holdposition=find(hidecode=0);children1(crossposition)=parent1(crossposition);%掩码为 1,父 1 为子 1 提供基因children1(holdposition)=parent2(holdposition);%掩码为 0,父 2 为子 1 提供基因children2(crossposition)=parent2(crossposition);%掩码为 1,父 2

8、 为子 2 提供基因children2(holdposition)=parent1(holdposition);%掩码为 0,父 1 为子 2 提供基因%采用多点交叉,交叉点数由变量数决定function Children1,Children2=MultiPointCross(Parent1,Parent2)global n Children1 Children2 VarNumChildren1=Parent1;Children2=Parent2;Points=sort(unidrnd(n,1,2*VarNum);for i=1:VarNumChildren1(Points(2*i-1):Po

9、ints(2*i)=Parent2(Points(2*i-1):Points(2*i);Children2(Points(2*i-1):Points(2*i)=Parent1(Points(2*i-1):Points(2*i);end%变异操作function NewPop=Mutation(OldPop,pMutation,VarNum)global m n NewPopr=rand(1,m);position=find(r=1for i=1:lenk=unidrnd(n,1,VarNum); %设置变异点数,一般设置 1 点for j=1:length(k)if OldPop(positi

10、on(i),k(j)=1OldPop(position(i),k(j)=0;elseOldPop(position(i),k(j)=1;endendendendNewPop=OldPop;%倒位操作function NewPop=Inversion(OldPop,pInversion)global m n NewPopNewPop=OldPop;r=rand(1,m);PopIn=find(r=1for i=1:lend=sort(unidrnd(n,1,2);if d(1)=1NewPop(PopIn(i),d(1):d(2)=OldPop(PopIn(i),d(2):-1:d(1);New

11、Pop(PopIn(i),d(2)+1:n)=OldPop(PopIn(i),d(2)+1:n);endendend遗传算法程序(二):function youhuafunD=code; N=50; % Tunable maxgen=50; % Tunable crossrate=0.5; %Tunable muterate=0.08; %Tunable generation=1; num = length(D); fatherrand=randint(num,N,3); score = zeros(maxgen,N); while generation1450)|(min(F2)best.m

12、ax_fadvance_k=advance_k+1;x_better(advance_k)=fitness.x;best.max_f=max(f);best.popus=popus;best.x=fitness.x;endif mod(advance_k,SPEEDUP_INTER)=0RANGE=minmax(x_better);RANGEadvance=0;end endreturn;function popus=init%初始化M=50;%种群个体数目N=30;%编码长度popus=round(rand(M,N);return;function fitness=fit(popus,RAN

13、GE)%求适应度M,N=size(popus);fitness=zeros(M,1);%适应度f=zeros(M,1);%函数值A=RANGE(1);B=RANGE(2);%初始取值范围0 255for m=1:Mx=0;for n=1:Nx=x+popus(m,n)*(2(n-1);endx=x*(B-A)/(2N)+A;for k=1:5f(m,1)=f(m,1)-(k*sin(k+1)*x+k);endendf_std=(f-min(f)./(max(f)-min(f);%函数值标准化fitness.f=f;fitness.f_std=f_std;fitness.x=x;return;f

14、unction picked=choose(popus,fitness)%选择f=fitness.f;f_std=fitness.f_std;M,N=size(popus);choose_N=3; %选择 choose_N 对双亲picked=zeros(choose_N,2); %记录选择好的双亲p=zeros(M,1); %选择概率d_order=zeros(M,1);%把父代个体按适应度从大到小排序f_t=sort(f,descend);%将适应度按降序排列for k=1:Mx=find(f=f_t(k);%降序排列的个体序号d_order(k)=x(1);endfor m=1:Mpop

15、us_t(m,:)=popus(d_order(m),:);endpopus=popus_t;f=f_t;p=f_std./sum(f_std); %选择概率c_p=cumsum(p); %累积概率for cn=1:choose_Npicked(cn,1)=roulette(c_p); %轮盘赌picked(cn,2)=roulette(c_p); %轮盘赌popus=intercross(popus,picked(cn,:);%杂交endpopus=aberrance(popus,picked);%变异return;function popus=intercross(popus,picked

16、) %杂交M_p,N_p=size(picked);M,N=size(popus);for cn=1:M_pp(1)=ceil(rand*N);%生成杂交位置p(2)=ceil(rand*N);p=sort(p);t=popus(picked(cn,1),p(1):p(2);popus(picked(cn,1),p(1):p(2)=popus(picked(cn,2),p(1):p(2);popus(picked(cn,2),p(1):p(2)=t;endreturn;function popus=aberrance(popus,picked) %变异P_a=0.05;%变异概率M,N=siz

17、e(popus);M_p,N_p=size(picked);U=rand(1,2);for kp=1:M_pif U(2)=P_a %如果大于变异概率,就不变异continue;endif U(1)=0.5a=picked(kp,1);elsea=picked(kp,2);endp(1)=ceil(rand*N);%生成变异位置p(2)=ceil(rand*N);if popus(a,p(1)=1%0 1 变换popus(a,p(1)=0;elsepopus(a,p(1)=1;endif popus(a,p(2)=1popus(a,p(2)=0;elsepopus(a,p(2)=1;endendreturn;function picked=roulette(c_p) %轮盘赌M,N=size(c_p);M=max(M N);U=rand;if Uc_p(m) break;endend全方位的两点杂交、两点变异的改进的加速遗传算法(IAGA)

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报