一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【优化算法】社会群体优化算法(SGO)【含Matlab源码 1449期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、社会群体优化算法简介

社会群体搜索算法借鉴了生物界中动物的社会等级制度以及协作行为.在一些群居性动物的社会群体中,有着严格的等级制度,群体中每一个个体都有着各自的分工和职能.如狼群,一个狼群是由一个或数个家庭组成的,狼群中有头狼和其他的普通公狼.在捕食猎物的过程中,头狼根据自身的意志进行行动,狼群会听从头狼的指挥和自身意志而进行捕猎活动,通过协作来提高捕猎的成功率.参考上述狼群的行为,本文在社会群体算法模型中定义了以下3种类型的行为: 1)个体根据自己的意愿进行行动; 2)个体根据他人的意愿进行行动; 3)个体消极行动被整个群体淘汰.根据社会群体的职能分工,我们引入决策因子λ作为预测群体中的个体将会作出何种行为的一个评估值,决策因子的大小决定了种群中每个个体的行为.决策因子体现了个体自主意志力的大小,其数值越大个体自主意志力越强,其影响力也越大,受到其他个体影响的可能性就越小;反之,决策因子数值
越小,个体的自主意志力就越弱,其在群体中的影响力也就越小,越容易受到其他个体的影响.根据决策因子,群体中的个体会被分成4类:第 1类首领,指的是在整个群体中最优秀最具权威 的个体,它的行动只遵循其自身的意愿;第2类领导者是种群中最优秀的一部分个体,仅次于首领,同样具有极高的地位和权威,是群体的高级阶层,他们会根据自身的意愿去进行行动,唯一能够影响它们的就是首领(利用群体的历史信息);而第3类追随者则是比领导者更低级的个体,属于群体中的普通阶层,它们会同时进行2种行动,一种是追随领导者或者首领进行变化,向领导者靠拢(利用种群的历史信息以及加快搜索速度),而另一种行动则是根据自身的意愿进行行动;种群中剩下的一部分个体组成了第
4类淘汰者群体,这些个体是群体中最差的一部 分个体,对于整个搜索过程几乎起不到任何作用,因此淘汰者将会被群体抛弃,每抛弃一个淘汰者就会产生一个新的个体来替代它,使得种群始终保持一定的规模(这样做可以在不增加种群规模的情况下增加搜索范围).社会群体搜索算法旨在搜索速度和避免早熟之间取得平衡.相比粒子群算法,社会群体算法对群体的分类减少了早熟的概率,交叉变异和淘汰机制的引入增加了搜索范围,减少了陷入局部最优的可能;同时,相比遗传算法历史反馈信息利用不充分、搜索速度较慢、单向信息传递机制的缺点,社会群体搜索算法使用了 自 身 的 一 套 信 息 反 馈 机 制———领 导-追随机制。

三、部分源代码

%--------------------------------------------------------------------------
% % Developed in MATLAB R2016aclc;
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 boundfunc_no=21;
[lb,ub,dim]=Test_Functions_Range(func_no);[fitsgo,objvalue]=msgofunction(pn,dim,gn,lb,ub,func_no);objvalue
fitsgo;if objvalue>0semilogy(fitsgo,'r','LineWidth',2);elseplot(fitsgo,'r','LineWidth',2);endxlabel('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 tightgrid on
% legend('MSGO','SouthEast');
%
%--------------------------------------------------------------------------
% % Developed in MATLAB R2016a
% The code is based on the following papers.
% A. Naik, A. Abraham and S.C. Satapathy(2020), Modified Social Group Optimization-a meta-heuristic
% algorithm to solve Short-term Hydrothermal Scheduling, Applied softcomputing,doi:10.1016/j.asoc.2020.106524
%--------------------------------------------------------------------------function[fit,objvalue]=msgofunction(pn,dim,gn,lb,ub,func_no)
obj=@Test_Functions;
%Test_Functions(pop(i,:),func_no,dim);
pop=lb+rand(pn,dim)*(ub-lb);
c=0.2;
for i=1:pnf(i)=obj(pop(i,:),func_no,dim);
end
[value ibest]=min(f);
% from here iteration start
fit=zeros(gn,1);
for g=1:gn
% improvement due to best person of the group
[value ibest]=min(f);
value;
guru=pop(ibest,:);
for i=1:pnfor j=1:dimnewpop(i,j)=c*pop(i,j)+rand*(guru(j)-pop(i,j));if((newpop(i,j)<lb))newpop(i,j)=lb;endif((newpop(i,j)>ub))newpop(i,j)=ub;endendf1=obj(newpop(i,:),func_no,dim);if(f1<f(i))pop(i,:)=newpop(i,:);f(i)=f1;end
end[a b]=min(f);gpop=pop(b,:);SAP=0.7;for i=1:pnr1=floor(1+rand*pn);while(r1==i)r1=floor(1+rand*pn);endif(f(i)<f(r1))if rand>SAPfor j=1:dimpopnew(i,j)=pop(i,j)+rand*(pop(i,j)-pop(r1,j))+rand*(gpop(j)-pop(i,j));if(popnew(i,j)<lb)popnew(i,j)=lb;endif(popnew(i,j)>ub)popnew(i,j)=ub;endendelsefor j=1:dimpopnew(i,:)=lb+rand*(ub-lb); endendelsefor j=1:dimpopnew(i,j)=pop(i,j)+rand*(pop(r1,j)-pop(i,j))+rand*(gpop(j)-pop(i,j));if(popnew(i,j)<lb)popnew(i,j)=lb;endif(popnew(i,j)>ub)popnew(i,j)=ub;endendend
endfor i=1:pnf2(i)=obj(popnew(i,:),func_no,dim);   if(f2(i)<f(i))pop(i,:)=popnew(i,:);f(i)=f2(i);end
end
%end of learner phase
[minvalue position]=min(f);
fit(g)=minvalue;
objvalue=fit(g)
endend

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]冯翔,马美怡,施尹,虞慧群.基于社会群体搜索算法的机器人路径规划[J].计算机研究与发展. 2013,50(12)

