欢迎来到天天文库
浏览记录
ID:57287001
大小:2.18 MB
页数:74页
时间:2020-08-09
《遗传算法实验六.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab遗传算法工具箱应用举例§5.1简单一元函数优化实例程序简化代码如下:NIND=40;%定义个体数目MAXGEN=25;%定义最大遗传代数PRECI=20;%编码长度GGAP=0.9;%代沟FieldD=[20;-1;2;1;0;1;1];%区域描述器Chrom=crtbp(NIND,PRECI);%产生初始种群gen=0;%代计数器variable=bs2rv(Chrom,FieldD);%初始种群的十进制转换ObjV=variable.*sin(10*pi*variable)+2.0;%计算初始种群目标函数值whilegen2、(-ObjV);%分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP);%选择SelCh=recombin('xovsp',SelCh,0.7);%重组SelCh=mut(SelCh);%变异variable=bs2rv(SelCh,FieldD);%子代个体的十进制转换ObjVSel=variable.*sin(10*pi*variable)+2.0;%计算子代的目标函数值[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到种群Y=max(ObjV)%当前种群最优解gen=gen+1;%代计3、数器增加endfigure(1);%画出函数曲线fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);%定义遗传算法参数NIND=40;%群体中个体数目MAXGEN=25;%最大遗传代数PRECI=20;%变量的二进制位数具有性能跟踪和图像输出功能的程序代码%代沟GGAP=0.9;%寻优结果的初始值trace=zeros(2,MAXGEN);%建立区域描述器FieldD=[20;-1;2;1;0;1;1];%生成初始种群Chrom=crtbp(NIND,PRECI);具有性能跟踪和图像输出功能的程序代码%代计数器gen=0;%计算初始种4、群的十进制转换variable=bs2rv(Chrom,FieldD);%计算目标函数值ObjV=variable.*sin(10*pi*variable)+2.0;具有性能跟踪和图像输出功能的程序代码whilegen5、ldD);%计算子代的目标函数值ObjVSel=variable.*sin(10*pi*variable)+2.0;%重插入子代的新种群[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);variable=bs2rv(Chrom,FieldD);具有性能跟踪和图像输出功能的程序代码%代计数器增加gen=gen+1;%输出最优解及其序号,并在目标函数图像%中标出,Y为最优解,I为种群的序号[Y,I]=max(ObjV);holdon;plot(variable(I),Y,'bo');%遗传算法性能跟踪trace(1,gen)=max(Obj6、V);%每一代最优解trace(2,gen)=sum(ObjV)/length(ObjV);end具有性能跟踪和图像输出功能的程序代码%最优个体的十进制转换variable=bs2rv(Chrom,FieldD);holdon,gridon;plot(variable,ObjV,'b*');figure(2);plot(trace(1,:));holdon;plot(trace(2,:),'-.');gridofflegend('解的变化','种群均值的变化')具有性能跟踪和图像输出功能的程序代码程序运行追踪结果:代序寻优结果自变量函数值12.02923.842322.21043.7、781932.35773.806342.48813.81552.64013.8072程序运行追踪结果62.61333.755572.86583.807382.94003.804392.91203.8321102.86773.8321112.69733.8320122.79633.8326132.73173.8318程序运行追踪结果142.77393.8318152.65213.8274162.78443.8274172.51583.8274182.77683.8285
2、(-ObjV);%分配适应度值SelCh=select('sus',Chrom,FitnV,GGAP);%选择SelCh=recombin('xovsp',SelCh,0.7);%重组SelCh=mut(SelCh);%变异variable=bs2rv(SelCh,FieldD);%子代个体的十进制转换ObjVSel=variable.*sin(10*pi*variable)+2.0;%计算子代的目标函数值[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);%重插入子代到种群Y=max(ObjV)%当前种群最优解gen=gen+1;%代计
3、数器增加endfigure(1);%画出函数曲线fplot('variable.*sin(10*pi*variable)+2.0',[-1,2]);%定义遗传算法参数NIND=40;%群体中个体数目MAXGEN=25;%最大遗传代数PRECI=20;%变量的二进制位数具有性能跟踪和图像输出功能的程序代码%代沟GGAP=0.9;%寻优结果的初始值trace=zeros(2,MAXGEN);%建立区域描述器FieldD=[20;-1;2;1;0;1;1];%生成初始种群Chrom=crtbp(NIND,PRECI);具有性能跟踪和图像输出功能的程序代码%代计数器gen=0;%计算初始种
4、群的十进制转换variable=bs2rv(Chrom,FieldD);%计算目标函数值ObjV=variable.*sin(10*pi*variable)+2.0;具有性能跟踪和图像输出功能的程序代码whilegen5、ldD);%计算子代的目标函数值ObjVSel=variable.*sin(10*pi*variable)+2.0;%重插入子代的新种群[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);variable=bs2rv(Chrom,FieldD);具有性能跟踪和图像输出功能的程序代码%代计数器增加gen=gen+1;%输出最优解及其序号,并在目标函数图像%中标出,Y为最优解,I为种群的序号[Y,I]=max(ObjV);holdon;plot(variable(I),Y,'bo');%遗传算法性能跟踪trace(1,gen)=max(Obj6、V);%每一代最优解trace(2,gen)=sum(ObjV)/length(ObjV);end具有性能跟踪和图像输出功能的程序代码%最优个体的十进制转换variable=bs2rv(Chrom,FieldD);holdon,gridon;plot(variable,ObjV,'b*');figure(2);plot(trace(1,:));holdon;plot(trace(2,:),'-.');gridofflegend('解的变化','种群均值的变化')具有性能跟踪和图像输出功能的程序代码程序运行追踪结果:代序寻优结果自变量函数值12.02923.842322.21043.7、781932.35773.806342.48813.81552.64013.8072程序运行追踪结果62.61333.755572.86583.807382.94003.804392.91203.8321102.86773.8321112.69733.8320122.79633.8326132.73173.8318程序运行追踪结果142.77393.8318152.65213.8274162.78443.8274172.51583.8274182.77683.8285
5、ldD);%计算子代的目标函数值ObjVSel=variable.*sin(10*pi*variable)+2.0;%重插入子代的新种群[ChromObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);variable=bs2rv(Chrom,FieldD);具有性能跟踪和图像输出功能的程序代码%代计数器增加gen=gen+1;%输出最优解及其序号,并在目标函数图像%中标出,Y为最优解,I为种群的序号[Y,I]=max(ObjV);holdon;plot(variable(I),Y,'bo');%遗传算法性能跟踪trace(1,gen)=max(Obj
6、V);%每一代最优解trace(2,gen)=sum(ObjV)/length(ObjV);end具有性能跟踪和图像输出功能的程序代码%最优个体的十进制转换variable=bs2rv(Chrom,FieldD);holdon,gridon;plot(variable,ObjV,'b*');figure(2);plot(trace(1,:));holdon;plot(trace(2,:),'-.');gridofflegend('解的变化','种群均值的变化')具有性能跟踪和图像输出功能的程序代码程序运行追踪结果:代序寻优结果自变量函数值12.02923.842322.21043.
7、781932.35773.806342.48813.81552.64013.8072程序运行追踪结果62.61333.755572.86583.807382.94003.804392.91203.8321102.86773.8321112.69733.8320122.79633.8326132.73173.8318程序运行追踪结果142.77393.8318152.65213.8274162.78443.8274172.51583.8274182.77683.8285
此文档下载收益归作者所有