- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
鱼群算法仿真
3、案例实例及结果:案例1:一元函数的优化实例:,该函数的图形如图5.2所示:图 5.2??一元函数图像2010-8-9 01:11 上传下载附件 (27.53 KB) 结果:鱼群算法的运行结果如下:图5.8??50次鱼群算法迭代结果2010-8-9 01:11 上传
下载附件 (30.52 KB)
2010-8-9 01:11 上传
下载附件 (19.58 KB)
图5.9??最优解的变化Command Window上的运行结果:最优解X:1.85060最优解Y:3.85027Elapsed time is 1.640857 seconds. 案例2二元函数的优化实例:该函数的图形如图5.3所示:图 5.3??二元函数图像2010-8-9 01:11 上传
下载附件 (49.56 KB)
结果:鱼群算法的运行结果如下:图5.10??50次鱼群算法迭代结果 2010-8-9 01:11 上传
下载附件 (21.92 KB)
2010-8-9 01:11 上传
下载附件 (18.34 KB)
图5.11??最优解的变化Command Window上的运行结果:最优解X:-0.002690.00018最优解Y:1.00000Elapsed time is 3.094503 seconds.? ?
4、主程序
案例1:
clc
clear all
close all
tic
figure(1);hold on
ezplot(x*sin(10*pi*x)+2,[-1,2]);
%% 参数设置
fishnum=50; %生成50只人工鱼
MAXGEN=50; %最多迭代次数
try_number=100;%最多试探次数
visual=1; %感知距离
delta=0.618; %拥挤度因子
step=0.1; %步长
%% 初始化鱼群
lb_ub=[-1,2,1];
X=AF_init(fishnum,lb_ub);
LBUB=[];
for i=1:size(lb_ub,1)
LBUB=[LBUB;repmat(lb_ub(i,1:2),lb_ub(i,3),1)];
end
gen=1;
BestY=-1*ones(1,MAXGEN); %每步中最优的函数值
BestX=-1*ones(1,MAXGEN); %每步中最优的自变量
besty=-100; %最优函数值
Y=AF_foodconsistence(X);
while gen=MAXGEN
fprintf(1,%d\n,gen)
for i=1:fishnum
[Xi1,Yi1]=AF_swarm(X,i,visual,step,delta,try_number,LBUB,Y); %聚群行为
[Xi2,Yi2]=AF_follow(X,i,visual,step,delta,try_number,LBUB,Y); %追**为
if Yi1Yi2
X(:,i)=Xi1;
Y(1,i)=Yi1;
else
X(:,i)=Xi2;
Y(1,i)=Yi2;
end
end
[Ymax,index]=max(Y);
figure(1);
plot(X(1,index),Ymax,.,color,[gen/MAXGEN,0,0])
if Ymaxbesty
besty=Ymax;
bestx=X(:,index);
BestY(gen)=Ymax;
[BestX(:,gen)]=X(:,index);
else
BestY(gen)=BestY(gen-1);
[BestX(:,gen)]=BestX(:,gen-1);
end
gen=gen+1;
end
plot(bestx(1),besty,ro,MarkerSize,100)
xlabel(x)
ylabel(y)
title(鱼群算法迭代过程中最优坐标移动)
figure
plot(1:MAXGEN,BestY)
xlabel(迭代次数)
ylabel(优化值)
title(鱼群算法迭代过程)
disp([最优解X:,num2str(bestx,%1.5f)])
disp([最优解Y:,num2str(besty,%1.5f)])
toc
复制代码
案例2:
clc
clear all
close all
tic
figure(1);hold on
%% 参数设置
fishnum=100; %生成50只人工鱼
MAXGEN=50; %最多迭代次数
try_number=100;%最多试探次数
visual=1; %感知距离
delta=0.618; %拥挤度因子
step=0.1; %步长
%% 初始化鱼群
lb_ub=[-10,10,2;];
X=AF
文档评论(0)