自适应混沌蜣螂优化算法及其MALTAB实现

news2025/3/10 20:44:43

本文改进主要参考:

S. Li and J. Li, “Chaotic dung beetle optimization algorithm based on adaptive t-Distribution,” 2023 IEEE 3rd International Conference on Information Technology, Big Data and Artificial Intelligence (ICIBA), Chongqing, China, 2023, pp. 925-933, doi: 10.1109/ICIBA56860.2023.10165106.

作者在上一篇文章中介绍了蜣螂优化算法(dung beetle optimizer,DBO),其具有收敛速度快和准确率高的特点,可以有效地解决复杂的寻优问题。然而虽然其具有比PSO、GWO等算法更好的优化性能,但其存在初始种群分布不均匀、全局探索和局部开发能力不平衡、易陷入局部最优等缺点。

因此,受混沌映射和自适应T分布的启发,提出对DBO算法进行改进。混沌映射如Logistic映射和Tent映射,能够提高初始种群在搜索空间的分布质量,加强其全局搜索能力;而自适应t分布能在迭代的不同时期提高算法的全局/局部搜索能力。两种方法相辅相成,能够帮助DBO算法获得更好的优化性能。

实验部分,本文将改进的DBO算法与DBO以及一些常用的智能算法在9个标准测试函数上进行实验对比,以验证改进的有效性。

00 文章目录

1 蜣螂优化算法原理
2 自适应混沌蜣螂优化算法
3 代码目录
4 实验结果
5 源码获取

01 蜣螂优化算法原理

关于蜣螂算法原理作者在上一篇文章中已经作了介绍

蜣螂优化算法原理及其MALTAB实现

02 自适应混沌蜣螂(Adaptive Chaos DBO,AC-DBO)优化算法

2.1 改进的Tent混沌映射

与其他群智能算法一样,原始DBO在求解复杂问题时,通过随机生成位置的方法初始化种群的个体位置,会导致种群的多样性低,对问题进行寻优的收敛速度比较慢。为了能够让个体在算法开始时有较高的全局搜索能力,需要让种群的位置均匀分布在整个问题的解空间内,因此使用混沌算子对种群进行初始化。

混沌作为一种非线性的自然现象,以其混沌序列具有遍历性、随机性等优点,被广泛用于优化搜索问题。利用混沌变量搜索显然比无序随机搜索具有更大的优越性[1]。

目前文献中常用的混沌扰动方程有Logistic映射和Tent映射等。Logistic映射在作者前面的文章中介绍过,由文献[2]可知Logistic映射的分布特点是:中间取值概率比较均匀,但在两端概率特别高,因此当全局最优点不在设计变量空间的两端时,对寻找最优点是不利的。而Tent混沌映射具有比Logistic混沌映射更好的遍历均匀性和更快的搜索速度。下图中展示了Logistic和Tent的混沌序列:在这里插入图片描述

在这里插入图片描述

可以看到,Logistic混沌映射在边界区域取值概率明显更高,而Tent在可行域的取值概率更为均匀,因此若将Logistic混沌映射用于初始化种群时,其混沌序列的不均匀性会影响算法寻优的速度和精度。因此本文利用Tent的遍历性产生更为均匀分布的混沌序列,减少初始值对算法优化的影响。

Tent混沌映射的表达式如下:
在这里插入图片描述

分析Tent混沌迭代序列能够发现序列中存在小周期,并且存在不稳周期点. 为避免Tent混沌序列在迭代时落入小周期点和不稳定周期点,在原有的Tent 混沌映射表达式上引入一个随机变量rand(0, 1) /N ,则改进后的Tent混沌映射表达式如下[3]:

在这里插入图片描述

其中: N 是序列内粒子的个数。引入随机变量rand(0, 1) /N 不仅仍然保持了Tent混沌映射的随机性、遍历性、规律性,而且能够有效避免迭代落入小周期点和不稳定周期点内。本文算法引入的随机变量,既保持了随机性, 又将随机值控制在一定的范围之内,保证了Tent混沌 的规律性.根据Tent混沌映射的特性。改进的Tent混沌序列效果如下:
在这里插入图片描述

