赞
踩
声明:对于作者的原创代码,禁止转售倒卖,违者必究!
很早之前出了一篇关于CEC2005函数集的智能算法指标一键统计的文章,然而,该代码目前仍有很多不足。
比如:箱线图子图的大小不一致,很丑,根本没办法直接粘贴在论文中;
比如:添加或者删除对比算法很麻烦,对于小白来说,一不小心就会出错!
比如:没有将箱型图的白边去除;
比如:能不能再添加wilcoxon符号检验等功能。
比如:没有平均适应度收敛曲线绘制功能。
本期推文直接解决上面问题!教小白也会直接上手该工具,不仅可以一键复制精美的结果图,且可以直接获得各种统计结果的excel表格。
接下来展示一下相比于之前文章,代码升级了哪些东西 。
升级功能1:箱线图的子图大小调整一致,去除多余白边,并直接保存高清图到当前文件夹,示例如下:
声明!以上图片,作者未经过后期任何处理,纯粹是MATLAB自己跑出来的,大小,配色是不是非常标准!
代码目录如下:
代码跑完后,可以直接在当前目录生成高清的箱线图,方便一键粘贴到论文中!
升级功能2:任意增删对比算法
主函数代码如下,十分简单明了!注释详尽!只需要在这里添加或者删除你想要对比的算法,其他地方都不用动!这样真的很方便不会改代码的同学了!
- clc
- clear
- close all
- % 想添加或者删除算法的,就对下面的Algorithms进行增加或删除即可
- % 每个算法的格式要固定,以蜣螂算法为例:
- % [fMin , bestX, Convergence_curve ] = DBO(pop, M,c,d,dim,fobj )
- % 返回值的顺序必须依次为:最佳值,最佳值对应的位置,收敛曲线
- % 输入值顺序必须依次为:种群个数,迭代次数,下限值,上限值,维度,问题函数
- % 搜索公众号《淘个代码》,已将推荐的大部分智能优化算法改成如上格式,方便大家一遍比较!
- Algorithms = {'ASFSSA','SSA','PSO','GWO','DBO','HBA','SABO','WOA','BKA'}; %一般将第一个算法设置为改进的算法,后面的都是一些原始基本的算法
- %可以随意添加算法,或者减少算法个数!
- addpath(genpath(pwd));
- pop_size=30; %种群数目
- max_iter=300; %迭代次数
-
-
- runs = 30; %每个算法跑30次
- box_pp = 1; %可选1,或者0。当等于1,绘制箱型图,否则不绘制
- Wilcoxon_rank_sum_test = 1; %可选1,或者0。当等于1,计算Wilcoxon秩和检验,否则不计算
- Wilcoxon_signed_rank_test= 1; %可选1,或者0。当等于1,计算Wilcoxon符号检验,否则不计算
- Average_fit_pp = 1; %画每个算法的平均适应度函数曲线
- %% 调用函数进行统计
- % 该函数可以实现绘制箱线图,并在当前文件夹生成高清图;
- % 统计5种指标结果,直接保存为表格。
- % 统计Wilcoxon秩和检验,直接保存为表格。
- % 统计Wilcoxon符号检验,直接保存为表格。
- Average_fit = CEC2005_Statistics(Algorithms,pop_size,max_iter,runs,box_pp,Wilcoxon_rank_sum_test,Wilcoxon_signed_rank_test);
- % 返回值Average_fit是所有算法在所有函数跑完后的平均适应度收敛曲线。
- % Average_fit的每一行代表一个函数,一共有23个函数。每一列代表一个算法,顺序与Algorithms 一致。
-
-
- %% 以下以函数F1为例,画一个F1函数的平均收敛曲线,其他函数改func_num变量即可!
- figure('Name', '平均收敛曲线', 'Color', 'w','Position', [150 150 500 350])
- func_num = 1; %1表示第一个函数,2表示第二个函数,以此类推,改这个func_num变量即可改变函数。
-
-
- for i = 1:length(Algorithms)
- semilogy(1:1:max_iter,cell2mat(Average_fit(func_num,i)))
- hold on
- end
- legend(Algorithms)
- title(['平均适应度收敛曲线:F',num2str(func_num)])
- xlabel('迭代次数')
- ylabel('平均适应度')
只需要更改 Algorithms 变量即可!一般将Algorithms 变量第一个位置设置为自己改进的算法,后面几个位置,想加几个算法就加几个算法!
升级3:一键选择是否绘制箱线图,是否计算秩和检验等
看上述代码可知,只要方便的将几个变量进行简单设置即可随意切换!
升级4:增加wilcoxon符号检验功能。
升级5:添加平均适应度收敛曲线绘制功能
很多小伙伴可能不了解这个平均适应度收敛曲线是什么意思。众所周知,任何智能优化算法都有一定的随机性,一个算法偶尔一次寻优出很好的值并不能直接说明该算法就很优秀,因此可以对算法多次运行,调整代码中的runs次数,记录每一个寻优的迭代曲线,并最后求一个平均值,这样画出来的曲线更能体现一个算法的优劣。
其他的一些基本功能,像五种指标统计(最佳值,标准差,平均值,中值,最差值),秩和检验的结果等这里就不再赘述了!可以去看以前介绍的文章详细的了解一下:关于CEC2005函数集的智能算法指标一键统计
注意!!
为保护代码版权,本次代码中的关键函数CEC2005_Statistics已加密为P文件,介意勿拍!对于只科研的小伙伴来讲,本期推出的代码已足够可用,无需学习函数编写方法,直接当做工具用即可!
重磅福利:之前购买过CEC2005指标统计的同学,不用多花一分钱~直接原地下载!
后续会升级更新其他年份的CEC函数指标统计,敬请期待~~
代码获取
https://mbd.pub/o/bread/ZZWTm5pv
也可直接购买CEC函数指标统计全家桶:
https://mbd.pub/o/bread/mbd-ZZWUm5pp
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。