Salp Swarm 算法(SSA)求解单目标优化问题

Posted 这是一个很随便的名字

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Salp Swarm 算法(SSA)求解单目标优化问题相关的知识,希望对你有一定的参考价值。

【Matlab源码】

Salps属于Salpidae科,身体呈透明桶状。它们的组织与水母高度相似。它们的运动方式也与水母非常相似,在水母中,水被泵入身体作为向前移动的推进力。

关于这种生物的生物学研究处于早期里程碑,主要是因为它们的生活环境极难进入,而且很难将它们留在实验室环境中。这篇论文中有趣的salps最有趣的行为之一是它们的蜂拥行为。在深海中,salps 经常形成一个称为salp 链的群。这种行为的主要原因还不是很清楚,但一些研究人员认为,这样做是为了通过快速协调变化和觅食来实现更好的运动。

文献中几乎没有对salps的蜂拥行为和种群进行数学建模。此外,还没有用于解决优化问题的 salp 群数学模型,而蜜蜂、蚂蚁和鱼群已被广泛建模并用于解决优化问题。Salp Swarm 算法 (SSA) 模仿 Salp 来解决优化问题。

代码:



% You can simply define your cost in a seperate file and load its handle to fobj 
% The initial parameters that you need are:
%__________________________________________
% fobj = @YourCostFunction
% dim = number of your variables
% Max_iteration = maximum number of generations
% SearchAgents_no = number of search agents
% lb=[lb1,lb2,...,lbn] where lbn is the lower bound of variable n
% ub=[ub1,ub2,...,ubn] where ubn is the upper bound of variable n
% If all the variables have equal lower bound you can just
% define lb and ub as two single number numbers

% To run SSA: [Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj)
%__________________________________________

clear all 
clc

SearchAgents_no=30; % Number of search agents

Function_name='F1'; % Name of the test function that can be from F1 to F23 ( 

Max_iteration=1000; % Maximum numbef of iterations

% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);

[Best_score,Best_pos,SSA_cg_curve]=SSA(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);

figure('Position',[500 500 660 290])
%Draw search space
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])

%Draw objective space
subplot(1,2,2);
semilogy(SSA_cg_curve,'Color','r')
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');

axis tight
grid on
box on
legend('SSA')

display(['The best solution obtained by SSA is \\m ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by SSA is \\n ', num2str(Best_score)]);

        



运行结果:

获取SSA完整代码:https://ai.52learn.online/code/25 

 

以上是关于Salp Swarm 算法(SSA)求解单目标优化问题的主要内容,如果未能解决你的问题,请参考以下文章

使用Salp Swarm 算法(SSA)解决多目标问题

使用Salp Swarm 算法(SSA)解决多目标问题

单目标优化求解基于matlab松鼠优化算法求解单目标优化问题(SSA)含Matlab源码 1855期

单目标优化求解基于matlab松鼠优化算法求解单目标优化问题(SSA)含Matlab源码 1855期

单目标优化求解基于matlab混合正弦余弦算法和Lévy飞行改进麻雀算法求解单目标优化问题含Matlab源码 1653期

单目标优化求解基于matlab混合正弦余弦算法和Lévy飞行改进麻雀算法求解单目标优化问题含Matlab源码 1653期