目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码
2019 年,Dhiman G等人提出了一种受自然界海鸥启发的新颖全局优化算法—海鸥优化算法(Seagull Optimization Algorithm, SOA)。与其他智能优化算法类似,海鸥优化算法也是基于种群的算法,模拟了海鸥群体的迁徙和攻击行为,算法提出者将这些行为抽象化建立数学模型。
算法的主要算子是模拟全局搜索的海鸥迁徙算子和模拟局部搜索的海鸥攻击算子。海鸥优化算法的提出,为工程优化和人工智能领域提供了新的优化工具。虽然海鸥优化算法的模型相对简洁,但与其他优化算法相比,海鸥优化算法在实际问题求解中还是体现出了一定的优势。
[1]李沅航.海鸥优化算法与鲸鱼优化算法的寻优性能对比研究[J].现代信息科技,2021,5(03):67-71.DOI:10.19850/j.cnki.2096-4706.2021.03.018.
主函数部分代码:
%% 海鸥优化算法(Seagull Optimization Algorithm,SOA)
clc
clear
close all
SearchAgents=30;
Fun_name='F1';
Max_iterations=1000;
[lowerbound,upperbound,dimension,fitness]=func_info(Fun_name);
[Best_score,Best_pos,SOA_curve]=SOA(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
figure('Position',[500 500 660 290])
subplot(1,2,1);
func_plot(Fun_name);
title('Objective space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])
subplot(1,2,2);
plots=semilogx(SOA_curve,'Color','r');
set(plots,'linewidth',2)
hold on
title('Objective space')
xlabel('Iterations');
ylabel('Best score');
axis tight
grid on
box on
legend('SOA')
display(['The best solution obtained by SOA is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by SOA is : ', num2str(Best_score)]);
完整代码见:新型智能优化算法——海鸥优化算法