目录
该代码一举歼灭所有群智能优化算法在cec2018测试函数的应用
引言
通常需要用cec测试函数对一个新方法的性能进行多方位的验证。各大公众号和博主将开源的cec测试函数和群智能优化算法系列进行高价售卖,给小伙伴们带来一些获取难度。鉴于此,本号前几期已分享了多个cec测试函数(cec2017、cec2019、cec2020、cec2021、cec2022)测试函数的快捷用法及matlab代码下载压缩包。
那么,本期在前期的基础上,继续照猫画虎推出cec2018测试函数的使用及matlab代码,另应小伙伴的要求,补充了一键跑完cec2018所有30个函数,并将结果保存在excel中,1分钟让你学会。
该cec2018测试函数共有30个单目标测试函数,搜索区间都在[-100,100]之间。所有的测试函数都是解决最小化问题,D为维数(可选 2维, 10维, 15维, 20维,30维,50维,100维),如下形式:
更多关于cec2018测试函数的信息,请百度或参阅相应的文献。
1. 下载cec2018函数
cec2018函数的格式为cpp文件,cec18_func.cpp。在matlab里需要编译。在matlab的命令行输入:
mex cec18_func.cpp
提示MEX 已成功完成,编译生成了cec18_func.mexw64文件即可。这里我们已经为各位小伙伴下载并编译好了,文末可直接享用。
2. 加载cec2018测试函数
cec2018测试函数有30个,输入x的数据格式需为列向量,即N*1,调用方式为:
fobj = @(x) cec18_func(x,1);
数字1表示cec2018测试函数中的第一个函数。当然,在1-30中任意选择一个数,选择对应的测试函数。如果你的输入数据x是一个行向量,即1*N,调用方式为:
fobj = @(x) cec18_func(x',1);
考虑到大部分优化算法中x的格式为(nPop种群数 * Dim维度),因此,我们采用了第二种fobj的调用方式。如果遇到的x是(Dim维度 * nPop种群数),还需要小伙伴自行修改成第一种方式。
3. 调用算法测试应用
用以下3个算法简单试验一下:鲸鱼优化算法WOA,哈里斯鹰优化算法HHO,灰狼优化算法GWO。
-
鲸鱼优化算法(WOA下载地址:速来下载!超320种基础优化算法!-Matlab版(截至2023.12.02))
-
哈里斯鹰优化算法(HHO下载地址:优化算法-哈里斯鹰优化算法Harris hawks optimization(附Matlab代码))
-
灰狼优化算法(GWO下载地址:优化算法-灰狼优化算法 Grey Wolf Optimizer(附Matlab代码))
4. 测试结果简单展示
维度dim = 10 结果: