蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。
一、蜣螂优化算法
1.1蜣螂滚球
(1)当蜣螂前行无障碍时,蜣螂在滚粪球过程中会利用太阳进行导航,下图中红色箭头表示滚动方向
本文假设光源的强度会影响蜣螂的位置,蜣螂在滚粪球过程中位置更新如下:
其中,表示当前迭代次数,表示第次蜣螂在第t次迭代中的位置信息,为扰动系数,为 之间的随机数,取 -1 或 1 ,表示全局最差位置,用于模拟光的强度变化。
其中,的取值采用算法1:
(2)当蜣螂遇到障碍物无法前进时,它需要通过跳舞来重新调整自己,以获得新的路线。本文使用切线函数来模仿跳舞行为,以此获得新的滚动方向,滚动方向仅考虑为之间。
1.2蜣螂繁殖
在自然界中,雌性蜣螂将粪球被滚到适合产卵的安全地方并将其隐藏起来,以此为后代提供一个安全的环境。受此启发,因而提出了一种边界选择策略以此模拟雌性蜣螂产卵的区域:
其中,表示当前最优位置,和分别表示产卵区的下限和上限,,表示最大迭代次数,和分别表示优化问题的下限和上限。
雌性蜣螂一旦确定了产卵区,就会选择在该区域育雏球产卵。每只雌性蜣螂在每次迭代中只产生一个卵,可以看出,产卵区的边界范围是动态变化的,主要由R值决定。因此,育雏球的位置在迭代过程中也是动态的,其定义如下:
其中,表示第t次迭代中第 i个育雏球的位置信息,和均为1×D的随机向量,D表示优化问题的维度。
产卵区的选择如算法3所示:
1.3蜣螂觅食
小蜣螂的位置更新如下:
其中,表示第t次迭代中第i只小蜣螂在的位置,是服从正态分布的随机数,为(0,1)的随机向量。
1.4蜣螂偷窃
另一方面,一些蜣螂从其他蜣螂那里偷粪球,盗贼蜣螂的位置更新如下:
其中,表示在第t次迭代中第i个盗贼蜣螂的位置,g为服从正态分布的1×D随机向量,S为常数。
二、蜣螂优化算法描述
滚球蜣螂、繁殖蜣螂、觅食蜣螂和偷窃蜣螂的比例分布如下:
文章出处登录后可见!