白鲸优化算法(Beluga whale optimization,BWO)

  • 一、算法灵感
  • 二、算法介绍
    • 2.1 初始化
    • 2.2 探索阶段
    • 2.3 开发阶段
    • 2.4 鲸落阶段
    • 2.5 算法伪代码
  • 三、实验结果
    • 3.1 F5收敛曲线
    • 3.2 F6收敛曲线
    • 3.3 F7收敛曲线
  • 四、参考文献

一、算法灵感

  白鲸优化算法(Beluga whale optimization, BWO)是2022年提出的一种元启发式优化算法,其灵感来源于白鲸的生活行为。白鲸以成年鲸的纯白色而闻名,是高度群居的动物,它们可以成群聚集,有2到25个成员,平均有10个成员。与其他元启发式方法类似,BWO包含探索阶段和开发阶段,此外该算法还模拟了生物界中存在的鲸落现象。

二、算法介绍

2.1 初始化

  探索阶段通过随机选择白鲸,保证了设计空间中的全局搜索能力,开发阶段控制着设计空间中的局部搜索。为了模拟行为,白鲸被视为搜索代理,通过改变位置向量在搜索空间中移动。此外,在BWO中考虑了鲸鱼坠落的概率,它改变了白鲸的位置。
  由于BWO基于种群的机制,白鲸被视为搜索代理,而每条白鲸都是一个候选解决方案,并在优化过程中进行更新。矩阵到搜索代理位置的矩阵被建模为:
X = [ x 1 , 1 x 1 , 2 . . . x 1 , d x 2 , 1 x 2 , 2 . . . x 2 , d ⋮ ⋮ ⋮ ⋮ x n , 1 x n , 2 . . . x n , d ] (1) X{\rm{ = }}\left[ \begin{aligned} {{x_{1,1}}} & {{x_{1,2}}} & {...} & {{x_{1,d}}} \cr {{x_{2,1}}} & {{x_{2,2}}} & {...} & {{x_{2,d}}} \cr \vdots & \vdots & \vdots & \vdots \cr {{x_{n,1}}} & {{x_{n,2}}} & {...} & {{x_{n,d}}} \cr \end{aligned} \right]\tag{1} X= ​x1,1​x2,1​⋮xn,1​​x1,2​x2,2​⋮xn,2​​......⋮...​x1,d​x2,d​⋮xn,d​​ ​(1)其中, n n n 为白鲸的种群大小, d d d 为设计变量的维数。对于所有的白鲸,相应的适应度值存储如下:
F X = [ f ( x 1 , 1 , x 1 , 2 , . . . , x 1 , d ) f ( x 2 , 1 , x 2 , 2 , . . . , x 2 , d ) ⋮ f ( x n , 1 , x n , 2 , . . . , x n , d ) ] (2) {F_X} = \left[ \begin{aligned} {f({x_{1,1}},{x_{1,2}},...,{x_{1,d}})} \cr {f({x_{2,1}},{x_{2,2}},...,{x_{2,d}})} \cr \vdots \cr {f({x_{n,1}},{x_{n,2}},...,{x_{n,d}})} \cr \end{aligned} \right]\tag{2} FX​= ​f(x1,1​,x1,2​,...,x1,d​)f(x2,1​,x2,2​,...,x2,d​)⋮f(xn,1​,xn,2​,...,xn,d​)​ ​(2)  BWO算法可以从探索转向开发,这取决于平衡因子 B f B_f Bf​ ,其数学模型为:
B f = B 0 ( 1 − t 2 T ) (3) {B_f} = {B_0}(1 - {t \over {2T}})\tag{3} Bf​=B0​(1−2Tt​)(3)其中, t t t 为当前迭代, T T T 为最大迭代数, B 0 B_0 B0​ 在每次迭代时在 ( 0 , 1 ) (0,1) (0,1) 之间随机变化。勘探阶段发生在平衡因子 B f > 0.5 B_f>0.5 Bf​>0.5 ,而开发阶段发生在 B f B_f Bf​ ≤0.5。随着迭代 T T T 的增加, B f B_f Bf​ 的波动范围从 ( 0 , 1 ) (0,1) (0,1) 减小到 ( 0 , 0.5 ) (0,0.5) (0,0.5),说明开发和勘探阶段的概率发生了显著变化,而开发阶段的概率随着迭代 T T T 的不断增加而增加。

