超详细!|优化算法性能测试标准及代码实现

在这里插入图片描述

由于有许多同学对我之前所用的优化算法测试函数的来源及其内容并不清楚,这里作者就给大家整理了5大常用的CEC测试函数集相关内容及其代码实现,当然作者能力有限,若有不当之处也希望与各位一起讨论交流,一起进步。

以上

处理优化问题时,研究单目标优化算法是研究多目标优化算法、约束优化算法等更复杂优化算法的基础。近年来,为了解决优化问题,人们提出许多新型优化算法,进化计算大会因此举办多场关于单目标实参优化竞赛。

IEEE 国际进化计算大会(IEEE Congress on Evolutionary Computation,IEEE CEC)是进化计算领域中最大和最重要的会议之一,为了公平评估算法寻优性能,在优化竞赛中提出了单目标实参数数值优化竞赛的问题定义和评估标准。所有新型进化算法和基于群体的算法都统一对单目标基准问题进行测试。

鉴于最大化与最小化问题可以进行转换,大会定义所有测试函数都是最小化问题,即:Min f(x), 其中,x 为 D 维空间变量,f(x)代表目标函数。

下面作者将介绍CEC2017、CEC2019、CEC2020、CEC2022这几个测试函数集。而CEC2005测试函数集在作者前面的文章中有过介绍,这里不再赘述。

00 目录

1 各CEC测试函数集介绍

2 源码获取

01 各CEC测试函数集介绍

这些测试函数集有四种类型的函数:单峰、多峰、混合和组合函数。单峰函数只有一个最优解,这是用来衡量算法的收敛速度和寻优能力。另外三种情况都有多个最优解,利用这些最优解来测试算法的局部最优逃逸能力和勘探能力等。

1.1 CEC2017

CEC2017测试函数集[1]的使用相当广泛,它对算法有一定挑战性且学术上认可度较高。测试集所有函数都进行了旋转和位移,增加了算法寻优难度。函数主要包含29个测试函数:

其中F1、F3为没有局部最小只有全局最小的单峰函数,这些单峰函数能检验算法的收敛能力;F4-F10为具有局部极值点的多峰函数,这些多峰函数用于测试算法跳出局部最优的能力;F11-F20是经旋转/位移后包含三个或以上的CEC2017基准函数的混合函数,每个子函数被赋予一定权重;F21-F30是由至少三个混合函数或CEC 2017基准函数旋转移位后组成的复合函数,每个子函数有额外偏置值和一个权重,这些组合函数进一步增加了算法的优化难度。(其中原函数集的F2函数被官方删除了,原因是F2不稳定)

表中展示了CEC2017的函数名称、变量范围、最优值在这里插入图片描述

部分函数图像:
在这里插入图片描述

1.2 CEC2019

CEC2019函数集[2]是对元启发式算法的性能进行测试的相当有效的基准函数。在CEC 2019中,F1-F3函数具有不同的维度值和范围,F4-F10函数是10维最小化问题。由于CEC2019测试函数许多都是多峰函数,因此非常具有挑战性。

在这里插入图片描述

部分函数图像:

在这里插入图片描述

1.3 CEC2020

CEC2020函数集[3]由十个相当困难的优化问题组成,它由一个组合的单峰函数F1,三个经过旋转和位移的多峰函数F2-F4,三个混合函数F5-F7,三个复合函数F8-F10组成。每个优化函数都可在多个维度上定义。
在这里插入图片描述

部分函数图像:
在这里插入图片描述

1.4 CEC2022

CEC2022[4]是评价算法性能和验证其求解复杂OP能力的有效方法。它由12个基准函数组成,包括单峰、多峰、混合和复合函数,其中F1是单峰函数,F2-F5是多峰函数,F6-F8是混合函数,其可以是单峰或多峰,F9-F12是复合且多模态的函数。
在这里插入图片描述

部分函数图像:
在这里插入图片描述

1.5 测试函数集的使用

了解了这些基本的测试函数集后,我们还必须知道如何使用测试函数集以合理验证算法性能。通常,可以将改进的算法与一些传统算法(如GA、PSO、GWO、SSA、SMA等)对比,在这些测试函数上运行以检验算法各方面(收敛能力、跳出局部最优能力等)性能,同时为了避免偶然因素的影响,通常会将算法独立运行N次,取一些性能参数如标准差std、平均值mean、最优/差值等使结果具有统计学的意义,进而对比算法性能,通过这些方法即可在一定程度上验证算法的优越性。

如:图片来源文献,文献中列出了均值、最优值、方差,然后根据结果进行排序

在这里插入图片描述

来源:An efficient manta ray foraging optimization algorithm with individual information interaction and fractional derivative mutation for solving complex function extremum and engineering design problems

02源码获取

作者整理了CEC2005、CEC2017、CEC2019、CEC2020、CEC2022的函数调用/绘图的一键实现,代码中以PSO算法为例进行计算。
在这里插入图片描述

其中example_pso.m是主程序,一键运行即可
在这里插入图片描述

​以F1函数为例,运行结果:
在这里插入图片描述

代码获取方式:

在GZH(KAU的云实验台)后台回复:CEC

本文介绍了常用的一些测试函数集及其使用,可以收藏本文作为一个参考工具以便需要时查阅,更多干货可以关注作者不迷路!

参考文献

[1] Wu, G., Mallipeddi, R., & Suganthan, P. N. (2017). Problem definitions and evaluation criteria for the CEC 2017 competition on constrained real-parameter optimization.National University of Defense Technology, Changsha, Hunan, PR China and Kyungpook National University, Daegu, South Korea and Nanyang Technological

