1 / 3
文档名称:

matlab遗传算法程序.doc

格式:doc   大小:29KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

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

分享

预览

matlab遗传算法程序.doc

上传人:260933426 2022/3/13 文件大小:29 KB

下载得到文件列表

matlab遗传算法程序.doc

文档介绍

文档介绍:fx1,x2=sinx1x1*sinx2x2
% Optimizing a function using Simple Genetic Algorithm with elitist
% preservedfx1,x2=sinx1x1*sinx2x2
% Optimizing a function using Simple Genetic Algorithm with elitist
% preserved
%bval=father,newbval=child,bvalxx=fatherbest,q=Ns
clc;clear all;
format long;%设定数据显示格式
%初始化参数
T=100;%仿真代数
%N=80;% 群体规模
N=50;
nc=44;nm=15;nb=4;%较差变异个数
%pm=;pc=;%交叉变异概率
%umax=;umin=-;%参数取值范围
xmax=10;xmin=-10;
L=16;%单个参数字串长度,总编码长度2L
father=round(rand(N,2*L));%初始种群,,取整为最近整数0或1,生成N*2L矩阵的随机数
bestvalue=-inf;%最优适应度初值,负无穷大
%迭代开始
for k=1:T
%解码,计算适应度
for i=1:N
y1=0;y2=0;
for j=1:1:L
y1=y1+father(i,L-j+1)*2^(j-1);
end
x1=(xmax-xmin)*y1/(2^L-1)+xmin;
for j=1:1:L
y2=y2+father(i,2*L-j+1)*2^(j-1);
end
x2=(xmax-xmin)*y2/(2^L-1)+xmin;
%obj(i)=100*(x1*x1-x2).^2+(1-x1).^2; %目标函数
obj(i)=sin(x1)/x1*sin(x2)/x2;
%obj(i)=*exp(-((x1+5).^2+(x2+5).^2)/10)+*exp(-((x1-5).^2+(x2-5).^2)/20);
%obj(i)=*exp(-((x1-5).^2+(x2-5).^2)/20);
xx(i,:)=[x1,x2];%矩阵第i行赋值为x1,x2
end
func=obj;%目标函数转换为适应度函数
p=func./sum(func);
Ns=cumsum(p);%累加
[fmax,indmax]=max(func);%求当代最佳个体,最大值返回给fmax,其索引给indmax
iffmax>=bestvalue
bestvalue=fmax;%到目前为止最优适应度值
fatherbest=father(indmax,:);%到目前为止最佳位串
optimal=xx(indmax,:);%到目前为止最优参数
end
bestfit(k)=bestvalue; % 存储每代的最优适应度