【优化算法】鼠群优化算法(RSO)【含Matlab源码 1462期】
【摘要】
一、获取代码方式
获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
获取代码方式2: 完整代码已上传我的资源:【优化算法】群居蜘蛛优化算法(SSO)【含Matlab...
一、获取代码方式
获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
获取代码方式2:
完整代码已上传我的资源:【优化算法】群居蜘蛛优化算法(SSO)【含Matlab源码 1452期】
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、鼠群优化算法简介
鼠群优化(Rat swarm optimization,RSO)算法是于2020年提出的一种寻优精度高、全局搜索性能强的新型仿生群体智能算法。其算法原理:鼠群算法主要通过追逐猎物、攻击猎物两个过程实现待优化问题的求解。
三、部分源代码
%_________________________________________________________________________%
% Rat Swarm Optimizer (RSO) %
% %
% Developed in MATLAB R2019b %
% %
%_________________________________________________________________________%
clear all
clc
SearchAgents=30;
Fun_name='F1';
Max_iterations=1000;
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name);
[Best_score,Best_pos,SHO_curve]=rso(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
figure('Position',[300 300 660 290])
%Draw search space
subplot(1,2,1);
fun_plot(Fun_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])
%Draw objective space
subplot(1,2,2);
plots=semilogy(SHO_curve,'Color','g');
set(plots,'linewidth',2)
title('Objective space')
xlabel('Iterations');
ylabel('Best score');
axis tight
grid on
box on
legend('RSO')
display(['The best optimal value of the objective function found by RSO is : ', num2str(Best_score)]);
%_________________________________________________________________________%
% Rat Swarm Optimizer (RSO) %
% %
% Developed in MATLAB R2019b %
% %
% Designed and Developed: Dr. Gaurav Dhiman %
% %
% E-Mail: gdhiman0001@gmail.com %
% gaurav.dhiman@ieee.org %
% %
% Homepage: http://www.dhimangaurav.com %
% %
% Published paper: G. Dhiman et al. %
% A novel algorithm for global optimization: Rat Swarm Optimizer %
% Jounral of Ambient Intelligence and Humanized Computing %
% DOI: https://doi.org/10.1007/s12652-020-02580-0 %
% %
%_________________________________________________________________________%
function fun_plot(fun_name)
[lowerbound,upperbound,dimension,fitness]=fun_info(fun_name);
switch fun_name
case 'F1'
x=-100:2:100; y=x; %[-100,100]
case 'F2'
x=-100:2:100; y=x; %[-10,10]
case 'F3'
x=-100:2:100; y=x; %[-100,100]
case 'F4'
x=-100:2:100; y=x; %[-100,100]
case 'F5'
x=-200:2:200; y=x; %[-5,5]
case 'F6'
x=-100:2:100; y=x; %[-100,100]
case 'F7'
x=-1:0.03:1; y=x %[-1,1]
case 'F8'
x=-500:10:500;y=x; %[-500,500]
case 'F9'
x=-5:0.1:5; y=x; %[-5,5]
case 'F10'
x=-20:0.5:20; y=x;%[-500,500]
case 'F11'
x=-500:10:500; y=x;%[-0.5,0.5]
case 'F12'
x=-10:0.1:10; y=x;%[-pi,pi]
case 'F13'
x=-5:0.08:5; y=x;%[-3,1]
case 'F14'
x=-100:2:100; y=x;%[-100,100]
case 'F15'
x=-5:0.1:5; y=x;%[-5,5]
case 'F16'
x=-1:0.01:1; y=x;%[-5,5]
case 'F17'
x=-5:0.1:5; y=x;%[-5,5]
case 'F18'
x=-5:0.06:5; y=x;%[-5,5]
case 'F19'
x=-5:0.1:5; y=x;%[-5,5]
case 'F20'
x=-5:0.1:5; y=x;%[-5,5]
case 'F21'
x=-5:0.1:5; y=x;%[-5,5]
case 'F22'
x=-5:0.1:5; y=x;%[-5,5]
case 'F23'
x=-5:0.1:5; y=x;%[-5,5]
end
L=length(x);
f=[];
for i=1:L
for j=1:L
if strcmp(fun_name,'F15')==0 && strcmp(fun_name,'F19')==0 && strcmp(fun_name,'F20')==0 && strcmp(fun_name,'F21')==0 && strcmp(fun_name,'F22')==0 && strcmp(fun_name,'F23')==0
f(i,j)=fitness([x(i),y(j)]);
end
if strcmp(fun_name,'F15')==1
f(i,j)=fitness([x(i),y(j),0,0]);
end
if strcmp(fun_name,'F19')==1
f(i,j)=fitness([x(i),y(j),0]);
end
if strcmp(fun_name,'F20')==1
f(i,j)=fitness([x(i),y(j),0,0,0,0]);
end
if strcmp(fun_name,'F21')==1 || strcmp(fun_name,'F22')==1 ||strcmp(fun_name,'F23')==1
f(i,j)=fitness([x(i),y(j),0,0]);
end
end
end
surfc(x,y,f,'LineStyle','none');
end
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]施媛波.基于改进的群居蜘蛛优化云计算任务调度算法[J].电脑编程技巧与维护. 2021,(04)
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/120990289
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)