引言
现实世界中的许多工程和科学问题可以归结为优化问题,这是传统方法难以解决的问题。群智能优化算法是一种很有吸引力的算法,可以在保持计算成本合理的情况下解决优化问题。公众号已经推出了定性和定量地展示了优化算法的寻优性能。
前期推文中都以cec2005测试集为例进行展示的,也提到可根据cec2005测试集,扩展到其他cec测试函数。同时也分享了cec2017/ 2018/ 2019/ 2020/ 2021/ 2022测试函数的用法(见:CEC系列:智能优化算法求解CEC2018测试函数(附Matlab代码))。本期推出如何在定性的搜索分布图中绘制其他cec函数的三维图。也就是如何根据cec2005测试集,扩展到其他cec测试函数。
cec2005
cec2005的绘图函数为func_plot。粗略估计:本公众号分享的80%的链接里有此函数。打开func_plot.m可以发现,绘制函数简简单单仅需四步:
1.获取函数信息。将函数名字func_name输入到Get_Functions_details函数中获取函数的信息,lb下限,ub上限,dim维数,fobj目标函数:
2.在变量的范围内取值。因为cec2005每个函数的变量的lb、ub不一样,所以根据每个函数的名字在变量的对应范围内取值。
3.将取得变量值输入到函数中求解。
4.绘制三维函数图
其他cec函数
好了,我们已知道大致的绘图流程,那么就扩展到其他cec函数,以cec2017为例吧。需配合cec2017测试函数,你还不会吗?(附Matlab代码)中的代码使用。
-
照着格式写一个绘图函数,名为func_plot_cec2017,简单明了,不易混淆,方便调用。
-
照着格式写一个函数信息获取函数,名为Get_Functions_cec2017(下载),简单明了,不易混淆,方便调用。
-
cec2017的取值范围都是[-100,100],没有特殊情况(如有特殊情况,照cec2005的处理)。取值部分照抄。
-
cec2017有多个维度,所以根据维度值作为判别。按照cec2005的做法,其余的维数置零。代码部分相当于照抄。
-
绘图部分照抄。
可以发现,不是照着写就是照着抄,并没有什么难度和工作量。
结果展示
参考文献
Matlab代码下载
微信搜索并关注-优化算法侠,或扫描下方二维码关注,以算法名字搜索历史文章即可下载。
320多种基础的群智能优化算法-matlab
175种群智能优化算法python库
求解cec测试函数-matlab
解决12工程设计优化问题-matlab
求解11种cec测试函数-python
解决12种工程设计优化问题-python