智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)

2023-11-08

引言
小时候,蜣螂还是比较多见的,还顽皮地将粪球给它弄走,或者给它来点障碍。现在放牛的几乎看不到了,蜣螂没东西可推了,也慢慢从我们的视线中消失了。

DBO介绍

2022年11月27日,东华大学沈波教授团队,继麻雀搜索算法(Sparrow Search Algorithm,SSA)之后,又提出了一种全新的群体智能优化算法——蜣螂优化(Dung beetle optimizer,DBO),主要模拟了蜣螂的「滚球、跳舞、觅食、偷窃和繁殖行为」。

1 启发(Inspiration 灵感)

蜣螂,又称屎壳郎,以动物的粪便为食(口味很独特啊)。众所周知,屎壳郎有一个有趣的习惯,就是把粪便揉成球,滚动到可靠的地方藏起来(挺护食),然后再慢慢吃掉。
在这里插入图片描述
蜣螂可以滚一个比自身大得多的粪球,并且可以利用天体的线索(特别是太阳、月亮和偏振光)来导航,使粪球沿直线滚动;然而,如果完全没有光源(也就是说,完全黑暗),蜣螂的路径就不再是直线,而是弯曲的,有时甚至略圆。许多自然因素(如风和不平坦的地面)会导致蜣螂偏离原来的方向。此外,蜣螂在滚动过程中很可能会遇到障碍物,无法前进。为此,蜣螂通常会爬到粪球上面跳舞(包括一系列的旋转和停顿),这决定了它们的运动方向。

从蜣螂的生活方式中可以观察到获得粪球有以下两个主要目的:(1)有些粪球是用来产卵和养育下一代的;(2)其余的则用作食物。具体来说,蜣螂把粪球埋起来,雌性蜣螂在粪球里产卵。需要注意的是,粪球不仅是幼虫的生长场所,而且为幼虫提供了生存所必需的食物。因此,粪球对蜣螂的生存起着不可替代的作用。

研究学者主要就是基于蜣螂以上生活习性,受其滚球、跳舞、觅食、偷窃和繁殖行为的启发,而提出了蜣螂优化算法,进行全局搜索和局部利用。

2 数学模型(The structure and the algorithm)

2.1 滚球

根据上面的描述,我们知道蜣螂在滚动过程中需要通过天体线索来导航,以保持粪球在直线上滚动。为了模拟滚动球的行为,需要蜣螂在整个搜索空间中沿着给定的方向移动。如下图所示,可以看出,蜣螂利用太阳导航,红色箭头表示滚动方向。
在这里插入图片描述
文章中,作者假定光源强度也会影响蜣螂路径。在滚动过程中,按照如下对滚球屎壳郎的位置进行更新:
在这里插入图片描述
在这里插入图片描述
算法流程

2.2 跳舞

当蜣螂遇到障碍物而无法前进时,它会通过跳舞来重新定向自己,以获得新的路线。
在这里插入图片描述
为了模拟舞蹈行为,作者使用「正切函数」(只考虑 [0, pi] 区间内的值)得到新的滚动方向。一旦蜣螂成功地确定了一个新的方向,它应该继续向后滚动球。因此,蜣螂的位置按如下更新:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 繁殖

在自然界中,粪球被蜣螂滚到安全的地方并藏起来(见图4)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 觅食

一些成年屎壳郎会从地下钻出来寻找食物,如下图。
在这里插入图片描述
在这里插入图片描述

2.4 偷窃

有一些蜣螂,被称为小偷,会从其他蜣螂那里偷粪球,如下图。
在这里插入图片描述
在这里插入图片描述

3 算法流程

基于以上讨论,蜣螂优化算法伪代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
之后,根据不同类型的代理,选择合适的方式更新滚球蜣螂、卵球、小蜣螂和小偷的位置。
在这里插入图片描述

参考文献与链接(References)

  1. Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022). https://doi.org/10.1007/s11227-022-04959-6
  2. 智能优化算法(源码)—蜣螂优化算法(Dung beetle optimizer,DBO)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO) 的相关文章

  • 第四次作业

    作业要求 https edu cnblogs com campus hljkj CS201801 homework 2523 预习 1 数组视频全看了 2 学到了一维数组和二维数组 如何定义使用数组 3 数组的排序 不能熟练使用二维数组 只

