目录

引言

完整Matlab代码下载

该代码一举歼灭所有群智能优化算法在cec2017测试函数的应用


引言

我们在阅读文献时,总是会遇到用一些cec测试函数来测试算法的性能。今天,以cec2017测试函数为例,带你使用CEC测试函数。CEC为IEEE Congress on Evolutionary Computation(国际进化大会)的简称,2017为年份。cec2017共有30个单目标测试函数分别是:单峰函数(F1-F3)、简单多峰函数(F4-F10)、混合函数(F11-F20)和组合函数(F21-F30)。测试维度有2维,10维,30维,50维,100维。CEC2017测试函数相比标准测试函数更加复杂,随着维度的增加求解极其困难。

首先需下载cec2017函数。函数的格式为cpp文件,cec17_func.cpp。在matlab里需要编译。在matlab的命令行输入

mex cec17_func.cpp

图片

编译生成了cec17_func.mexw64文件。这里我们已经为各位下载并编译好了,文末可直接享用

其次,加载cec2017测试函数。cec2017测试函数有30个。cec2017的输入x的数据格式需为列向量,即N*1,调用方式为:

fobj = @(x) cec17_func(x,1);

数字1表示cec2017的第一个函数。当然,可以在1-30中任意选择一个数,就选择了对应的测试函数

如果你的输入数据x是一个行向量,即1*N,调用方式为:

fobj = @(x) cec17_func(x',1);

最后,测试应用。我们以鲸鱼优化算法(WOA获取地址:优化算法-鲸鱼优化算法Whale Optimization Algorithm(附Matlab代码))为例进行测试。算法的参数设置如下:


clc
clear
close all
%%
nPop=50; % 种群数
Max_iter=500; % 最大迭代次数
dim = 2; % 可选 2, 10, 30, 50, 100

%%  选择函数
Function_name=1; % 函数名:1 - 30
[lb,ub,dim,fobj] = Get_Functions_cec2017(Function_name,dim);
%% 调用算法
tic
[Best_score,Best_pos,cg_curve]=WOA(nPop,Max_iter,lb,ub,dim,fobj);
toc

完整Matlab代码下载

该代码一举歼灭所有群智能优化算法在cec2017测试函数的应用

cec2017测试函数,你还不会吗?(附Matlab代码)

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