【数据分析】基于matlab鱼群算法函数优化分析【含Matlab源码 240期】
【摘要】
一、获取代码方式
获取代码方式1: 完整代码已上传我的资源:【数据分析】基于matlab鱼群算法函数优化分析【含Matlab源码 240期】
获取代码方式2: 通过订阅紫极神光博客付费专栏,凭支付凭证...
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【数据分析】基于matlab鱼群算法函数优化分析【含Matlab源码 240期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、部分源代码
clc,clear,close all
warning off
tic
figure(1);hold on
%% 参数设置
fishnum=100; % 生成100只人工鱼
MAXGEN=50; % 最多迭代次数
try_number=100; % 最多试探次数
visual=1; % 感知距离
delta=0.618; % 拥挤度因子
step=0.1; % 步长
%% 初始化鱼群
lb_ub=[-3,3,2;];
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(2,MAXGEN); % 每步中最优的自变量
besty = -100; % 最优函数值
Y=AF_foodconsistence(X); % 待优化目标函数
while gen<=MAXGEN
disp(['迭代步数: ',num2str(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 Yi1>Yi2
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),X(2,index),'.','color',[gen/MAXGEN,0,0])
if Ymax>besty
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 由伟,刘亚秀.MATLAB数据分析教程[M].清华大学出版社,2020.
[2]王岩,隋思涟.试验设计与MATLAB数据分析[M].清华大学出版社,2012.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/113725337
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)