单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)

一、山瞪羚优化算法简介

山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)由BenyaminAbdollahzadeh等人于2022年提出,该算法模拟山瞪羚的社会生活和等级制度,思路新颖,性能高效。
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第1张图片
山瞪羚,雄性头体长101-115厘米;体重17-29.5千克;雌性头体长98-101厘米;角长5.8-11.5厘米;体重16-25千克。山瞪羚上体黑褐色,下体白色,侧腹和四肢浅棕色。面部标有与黑边交际的灰白色条纹。还有一道狭窄的,用于分隔腹侧和白色下体的暗色侧面带。下侧腹的皮毛颜色是浅黄色。黑尾巴短而浓密。耳朵也比较短。下体的白色分界线直到大腿关节。夏季太阳辐射强时皮毛短而圆润,冬季皮毛会加厚,用于抵制冬天的寒冷与冻雨。两性均有角。雄性长220-294毫米,角的长短很大程度上会受栖息地影响。同一族群的雌性山瞪羚的角比雄性小70%,角长84-153毫米。雄性的角是粗厚,上具有显着的螺纹,而雌性的角没有螺纹。角的横截面是椭圆形,底部的空隙为约25毫米。雄性的角几乎都是指向天空,在雌性的角稍微向前弯曲。山瞪羚聚群活动,一般是3-8个的小群,有时更多。社会结构是由一只雄性为头领,有自己的领地,保持其领土的永久群体内有几只年轻雌性。雄性争夺领土的控制权,在两个区域之间发生边界冲突时,通常用打斗的暴力形式来准定成败。参赛者停在相距约30厘米的地方多次相互用头撞击。一只年轻的山瞪羚试图占有他国领土之间的战斗中,雄性可以造成对方重伤,甚至打断对方的腿。这些瞪羚是昼夜动物,所有亚种,除了巴勒斯坦山瞪羚,均在月夜下吃草,通常情况下,在黎明和黄昏中休息,度过一天中最热的时光。山瞪羚是典型的食草动物。饮食包括草本和灌木植物,根据栖息地不同有差别。分布在阿拉伯半岛和以色列的山瞪羚,由于该地区分布着金合欢树,这些树木形成了大量的叶片和豆荚。它们通常走到相思树枝前,用后腿支撑站立,前腿倚在树上,取食树叶和荚果。由于当地水源稀缺,山瞪羚挖鳞茎、球茎和其他肉质植物的地下器官来改善躯体内的水平衡。
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第2张图片
山瞪羚优化算法MGO全局搜索和局部搜索同步进行,采用如下四种机制更新位置:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第3张图片
MGO种群更新依据四种机制(TSM、MH、BMH、MSF),其流程如下:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第4张图片

二、MGO算法描述及流程图

单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第5张图片
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第6张图片
参考文献:
Abdollahzadeh, B., Gharehchopogh, F. S., Khodadadi, N., & Mirjalili, S. (2022). Mountain Gazelle Optimizer: A new Nature-inspired Metaheuristic Algorithm for Global Optimization Problems. Advances in Engineering Software, 174, [103282]. https://doi.org/10.1016/j.advengsoft.2022.103282

三、CEC2017简介

CEC2017共有30个无约束测试函数分别是:单峰函数(F1-F3)、简单多峰函数(F4-F10)、混合函数(F11-F20)和组合函数(F21-F30)。测试维度包含:10D、30D、50D、100D。CEC2017无约束测试问题随着维度的增加求解极其困难。

单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第7张图片

四、求解结果

将山瞪羚优化算法MGO运用于求解CEC2017中30个无约束函数,其中每个测试函数可以选择的维度分别有:10D、30D、50D、100D。增大迭代次数,MGO的求解效果更佳。本例测试函数维度均为为10D(可根据自己需求调整),最大迭代次数为100次。

close all
clear 
clc
Function_name=1; %测试函数1-30
lb=-100;%变量下界
ub=100;%变量上界
dim=10;%维度 10/30/50/100
SearchAgents_no=30; % Number of search agents
Max_iteration=100;%最大迭代次数
ObjectiveFunction=str2func('cec17_func');
[Best_score,Best_pos,MGO_cg_curve]=MGO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure('color','w')
% Best convergence curve
semilogy(MGO_cg_curve,'Color','r')
title(strcat('CEC2017-F',num2str(Function_name)))
xlabel('迭代次数');
ylabel('适应度值');
axis tight
grid on
box on
legend('MGO')
display(['The best solution obtained by MGO is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by MGO is : ', num2str(Best_score)]);

%全部代码链接
%链接:https://pan.baidu.com/s/11I6eMyMU3k-UHfUu1O_mIA 
%提取码:1234

F1:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第8张图片

F2:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第9张图片

F3:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第10张图片

F4:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第11张图片

F5:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第12张图片

F6:
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第13张图片

五、参考代码

源文件夹包含MGO求解CEC2017的所有代码,测试函数共30个。每个函数可选择维度分别为:10、30、50与100。直接点击main.m文件直接运行,支持二次开发。
单目标优化:山瞪羚优化算法(Mountain Gazelle Optimizer,MGO)求解CEC2017(提供Matlab代码)_第14张图片

你可能感兴趣的:(智能优化算法,MATLAB,CEC,matlab,优化算法,启发式算法)