1 / 74
文档名称:

遗传算法实验六..ppt

格式:ppt   大小:2,228KB   页数:74页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

遗传算法实验六..ppt

上传人:联系 2018/5/20 文件大小:2.18 MB

下载得到文件列表

遗传算法实验六..ppt

文档介绍

文档介绍:Matlab遗传算法工具箱应用举例
§ 简单一元函数优化实例
程序简化代码如下:
NIND=40; %定义个体数目
MAXGEN=25; %定义最大遗传代数
PRECI=20; %编码长度
GGAP=; %代沟
FieldD=[20;-1;2;1;0;1;1]; %区域描述器
Chrom=crtbp(NIND, PRECI); %产生初始种群
gen=0; %代计数器
variable=bs2rv(Chrom, FieldD); %初始种群的十进制转换
ObjV=variable.*sin(10*pi*variable)+; %计算初始种群目标函数值
while gen<MAXGEN+1
FitnV=ranking(-ObjV); %分配适应度值
SelCh=select('sus', Chrom, FitnV, GGAP); %选择
SelCh=bin('xovsp', SelCh, ); %重组
SelCh=mut(SelCh); %变异
variable=bs2rv(SelCh, FieldD); %子代个体的十进制转换
ObjVSel=variable.*sin(10*pi*variable)+; %计算子代的目标函数值
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入子代到种群
Y=max(ObjV) %当前种群最优解
gen=gen+1; %代计数器增加
end
figure(1);
%画出函数曲线
fplot('variable.*sin(10*pi*variable)+',[-1,2]);
%定义遗传算法参数
NIND=40; %群体中个体数目
MAXGEN=25; %最大遗传代数
PRECI=20; %变量的二进制位数
具有性能跟踪和图像输出功能的程序代码
%代沟
GGAP=;
%寻优结果的初始值
trace=zeros(2, MAXGEN);
%建立区域描述器
FieldD=[20;-1;2;1;0;1;1];
%生成初始种群
Chrom=crtbp(NIND, PRECI);
具有性能跟踪和图像输出功能的程序代码
%代计数器
gen=0;
%计算初始种群的十进制转换
variable=bs2rv(Chrom, FieldD);
%计算目标函数值
ObjV=variable.*sin(10*pi*variable)+;
具有性能跟踪和图像输出功能的程序代码
while gen<MAXGEN
%分配适应度值
FitnV=ranking(-ObjV);
%选择
SelCh=select('sus', Chrom, FitnV, GGAP);
%重组
SelCh=bin('xovsp', SelCh, );
%变异
SelCh=mut(SelCh);
具有性能跟踪和图像输出功能的程序代码
%子代个体的十进制转换
variable=bs2rv(SelCh, FieldD);
%计算子代的目标函数值
ObjVSel=variable.*sin(10*pi*variable)+;
%重插入子代的新种群
[Chrom ObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel);
variable=bs2rv(Chrom, FieldD);
具有性能跟踪和图像输出功能的程序代码
%代计数器增加
gen=gen+1;
%输出最优解及其序号,并在目标函数图像
%中标出,Y为最优解,I为种群的序号
[Y, I]=max(ObjV);hold on;
plot(variable(I), Y, 'bo');
%遗传算法性能跟踪
trace(1, gen)=max(ObjV); %每一代最优解
trace(2, gen)=sum(ObjV)/length(ObjV);
end
具有性能跟踪和图像输出功能的程序代码
%最优个体的十进制转换
variable=bs2rv(Chrom, FieldD);
hold on, grid on;
plot(variable,ObjV,'b*');
figure(2);
plot(trace(1,:));
hold on;
plot(trace(2,:),'-.');grid off
legend('解的变化','种群均值的变化')
具有性能跟踪和图像输出功能的程序代码