随机推荐

  • 微信小程序 七天签到组件

    组件效果 组件gitee地址 https gitee com liu bao yi sign in 使用 1 将dk calendar文件夹放进components文件夹内 2 页面json文件引入该组件 usingComponents d
  • 【深入理解Kafka系列】第五章 日志存储

    前几章已经讲解了kafka的基本知识 我们已经能较好的用kafka来完成基本的开发任务 接下来了解一下内部的一些细节 便于知道相关的原理 本章主要讲kafka日志存储相关的知识 1 文件目录布局 回顾之前所学的知识 Kafka 中的消息是以
  • 在ESP32/ESP8266上使用MicroPython利用MQTT发布BME280传感器数据(温度,湿度和压力)

    了解如何使用MicroPython对ESP32或ESP8266板进行编程 以通过MQTT将BME280传感器读数 温度 湿度和压力 发布到支持MQTT或任何MQTT客户端的任何平台 例如 我们将传感器读数发布到Node RED仪表板 注意
  • 神州交换机路由器AC和AP基本配置

    交换机部分 两层和三层交换机清除所有配置的命令 Set default 清除配置 Write 保存 Reload 重启 交换机打开网站管理 http 两层 config ip http server config Web user xxx
  • 51单片机 LCD1602

    LCD1602 H ifndef LCD1602 H define LCD1602 H 用户调用函数 void LCD Init void LCD ShowChar unsigned char Line unsigned char Colu
  • 【解决方案】PicGo图片上传失败问题【少走弯路】

    解决方案 PicGo图片上传失败问题 少走弯路 1 检查Server设置 选择PicGo设置 选择设置Server 确认设置监听端口为 36677 如果没有问题的话可以尝试关闭 退出APP 再开启Server 未能解决再继续操作 2 检查阿
  • Android:手把手带你了解实用的Android Jetpack

    转自 https blog csdn net carson ho article details 104243841 前言 在2018年 Google I O 大会上发布了一系列辅助Android开发者开发的实用工具集合 Jetpack 今
  • Unity制作简单动画效果

    需求 制作一段门旋转的动画 效果如下 解决办法 1 在Unity中点击Window gt Animation gt Animation 调出Animation面板 如下 2 为了让门的轴心在门边上以便于制作门绕门边旋转的效果 需要先新建一个
  • Rust交叉编译开发环境的搭建

    为嵌入式开发引入新的编程语言 对于嵌入式系统软件和应用软件的开发而言 编程语言的重要性次于整体的软件架构设计的重要性 不过仍有必要谨慎地选择编程语言 因为这涉及开发效率 软件性能 以及团队成员的技术能力 譬如 若整个嵌入式软件的绝大数组件是
  • 蓝桥杯 分数统计---递归

    题目 1500 蓝桥杯 算法提高VIP 分数统计 时间限制 1Sec 内存限制 128MB 提交 1541 解决 727 题目描述 给定一个百分制成绩T 将其划分为如下五个等级之一 90100为A 8089为B 7079为C 6069为D
  • Spring MVC参数的传递与接收

    SpringMVC主要做的就两方面的操作 在Controller接收从jsp传递过来的数据 把Controller的数据传递到jsp页面 将Controller里边的数据传到jsp 其返回值有三种类型 ModelAndView void S
  • Swift3.0学习之CollectionView的简单使用

    1 设置layout let layout UICollectionViewFlowLayout layout itemSize CGSize width 60 height 80 设置item尺寸 layout minimumLineSp
  • Python学习笔记(零)————Python简介及基础

    目录 1 查看 Python 版本 2 脚本文件 3 Python3 简介 4 Python 发展历史 5 Python 特点 6 Python 应用 7 Python环境搭建 1 查看 Python 版本 我们可以在命令窗口 Window
  • Docker入门(安装、换阿里源及配置阿里云镜像加速)

    文章目录 一 Docker 概述 1 1 Docker 为什么出现 1 2 Docker 的历史 1 3 聊聊 Docker 1 4 Docker 能干嘛 二 Docker 安装 2 1 Docker 的基本组成 2 2 安装 Docker
  • warning: array subscript is above array bounds

    问题描述 warning array subscript is above array bounds Warray bounds 数组下标使用越界 需检查数组的使用 下标是否正确 warning pointer targets in pas
  • 网页链接区块链wallet_WAX云钱包解决了区块链的最后难题

    点击蓝字 关注我们 区块链的最后的难题已被解决 我用过很多区块链 dApps 有些很神奇 有些则不然 但是几乎所有这些dApp都是有限制的 因为当新用户上线时 很难和这些应用程序磨合得好 现在登录 dApp 就像用制作复杂的鲁布 戈德堡机械
  • Oracle安装教程及PL/SQL Developer下载安装及使用

    作为按照各种教程安装了5 6次Oracle数据库的人来说 不得不把之前踩过的坑都总结一下 1 首先 请下载Oracle 11g和plsql PL SQL Developer 这里给出百度云网盘下载链接 只需要下载解压就行了 链接 https
  • 数字图像处理之低通滤波器实现原理及方法(Matlab)

    1 傅里叶变换与频域 在之前的文中 我们已经进行过一些基本的图像处理 比如 使用低通滤波可以将图像模糊 也有些许降噪的作用 这些都是在空间域内进行的滤波处理 这个处理主要是依靠卷积来进行计算的 首先 从连续的一维卷积入手 如下所示 将上式进
  • Run-Time Check Failure #0 错误

    使用VS 遇到过一个错误 如下图 文字描述是这样的 Run Time Check Failure 0 The value of ESP was not properly saved across a function call This i
  • 智能优化算法 — 蜣螂优化算法(Dung beetle optimizer,DBO)

    引言 小时候 蜣螂还是比较多见的 还顽皮地将粪球给它弄走 或者给它来点障碍 现在放牛的几乎看不到了 蜣螂没东西可推了 也慢慢从我们的视线中消失了 DBO介绍 2022年11月27日 东华大学沈波教授团队 继麻雀搜索算法 Sparrow Se