2.2 探索阶段

  BWO的探索阶段是通过考虑白鲸的游泳行为来建立的。白鲸可以在不同的姿势下进行社会性行为,如两对白鲸以同步或镜像的方式紧密地游泳。因此,搜索代理的位置由一对白鲸的游泳决定,白鲸的位置更新如下:
{ X i , j t + 1 = X i , p j t + ( X r , p 1 t − X i , p j t ) ( 1 + r 1 ) s i n ( 2 π r 2 ) , j = e v e n X i , j t + 1 = X i , p j t + ( X r , p 1 t − X i , p j t ) ( 1 + r 1 ) cos ⁡ ( 2 π r 2 ) , j = o d d (4) \left\{ \begin{aligned} &X_{i,j}^{t + 1} = X_{i,{p_j}}^t + (X_{r,{p_1}}^t - X_{i,{p_j}}^t)(1 + {r_1})sin(2\pi {r_2})&&,j=even \cr &X_{i,j}^{t + 1} = X_{i,{p_j}}^t + (X_{r,{p_1}}^t - X_{i,{p_j}}^t)(1 + {r_1})\cos (2\pi {r_2})&&,j= odd \cr \end{aligned} \right.\tag{4} {​Xi,jt+1​=Xi,pj​t​+(Xr,p1​t​−Xi,pj​t​)(1+r1​)sin(2πr2​)Xi,jt+1​=Xi,pj​t​+(Xr,p1​t​−Xi,pj​t​)(1+r1​)cos(2πr2​)​​,j=even,j=odd​(4)其中, t t t 为当前迭代次数, X i , j t + 1 X_{i,j}^{t + 1} Xi,jt+1​ 是第 i i i 条白鲸在第 j j j 维上的新位置, P j ( j = 12... , d ) {P_j}(j = 12...,d) Pj​(j=12...,d) 是从 d d d 维中随机选择的, X i , j t X_{i,j}^t Xi,jt​ 是第 i i i 条白鲸在 j j j 维度上的位置, X i , p j t X_{i,{p_j}}^t Xi,pj​t​ 和 X r , p 1 t X_{r,{p_1}}^t Xr,p1​t​ 是第 i i i 和第 r r r 条白鲸( r r r 代表随机选择的白鲸)的当前位置, r 1 r_1 r1​ 和 r 2 r_2 r2​ 是范围在 ( 0 , 1 ) (0,1) (0,1) 的随机数,用于增强勘探阶段的随机算子。 s i n ( 2 π r 2 ) sin(2πr_2) sin(2πr2​) 和 c o s ( 2 π r 2 ) cos(2πr_2) cos(2πr2​) 用于平均鱼鳍之间的随机数。根据奇数和偶数选择的维度,更新后的位置反映了白鲸在游泳或潜水时的同步或镜像行为。

2.3 开发阶段

  BWO的开发阶段的灵感来自于白鲸的捕食行为。白鲸可以根据相邻白鲸的位置,合作觅食和移动。因此,白鲸通过分享彼此的位置信息来猎物,考虑最好的候选解和其他解。在BWO的开发阶段引入了Levy飞行的策略,以提高收敛性。我们假设它们可以用Levy飞行策略捕捉猎物,其数学模型表示为:
X i t + 1 = r 3 X b e s t t − r 4 X i t + C 1 ⋅ L F ⋅ ( X r t − X i t ) (5) X_i^{t + 1} = {r_3}X_{best}^t - {r_4}X_i^t + {C_1} \cdot {L_F} \cdot (X_r^t - X_i^t)\tag{5} Xit+1​=r3​Xbestt​−r4​Xit​+C1​⋅LF​⋅(Xrt​−Xit​)(5)其中, T T T 为当前迭代次数, X i t X_i^t Xit​ 和 X r t X_r^t Xrt​ 是第 i i i 条白鲸和一条随机的白鲸的当前位置, X i t + 1 X_i^{t + 1} Xit+1​ 是第 i i i 条白鲸的新位置, X b e s t t X_{best}^t Xbestt​ 是鲸鱼中最佳位置, r 3 r_3 r3​ 和 r 4 r_4 r4​ 是范围在 ( 0 , 1 ) (0,1) (0,1) 的随机数, C 1 = 2 r 4 ( 1 − t / T m a x ) {C_1} = 2{r_4}(1 - t/{T_{max}}) C1​=2r4​(1−t/Tmax​) 用于测量Levy飞行强度的随机跳跃强度。
   L F L_F LF​ 为Levy飞行函数,其计算方法如下:
L F = 0.05 × u × σ ∣ v ∣ 1 / β (6) {L_F} = 0.05 \times {{u \times \sigma } \over {{{\left| v \right|}^{1/\beta }}}}\tag{6} LF​=0.05×∣v∣1/βu×σ​(6) σ = ( Γ ( 1 + β ) × s i n ( π β / 2 ) Γ ( ( 1 + β ) / 2 ) × β × 2 ( β − 1 ) / 2 ) 1 / β (7) \sigma = {\left( {{{\Gamma (1 + \beta ) \times sin(\pi \beta /2)} \over {\Gamma ((1 + \beta )/2) \times \beta \times {2^{(\beta - 1)/2}}}}} \right)^{1/\beta }}\tag{7} σ=(Γ((1+β)/2)×β×2(β−1)/2Γ(1+β)×sin(πβ/2)​)1/β(7)其中, u u u 和 v v v 是正态分布的随机数, β β β 是默认的常数,等于 1.5 1.5 1.5。

2.4 鲸落阶段

  在迁徙和觅食的过程中,白鲸受到了来自虎鲸、北极熊和人类的威胁。大多数白鲸都很聪明,可以通过彼此分享信息来逃避威胁。然而,少数白鲸没有幸存下来,掉进了海底。这种现象被称为“鲸鱼坠落”,喂养了大量的生物。大量的鲨鱼和无脊椎动物聚集在一起喂养鲸鱼的尸体,暴露的死鲸鱼的骨头和尸体吸引了大量的毛发甲壳类动物。最后,骨骼被细菌和珊瑚分解或占据了几十年。
  为了模拟每次迭代中鲸落的行为,我们选择鲸鱼从种群中掉落的概率作为我们主观的假设,以此模拟群体中的微小变化。我们假设这些白鲸要么转移到其他地方,要么被击落并掉入深海。为了保证种群数量不变,我们利用白鲸的位置和鲸鱼下降的步长来建立更新的位置。该数学模型表示为:
X i t + 1 = r 5 X i t − r 6 X r t + r 7 X s t e p (8) X_i^{t + 1} = {r_5}X_i^t - {r_6}X_r^t + {r_7}{X_{step}}\tag{8} Xit+1​=r5​Xit​−r6​Xrt​+r7​Xstep​(8)其中, r 5 r_5 r5​ 、 r 6 r_6 r6​ 和 r 7 r_7 r7​ 是 ( 0 , 1 ) (0,1) (0,1) 之间的随机数, X s t e p X_{step} Xstep​ 是鲸鱼坠落的步长,确定为:
X s t e p = ( u b − l b ) e x p ( − C 2 t T ) (9) {X_{step}} = ({u_b} - {l_b})exp( - {C_2}{t \over T})\tag{9} Xstep​=(ub​−lb​)exp(−C2​Tt​)(9)其中, C 2 C_2 C2​ 为与鲸鱼下降概率和种群大小相关的步长因子( C 2 = 2 W f × n C_2=2W_f ×n C2​=2Wf​×n ), u b ub ub 和 l b lb lb 分别为变量的上界和下界。可以看出,步长受设计变量、迭代次数和最大迭代数的边界的影响。
  在这个模型中,鲸鱼坠落的概率( W f W_f Wf​ )被计算为一个线性函数:
W f = 0.1 − 0.05 t / T (10) {W_f} = 0.1 - 0.05t/T\tag{10} Wf​=0.1−0.05t/T(10)  鲸鱼坠落的概率从初始迭代的 0.1 0.1 0.1 下降到最后一次迭代的 0.05 0.05 0.05,说明当白鲸在优化过程中更接近食物源时,白鲸的危险降低。

2.5 算法伪代码

  1. 设置参数:种群的数量 N N N 最大的迭代次数 T T T
  2. 初始化种群,评估适应度值,得到最优解( P ∗ P^* P∗)
  3. While t ≤ T t ≤ T t≤T do
  4.   由式(10)得到鲸鱼坠落概率 W f W_f Wf​ ,由式(3)得到平衡因子 B f B_f Bf​
  5.   For i = 1 i = 1 i=1 to N N N do
  6.     If B f ( i ) > 0.5 B_f(i)>0.5 Bf​(i)>0.5 then
  7.       使用公式(4)更新第 i i i 个白鲸的新位置
  8.     Else If B f ( i ) ≤ 0.5 B_f(i)≤0.5 Bf​(i)≤0.5 then
  9.       更新随机跳跃强度 C 1 C_1 C1​,计算Levy飞行函数
  10.       使用公式(5)更新第 i i i 个白鲸的新位置
  11.     End If
  12.     检查新位置的边界,并评估适合度值
  13.   End For
  14.   For i = 1 i = 1 i=1 to N N N do
  15.     If B f ( i ) < = W f B_f(i)<=W_f Bf​(i)<=Wf​ then
  16.       使用公式(8)更新第 i i i 个白鲸的新位置
  17.       检查新位置的边界,并评估适合度值
  18.     End If
  19.   End For
  20.   求当前最优解 P ∗ P^* P∗
  21.    t = t + 1 t=t+1 t=t+1
  22. End While
  23. 输出最佳解 P ∗ P^* P∗

三、实验结果

  BWO在23个经典测试函数(设置维度 d i m = 30 dim=30 dim=30)的F5、F6、F7中的收敛曲线,测试函数公式如下:

函数 公式 理论值
F5 F 5 ( x ) = ∑ i = 1 d − 1 [ 100 ( x i + 1 − x i 2 ) 2 + ( x i − 1 ) 2 ] {F_5}(x) = \sum\nolimits_{i = 1}^{d - 1} {[100{{({x_{i + 1}} - x_i^2)}^2} + {{({x_i} - 1)}^2}]} F5​(x)=∑i=1d−1​[100(xi+1​−xi2​)2+(xi​−1)2] 0.00 0.00 0.00
F6 F 6 ( x ) = ∑ i = 1 d ( x i + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^d {({x_i} + 5)} ^2} F6​(x)=∑i=1d​(xi​+5)2 0.00 0.00 0.00
F7 F 7 ( x ) = ∑ i = 1 d i × x i 4 + r a n d o m [ 0 , 1 ) {F_7}(x) = \sum\nolimits_{i = 1}^d {i \times x_i^4 + random[0,1)} F7​(x)=∑i=1d​i×xi4​+random[0,1) 0.00 0.00 0.00

3.1 F5收敛曲线

3.2 F6收敛曲线

3.3 F7收敛曲线

四、参考文献

[1] Zhong C, Li G, Meng Z. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm[J]. Knowledge-Based Systems, 2022, 109215.

白鲸优化算法(Beluga whale optimization,BWO)相关推荐

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

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

  2. 白鲸优化算法学习笔记

    白鲸优化算法学习笔记 1. 引言 白鲸优化算法(Whale Optimization Algorithm,简称WOA)是一种基于自然界中的白鲸行为而发展起来的启发式优化算法.该算法模拟了白鲸群体的寻食 ...

  3. 单目标应用:白鲸优化算法(Beluga whale optimization,BWO)优化双向长短时记忆BiLSTM的权值和阈值(提供MATLAB代码)

    一.算法简介 白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于2022年提出,该算法模拟了白鲸游泳,觅食和"鲸鱼坠落" ...

  4. 白鲸优化算法(Beluga whale optimization,BWO)Python实现

    白鲸优化算法Python实现 Python实现BWO Python实现BWO import numpy as np import math from copy import deepcopy impo ...

  5. 基于白鲸优化算法的函数寻优算法

    文章目录 一.理论基础 1.白鲸优化算法 (1)探索阶段 (2)开发阶段 (3)鲸落 2.BWO算法流程图 二.仿真实验与结果分析 三.参考文献 一.理论基础 1.白鲸优化算法 文献[1]从白鲸的行为 ...

  6. 【智能优化算法-白鲸优化算法】基于白鲸优化算法求解单目标优化问题附matlab代码

    1 内容介绍 白鲸优化算法(Beluga whale optimization,BWO)由Changting Zhong等人于2022年提出,该算法模拟了白鲸游泳,觅食和"鲸鱼坠落" ...

  7. 鲸鱼优化算法(Whale Optimization Algorithm,WOA)

    鲸鱼优化算法(Whale Optimization Algorithm,WOA) 一.算法灵感 二.算法介绍 2.1 初始化 2.2 包围猎物阶段 2.3 气泡网捕食法 2.3.1 收缩包围 2.3. ...

  8. 群体智能优化算法之鲸鱼优化算法(Whale Optimization Algorithm,WOA)

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 鲸鱼优化算法(Whale Optimization Algorithm,WOA) 1.1 灵感 1.2 数学建模和优化算法 1.2.1 包围捕食(En ...

  9. 白骨顶鸡优化算法(Coot Optimization Algorithm,COOT)

    白骨顶鸡优化算法(Coot Optimization Algorithm,COOT) 一.算法灵感 二.算法介绍 2.1 初始化 2.2 跟随者位置更新(探索阶段) 2.2.1 主动更新 2.2.1. ...

最新文章

  1. python实现简单的http服务器_Python实现简单HTTP服务器(二)
  2. 在公共区块链中通过加密保护数据
  3. Android Studio查看Android源代码失败
  4. sql中的begin....end
  5. 计算机网络管理云红艳电子版,计算机网络管理pdf
  6. jQuery属性操作
  7. OpenCASCADE:绘制演示脚本
  8. iOS 开发周报:Apple 发布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品
  9. 对C# 程序员来说现在是到目前为止最好的时代
  10. UVA - 548 Tree
  11. C++11新特性(4)
  12. python中的数据类型中int表示_python中的基本数据类型之 int bool str
  13. 【题解】ZJOI2017仙人掌
  14. java中hashset_Java HashSet – Java中的HashSet
  15. 安全测试|SQL注入技术
  16. MFC 为对话框窗口自定义基类
  17. C语言每日一练——第35天:打印菱形
  18. 机械键盘的“轴”有什么区别?
  19. (web前端网页制作课作业)使用HTML+CSS制作非物质文化遗产专题网页设计与实现
  20. PL读写DDR3 实现PS和PL间的数据交互

热门文章

  1. HTML+CSS制作人物介绍网页
  2. TFIDF与TextRank
  3. VS C1001错误可能的解决方案
  4. 电脑无法访问别的计算机,为什么网上邻居别的电脑访问不到我的电脑?
  5. python时间间隔循环_python循环间隔
  6. Vue进阶(幺柒捌):延伸阅读Sass、Scss、Less与Stylus编程特性
  7. CodeForces刷题C语言:What is for dinner?、Reconnaissance 2、Shell Game、Extra-terrestrial Intelligence、Extra
  8. Python 元组(tuple)
  9. 关于《北京市安全生产专项整治三年行动计划》的解读
  10. 土法合并GridView表头