九种算法(NOA、LSO、SWO、ZOA、EVO、KOA、GRO、GA、PSO)求解CEC2013(MATLAB代码)

作品简介

一、简介

九种算法(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即可运行。



创作时间: