0


单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)

蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖行为的启发所得。
在这里插入图片描述

一、蜣螂优化算法

1.1蜣螂滚球

(1)当蜣螂前行无障碍时,蜣螂在滚粪球过程中会利用太阳进行导航,下图中红色箭头表示滚动方向
在这里插入图片描述
本文假设光源的强度会影响蜣螂的位置,蜣螂在滚粪球过程中位置更新如下:

  1. x
  2. i
  3. (
  4. t
  5. +
  6. 1
  7. )
  8. =
  9. x
  10. i
  11. (
  12. t
  13. )
  14. +
  15. α
  16. ×
  17. k
  18. ×
  19. x
  20. i
  21. (
  22. t
  23. 1
  24. )
  25. +
  26. b
  27. ×
  28. Δ
  29. x
  30. ,
  31. Δ
  32. x
  33. =
  34. x
  35. i
  36. (
  37. t
  38. )
  39. X
  40. w
  41. \begin{aligned} x_{i}(t+1) &=x_{i}(t)+\alpha \times k \times x_{i}(t-1)+b \times \Delta x, \\ \Delta x &=\left|x_{i}(t)-X^{w}\right| \end{aligned}
  42. xi​(t+1x​=xi​(t)+α×k×xi​(t1)+b×Δx,=∣xi​(t)−Xw∣​

其中,

  1. t
  2. t
  3. t表示当前迭代次数,
  4. x
  5. i
  6. (
  7. t
  8. )
  9. x_{i}(t)
  10. xi​(t)表示第
  11. i
  12. i
  13. i次蜣螂在第t次迭代中的位置信息,
  14. k
  15. (
  16. 0
  17. ,
  18. 0.2
  19. ]
  20. k∈(0,0.2]
  21. k∈(0,0.2]为扰动系数,
  22. b
  23. b
  24. b
  25. (
  26. 0
  27. ,
  28. 1
  29. )
  30. (0,1)
  31. (0,1) 之间的随机数,
  32. α
  33. \alpha
  34. α取 -1 1
  35. X
  36. w
  37. X^{w}
  38. Xw表示全局最差位置,
  39. Δ
  40. x
  41. \Delta x
  42. Δx用于模拟光的强度变化。

其中,

  1. α
  2. \alpha
  3. α的取值采用算法1

在这里插入图片描述

(2)当蜣螂遇到障碍物无法前进时,它需要通过跳舞来重新调整自己,以获得新的路线。本文使用切线函数来模仿跳舞行为,以此获得新的滚动方向,滚动方向仅考虑为

  1. [
  2. 0
  3. ,
  4. π
  5. ]
  6. [0,π]
  7. [0,π]之间。

在这里插入图片描述
蜣螂一旦成功确定新的方向,它应该继续向后滚动球。蜣螂的位置更新如下:

  1. x
  2. i
  3. (
  4. t
  5. +
  6. 1
  7. )
  8. =
  9. x
  10. i
  11. (
  12. t
  13. )
  14. +
  15. tan
  16. (
  17. θ
  18. )
  19. x
  20. i
  21. (
  22. t
  23. )
  24. x
  25. i
  26. (
  27. t
  28. 1
  29. )
  30. x_{i}(t+1)=x_{i}(t)+\tan (\theta)\left|x_{i}(t)-x_{i}(t-1)\right|
  31. xi​(t+1)=xi​(t)+tan(θ)∣xi​(t)−xi​(t1)∣

其中,

  1. θ
  2. \theta
  3. θ为偏转角,其取值为
  4. [
  5. 0
  6. ,
  7. π
  8. ]
  9. [0,π]
  10. [0,π],采用算法2

在这里插入图片描述

1.2蜣螂繁殖

在这里插入图片描述

在自然界中,雌性蜣螂将粪球被滚到适合产卵的安全地方并将其隐藏起来,以此为后代提供一个安全的环境。受此启发,因而提出了一种边界选择策略以此模拟雌性蜣螂产卵的区域:

  1. L
  2. b
  3. =
  4. max
  5. (
  6. X
  7. ×
  8. (
  9. 1
  10. R
  11. )
  12. ,
  13. L
  14. b
  15. )
  16. U
  17. b
  18. =
  19. min
  20. (
  21. X
  22. ×
  23. (
  24. 1
  25. +
  26. R
  27. )
  28. ,
  29. U
  30. b
  31. )
  32. \begin{array}{l} L b^{*}=\max \left(X^{*} \times(1-R), L b\right) \\ U b^{*}=\min \left(X^{*} \times(1+R), U b\right) \end{array}
  33. Lb∗=max(X∗×(1R),Lb)Ub∗=min(X∗×(1+R),Ub)​

其中,

  1. X
  2. X^{*}
  3. X∗表示当前最优位置,
  4. L
  5. b
  6. L b^{*}
  7. Lb∗和
  8. U
  9. b
  10. U b^{*}
  11. Ub∗分别表示产卵区的下限和上限,
  12. R
  13. =
  14. 1
  15. t
  16. /
  17. T
  18. m
  19. a
  20. x
  21. R=1t/T_{max}
  22. R=1t/Tmax​,
  23. T
  24. m
  25. a
  26. x
  27. T_{max}
  28. Tmax​表示最大迭代次数,
  29. L
  30. b
  31. Lb
  32. Lb
  33. U
  34. b
  35. Ub
  36. Ub分别表示优化问题的下限和上限。

雌性蜣螂一旦确定了产卵区,就会选择在该区域育雏球产卵。每只雌性蜣螂在每次迭代中只产生一个卵,可以看出,产卵区的边界范围是动态变化的,主要由R值决定。因此,育雏球的位置在迭代过程中也是动态的,其定义如下:

  1. B
  2. i
  3. (
  4. t
  5. +
  6. 1
  7. )
  8. =
  9. X
  10. +
  11. b
  12. 1
  13. ×
  14. (
  15. B
  16. i
  17. (
  18. t
  19. )
  20. L
  21. b
  22. )
  23. +
  24. b
  25. 2
  26. ×
  27. (
  28. B
  29. i
  30. (
  31. t
  32. )
  33. U
  34. b
  35. )
  36. B_{i}(t+1)=X^{*}+b_{1} \times\left(B_{i}(t)-L b^{*}\right)+b_{2} \times\left(B_{i}(t)-U b^{*}\right)
  37. Bi​(t+1)=X∗+b1​×(Bi​(t)−Lb∗)+b2​×(Bi​(t)−Ub∗)

其中,

  1. B
  2. i
  3. (
  4. t
  5. )
  6. B_{i}(t)
  7. Bi​(t)表示第t次迭代中第 i个育雏球的位置信息,
  8. b
  9. 1
  10. b_{1}
  11. b1​和
  12. b
  13. 2
  14. b_{2}
  15. b2​均为1×D的随机向量,D表示优化问题的维度。

产卵区的选择如算法3所示:
在这里插入图片描述

1.3蜣螂觅食

在这里插入图片描述
雌性蜣螂所产的卵会逐渐长大,一些已经成熟的小蜣螂会从地下出来寻找食物,小蜣螂的最佳觅食区建模如下:

  1. L
  2. b
  3. b
  4. =
  5. max
  6. (
  7. X
  8. b
  9. ×
  10. (
  11. 1
  12. R
  13. )
  14. ,
  15. L
  16. b
  17. )
  18. U
  19. b
  20. b
  21. =
  22. min
  23. (
  24. X
  25. b
  26. ×
  27. (
  28. 1
  29. +
  30. R
  31. )
  32. ,
  33. U
  34. b
  35. )
  36. \begin{array}{l} L b^{b}=\max \left(X^{b} \times(1-R), L b\right) \\ U b^{b}=\min \left(X^{b} \times(1+R), U b\right) \end{array}
  37. Lbb=max(Xb×(1R),Lb)Ubb=min(Xb×(1+R),Ub)​

其中,

  1. X
  2. b
  3. X^{b}
  4. Xb表示全局最优位置,
  5. L
  6. b
  7. b
  8. L b^{b}
  9. Lbb
  10. U
  11. b
  12. b
  13. U b^{b}
  14. Ubb分别表示最佳觅食区的下限和上限。

在这里插入图片描述

小蜣螂的位置更新如下:

  1. x
  2. i
  3. (
  4. t
  5. +
  6. 1
  7. )
  8. =
  9. x
  10. i
  11. (
  12. t
  13. )
  14. +
  15. C
  16. 1
  17. ×
  18. (
  19. x
  20. i
  21. (
  22. t
  23. )
  24. L
  25. b
  26. b
  27. )
  28. +
  29. C
  30. 2
  31. ×
  32. (
  33. x
  34. i
  35. (
  36. t
  37. )
  38. U
  39. b
  40. b
  41. )
  42. x_{i}(t+1)=x_{i}(t)+C_{1} \times\left(x_{i}(t)-L b^{b}\right)+C_{2} \times\left(x_{i}(t)-U b^{b}\right)
  43. xi​(t+1)=xi​(t)+C1​×(xi​(t)−Lbb)+C2​×(xi​(t)−Ubb)

其中,

  1. x
  2. i
  3. (
  4. t
  5. )
  6. x_{i}(t)
  7. xi​(t)表示第t次迭代中第i只小蜣螂在的位置,
  8. C
  9. 1
  10. C_{1}
  11. C1​是服从正态分布的随机数,
  12. C
  13. 2
  14. C_{2}
  15. C2​为(0,1)的随机向量。

1.4蜣螂偷窃

在这里插入图片描述

另一方面,一些蜣螂从其他蜣螂那里偷粪球,盗贼蜣螂的位置更新如下:

  1. x
  2. i
  3. (
  4. t
  5. +
  6. 1
  7. )
  8. =
  9. X
  10. b
  11. +
  12. S
  13. ×
  14. g
  15. ×
  16. (
  17. x
  18. i
  19. (
  20. t
  21. )
  22. X
  23. +
  24. x
  25. i
  26. (
  27. t
  28. )
  29. X
  30. b
  31. )
  32. x_{i}(t+1)=X^{b}+S \times g \times\left(\left|x_{i}(t)-X^{*}\right|+\left|x_{i}(t)-X^{b}\right|\right)
  33. xi​(t+1)=Xb+S×g×(∣xi​(t)−X∗∣+∣∣​xi​(t)−Xb∣∣​)

其中,

  1. x
  2. i
  3. (
  4. t
  5. )
  6. x_{i}(t)
  7. xi​(t)表示在第t次迭代中第i个盗贼蜣螂的位置,g为服从正态分布的1×D随机向量,S为常数。

二、蜣螂优化算法描述

滚球蜣螂、繁殖蜣螂、觅食蜣螂和偷窃蜣螂的比例分布如下:
在这里插入图片描述
DBO算法描述如下:
在这里插入图片描述
参考文献: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


本文转载自: https://blog.csdn.net/weixin_46204734/article/details/128138381
版权归原作者 IT猿手 所有, 如有侵权,请联系我们删除。

“单目标优化:蜣螂优化算法(Dung beetle optimizer,DBO)”的评论:

还没有评论