University, Singapore, Technical Report.

[2] K. Price, N. Awad, M. Ali, P. Suganthan, Problem definitions and evaluation criteria for the 100-digit challenge special session and competition on single objective numerical optimization, Technical Report, Nanyang Technological University Singapore, 2018.

[3] C. Yue, K. Price, P.N. Suganthan, J. Liang, M.Z. Ali, B. Qu, N.H. Awad,P.P. Biswas, Problem Definitions and Evaluation Criteria for the CEC 2020 Special Session and Competition on Single Objective Bound Constrained Numerical Optimization, Tech. Rep 201911, Comput. Intell. Lab., Zhengzhou Univ., Zhengzhou, China, 2019.

[4] D. Yazdani, J. Branke, M.N. Omidvar, X.D. Li, C.H. Li, M. Mavrovouniotis, T.T. Nguyen, S.X. Yang, X. Yao, IEEE CEC 2022 competition on dynamic optimization problems generated by generalized moving peaks benchmark, (2021).

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/217276.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode:2824. 统计和小于目标的下标对数目 | 模拟+二分】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

广告屏LED屏断电检测远程控制开关方案应用钡铼技术S270

广告屏LED屏断电检测: 广告屏和LED屏在商业和公共场所的广泛应用中扮演着重要角色,但由于断电问题可能导致广告屏无法正常显示,进而影响广告宣传效果和客户体验。而S270作为一种高效稳定的远程控制开关,可以实现广告屏LED屏的断电…

Android : PopupWindow 悬浮框_简单应用

示例图: MainActivity.java package com.example.popupwindow;import androidx.appcompat.app.AppCompatActivity;import android.content.Context; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.LayoutInflat…

HCIA-RS基础-距离矢量路由协议

前言: 动态路由协议根据寻径方式可以分为距离矢量路由协议和链路状态路由协议。本文将详细介绍距离矢量路由协议的原理,并阐述其中一个重要概念——路由环路,同时介绍如何避免路由环路的方法。通过学习本文,您将能够深入理解距离矢…

【21年扬大真题】编写程序,去除掉字符串中所有的星号。

【21年扬大真题】 编写程序&#xff0c;去除掉字符串中所有的星号。 int main() {int i 0;int j 0;char arr[30] {0};char brr[30] {0};printf("请输入一个字符串:");gets(arr);for (i 0;i < 30;i){if (arr[i] ! *) {brr[j] arr[i];j;}}int tmp j;for (i …

ffmpeg下载与配置环境变量

FFmpeg 是一个强大的多媒体框架&#xff0c;可以让用户处理和操纵音频和视频文件。具有易于使用的界面&#xff0c;用户可以在 Windows、Mac 或 Linux Ubuntu 系统上下载 FFmpeg 并将其提取到文件夹中。然后&#xff0c;该软件可以加入 PATH 环境变量中就可以快捷的使用软件了.…

.netcore 获取appsettings

我的开发环境是abpvnext net6.0 。 因为业务需要&#xff0c;从原来老项目net4.5工程里复制了一个报表导出的业务类到net6项目里面&#xff0c;但是他的获取appsettings的代码其实不用想都知道会报错。因为原来framwork时代获取appsettings的方法常见的是 System.Configura…

什么是迁移学习

1 迁移学习概述 迁移学习&#xff08;Transfer Learning&#xff09;是机器学习中的一种方法&#xff0c;它允许模型将从一个任务中学到的知识应用到另一个相关的任务中。这种方法在数据稀缺的情况下尤为有用&#xff0c;因为它减少了对大量标记数据的需求。迁移学习已成为深度…

echarts笛卡尔坐标系热力图当坐标及数据为小数时

// X坐标轴 const xValue [6,6.5,7,7.5,8,8.5,9,9.5,10]; //Y坐标轴 const yValue [1.5,2,2.5,3,3.5,4,4.5,5,5.5,6]; // 需要展示的值【X坐标,Y坐标,展示的数值】 const data [[6.5,2,4], [7, 2.5, 10]] ; // 坐标轴及数值存在小数时&#xff0c;需要进行转化&#xff0c;否…

基于Eclipse+Tomcat+Mysql开发的研究生信息教务系统

基于Eclipse的研究生教务系统 项目介绍&#x1f481;&#x1f3fb; 该研究生教务系统是一款集学生信息管理、学院信息维护、学生类别信息维护、专业信息维护、教师信息导入、课程信息导入及老师信息导入等功能于一体的教育管理软件。它以高效、便捷、准确的方式处理教务管理工作…

vulnhub靶机Aragog-1.0.2

靶机下载&#xff1a;https://download.vulnhub.com/harrypotter/Aragog-1.0.2.ova 主机发现 目标133 端口扫描 端口服务扫描 漏洞扫描 去看web 就一个图片 直接目录扫描 有点东西一个一个看&#xff08;blog里面有东西&#xff09; 这里面直接能看到wordpress 直接用wpscan…

iview/view-design+vue2实现表单校验

1.iview/view-design介绍 iview是一款基于Vue.js的开源UI组件库&#xff0c;提供了丰富的组件和样式&#xff0c;支持响应式布局和多语言环境。它使用了最新的前端技术&#xff0c;如ES6、Webpack和SASS&#xff0c;让开发者可以快速构建高质量的Web应用程序。 View-design是一…