CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数

一、能量谷优化算法EVO

能量谷优化算法(Energy valley optimizer,EVO)是MahdiAzizi等人于2023年提出的一种新颖的元启发式算法,其灵感来自关于稳定性和不同粒子衰变模式的物理原理。能量谷优化算法(Energy valley optimizer,EVO)_IT猿手的博客-CSDN博客

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数_第1张图片

参考文献

[1]Azizi, M., Aickelin, U., A. Khorshidi, H. et al. Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization. Sci Rep 13, 226 (2023). Energy valley optimizer: a novel metaheuristic algorithm for global and engineering optimization | Scientific Reports

二、cec2013简介

在CEC 2013 Special Session on Real-Parameter Optimization中共有28个测试函数,其维度可选择为10/30/50/100。每个测试函数的详细信息如下表所示:

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数_第2张图片

参考文献:

[1] Liang J J , Qu B Y , Suganthan P N ,et al.Problem Definitions and Evaluation Criteria for the CEC 2013 Special Session on Real-Parameter Optimization[J]. 2013.

三、EVO求解CEC2013

代码中测试不同的函数修改Function_name的值即可,每个函数的维度dim可选择为10/30/50/100,种群大小SearchAgents_no和最大迭代次数Max_iteration均可根据需要修改。

(1)部分代码

%%
close all
clear 
clc
Function_name=1; %测试函数可以选择 1-28
dim=10;%维度可以选择 10/30/50/100
SearchAgents_no=100; % 种群大小(可以自己修改)
Max_iteration=1000; % 最大迭代次数(可以自己修改)
[Fun_Name,lb,ub,opt_f,err] = get_fun_info_CEC2013(Function_name,dim);
fob=str2func('cec13_0');
fobj=@(x)Fun(x,fob,Function_name,opt_f);
[fMin,bestX,curve]=EVO(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);
figure
plot(curve,'Color','r','linewidth',2.5)
title(Fun_Name)
xlabel('Iteration');
ylabel('Best score obtained so far');
grid on
legend('EVO')
display(['The best solution obtained  is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton is : ', num2str(fMin)]);

(2)部分结果(以F1,F5和F10为例)

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数_第3张图片

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数_第4张图片

CEC2013(MATLAB):能量谷优化算法EVO求解CEC2013的28个函数_第5张图片

四、完整MATLAB代码

你可能感兴趣的:(CEC,MATLAB,IT技术,matlab,算法,开发语言,cec2013)