【优化算法】社会群体优化算法(SGO)【含Matlab源码 1449期】相关推荐

  1. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  2. 【风电功率预测】基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测【含Matlab源码 1314期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [风电功率预测]基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测[含Matlab源码 1314期] ⛄二.帝国殖民竞争算法简 ...

  3. 【APF三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab人工势场算法无人机三维 ...

  4. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  5. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  6. 【物流选址】基于matlab免疫算法求解物流选址问题【含Matlab源码 020期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物流选址]基于matlab免疫算法求解物流选址问题[含Matlab源码 020期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...

  7. 【A_star三维路径规划】基于matlab A_star算法无人机三维路径规划【含Matlab源码 446期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[三维路径规划]基于matlab A_star算法无人机三维路径规划[含Matlab源码 446期] 获取代码方式2: 付费专栏Matla ...

  8. 【ACO TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蚁群算法求解31城市旅行商问题[含Matlab源码 1147期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  9. 【LSSVM回归预测】基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测【含Matlab源码 2259期】

    ⛄一.灰狼算法优化最小支持向量机GWO-LSSVM简介 1 算法理论 采用灰狼优化算法的最小二乘支持向量机模型预测时,为避免过拟合现象和检验该模型的有效性,将实证部分主要分为:①基于灰狼优化算法的最小 ...

  10. 【LSSVM回归预测】基于matlab狮群算法优化最小二乘支持向量机LSO-LSSVM数据回归预测【含Matlab源码 2261期】

    ⛄一.狮群算法简介 狮群优化算法(lion swarm optimization algorithm, LSO)是在狮群协作捕猎的基础上提出的一种群智能优化算法.狮群算法将狮群分成3个部分:狮王.母狮 ...

最新文章

  1. textureview 旋转90度后平铺_轮滑知识 | 单排轮滑的旋转技巧
  2. Window ChromeDriver(简单4步完成)
  3. 幻读Java_脏读、幻读、不可重复读和丢失更新
  4. roszhong指定rviz的点启动_怎样在1秒内启动 Linux
  5. java中怎样创建线程_java中的线程创建和使用
  6. VMware workstation 磁盘扩容
  7. pgm图像缩小C语言,C++将二进制(P5)图像转换为ascii(P2)图像(.pgm)
  8. Mp3原理及文件格式解析(from)
  9. Amos实操教程|调节效应检验
  10. java银行项目服务器代码_基于jsp的银行账户-JavaEE实现银行账户 - java项目源码
  11. 常见的激活函数及其优缺点分析
  12. 如何使用Zend Expressive建立NASA照片库
  13. 致联系报考我免试研究生的同学们-山世光 研究员-中科院计算所
  14. 曾经改变了千万人的人生经典语录
  15. 遗传算法中常见遗传算子
  16. DSP学习(5)—— Timer的使用
  17. 系统操作问题:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动--亲测解决
  18. 【工具】VSCode无法正常启动Terminal窗口
  19. 嵌入式开发之NorFlash 和NandFlash
  20. linux镜像文件没有gho,【iso文件中没有gho文件】iso变gho_iso文件里没有gho-系统城...

热门文章

  1. hdu3068 求一个字符串中最长回文字符串的长度 Manacher算法
  2. MyBatis:Pagehelper分页
  3. 字符串的一般性和特殊性
  4. HDU 3790 最短路径问题 (最短路)
  5. UIImageView的内容模式以及ImageNamed和imageWithContentsOfFile的区别
  6. 处理数据类型转换,数制转换、编码转换相关的类
  7. MCU总线读写仿真模块
  8. 好风凭借力,送我上青云!
  9. 扇贝有道180909每日一句
  10. 一般不要在头文件中定义变量