0


智能优化算法:白鲸优化算法-附代码

智能优化算法:白鲸优化算法

摘要:白鲸优化算法([Beluga whale optimization,BWO)是由是由 Changting Zhong 等于2022 年提出的一种群体智能优化算法。其灵感来源于白鲸的群体觅食行为。

1.白鲸优化算法

BWO建立了探索、开发和鲸鱼坠落的三个阶段,分别对应于成对游泳、捕食和鲸落的行为。BWO中的平衡因子和鲸落概率是自适应的,对控制探索和开发能力起着重要作用。此外,还引入了莱维飞行来增强开发阶段的全局收敛性。

BWO算法可以从探索逐渐转换到开发,这取决于平衡因子

  1. B
  2. f
  3. \mathrm{~B}_{\mathrm{f}}
  4. Bf ,其定义为:
  5. B
  6. f
  7. =
  8. B
  9. 0
  10. (
  11. 1
  12. T
  13. /
  14. (
  15. 2
  16. T
  17. max
  18. )
  19. )
  20. \mathrm{B}_{\mathrm{f}}=\mathrm{B}_0\left(1-\mathrm{T} /\left(2 \mathrm{~T}_{\max }\right)\right)
  21. Bf​=B0​(1T/(2 Tmax​))

其中,

  1. T
  2. \mathrm{T}
  3. T 是当前迭代次,
  4. T
  5. max
  6. \mathrm{T}_{\max }
  7. Tmax 是最大迭代次数,
  8. B
  9. 0
  10. \mathrm{B}_0
  11. B0 在每次迭代中在
  12. (
  13. 0
  14. ,
  15. 1
  16. )
  17. (0,1)
  18. (0,1) 之间随机变化。探索阶段发生在平衡因子
  19. B
  20. f
  21. >
  22. 0.5
  23. \mathrm{B}_{\mathrm{f}}>0.5
  24. Bf​>0.5 时,而开发 阶段发生在
  25. B
  26. f
  27. 0.5
  28. \mathrm{B}_{\mathrm{f}} \leq 0.5
  29. Bf​≤0.5 。随着迭代次数
  30. T
  31. \mathrm{T}
  32. T 的增加,
  33. B
  34. f
  35. \mathrm{B}_{\mathrm{f}}
  36. Bf 的波动范围从
  37. (
  38. 0
  39. ,
  40. 1
  41. )
  42. (0,1)
  43. (0,1) 减小到
  44. (
  45. 0
  46. ,
  47. 0.5
  48. )
  49. (0,0.5)
  50. (0,0.5) ,说明开发和探索阶段的概率发生了显著变化,而 开发阶段的概率随着迭代次数
  51. T
  52. \mathrm{T}
  53. T 的不断增加而增加。

1.1 探索阶段

BWO的探索阶段是白鲸的游泳行为建立的。搜索代理的位置由白鲸的配对游泳决定,白鲸的位置更新如下:

  1. {
  2. X
  3. i
  4. ,
  5. j
  6. T
  7. +
  8. 1
  9. =
  10. X
  11. i
  12. ,
  13. p
  14. j
  15. T
  16. +
  17. (
  18. X
  19. r
  20. ,
  21. p
  22. 1
  23. T
  24. X
  25. i
  26. ,
  27. p
  28. j
  29. T
  30. )
  31. (
  32. 1
  33. +
  34. r
  35. 1
  36. )
  37. sin
  38. (
  39. 2
  40. π
  41. r
  42. 2
  43. )
  44. ,
  45. j
  46. =
  47. even
  48. X
  49. i
  50. ,
  51. j
  52. T
  53. +
  54. 1
  55. =
  56. X
  57. i
  58. ,
  59. p
  60. j
  61. T
  62. +
  63. (
  64. X
  65. r
  66. ,
  67. p
  68. 1
  69. T
  70. X
  71. i
  72. ,
  73. p
  74. j
  75. T
  76. )
  77. (
  78. 1
  79. +
  80. r
  81. 1
  82. )
  83. cos
  84. (
  85. 2
  86. π
  87. r
  88. 2
  89. )
  90. ,
  91. j
  92. =
  93. o
  94. d
  95. d
  96. \begin{cases}\mathrm{X}_{\mathrm{i}, \mathrm{j}}^{\mathrm{T+1}}=\mathrm{X}_{\mathrm{i}, \mathrm{p}_{\mathrm{j}}}^{\mathrm{T}}+\left(\mathrm{X}_{\mathrm{r}, \mathrm{p}_1}^{\mathrm{T}}-\mathrm{X}_{\mathrm{i}, \mathrm{p}_{\mathrm{j}}}^{\mathrm{T}}\right)\left(1+\mathrm{r}_1\right) \sin \left(2 \pi \mathrm{r}_2\right), \mathrm{j}=\text { even } \\ \mathrm{X}_{\mathrm{i}, \mathrm{j}}^{\mathrm{T}+1}=\mathrm{X}_{\mathrm{i}, \mathrm{p}_{\mathrm{j}}}^{\mathrm{T}}+\left(\mathrm{X}_{\mathrm{r}, \mathrm{p}_1}^{\mathrm{T}}-\mathrm{X}_{\mathrm{i}, \mathrm{p}_{\mathrm{j}}}^{\mathrm{T}}\right)\left(1+\mathrm{r}_1\right) \cos \left(2 \pi \mathrm{r}_2\right), \quad \mathrm{j}=\mathrm{odd}\end{cases}
  97. ⎩⎨⎧​Xi,jT+1​=Xi,pjT​+(Xr,p1T​−Xi,pjT​)(1+r1​)sin(2πr2​),j= even Xi,jT+1​=Xi,pjT​+(Xr,p1T​−Xi,pjT​)(1+r1​)cos(2πr2​),j=odd

其中,

  1. T
  2. \mathrm{T}
  3. T 是当前迭代次数,
  4. X
  5. i
  6. ,
  7. j
  8. T
  9. +
  10. 1
  11. \mathrm{X}_{\mathrm{i}, \mathrm{j}}^{\mathrm{T+1}}
  12. Xi,jT+1 是第i只白鲸在第
  13. j
  14. j
  15. j维上的新位置,
  16. p
  17. j
  18. (
  19. j
  20. =
  21. 1
  22. ,
  23. 2
  24. ,
  25. ,
  26. d
  27. )
  28. \mathrm{p}_{\mathrm{j}}(\mathrm{j}=1,2, \cdots, \mathrm{d})
  29. pj​(j=1,2,⋯,d) 是从
  30. d
  31. \mathrm{d}
  32. d 维中选择的随机整数,
  33. X
  34. i
  35. ,
  36. p
  37. j
  38. T
  39. \mathrm{X}_{\mathrm{i}, \mathrm{p} \mathrm{j}}^{\mathrm{T}}
  40. Xi,pjT 是第i条白鲸
  41. p
  42. j
  43. \mathrm{p}_{\mathrm{j}}
  44. pj 维度上的位置,
  45. X
  46. i
  47. ,
  48. p
  49. j
  50. T
  51. \mathrm{X}_{\mathrm{i}, \mathrm{p}_{\mathrm{j}}}^{\mathrm{T}}
  52. Xi,pjT
  53. X
  54. r
  55. ,
  56. p
  57. 1
  58. T
  59. \mathrm{X}_{\mathrm{r}, \mathrm{p} 1}^{\mathrm{T}}
  60. Xr,p1T 分别是第1条和第
  61. r
  62. \mathrm{r}
  63. r 条白鲸的当前位置
  64. (
  65. r
  66. \left(\mathrm{r}\right.
  67. (r 是随机选择的白鲸),随机数
  68. r
  69. 1
  70. r_1
  71. r1
  72. r
  73. 2
  74. r_2
  75. r2 用于增强探索阶段的随机算子
  76. r
  77. 1
  78. \mathrm{r}_1
  79. r1
  80. r
  81. 2
  82. \mathrm{r}_2
  83. r2
  84. (
  85. 0
  86. ,
  87. 1
  88. )
  89. (0,1)
  90. (0,1) 的随机数,
  91. sin
  92. (
  93. 2
  94. π
  95. r
  96. 2
  97. )
  98. \sin \left(2 \pi \mathrm{r}_2\right)
  99. sin(2πr2​)
  100. sin
  101. (
  102. 2
  103. π
  104. r
  105. 2
  106. )
  107. \sin \left(2 \pi \mathrm{r}_2\right)
  108. sin(2πr2​) 表示镜像白鲸的鲌朝向水面。根据奇偶数选择的维数,更新后的位置反映了白鲸在游泳或跳水时的同步或镜像行为。

1.2 开发阶段

BWO的开发阶段受到白鲸捕食行为的启发。白鲸可以根据附近白鲸的位置合作觅食和移动。因此,白鲸通过共享彼此的位置信息来捕 食,同时考虑最佳候选者和其他候选者。在BWO的开发阶段引入了莱维飞行策略,以增强收敛性。假设它们可以使用莱维飞行策略捕捉 猎物,数学模型表示为:

  1. X
  2. i
  3. T
  4. +
  5. 1
  6. =
  7. r
  8. 3
  9. X
  10. best
  11. T
  12. r
  13. 4
  14. X
  15. i
  16. T
  17. +
  18. C
  19. 1
  20. L
  21. F
  22. (
  23. X
  24. r
  25. T
  26. X
  27. i
  28. T
  29. )
  30. \mathrm{X}_{\mathrm{i}}^{\mathrm{T}+1}=\mathrm{r}_3 \mathrm{X}_{\text {best }}^{\mathrm{T}}-\mathrm{r}_4 \mathrm{X}_{\mathrm{i}}^{\mathrm{T}}+\mathrm{C}_1 \cdot \mathrm{L}_{\mathrm{F}} \cdot\left(\mathrm{X}_{\mathrm{r}}^{\mathrm{T}}-\mathrm{X}_{\mathrm{i}}^{\mathrm{T}}\right)
  31. XiT+1​=r3Xbest T​−r4XiT​+C1​⋅LF​⋅(XrT​−XiT​)

其中,

  1. T
  2. \mathrm{T}
  3. T 是当前迭代次数,
  4. X
  5. i
  6. T
  7. \mathrm{X}_{\mathrm{i}}^{\mathrm{T}}
  8. XiT
  9. X
  10. r
  11. T
  12. \mathrm{X}_{\mathrm{r}}^{\mathrm{T}}
  13. XrT 分别是第
  14. i
  15. \mathrm{i}
  16. i 条白鲸和随机白鲸的当前位置,
  17. X
  18. i
  19. T
  20. +
  21. 1
  22. \mathrm{X}_{\mathrm{i}}^{\mathrm{T}+1}
  23. XiT+1 是第
  24. i
  25. \mathrm{i}
  26. i 条白鲸的新位置,
  27. X
  28. b
  29. e
  30. s
  31. t
  32. T
  33. \mathrm{X}_{\mathrm{best}}^{\mathrm{T}}
  34. XbestT 是白鲸种群中的最佳位置,
  35. r
  36. 3
  37. \mathrm{r}_3
  38. r3
  39. r
  40. 4
  41. \mathrm{r}_4
  42. r4
  43. (
  44. 0
  45. ,
  46. 1
  47. )
  48. (0,1)
  49. (0,1) 之间的随机数,
  50. C
  51. 1
  52. =
  53. 2
  54. r
  55. 4
  56. (
  57. 1
  58. T
  59. /
  60. T
  61. max
  62. )
  63. \mathrm{C}_1=2 \mathrm{r}_4\left(1-\mathrm{T} / \mathrm{T}_{\max }\right)
  64. C1​=2r4​(1T/Tmax​) 是衡量莱维飞行强度的随机跳跃强度。
  65. L
  66. F
  67. \mathrm{L}_{\mathrm{F}}
  68. LF 是莱维飞行函数,计算如下:
  69. L
  70. F
  71. =
  72. 0.05
  73. ×
  74. u
  75. ×
  76. σ
  77. v
  78. 1
  79. /
  80. β
  81. σ
  82. =
  83. (
  84. Γ
  85. (
  86. 1
  87. +
  88. β
  89. )
  90. ×
  91. sin
  92. (
  93. π
  94. β
  95. /
  96. 2
  97. )
  98. Γ
  99. (
  100. (
  101. 1
  102. +
  103. β
  104. )
  105. /
  106. 2
  107. )
  108. ×
  109. β
  110. ×
  111. 2
  112. (
  113. β
  114. 1
  115. )
  116. /
  117. 2
  118. )
  119. 1
  120. /
  121. β
  122. \begin{gathered} \mathrm{L}_{\mathrm{F}}=0.05 \times \frac{\mathrm{u} \times \sigma}{|\mathrm{v}|^{1 / \beta}} \\ \sigma=\left(\frac{\Gamma(1+\beta) \times \sin (\pi \beta / 2)}{\Gamma((1+\beta) / 2) \times \beta \times 2^{(\beta-1) / 2}}\right)^{1 / \beta} \end{gathered}
  123. LF​=0.05×∣v1u×σ​σ=(Γ((1+β)/2)×β×2(β−1)/2Γ(1+β)×sin(πβ/2)​)1/β​

其中,

  1. u
  2. u
  3. u
  4. v
  5. v
  6. v 为正态分布随机数,
  7. β
  8. \beta
  9. β 为默认常数,等于1.5

1.3 鲸鱼坠落

为了在每次迭代中模拟鲸鱼坠落的行为,从种群中的个体中选择鲸鱼坠落概率作为主观假设,以模拟群体中的小变化。假设这些白鲸要 么移到别处,要么被击落并坠入深海。为了确保种群大小的数量恒定,使用白鲸的位置和鲸鱼落体的步长来建立更新的位置。数学模型表 示为:

  1. X
  2. i
  3. T
  4. +
  5. 1
  6. =
  7. r
  8. 5
  9. X
  10. i
  11. T
  12. r
  13. 6
  14. X
  15. r
  16. T
  17. +
  18. r
  19. 7
  20. X
  21. step
  22. \mathrm{X}_{\mathrm{i}}^{\mathrm{T}+1}=\mathrm{r}_5 \mathrm{X}_{\mathrm{i}}^{\mathrm{T}}-\mathrm{r}_6 \mathrm{X}_{\mathrm{r}}^{\mathrm{T}}+\mathrm{r}_7 \mathrm{X}_{\text {step }}
  23. XiT+1​=r5XiT​−r6XrT​+r7Xstep

其中,

  1. r
  2. 5
  3. r
  4. 6
  5. \mathrm{r}_5 \mathrm{r}_6
  6. r5​、r6
  7. r
  8. 7
  9. \mathrm{r}_7
  10. r7
  11. (
  12. 0
  13. ,
  14. 1
  15. )
  16. (0,1)
  17. (0,1) 之间的随机数,
  18. X
  19. s
  20. t
  21. e
  22. p
  23. \mathrm{X}_{\mathrm{step}}
  24. Xstep 是鲸鱼坠落的步长,定义为:
  25. X
  26. step
  27. =
  28. (
  29. u
  30. b
  31. l
  32. b
  33. )
  34. exp
  35. (
  36. C
  37. 2
  38. T
  39. /
  40. T
  41. max
  42. )
  43. \mathrm{X}_{\text {step }}=\left(\mathrm{u}_{\mathrm{b}}-\mathrm{l}_{\mathrm{b}}\right) \exp \left(-\mathrm{C}_2 \mathrm{~T} / \mathrm{T}_{\max }\right)
  44. Xstep ​=(ub​−lb​)exp(−C2 T/Tmax​)

其中,

  1. C
  2. 2
  3. \mathrm{C}_2
  4. C2 是与鲸鱼下降概率和种群规模相关的阶跃因子
  5. (
  6. C
  7. 2
  8. =
  9. 2
  10. W
  11. f
  12. ×
  13. n
  14. )
  15. \left(\mathrm{C}_2=2 \mathrm{~W}_{\mathrm{f}} \times \mathrm{n}\right)
  16. (C2​=2 Wf​×n)
  17. u
  18. b
  19. \mathrm{u}_{\mathrm{b}}
  20. ub
  21. l
  22. b
  23. \mathrm{l}_{\mathrm{b}}
  24. lb 分别是变量的上下限。可以看出,步长受问题变量边 界、当前迭代次数和最大迭代次数的影响。

在该模型中,鲸鱼坠落概率

  1. (
  2. W
  3. f
  4. )
  5. \left(\mathrm{W}_{\mathrm{f}}\right)
  6. (Wf​) 作为线性函数计算:
  7. W
  8. f
  9. =
  10. 0.1
  11. 0.05
  12. T
  13. /
  14. T
  15. max
  16. \mathrm{W}_{\mathrm{f}}=0.1-0.05 \mathrm{~T} / \mathrm{T}_{\max }
  17. Wf​=0.10.05 T/Tmax

鲸鱼队落的概率从初始迭代的0.1降低到最后一次迭代的

  1. 0.05
  2. 0.05
  3. 0.05 ,表明在优化过程中,当白鲸更接近食物源时,白鲸的危险性降低。

请添加图片描述

3.实验结果

请添加图片描述

4.参考文献

[1] Changting Zhong, Gang Li, Zeng Meng. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm[J]. Knowledge-Based Systems, 2022, 251: 109215.

5.Matlab代码

6.python代码

标签: 算法 人工智能

本文转载自: https://blog.csdn.net/u011835903/article/details/127642354
版权归原作者 智能算法研学社(Jack旭) 所有, 如有侵权,请联系我们删除。

“智能优化算法:白鲸优化算法-附代码”的评论:

还没有评论