当前位置: 首页 > news >正文

超详细!CEC2017测试函数最全公式图像介绍与调用方法 Matlab代码免费获取

        声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~

目录

函数目录

调用方法

公式介绍

完整代码


今天给大家带来一期CEC2017测试函数的代码与公式介绍。CEC是国际进化大会(IEEE Congress on Evolutionary Computation)的简称,后面的数据代表年份。CEC2017则是2017年的出炉的测试函数,这些函数加入了旋转、偏移等操作,防止了过拟合问题,因此很多SCI论文都用到了CEC2017函数。

本期代码免费赠送,需要代码的小伙伴可直接拉到最后!!!

CEC2017共有29个函数(其余网上版本说30个的都是错误版本!其中F2已被官方删除),其中F1-F2为单峰函数、F3-F9为简单多峰函数、F10-F19为混合函数,F20-29为组合函数。维度可选10维、30维、50维、100维。随着维度的增加,该系列函数的求解将变得极其困难,运行速度也将非常缓慢。

函数目录

以下为CEC2017函数的目录:

这里也列举官方生成的部分函数图像供大家参考与感受(F1-F6),首先是以2维度为例的3D函数图:

还有等高线图(F3-F8):

调用方法

这里以PSO算法为例,给小伙伴讲解一下如何使用CEC2017函数,首先,下载文末提供的文件夹,注意一定要全部下载!!

其他cpp、mex文件都属于CEC2017函数内部文件,无需移动。您只需将自己的算法放入文件夹中,我这里以PSO算法为例演示调用。

随后,打开main文件,将所有出现PSO的地方查找替换为自己的算法名称即可,注意需要函数输入输出一致即可调用,这里展示一下部分代码:

%% 清除环境变量
clear
clc
close all
addpath input_data
​
%% 参数设置
Max_iteration = 500;           % 最大迭代次数
N = 30;                        % 种群规模
Function_name = 'F10';         % CEC2017测试函数: 29个测试函数(F1、F3~F30) (F2有问题多余,不要测试它)
% 加载所选基准函数的详细信息
[lb, ub, dim, fobj] = CEC2017(Function_name);
​
%% 优化
% 初始化种群位置
X = initialization(N, dim, ub, lb);
[Best_score, Best_pos, PSO_Curve] = PSO(X, N, Max_iteration, lb, ub, dim, fobj);
​
%% 绘图
% 画出目标函数值变化曲线图
figure;
t = 1:Max_iteration;
semilogy(t, PSO_Curve, 'r-', 'linewidth', 2); 
title(Function_name); 
xlabel('Iteration'); 
ylabel('Best score');
axis fill
% grid on
box on
legend('PSO');
set(gcf,'color','w')
​
%% 显示结果
display(['The optimal solution of ', Function_name, ' is: ', num2str(Best_pos)]);
display(['The optimal value of ', Function_name, ' is : ', num2str(Best_score)]);

可以看到,代码注释非常清晰,函数也改成了大家输入的调用格式,同时,可自行更改函数、最大迭代次数与种群规模,方便大家测试不同的函数。

这里以函数F10,种群规模为30,迭代500次为例,最后,输出迭代曲线图与最优结果:

PSO算法大概在160次达到收敛,命令行窗口也会显示取得的最优值为5805,非常方便,适合新手小白。

公式介绍

很多小伙伴奇怪为啥很多论文里没有CEC2017的公式介绍,那是因为CEC2017的各个函数均由各个基础函数构成。举个例子,单峰和简单多峰函数F1-F9,就是由9个基础函数经过偏移和旋转组成:

而混合函数和组合函数,则是由多个基础函数构成,构成方式如下:

刚刚这张表的N,则代表基础函数的数量:

如果N=4,就表示由4个基础函数组合而成,这也是为什么CEC2017里需要用到mex等复杂文件等原因。

所以,CEC2017通常很难写出确切的表达式。但是,基准函数的公式在CEC2017官方的文件内是提供的,我这边也提供给大家,一共19个:

完整代码

如果需要免费获得文中的完整测试代码,只需点击下方小卡片,再后台回复关键字,不区分大小写:

CEC2017

其他更多免费代码链接:更多免费代码链接


http://www.mrgr.cn/news/29403.html

相关文章:

  • 项目技术栈-解决方案-web3去中心化
  • 深入探讨 MySQL 配置与优化:从零到生产环境的最佳实践20241112
  • 10款PDF翻译工具的探索之旅:我的使用经历与工具特色!!
  • 【数据结构 | C++】字符串关键字的散列映射
  • Request和Response
  • 【在Linux世界中追寻伟大的One Piece】多路转接epoll
  • 【LeetCode】每日一题 2024_9_18 坐上公交的最晚时间(排序,模拟)
  • 【Python】从基础到进阶(八):文件操作与上下文管理
  • YOLOv9改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量
  • C++入门基础(上)
  • ??Ansible——ad-hoc
  • 活动系统开发之采用设计模式与非设计模式的区别-后台功能总结
  • 函数题 6-9 统计个位数字【PAT】
  • 建立这一新框架以应对人才紧缺时期的敏捷内容运营
  • 论文速递 | 基于MIC-ICEEMD-RIME-DHKELM的碳排放预测模型研究
  • 解决nginx代理SSE接口的响应没有流式返回
  • MUNIK谈ASPICE系列专题分享(一)什么是ASPICE?
  • 农产品交易平台的设计与实现
  • 该州允许AI帮助裁定失业申请
  • linux 内核代码学习(九)--Linux内核启动和文件系统
  • 【工具】Java Excel转图片
  • 基于SpringBoot的在线教育平台的设计与实现
  • 高密原型验证系统解决方案(上篇)
  • 【Elasticsearch系列十一】聚合 DSL API
  • html,css基础知识点笔记(二)
  • UE4_后期处理六—复古电视效果