1 简介
SGO 算法是一种基于社会群体学习和提升自身解决问题能力的新型优化算法。在现实生活中,很多工作或者难题的处理需要多方面因素的参与。当学习者欠缺此方面的能力时,须向周围或拥有此项能力的个体学习,以便达到相应的目的。SGO 算法是基于此种思想提出的,其实现过程主要包含三个步骤: 种群初始化、提高阶段学习、获得阶段学习。
2 部分代码
%--------------------------------------------------------------------------
% % Developed in MATLAB R2016a
clc;
clear all;
close all;
'MSGO'
pn=30; %population size
gn=250; %maximum number of iteration
% dim=30; %dimension of the fuction
% lb=-30; %lower bound
% ub=30; %upper bound
func_no=21;
[lb,ub,dim]=Test_Functions_Range(func_no);
[fitsgo,objvalue]=msgofunction(pn,dim,gn,lb,ub,func_no);
objvalue
fitsgo;
if objvalue>0
semilogy(fitsgo,'r','LineWidth',2);
else
plot(fitsgo,'r','LineWidth',2);
end
xlabel('Iterations');
ylabel('Fitness');
title('Convergence characteristics')
% for i=1:5
% point(i)=i;
% end
%plot(point,fitsgo(point),'-hb');
% %%
% title('Convergence characteristics')
% %%
% semilogy(fitsgo)
% %plot(fitsgo)
% xlabel('Number of Iterations');
% ylabel('Fitness value');
% %axis tight
grid on
% legend('MSGO','SouthEast');
%
3 仿真结果
4 参考文献
[1]刘亚军, 陈得宝, 邹锋,等. 离散社会群体优化算法求解旅行商问题[J]. 长春师范大学学报, 2018, 37(6):5.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。