欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    遗传算法的Matlab实现讲解.ppt

    • 资源ID:66691307       资源大小:531.51KB        全文页数:37页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    遗传算法的Matlab实现讲解.ppt

    数学建模专题之数学建模专题之遗传算法的遗传算法的MATLABMATLAB实现实现Contents IMatlab编程实现编程实现GA1Matlab函数调用实现函数调用实现GA2Matlab工具箱实现工具箱实现GA3Matlab编程实现GAv例1:计算目标函数值函数 v主程序%遗传算法主程序function My_GAglobal Cmin;Cmin=-106;popsize=50;%群体大小Gene=20;chromlength=20;%字符串长度(个体长度)pc=0.8;%交叉概率pm=0.01;%变异概率Xmax=10;Xmin=0;Matlab编程实现GApop=initpop(popsize,chromlength);%随机产生初始群体for i=1:Gene%20为迭代次数 objvalue=calobjvalue(pop,chromlength,Xmax,Xmin);%计算目标函数 fitvalue=calfitvalue(objvalue);%计算群体中每个个体的适应度 newpop=selection(pop,fitvalue);%复制 newpop=crossover(newpop,pc);%交叉 newpop=mutation(newpop,pm);%变异 bestindividual,bestfit=best(pop,fitvalue);%求出群体中适应值最大的个体及其适应值 x(i)=decodechrom(bestindividual,1,chromlength)*10/(2chromlength-1);%最佳个体解码 y(i)=bestfit+Cmin;%最佳个体适应度 y_mean(i)=mean(fitvalue+Cmin);%第i代平均适应度 pop=newpop;endfplot(2*x+10*sin(5*x)+7*cos(4*x),0 10)hold onplot(x,y,r*)hold offv初始化(编码)%initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),%长度大小取决于变量的二进制编码的长度(在本例中取20位)。%Name:initpop.mfunction pop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength);%rand随机产生每个单元为 0,1 行数为popsize,列数为chromlength的矩阵,%round对矩阵的每个单元进行取整。这样产生的初始种群。Matlab编程实现GAv将二进制数转化为十进制数 将二进制数转化为十进制数%产生 2n 2(n-1).1 的行向量,然后求和,将二进制转化为十进制function pop2=decodebinary(pop)px,py=size(pop);%求pop行和列数for i=1:pypop1(:,i)=2.(py-i).*pop(:,i);endpop2=sum(pop1,2);%求pop1的每行之和function pop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);Matlab编程实现GAv计算目标函数值 计算目标函数值%calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算function objvalue=calobjvalue(pop,chromlength,Xmax,Xmin)temp1=decodechrom(pop,1,chromlength);%将pop每行转化成十进制数x=temp1*(Xmax-Xmin)/(2chromlength-1);%将十进制域 中的数转化为变量域 的数objvalue=2*x+10*sin(5*x)+7*cos(4*x);%计算目标函数值Matlab编程实现GAv计算个体的适应值 function fitvalue=calfitvalue(objvalue)global Cmin;fitvalue=objvalue-Cmin;Matlab编程实现GAv选择复制 function newpop=selection(pop,fitvalue)%程序中采用赌轮盘选择法选择实现totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvalue/totalfit;%单个个体被选择的概率fitvalue=cumsum(fitvalue);%如 fitvalue=1 2 3 4,则 cumsum(fitvalue)=1 3 6 10 px,py=size(pop);ms=sort(rand(px,1);%从小到大排列fitin=1;newin=1;while newin=px%蒙特卡洛方法抽样 if(ms(newin)fitvalue(fitin)newpop(newin,:)=pop(fitin,:);newin=newin+1;else fitin=fitin+1;endendMatlab编程实现GAv交叉 function newpop=crossover(pop,pc)px,py=size(pop);newpop=ones(size(pop);for i=1:2:px-1 if(randpc)cpoint=round(rand*py);newpop(i,:)=pop(i,1:cpoint),pop(i+1,cpoint+1:py);newpop(i+1,:)=pop(i+1,1:cpoint),pop(i,cpoint+1:py);else newpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endendMatlab编程实现GAv变异 functionnewpop=mutation(pop,pm)px,py=size(pop);newpop=ones(size(pop);for i=1:px if(randpm)mpoint=round(rand*py);if mpointbestfit bestindividual=pop(i,:);bestfit=fitvalue(i);endend Matlab编程实现GA或function bestindividual,bestfit=best(pop,fitvalue)bestfit,m_indx=max(fitvalue);bestindividual=pop(m_indx,:);v结果见My_GA.m Matlab编程实现GAMatlab函数调用实现GAMatlab的GA函数 x fval=ga(fitnessfun,nvars,options);fitnessfcn Fitness functionnvars Number of variables for the problemAineq Matrix for inequality constraintsBineq Vector for inequality constraintsAeq Matrix for equality constraintsBeq Vector for equality constraintsLB Lower bound on xUB Upper bound on xnonlcon Nonlinear constraint Functionoptions Options structureMatlab函数调用实现GAMatlab的GA函数x=ga(fitnessfcn,nvars)x=ga(fitnessfcn,nvars,A,b)x=ga(fitnessfcn,nvars,A,b,Aeq,beq)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)x=ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options)x=ga(problem)x,fval=ga(.)x,fval,exitflag=ga(.)Matlab函数调用实现GAGA函数调用步骤第一步:编写适应度函数;第二步:对GA参数进行设置;options=gaoptimset(参数名,参数值,参数名,参数值)例:options=gaoptimset(PopulationSize,100)第三步:调用GA函数;x fval=ga(fitnessfun,nvars)x fval exitflag output population scores=ga(fitnessfcn,nvars)x fval=ga(fitnessfun,nvars,options);specify any linear equality,linear inequality,or nonlinear constraintsMatlab函数调用实现GA调用GA函数求例1的最大值(见ga_eg1.m)第一步:编写适应度函数;第一步:编写适应度函数;function y=fit1(x)y=-(2*x+10*sin(5*x)+7*cos(4*x);第二步:设置参数第二步:设置参数options=gaoptimset(PopulationSize,100,PopulationType,doubleVector,PlotFcns,gaplotbestf,gaplotbestindiv,gaplotexpectation,gaplotstopping)第三步:调用第三步:调用GAGA函数函数x fval=ga(fit1,1,0,10,options);最后还原最后还原y=-1*fit1(x)%最小值还原为最大值figure;fplot(2*x+10*sin(5*x)+7*cos(4*x),0 10)hold onplot(x,y,*)遗传算法的GA工具箱实现:Matlab的GA工具箱(R2007)Matlab的GA工具箱(R2010b)遗传算法的遗传算法的GA工具箱实现:工具箱实现:例二求下列优化问题Matlab函数调用实现调用GA函数求解(见ga_eg2.m)function ga_eg2A=1 1;-1 2;2 1;b=2;2;3;lb=zeros(2,1);x,fval,exitflag=ga(lincontest6,2,A,b,lb);mesh_lincontest6;hold on;plot3(x(1),x(2),fval,r*);function mesh_lincontest6m=10;n=1000;x=-n:m:n;y=-n:m:n;z=0.5*(ones(length(x),1)*x).2+(ones(length(y),1)*y).2.-(ones(length(x),1)*x).*(ones(length(y),1)*y)-2*(ones(.length(x),1)*x)-6*(ones(length(y),1)*y);mesh(x,y,z)Matlab函数调用实现调用GA函数求解(见ga_eg2.m)遗传算法的GA工具箱实现Matlab的GA工具箱(R2010b)练习一在5=Xi=5,i=1,2区间内,求解 f(x1,x2)=-20*exp(0.2*sqrt(0.5*(x1.2+x2.2)-exp(0.5*(cos(2*pi*x1)+cos(2*pi*x2)+22.71282的最小值。要求:种群大小20,最大代数100,变异率0.1,交叉率0.7Contents IIGA求解多目标优化问题求解多目标优化问题1GA优化优化BP神经网络神经网络2GA求解求解TSP问题问题3II-1 GA求解多目标优化问题通常多目标优化,例如非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。模型的形式和适应度函数定义如下:II-1 GA求解多目标优化问题 源代码见nonlin.m 练习二 利用GA求解以下多目标优化问题:II-2 GA优化BP神经网络给定一百组数据(X,Y,Z),(X,Y)为两种测量参数(即输入),Z为结果(即输出)。请利用NN模拟输入和输出的关系。测量数据可利用函数关系模拟:II-2 GA优化BP神经网络 源代码见GABPNN.mII-2 GA优化BP神经网络GA优化的结果II-2 GA优化BP神经网络GA优化的结果练习三给定100组数据(X1,X2,X3,X4,Y1,Y2),(X1,X2,X3,X4)为四种测量参数(即输入),(Y1,Y2)为结果(即输出)。请利用GA优化BPNN模拟输入和输出的关系。测量数据可利用函数关系模拟:II-3 GA求解TSP问题 求中国31个省会城市的最短路径(GATSP_PPT2.m)II-3 GA求解TSP问题GA收敛过程(GATSP_PPT2.m)练习四 调节GATSP_PPT2中的参数,使其达到最佳状态。

    注意事项

    本文(遗传算法的Matlab实现讲解.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开