文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进
蜣螂优化算法(Dung Beetle Optimizer,DBO)是JiankaXue和Bo Shen在2022 年提出的一种新型群体智能优化算法[1],其灵感来自于蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为。该算法同时考虑了全局探索和局部开发,从而具有收敛速度快和准确率高的特点,可以有效地解决复杂的寻优问题。
而多目标蜣螂优化算法(Non-dominated Sorting Dung Beetle Optimizer, NSDBO)于2023年开发[2],其与多目标鲸鱼优化算法[3]类似,将非支配排序的思想引入蜣螂优化算法中实现多目标优化。本文将介绍多目标蜣螂优化算法的原理及代码实现。
00 文章目录
1 多目标蜣螂优化算法原理
2 代码目录
3 算法性能
4 源码获取
01 多目标蜣螂优化算法原理
1.1 蜣螂优化算法DBO
算法中蜣螂种群分为四个部分,分别为滚球蜣螂、育雏球、小蜣螂和小偷蜣螂。滚球蜣螂受各种自然环境影响决更新其运行方向,初步寻找可以安全觅食的位置,育雏球会被产在已知的安全区域内,成长为成虫的蜣螂被称为小蜣螂,小蜣螂会在最佳觅食区觅食,小偷蜣螂也会根据其他蜣螂的位置和最佳觅食区寻找食物。
四种蜣螂位置更新方式如下:
(1)滚球蜣螂
滚球蜣螂以太阳为导航以保证粪球在直线路径上滚动,光源强度、风等自然因素会影响滚球蜣螂的行进路线,
滚球蜣螂位置更新方式如下:
式中,𝑡代表当前迭代次数,𝑥𝑖 (𝑡)表示第𝑡次迭代时第𝑖只蜣螂的位置信息,α 是一个自然系数,表示是否偏离原来方向,根据概率法分配为−1或1,𝑘 ∈ (0,0.2)表示偏转系数,𝑏 ∈ (0,1)表示常数,𝑘和𝑏分别设定为0.1和0.3,𝑋𝑤表示全局最差位置,Δ𝑥用于模拟光强变化。
当蜣螂遇到障碍物而不能前进时,它需要通过跳舞来调整自己的方向,滚球蜣螂跳舞更新位置的公式定义如下:
式中θ ∈ [0, 𝜋]表示偏转角,在θ等于0、𝜋/2或𝜋时,蜣螂的位置不会更新。
(2)育雏球
育雏球采用边界选择策略模拟雌性蜣螂产卵区域,产卵区域的定义为:
式中,𝑋∗表示当前的局部最佳位置,𝐿𝑏∗和𝑈𝑏∗分别表示产卵区的下限和上限, 𝑅 = 1 −𝑡/𝑇𝑚𝑎𝑥,𝑇𝑚𝑎𝑥表示最大迭代数,𝐿𝑏和𝑈𝑏分别代表优化问题的下限和上限。
在迭代过程中,育雏球位置是动态变化的,其定义为:
式中,𝐵𝑖 (𝑡)是第𝑡次迭代时第𝑖个育雏球的位置信息,𝑏1和𝑏2代表两个大小为1×D 的独立随机向量,D 表示优化问题的维度。
(3)小蜣螂
需要建立一个最优觅食区域,指导幼体蜣螂寻找食物并模拟其觅食行为,其中最优觅食区域定义为:
式中,𝑋b表示当前的局部最佳位置,𝐿𝑏b和𝑈𝑏b分别表示最佳觅食区的下限和上限
小蜣螂的位置更新如下:
式中,𝑥𝑖 (𝑡)是第𝑡次迭代时第𝑖只小蜣螂的位置信息,𝐶1表示遵循正态分布的随机数,𝐶2 ∈(0,1)表示随机向量。
(4)小偷蜣螂
Xb是食物竞争的最佳位置,因此小偷蜣螂位置更新方式如下:
式中,𝑥𝑖 (𝑡)第𝑖只小偷蜣螂在第𝑡次迭代的位置信息,g 表示一个遵循正态分布的大小为1×D的随机向量,S表示一个常数值。
在一次迭代之后,滚球蜣螂、育雏球、小蜣螂和小偷蜣螂的位置被更新。上述四个智能体构成了优化算法的种群。DBO算法可以利用不同时期的信息对搜索空间进行彻底的探索,避免陷入局部最优,具有很强的搜索能力。
1.2 基于非支配排序的多目标蜣螂优化算法
非支配排序是多目标优化算法中十分有效的技术。它根据Pareto最优解的优势程度对其进行排序。其中,不被任何解支配的解被分配为序1,只有一个解占优势的解被赋予为序2,只有两个解占优势的解被赋予为序3,依此类推。然后,根据它们的序选择解,以提高种群的质量。NSDBO算法的流程图如下:
02 代码目录
文件包含蜣螂算法源文献以及NSDBO的Matlab代码,代码注释完整,其中部分Main_NSDBO程序如下:
代码获取方式见文末
03 算法性能
使用ZDT系列测试函数对NSDBO进行测试:
04 源码获取
GZH(KAU的云实验台)后台回复:NSDBO
参考文献
[1]Xue Jiankai, Shen Bo. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization[J]. Journal of Supercomputing, 2023,79(7):7305-7336.
[2] Zhu, X.; Ni, C.; Chen, G.; Guo, J. Optimization of Tungsten Heavy Alloy Cutting Parameters Based on RSM and Reinforcement Dung Beetle Algorithm. Sensors 2023, 23, 5616. https://doi.org/10.3390/s23125616
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看 (ง•̀_•́)ง(不点也行)