目录
引言
完整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代码))为例进行测试。算法的参数设置如下:
clcclearclose 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代码)