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

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

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

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

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

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

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

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

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

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

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

9eae521d1e949fd1e8af218481f98517.jpeg

8bbe4b0c832d646f0103a17a99c6aa6e.jpeg

02a140137e284f3141b0b829d6e84ad9.jpeg

aa9f49771db1c978efe87cbac8e4e130.jpeg

8b5196c684604244d36e18ecb0841369.jpeg

声明!以上图片,作者未经过后期任何处理,纯粹是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符号检验功能。

5a3ed1333d8dca357f93ea3cdb365c03.png

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

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

564172380045f288e27c765d3aa74734.png

9019449975cc77d13528e05829737ebe.png

678bfa4df1a8274256a2dd87307fb0e7.png

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

注意!!

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

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

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

代码获取

点击下方下卡片获取!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淘个代码_

不想刀我的可以选择爱我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值