首页 遗传算法的Matlab实现2

遗传算法的Matlab实现2

举报
开通vip

遗传算法的Matlab实现2数学建模专题之遗传算法的MATLAB实现数学建模专题之遗传算法ContentsIMatlab编程实现GA1数学建模专题之遗传算法Matlab编程实现GA 例1:计算目标函数值函数数学建模专题之遗传算法 主程序%遗传算法主程序functionMy_GAglobalCmin;Cmin=-10^6;popsize=50;%群体大小Gene=20;chromlength=20;%字符串长度(个体长度)pc=0.8;%交叉概率pm=0.01;%变异概率Xmax=10;Xmin=0;Matlab编程实现GApop=initpo...

遗传算法的Matlab实现2
数学建模专 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 之遗传算法的MATLAB实现数学建模专题之遗传算法ContentsIMatlab编程实现GA1数学建模专题之遗传算法Matlab编程实现GA 例1:计算目标函数值函数数学建模专题之遗传算法 主程序%遗传算法主程序functionMy_GAglobalCmin;Cmin=-10^6;popsize=50;%群体大小Gene=20;chromlength=20;%字符串长度(个体长度)pc=0.8;%交叉概率pm=0.01;%变异概率Xmax=10;Xmin=0;Matlab编程实现GApop=initpop(popsize,chromlength);%随机产生初始群体fori=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/(2^chromlength-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)',[010])holdonplot(x,y,'r*')holdoff数学建模专题之遗传算法 初始化(编码)%initpop.m函数的功能是实现群体的初始化,popsize 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示群体的大小,chromlength表示染色体的长度(二值数的长度),%长度大小取决于变量的二进制编码的长度(在本例中取20位)。%Name:initpop.mfunctionpop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength));%rand随机产生每个单元为{0,1}行数为popsize,列数为chromlength的矩阵,%round对矩阵的每个单元进行取整。这样产生的初始种群。Matlab编程实现GA数学建模专题之遗传算法 将二进制数转化为十进制数将二进制数转化为十进制数%产生[2^n2^(n-1)...1]的行向量,然后求和,将二进制转化为十进制functionpop2=decodebinary(pop)[px,py]=size(pop);%求pop行和列数fori=1:py pop1(:,i)=2.^(py-i).*pop(:,i);endpop2=sum(pop1,2);%求pop1的每行之和functionpop2=decodechrom(pop,spoint,length)pop1=pop(:,spoint:spoint+length-1);pop2=decodebinary(pop1);Matlab编程实现GA数学建模专题之遗传算法 计算目标函数值计算目标函数值%calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算function[objvalue]=calobjvalue(pop,chromlength,Xmax,Xmin)temp1=decodechrom(pop,1,chromlength);%将pop每行转化成十进制数x=temp1*(Xmax-Xmin)/(2^chromlength-1);%将十进制域中的数转化为变量域的数objvalue=2*x+10*sin(5*x)+7*cos(4*x);%计算目标函数值Matlab编程实现GA数学建模专题之遗传算法 计算个体的适应值functionfitvalue=calfitvalue(objvalue)globalCmin;fitvalue=objvalue-Cmin;Matlab编程实现GA数学建模专题之遗传算法 选择复制function[newpop]=selection(pop,fitvalue)%程序中采用赌轮盘选择法选择实现totalfit=sum(fitvalue);%求适应值之和fitvalue=fitvalue/totalfit;%单个个体被选择的概率fitvalue=cumsum(fitvalue);%如fitvalue=[1234],则cumsum(fitvalue)=[13610][px,py]=size(pop);ms=sort(rand(px,1));%从小到大排列fitin=1;newin=1;whilenewin<=px%蒙特卡洛方法抽样if(ms(newin))<fitvalue(fitin)newpop(newin,:)=pop(fitin,:);newin=newin+1;elsefitin=fitin+1;endendMatlab编程实现GA数学建模专题之遗传算法 交叉function[newpop]=crossover(pop,pc)[px,py]=size(pop);newpop=ones(size(pop));fori=1:2:px-1if(rand<pc)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)];elsenewpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endendMatlab编程实现GA数学建模专题之遗传算法 变异function[newpop]=mutation(pop,pm)[px,py]=size(pop);newpop=ones(size(pop));fori=1:pxif(rand<pm)mpoint=round(rand*py);ifmpoint<=0mpoint=1;endnewpop(i,:)=pop(i,:);Matlab编程实现GAifany(newpop(i,mpoint))==0newpop(i,mpoint)=1;elsenewpop(i,mpoint)=0;endelsenewpop(i,:)=pop(i,:);endend数学建模专题之遗传算法 求出群体中最大的适应值及其个体function[bestindividual,bestfit]…=best(pop,fitvalue)[px,py]=size(pop);bestindividual=pop(1,:);bestfit=fitvalue(1);fori=2:pxiffitvalue(i)>bestfitbestindividual=pop(i,:);bestfit=fitvalue(i);endendMatlab编程实现GA或function[bestindividual,bestfit]=…best(pop,fitvalue)[bestfit,m_indx]=max(fitvalue);bestindividual=pop(m_indx,:);数学建模专题之遗传算法 结果见My_GA.mMatlab编程实现GA数学建模专题之遗传算法Matlab函数调用实现GA Matlab的GA函数[xfval]=ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options);fitnessfcn—Fitnessfunctionnvars—NumberofvariablesfortheproblemAineq—MatrixforinequalityconstraintsBineq—VectorforinequalityconstraintsAeq—MatrixforequalityconstraintsBeq—VectorforequalityconstraintsLB—LowerboundonxUB—Upperboundonxnonlcon—NonlinearconstraintFunctionoptions—Optionsstructure数学建模专题之遗传算法Matlab函数调用实现GA Matlab的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函数调用实现GA GA函数调用步骤第一步:编写适应度函数;第二步:对GA参数进行设置;options=gaoptimset(‘参数名’,参数值,…,‘参数名’,参数值)例:options=gaoptimset('PopulationSize',100)第三步:调用GA函数;[xfval]=ga(@fitnessfun,nvars)[xfvalexitflagoutputpopulationscores]=ga(@fitnessfcn,nvars)[xfval]=ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options);specifyanylinearequality,linearinequality,ornonlinearconstraints数学建模专题之遗传算法Matlab函数调用实现GA 调用GA函数求例1的最大值(见ga_eg1.m)第一步:编写适应度函数;functiony=fit1(x)y=-(2*x+10*sin(5*x)+7*cos(4*x));第二步:设置参数options=gaoptimset('PopulationSize',100,'PopulationType','doubleVector','PlotFcns',{@gaplotbestf,@gaplotbestindiv,@gaplotexpectation,@gaplotstopping})第三步:调用GA函数[xfval]=ga(@fit1,1,[],[],[],[],0,10,[],options);最后还原y=-1*fit1(x)%最小值还原为最大值figure;fplot('2*x+10*sin(5*x)+7*cos(4*x)',[010])holdonplot(x,y,'*')数学建模专题之遗传算法遗传算法的GA工具箱实现: Matlab的GA工具箱(R2007)数学建模专题之遗传算法 Matlab的GA工具箱(R2010b)遗传算法的GA工具箱实现:数学建模专题之遗传算法例二 求下列优化问题数学建模专题之遗传算法Matlab函数调用实现 调用GA函数求解(见ga_eg2.m)functionga_eg2A=[11;-12;21];b=[2;2;3];lb=zeros(2,1);[x,fval,exitflag]=ga(@lincontest6,2,A,b,[],[],lb);mesh_lincontest6;holdon;plot3(x(1),x(2),fval,'r*');functionmesh_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.7数学建模专题之遗传算法ContentsIIGA求解多目标优化问题1数学建模专题之遗传算法II-1GA求解多目标优化问题 通常多目标优化,例如非线性整数规划是一个具有指数复杂度的NP问题,如果约束较为复杂,Matlab优化工具箱和一些优化软件比如lingo等,常常无法应用,即使能应用也不能给出一个较为令人满意的解。这时就需要针对问题设计专门的优化算法。 模型的形式和适应度函数定义如下:数学建模专题之遗传算法II-1GA求解多目标优化问题 源代码见nonlin.m数学建模专题之遗传算法练习二 利用GA求解以下多目标优化问题:数学建模专题之遗传算法II-2GA优化BP神经网络 给定一百组数据(X,Y,Z),(X,Y)为两种测量参数(即输入),Z为结果(即输出)。请利用NN模拟输入和输出的关系。测量数据可利用函数关系模拟:数学建模专题之遗传算法II-2GA优化BP神经网络 源代码见GABPNN.m数学建模专题之遗传算法II-2GA优化BP神经网络 GA优化的结果数学建模专题之遗传算法II-2GA优化BP神经网络 GA优化的结果数学建模专题之遗传算法练习三 给定100组数据(X1,X2,X3,X4,Y1,Y2),(X1,X2,X3,X4)为四种测量参数(即输入),(Y1,Y2)为结果(即输出)。请利用GA优化BPNN模拟输入和输出的关系。测量数据可利用函数关系模拟:数学建模专题之遗传算法II-3GA求解TSP问题 求中国31个省会城市的最短路径(GATSP_PPT2.m)数学建模专题之遗传算法II-3GA求解TSP问题 GA收敛过程(GATSP_PPT2.m)数学建模专题之遗传算法练习四 调节GATSP_PPT2中的参数,使其达到最佳状态。
本文档为【遗传算法的Matlab实现2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
xxj7584
暂无简介~
格式:ppt
大小:654KB
软件:PowerPoint
页数:0
分类:建造师考试
上传时间:2020-03-20
浏览量:0