由图可知,改进后的Tent混沌映射其均匀性得到了提高,因此本文以改进Tent混沌性来代替蜣螂优化算法的随机初始化,以提高和改善初始种群在搜索空间上的分布质量,加强其全局搜索能力,从而提高算法求解精度。

2.2 自适应t分布

t分布也叫学生t分布,包含自由度参数n。n的值决定t分布曲线的形状,n值越小,则曲线越平坦,n值越大,则曲线越陡峭。
在这里插入图片描述

t分布的概率密度函数为:
在这里插入图片描述

式中,t为自由度参数,x 为扰动力度,Γ( )为伽玛函数。当t(n→∞)→N(0,1)时,t(n→1)=C(0,1),N(0,1)为高斯分布,C(0,1)为柯西分布。高斯分布和柯西分布是t分布的两种边界特例[4],它们的函数分布如图2所示。
在这里插入图片描述

当算子发生柯西突变时,算法的全局搜索性能较好,种群多样性较高。当算子发生高斯突变时,算法收敛速度更快,局部寻优能力更强。

t分布结合了柯西分布和高斯分布的优点,在自由度参数n从1→∞的过程中,可以通过t分布突变算子来平衡和提高算法的全局/局部搜索能力。因此,本文采用自由度参数n=iter的t分布来优化个体的搜索方向和距离,步长会随着迭代次数的增加而自适应变化。采用自适应t分布突变策略对蜣螂位置进行扰动的方程如下:
在这里插入图片描述

式中,xti为突变后的蜣螂位置,xi为第i只蜣螂个体位置,t(iter)为以迭代次数iter为自由度的t分布。

在迭代开始时,t分布突变类似柯西突变,此时算法具有良好的全局探索能力,增加了种群的多样性,且跳出局部最优的能力也增强了。随着迭代次数的增加,t分布突变近似于高斯突变,提高了算法的局部开发能力,其对于整个种群的扰动力度也从强到弱转化。通过引入自适应t分布突变作为一种改进的搜索策略,能够有效增强算法的优化性能,有利于提高算法逃避局部最优的能力。

通过自适应t分布突变扰动策略虽然能增强算法全局搜索和跳出局部最优的能力,但是没法确定扰动之后得到的新位置一定比原位置的适应度值要好,因此在进行变异扰动更新后,加入贪婪规则,通过比较新旧两个位置的适应度值,确定是否要更新位置。

在这里插入图片描述

其中, xnewg(t)为经过贪婪规则更新后的个体位置,xlg(t)为扰动后的个体,xg(t)为扰动前的个体, f ()代表粒子适应度函数。

2.3 自适应混沌蜣螂优化算法步骤

综上所述,自适应混沌蜣螂优化算法主要分为六个步骤。

1)初始化种群大小,迭代次数,t分布概率等参数

2)使用改进的Tent混沌映射初始化蜣螂种群

3)根据目标函数计算所有蜣螂位置的适度值;

4)更新所有蜣螂的位置;

5)判断每个更新后的蜣螂是否出了边界;

6)若随机数rand小于给定P值,则根据t分布突变策略进行扰动,产生新解

7)根据贪婪规则确定是否更新

8)更新当前最优解及其适度值;

9)重复上述步骤,在𝑡达到最大迭代次数后,输出全局最优值及其最优解。

流程图如下:
在这里插入图片描述

03 代码目录

在这里插入图片描述

代码注释完整,其中部分程序如下:

在这里插入图片描述

04 实验结果

在本节中,通过单峰,多峰,固定多峰共9个经典测试函数验证AC-DBO的搜索性能,通过仅具有一个全局最优值的单峰函数来测试算法的局部搜索能力,并使用多峰函数来评估全局搜索能力。将改进的蜣螂优化算法与另4种被广泛研究的优化算法(PSO、GA、GWO、DBO)进行比较。

为保证实验公平性,所有算法的迭代次数与种群数都设置为100。

单峰函数采用F1,F2,F3。多峰函数采用F9,F10,F11。固定多峰函数采用F19,F20,F21。部分函数样图如下:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

