蜣螂优化(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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L