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

一、算法灵感

  白鲸优化算法(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,1x2,1xn,1x1,2x2,2xn,2.........x1,dx2,dxn,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(12Tt)(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,pjt+(Xr,p1tXi,pjt)(1+r1)sin(2πr2)Xi,jt+1=Xi,pjt+(Xr,p1tXi,pjt)(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,pjt X r , p 1 t X_{r,{p_1}}^t Xr,p1t 是第 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=r3Xbesttr4Xit+C1LF(XrtXit)(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(1t/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×v1/β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=r5Xitr6Xrt+r7Xstep(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=(ublb)exp(C2Tt)(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.10.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 tT 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=1d1[100(xi+1xi2)2+(xi1)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=1di×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.

猜你喜欢

转载自blog.csdn.net/jiaheming1983/article/details/129632261