利用上述的5种优化算法对共计9种测试函数进行寻优,结果如下:
在这里插入图片描述

由图可以看出,改进后的算法在搜索精度以及收敛速度上皆优于其他算法,其性能得到了显著提高。

05 源码获取

在作者微信公众号:KAU的云实验台 获取

参考文献

[1] 张云鹏,左飞,翟正军.基于双Logistic变参数和Cheby-chev混沌映射的彩色图像密码算法[J.西北工业大学学报, 2010,28(4): 628-632.

[2] 江善和,王其申,汪巨浪.一种新型SkewTent映射的混沌混合优化算法[J.控制理论与应用, 2007,24(2): 269-273.

[3] 张娜,赵泽丹,包晓安,等.基于改进的Tent混沌万有引力搜索算法[J].控制与决策,2020,35(4):893-900.

[4]Fangjun Zhou , Xiangjun Wang , Min Zhang . Evolutionary Programming Using Mutations Based on the t Probability Distribution[J].2008.36(4):667-671.

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

如果这篇文章对你有帮助或启发,可以点击右下角的赞(ง•̀_•́)ง(不点也行)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

滑块验证2

滑块示例 介绍 滑块图片地址接口获取,两张(滑块图和背景缺口图)验证通过校验为接口校验,需要一个uuid和位移拼接成校验地址uuid能通过接口获取,位移需计算得到缺口位移计算 需将两张图片区分保存,然后通过特定工具包计算出位移 所需包 opencv-python 部分代码 def _t…

陪诊小程序|服务到家就医陪伴更不可少

随着科技的不断发展和医疗服务的日益完善,陪诊小程序成为了当下为炙手可热的医疗软件之一。无论是患者还是医护人员,陪诊小程序都为他们提供了全新的就医体验和便捷的服务。下面让我们一同探索一下陪诊小程序的软件开发功能。 一、陪诊小程序功能&#x…

2018年3月全国计算机等级考试真题(语言二级C)

2018年3月全国计算机等级考试真题(语言二级C) 第1题 设有定义:char s[81];int i0;以下不能将一行带有空格的字符串正确读入的语句或语句组是 A. while((s[i]getchar())!\n);s[i]\0; B. scanf("%s",s); C.…

数组累加器-reduce、reduceRight

数组累加器-reduce 一、基本语法1.reduce2.reduceRight 二、具体使用1.reduce2.reduceRight 三、使用场景1.数组求和2.数组求积3.计算数组中每个元素出现的次数 一、基本语法 1.reduce reduce() :对数组中的每个元素按序执行一个提供的 reducer 函数,每…

高效使用ChatGPT之ChatGPT客户端

ChatGPT客户端,支持Mac, Windows, and Linux 下载地址见文章结尾 软件截图 Windows: Mac: 说明 chatgpt桌面版,相比于网页版的chatgpt,最大的特色是支持历史聊天对话记录导出,且支持三种格式:PNG、PDF、…

i.MX6ULL开发板无法进入NFS挂载文件系统的解决办法

问题 使用NFS网络挂载文件系统后卡住无法进入系统。 解决办法 此处不详细讲述NFS安装流程 查看板卡挂载在/home/etc/rc.init下的自启动程序 进入到../../home/etc目录下,查看rc.init文件,首先从第一行排查,查看/home/etc/netcfg文件代码内容&…

AI版 PS AI beta 25.0的完整包

介绍: PS AI beta 25.0的完整包,还有一个神经网络滤镜,以及简体中文补丁。 离线完整包,直接安装就可以用,不需要国外注册登录,不需要国外网络做图,支持中文生成。安装文件目录: 3.安…

FinalShell SSH工具安装教程及编辑窗口修改背景颜色,自定义背景图片,修改字体,修改快捷键(详细图文教程)

FinalShell 在 Windows 上提供了一个方便、安全、功能完备的远程管理工具。它的中文支持和自定义功能让其适合国内 Linux 系统管理者使用。与 Xshell 等软件相比,FinalShell 更注重功能实用性。 目录 FinalShellFinalShell的安装教程FinalShell 的一些主要功能和特点…

破局!低代码直击智慧园区建设痛点!

从捷码官网获取的捷码产品体验账号,用浏览器打开下列地址即可(推荐电脑端哈),需要自取: http://dev.gemcoder.com/front/development/index.html#/officialLogin?jmcmVnaXN0ZXI9dHJ1ZQ%3D%3D 随着大数据、物联网、云计…

open suse 15.5(任意版本) 使用阿里云的repo

一、shell suse 的包管理工具叫 zypper. zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.5/repo/oss/ openSUSE-15.5-Oss zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.5/repo/non-oss/ openSUSE-15.5-Non-Oss …

CS5523 MIPI/DSI转EDP信号转换芯片|pin√pin替代龙迅LT8911方案

ASL新推出CS5523是一款MIPI DSI输入、DP/e DP输出转换芯片。MIPI DSI最多支持4个通道,每个通道的最大运行速度为1.5Gps。对于DP 1.2输出,它由4个数据通道组成,支持1.62Gbps和2.7Gbps的链路速率。它支持2560的最高分辨率*144060Hz.它只能使用单…

pdf怎么合并在一起?这几个合并方法了解一下

pdf怎么合并在一起?在日常工作、学习和生活中,我们常常会遇到需要将多个PDF文件合并成一个文件的情况。比如,在学术论文写作中,我们可能需要将多篇论文合并成一个文件进行打印和提交。在工作中,我们可能需要将多个报告…

2023年上半年软件设计师下午真题及答案解析

试题一(15分) 随着农业领域科学种植的发展,需要对农业基地及农事进行信息化管理,为租户和农户等人员提供种植相关服务,现欲开发农事管理服务平台,其主要功能是: (1)人员管理:平台管理员管理租户&#xff…

msvcp120.dll丢失的解决方法?哪种解决方法比较常用?

msvcp140.dll是Microsoft Visual C Redistributable的一部分,它是Windows操作系统中的一个动态链接库文件。这个文件包含了许多C标准库函数的实现,对于一些依赖C标准库的应用程序来说,msvcp140.dll是非常重要的。msvcp140.dll的主要用途是提供…

python编程中有哪些方便的调试方法

大家好,给大家分享一下一个有趣的事情,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 对于每个程序开发者来说,调试几乎是必备技能。常用Pycharm编辑器里的方法有Print大法、log大法,但缺少类似Matlab的…

2024浙大MBA/MEM/MPA四个月冲刺备考策略

近期收到很多考生的咨询:距离联考就仅剩四个多月的时间,这个管理类联考的难度如何?主要考些什么内容?现在才开始备考还有希望上岸浙大吗?是不是要等到明年在开始备考比较合适?那么今天在这里小立老师就跟大…

《凤凰架构》第二章——访问远程服务

前言 这章挺难的,感觉离我比较远,不太好懂,简单记录吧。 这章主要讲访问远程服务,主要对比了RPC和REST的区别,可以结合知乎上的文章《既然有 HTTP 请求,为什么还要用 RPC 调用?》 这篇文章进行…

电脑提示丢失(或找不到)msvcp120.dll解决办法

msvcp140.dll是Microsoft Visual C Redistributable的一部分,它是Windows操作系统中的一个动态链接库文件。这个文件包含了许多C标准库函数的实现,对于一些依赖C标准库的应用程序来说,msvcp140.dll是非常重要的。msvcp140.dll的主要用途是提供…

学计算机只能是赛博打灰人?转嵌入式你就已经稳了!

最近有很多大一新生问我,自己不小心被录到计算机专业了,是不是以后最好就只能大厂996,做赛博打灰人,然后三十五岁直接被优化呢? 我说,你这种人正是嵌入式最需要的人,进入嵌入式行业不仅天然具有…

使用EasyExcel实现Excel表格的导入导出

使用EasyExcel实现Excel表格的导入导出 文章目录 使用EasyExcel实现Excel表格的导入导出1.集成easyExcel2.简单导出示例实体与excel列的映射导出excel的代码 3.Excel复杂表头导出与实体的映射导出代码 3.Excel导入 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们…