蜣螂优化(DBO)算法的5种最新变体(含MATLAB代码)

2024-01-18 02:40

本文主要是介绍蜣螂优化(DBO)算法的5种最新变体(含MATLAB代码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

公众号原文链接:蜣螂优化(DBO)算法的5种最新变体(含MATLAB代码)

参考文献[1]中的蜣螂优化(Dung Beetle Optimizer, DBO)算法是2022年11月27日提出的,到今天才提出10个月不到,却受到了许多人的推崇。它是由东华大学的沈波教授团队提出的一种全新的群智能优化算法。麻雀搜索算法(Sparrow Search Algorithm, SSA)也是由这个团队提出。DBO算法确实性能优越,并且设计也很新颖,不得不说是一个难得的好算法。尤其是在近几年进化算法领域的水文暴增的情况下,DBO算得上比较完美的一个算法了。正因为它优秀,所以短短时间内就被许多人研究、引用。

图片

关于DBO算法的原理讲解,可看我之前的推送:

蜣螂优化(DBO)算法(含MATLAB代码)

这里展示一下DBO在WOS上的引用数据,如下图所示。

图片

目前DBO已经存在了一些变体。如果想改进DBO算法的同学,免不了要将自己改进的算法和其他DBO变体进行对比。这里我总结了目前DBO最新的5种变体算法,都是刚提出不久的,并且代码复现的效果与文章相近。这5种变体的详细信息如下表所示。

算法名年份期刊期刊信息
融合Levy飞行和T分布扰动的蜣螂优化(IDBO) [2]2023电力系统及其自动化学报北核、CSCD
引入周期突变机制的蜣螂优化(IDBO) [3]2023电子测量与仪器学报北核、CSCD
多策略增强的蜣螂优化(MDBO)  [4]2023Symmetry-Basel

JCR Q2

中科院4区

基于量子计算和多策略融合的蜣螂优化(QHDBO)  [5]2023Expert Systems with Applications

JCR Q1

中科院1区 TOP

改进正弦算法引导的蜣螂优化(MSADBO)  [6]2023计算机工程与应用北核、CSCD

下面,我把5种DBO变体的改进策略简要概括,并将其效果进行展示。

融合Levy飞行和T分布扰动的蜣螂优化(IDBO)

3个改进策略:Levy飞行、t分布策略、灰狼搜索策略

IDBO  vs DBO

(去公众号看视频)

引入周期突变机制的蜣螂优化(IDBO)

1个改进策略:周期突变机制

实际上也可以拆分为5个改进策略,因为周期突变是对蜣螂种群每个角色都有使用的,即:滚球、跳舞、繁殖、觅食和偷窃。

IDBO  vs DBO

(去公众号看视频)

多策略增强的蜣螂优化(MDBO)

3个改进策略:生成反向解、边界违规处理、盗窃蜣螂位置更新公式的改进。

MDBO  vs DBO

(去公众号看视频)

基于量子计算和多策略融合的蜣螂优化(QHDBO)

4个改进策略:佳点集初始化策略、收敛因子改进、全局搜索和局部探索平衡策略 基于量子计算的t分布变异

QHDBO  vs DBO

(去公众号看视频)

改进正弦算法引导的蜣螂优化(MSADBO)

3个改进策略:混沌映射初始化种群、引入改进的正弦算法改进DBO、自适应高斯-柯西混合变异扰动

MSADBO  vs DBO

(去公众号看视频)

需要说明一下的是,CEC2005测试集中的f9和f11是用plot画的,因为DBO和5种变体很快就收敛到理论最优值0了。而semilogy画的是y轴的对数,因此,若曲线收敛到0,semilogy是画不出来,需改用plot。

(怎么说呢,我觉得DBO会是第二个麻雀搜索算法。本身认可度高,效果也好,稍作改进也许就能在测试集上比其他算法优越。所以可以抓紧时间搞一搞,发论文还是不难的。)

MATLAB代码

DBO及5种变体跑CEC2005的代码链接如下:

标准DBO公众号里有链接
融合Levy飞行和T分布扰动的蜣螂优化(IDBO)公众号里有链接
引入周期突变机制的蜣螂优化(IDBO)公众号里有链接
多策略增强的蜣螂优化(MDBO)公众号里有链接
基于量子计算和多策略融合的蜣螂优化(QHDBO)公众号里有链接
改进正弦算法引导的蜣螂优化(MSADBO)公众号里有链接

关于其他智能优化算法的MATLAB代码,可访问我的个人主页查看:

(公众号里有链接)

可通过下方链接下载代码清单,在里面寻找需要的算法代码,然后去对应的链接获取。清单会同步更新,一旦有新的代码,就可以在清单里找到。清单里面有部分代码是开源获取的。可随时免费下载。

链接:https://pan.baidu.com/s/1SFDMplrL7tiqGZlrpOSGYg
提取码:8023

(最近也更新了一些代码,但没时间一一做成推送,可以自己到代码清单中去寻找。里面有一些代码是开源的,可以直接下载。)

参考文献

[1]  Xue J, Shen B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization[J]. The Journal of Supercomputing, 2022: 1-32.

[2] 李斌,高鹏,郭自强.改进蜣螂算法优化LSTM的光伏阵列故障诊断[J/OL].电力系统及其自动化学报:1-10[2023-09-21].DOI:10.19635/j.cnki.csu-epsa.001317.

[3]  周亚中,何怡刚,邢致恺等.基于IDBO-ARIMA的电力变压器振动信号预测[J/OL].电子测量与仪器学报:1-11[2023-09-20]. http://kns.cnki.net/kcms/detail/11.2488.TN.20230913.1840.022.html.

[4]  Shen Q, Zhang D, Xie M, et al. Multi-Strategy Enhanced Dung Beetle Optimizer and Its Application in Three-Dimensional UAV Path Planning[J]. Symmetry, 2023, 15(7): 1432.

[5]  Zhu F, Li G, Tang H, et al. Dung beetle optimization algorithm based on quantum computing and multi-strategy fusion for solving engineering problems[J]. Expert Systems with Applications, 2023: 121219.

[6]  潘劲成,李少波,周鹏等.改进正弦算法引导的蜣螂优化算法[J/OL].计算机工程与应用:1-21[2023-09-10].http://kns.cnki.net/kcms/detail/11.2127.TP.20230626.1952.024.html

这篇关于蜣螂优化(DBO)算法的5种最新变体(含MATLAB代码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/617898

相关文章

深入理解Mysql OnlineDDL的算法

《深入理解MysqlOnlineDDL的算法》本文主要介绍了讲解MysqlOnlineDDL的算法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小... 目录一、Online DDL 是什么?二、Online DDL 的三种主要算法2.1COPY(复制法)

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

Vue实现路由守卫的示例代码

《Vue实现路由守卫的示例代码》Vue路由守卫是控制页面导航的钩子函数,主要用于鉴权、数据预加载等场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录一、概念二、类型三、实战一、概念路由守卫(Navigation Guards)本质上就是 在路

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

Python屏幕抓取和录制的详细代码示例

《Python屏幕抓取和录制的详细代码示例》随着现代计算机性能的提高和网络速度的加快,越来越多的用户需要对他们的屏幕进行录制,:本文主要介绍Python屏幕抓取和录制的相关资料,需要的朋友可以参考... 目录一、常用 python 屏幕抓取库二、pyautogui 截屏示例三、mss 高性能截图四、Pill

使用MapStruct实现Java对象映射的示例代码

《使用MapStruct实现Java对象映射的示例代码》本文主要介绍了使用MapStruct实现Java对象映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、什么是 MapStruct?二、实战演练:三步集成 MapStruct第一步:添加 Mave