当前位置:   article > 正文

CEC2005智能优化算法常用指标统计,箱线图去白边,增删算法功能再升级!这篇不看血亏!科研神助力。...

cec2005

声明:对于作者的原创代码,禁止转售倒卖,违者必究!

很早之前出了一篇关于CEC2005函数集的智能算法指标一键统计的文章,然而,该代码目前仍有很多不足。

比如:箱线图子图的大小不一致,很丑,根本没办法直接粘贴在论文中;

比如:添加或者删除对比算法很麻烦,对于小白来说,一不小心就会出错!

比如:没有将箱型图的白边去除;

比如:能不能再添加wilcoxon符号检验等功能。

比如:没有平均适应度收敛曲线绘制功能。

本期推文直接解决上面问题!教小白也会直接上手该工具,不仅可以一键复制精美的结果图,且可以直接获得各种统计结果的excel表格。

接下来展示一下相比于之前文章,代码升级了哪些东西 。

升级功能1:箱线图的子图大小调整一致,去除多余白边,并直接保存高清图到当前文件夹,示例如下:

9eae521d1e949fd1e8af218481f98517.jpeg

8bbe4b0c832d646f0103a17a99c6aa6e.jpeg

02a140137e284f3141b0b829d6e84ad9.jpeg

aa9f49771db1c978efe87cbac8e4e130.jpeg

8b5196c684604244d36e18ecb0841369.jpeg

声明!以上图片,作者未经过后期任何处理,纯粹是MATLAB自己跑出来的,大小,配色是不是非常标准!

代码目录如下:

0c205c28cd9c01f35b9d8b57e1e4ce1d.png

代码跑完后,可以直接在当前目录生成高清的箱线图,方便一键粘贴到论文中!

升级功能2:任意增删对比算法

主函数代码如下,十分简单明了!注释详尽!只需要在这里添加或者删除你想要对比的算法,其他地方都不用动!这样真的很方便不会改代码的同学了!

  1. clc
  2. clear
  3. close all
  4. % 想添加或者删除算法的,就对下面的Algorithms进行增加或删除即可
  5. % 每个算法的格式要固定,以蜣螂算法为例:
  6. % [fMin , bestX, Convergence_curve ] = DBO(pop, M,c,d,dim,fobj )
  7. % 返回值的顺序必须依次为:最佳值,最佳值对应的位置,收敛曲线
  8. % 输入值顺序必须依次为:种群个数,迭代次数,下限值,上限值,维度,问题函数
  9. % 搜索公众号《淘个代码》,已将推荐的大部分智能优化算法改成如上格式,方便大家一遍比较!
  10. Algorithms = {'ASFSSA','SSA','PSO','GWO','DBO','HBA','SABO','WOA','BKA'}; %一般将第一个算法设置为改进的算法,后面的都是一些原始基本的算法
  11. %可以随意添加算法,或者减少算法个数!
  12. addpath(genpath(pwd));
  13. pop_size=30; %种群数目
  14. max_iter=300; %迭代次数
  15. runs = 30; %每个算法跑30
  16. box_pp = 1; %可选1,或者0。当等于1,绘制箱型图,否则不绘制
  17. Wilcoxon_rank_sum_test = 1; %可选1,或者0。当等于1,计算Wilcoxon秩和检验,否则不计算
  18. Wilcoxon_signed_rank_test= 1; %可选1,或者0。当等于1,计算Wilcoxon符号检验,否则不计算
  19. Average_fit_pp = 1; %画每个算法的平均适应度函数曲线
  20. %% 调用函数进行统计
  21. % 该函数可以实现绘制箱线图,并在当前文件夹生成高清图;
  22. % 统计5种指标结果,直接保存为表格。
  23. % 统计Wilcoxon秩和检验,直接保存为表格。
  24. % 统计Wilcoxon符号检验,直接保存为表格。
  25. Average_fit = CEC2005_Statistics(Algorithms,pop_size,max_iter,runs,box_pp,Wilcoxon_rank_sum_test,Wilcoxon_signed_rank_test);
  26. % 返回值Average_fit是所有算法在所有函数跑完后的平均适应度收敛曲线。
  27. % Average_fit的每一行代表一个函数,一共有23个函数。每一列代表一个算法,顺序与Algorithms 一致。
  28. %% 以下以函数F1为例,画一个F1函数的平均收敛曲线,其他函数改func_num变量即可!
  29. figure('Name', '平均收敛曲线', 'Color', 'w','Position', [150 150 500 350])
  30. func_num = 1; %1表示第一个函数,2表示第二个函数,以此类推,改这个func_num变量即可改变函数。
  31. for i = 1:length(Algorithms)
  32. semilogy(1:1:max_iter,cell2mat(Average_fit(func_num,i)))
  33. hold on
  34. end
  35. legend(Algorithms)
  36. title(['平均适应度收敛曲线:F',num2str(func_num)])
  37. xlabel('迭代次数')
  38. ylabel('平均适应度')

只需要更改 Algorithms 变量即可!一般将Algorithms  变量第一个位置设置为自己改进的算法,后面几个位置,想加几个算法就加几个算法!

升级3:一键选择是否绘制箱线图,是否计算秩和检验等

看上述代码可知,只要方便的将几个变量进行简单设置即可随意切换!

升级4:增加wilcoxon符号检验功能。

5a3ed1333d8dca357f93ea3cdb365c03.png

升级5:添加平均适应度收敛曲线绘制功能

很多小伙伴可能不了解这个平均适应度收敛曲线是什么意思。众所周知,任何智能优化算法都有一定的随机性,一个算法偶尔一次寻优出很好的值并不能直接说明该算法就很优秀,因此可以对算法多次运行,调整代码中的runs次数,记录每一个寻优的迭代曲线,并最后求一个平均值,这样画出来的曲线更能体现一个算法的优劣。

564172380045f288e27c765d3aa74734.png

9019449975cc77d13528e05829737ebe.png

678bfa4df1a8274256a2dd87307fb0e7.png

其他的一些基本功能,像五种指标统计(最佳值,标准差,平均值,中值,最差值),秩和检验的结果等这里就不再赘述了!可以去看以前介绍的文章详细的了解一下:关于CEC2005函数集的智能算法指标一键统计

注意!!

为保护代码版权,本次代码中的关键函数CEC2005_Statistics已加密为P文件,介意勿拍!对于只科研的小伙伴来讲,本期推出的代码已足够可用,无需学习函数编写方法,直接当做工具用即可!

重磅福利:之前购买过CEC2005指标统计的同学,不用多花一分钱~直接原地下载!

后续会升级更新其他年份的CEC函数指标统计,敬请期待~~

代码获取

https://mbd.pub/o/bread/ZZWTm5pv

也可直接购买CEC函数指标统计全家桶:

https://mbd.pub/o/bread/mbd-ZZWUm5pp

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/765528
推荐阅读
相关标签
  

闽ICP备14008679号