【优化求解】基于金鹰算法GEO解最优目标matlab源码

251 阅读2分钟

​1 简介

本文提出了一种基于自然启发的群体求解全局优化问题的元启发式算法——金鹰优化器( Golden Eagle Optimizationr,GEO )。GEO的核心灵感是金鹰在其螺旋轨迹的不同阶段调谐速度的智能,用于狩猎。它们在狩猎的初始阶段表现出更多的巡游和寻找猎物的倾向,在最后阶段表现出更多的攻击倾向。一只金鹰调整这两个组件,以在可行的区域以最短的时间捕获最好的猎物。这种行为通过数学建模来突出对全局优化方法的探索和利用。利用33个基准测试函数和一个可扩展性测试对本文算法的性能进行了测试和确认。将结果与其他6种著名算法进行了比较,揭示了GEO的优越性,表明它能有效地找到全局最优,避免局部最优。多目标金鹰优化器( MOGEO )也被提出用于求解多目标问题。MOGEO的性能也在10个多目标基准函数上进行了测试和验证。并与其他两种多目标算法的结果进行了比较,结果表明能更好地逼近真实Pareto最优解。还提供了GEO和MOGEO的软件(工具箱)和源代码,可供公开使用。

2 部分代码

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  
% Golden Eagle Optimizer (GEO) source codes version 1.0
%  
% Developed in:MATLAB 9.6 (R2019a)

% To use this code in your own project 
% remove the line for 'GetFunctionDetails' function 
% and define the following parameters: 
% fun   : function handle to the .m file containing the objective function
% the .m file you define should accept the whole population 'x' 
% as input and return a column vector containing objective function 
% values of all of the population members
% nvars : number of decision/design variables 
% lb   : lower bound of decision variables (must be of size 1 x nvars)
% ub   : upper bound of decision variables (must be of size 1 x nvars)
%

clc
clear all
close all
%% Inputs 
FunctionNumber = 1% 1-23
options.PopulationSize = 50;
options.MaxIterations = 1000;
%% Run Multi-Objective Golden Eagle Optimizer 
[fun,nvars,lb,ub] = GetFunctionDetails (FunctionNumber);
options.AttackPropensity = [0.5 ,   2];
options.CruisePropensity = [1   , 0.5];
[x,fval,ConvergenceCurve] = GEO (fun,nvars,lb,ub, options);
%% Plot results 
PlotResults (fun,lb,ub, FunctionNumber,ConvergenceCurve) 
img =gcf;  %获取当前画图的句柄
print(img, '-dpng', '-r600', './运行结果.png')         %即可得到对应格式和期望dpi的图像

3 仿真结果

4 参考文献

[1]Mohammadi-Balani Abdolkarim et al. Golden eagle optimizer: A nature-inspired metaheuristic algorithm[J]. Computers & Industrial Engineering, 2021, 152

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页