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





《遗传算法的Matlab实现讲解ppt课件.ppt》由会员分享,可在线阅读,更多相关《遗传算法的Matlab实现讲解ppt课件.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目数学建模专题之数学建模专题之遗传算法的遗传算法的MATLABMATLAB实现实现认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目Contents IMatlab编程实现编程实现GA1Matlab函数调用实现函数调用实现GA2Matlab工具箱实现工具箱实现GA3认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目Matlab编程实现GAv例1:
2、计算目标函数值函数 认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目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=calobjva
3、lue(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/(2chr
4、omlength-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 off认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v初始化(编码)%initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度)
5、,%长度大小取决于变量的二进制编码的长度(在本例中取20位)。%Name:initpop.mfunction pop=initpop(popsize,chromlength)pop=round(rand(popsize,chromlength);%rand随机产生每个单元为 0,1 行数为popsize,列数为chromlength的矩阵,%round对矩阵的每个单元进行取整。这样产生的初始种群。Matlab编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v将二进制数转化为十进制数 将二进制数转化为十进制数%产生
6、 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编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后
7、药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v计算目标函数值 计算目标函数值%calobjvalue.m函数的功能是实现目标函数的计算,其公式采用本文示例仿真,可根据不同优化问题予以修改。%遗传算法子程序%Name:calobjvalue.m%实现目标函数的计算function objvalue=calobjvalue(pop,chromlength,Xmax,Xmin)temp1=decodechrom(pop,1,chromlength);%将pop每行转化成十进制数x=temp1*(Xmax-Xmin)/(2chromlength-1);%将十进制域 中的数转化为变
8、量域 的数objvalue=2*x+10*sin(5*x)+7*cos(4*x);%计算目标函数值Matlab编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v计算个体的适应值 function fitvalue=calfitvalue(objvalue)global Cmin;fitvalue=objvalue-Cmin;Matlab编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v选择复制 function newpop=sel
9、ection(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,
10、:)=pop(fitin,:);newin=newin+1;else fitin=fitin+1;endendMatlab编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v交叉 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);new
11、pop(i+1,:)=pop(i+1,1:cpoint),pop(i,cpoint+1:py);else newpop(i,:)=pop(i);newpop(i+1,:)=pop(i+1);endendMatlab编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工作高度重视,已经展开了“精准扶贫”项目v变异 functionnewpop=mutation(pop,pm)px,py=size(pop);newpop=ones(size(pop);for i=1:px if(randpm)mpoint=round(rand*py);if mpointbes
12、tfit 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编程实现GA认识到了贫困户贫困的根本原因,才能开始对症下药,然后药到病除。近年来国家对扶贫工
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 Matlab 实现 讲解 ppt 课件

限制150内