一、淘金优化算法GRO
淘金优化算法(Gold rush optimizer,GRO)由Kamran Zolf于2023年提出,其灵感来自淘金热,模拟淘金者进行黄金勘探行为。淘金优化算法(Gold rush optimizer,GRO)提供MATLAB代码_IT猿手的博客-CSDN博客
参考文献: K. Zolfi. Gold rush optimizer: A new population-based metaheuristic algorithm. Operations Research and Decisions 2023: 33(1), 113-150. DOI 10.37190/ord230108
二、cec2013简介
在CEC 2013 Special Session on Real-Parameter Optimization中共有28个测试函数,其维度可选择为10/30/50/100。每个测试函数的详细信息如下表所示:
参考文献:
[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.
三、GRO求解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]=GRO(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('GRO')
display(['The best solution obtained is : ', num2str(bestX)]);
display(['The best optimal value of the objective funciton is : ', num2str(fMin)]);
(2)部分结果(以F1,F5和F10为例)