一、简介
九种算法(NOA、LSO、SWO、ZOA、EVO、KOA、GRO、GA、PSO)求解CEC2013(提供MATLAB代码) - 知乎 (zhihu.com)
二、部分代码及结果
(1)部分代码
close all
clear
clc
AlgorithmName={'NOA','LSO','SWO','ZOA','EVO','KOA','GRO','GA','PSO'};%算法名称
addpath('./AlgorithmCode/')%添加算法路径
dim =10; %维度
TestProblem=1; %测试函数索引可以选择 1-28
Function_name=['CEC2013-F' num2str(TestProblem)];
[Fun_Name,lb,ub,opt_f,err] = get_fun_info_CEC2013(TestProblem,dim);%获取函数信息
fob=str2func('cec13_0');
SearchAgents_no=50; % 种群大小(可以修改)
Max_iteration=500; % 最大迭代次数(可以修改)
for i=1:size(AlgorithmName,2)%遍历每个算法,依次求解当前问题
Algorithm=str2func(AlgorithmName{i});%获取当前算法名称,并将字符转换为函数
[Best_score,Best_pos,Convergence_curve]=Algorithm(SearchAgents_no,Max_iteration,lb,ub,dim,fobj);%当前算法求解
end
% 画收敛曲线
figure
strColor={'r--','g--','b--','k--','c--','m--','y--','r-','g-','b-','k-','c-','m-','y-'};
title(Function_name)
xlabel('Iteration');
legend(AlgorithmName,'Location','Best')
ylabel('Best score obtained so far');
saveas(gcf,['./Picture/' Function_name '.jpg']) %将图片保存到Picture文件夹下面
(2)部分结果
三、完整MATLAB代码
文件夹内包含完整MATLAB代码及参考文献。点击main.m即可运行。