灰狼优化算法(Grey Wolf Optimizer,GWO)

一、算法灵感

  灰狼优化算法(Grey Wolf Optimizer, GWO),由澳大利亚格里菲斯大学学者Mirjalili等人于2014年提出来的一种群智能优化算法。灵感来自于灰狼群体捕食行为。GWO算法模拟了自然界中灰狼的领导等级和狩猎机制。将灰狼分为四种类型,用来模拟等级阶层。此外,还模拟了寻找猎物、包围猎物和攻击猎物三个主要阶段。

二、算法介绍

2.1 初始化

  在GWO中,为了从数学上模拟狼的社会层次,将最优的解定义为alpha( α α α )用于模拟领头狼(一阶狼)的位置。因此,第二和第三最佳解分别命名为beta( β β β )和delta( δ δ δ ) 用于模拟二阶狼和三阶狼的位置。其余的候选解被假定为omega( ω ω ω )用于模拟从属狼(四阶狼)的位置。在GWO算法中,狩猎(求解)由 α α α 狼、 β β β 狼和 δ δ δ 狼指导。 ω ω ω 狼跟着这三只狼。

2.2 搜寻猎物(探索阶段)

  灰狼大多根据 α α α 狼、 β β β 狼和 δ δ δ 狼的位置进行搜索。它们互相分开以寻找猎物,然后汇聚起来攻击猎物。为了在数学上建立发散模型,利用随机值大于 1 1 1 或小于 − 1 -1 1 A A A 来迫使灰狼个体偏离猎物。这主要用于算法探索,并可以使GWO进行全局搜索。如图1显示, ∣ A ∣ > 1 |A|>1 A>1 迫使灰狼偏离猎物,希望找到更强壮的猎物。GWO的另一个有利于探索的组成部分是 C C C ,其使用等式(4)进行计算,其为随机数,范围为 [ 0 , 2 ] [0,2] [0,2]。该参数为猎物提供了随机的权重,以便加强( C > 1 C > 1 C>1 时)或降低( C < 1 C < 1 C<1 时)猎物位置对灰狼下一个位置的影响,计算公式见公式(1)。
在这里插入图片描述

图1 攻击猎物与寻找猎物

2.3 开发阶段

2.3.1 围捕猎物

  在捕猎过程中,灰狼包围了猎物。为了对环绕行为进行数学建模,提出了以下方程式:
D = ∣ C ⋅ X p ( t ) − X ( t ) ∣ (1) D = \left| { C \cdot { { X}_{\rm{p}}}(t) - X(t)} \right|\tag{1} D=CXp(t)X(t)(1) X ( t + 1 ) = X p ( t ) − A ⋅ D (2) X(t + 1) = { X_{\rm{p}}}(t) - A \cdot D\tag{2} X(t+1)=Xp(t)AD(2)其中, t t t 表示当前迭代次数, A A A C C C 为系数, X p X_{p} Xp 为猎物的位置,为猎物的位置, X ( t ) X(t) X(t) 为灰狼个体第 t t t 代的位置。 A A A C C C 的计算方法如下:
A = 2 a ⋅ r 1 − a (3) A = 2 a \cdot { r_1} - a \tag{3} A=2ar1a(3) C = 2 ⋅ r 2 (4) C = 2 \cdot { r_2}\tag{4} C=2r2(4)其中, r 1 r_{1} r1 r 2 r_{2} r2 [ 0 , 1 ] [0,1] [0,1] 中的随机值。为了模拟逼近猎物, A A A 是区间 [ − a , a ] [-a,a] [a,a] 中的一个随机值,其中 a a a 在迭代过程中从 2 2 2 减少到 0 0 0

2.3.2 攻击猎物

  灰狼有能力识别猎物的位置并围猎它们。围猎通常由 α α α 狼来指挥, β β β 狼和 δ δ δ 狼也会偶尔参与狩猎。灰狼个体跟踪猎物位置的数学模型描述如下:
D α = ∣ C 1 ⋅ X α − X ∣ (5) { { D}_\alpha } = \left| { { { C}_1} \cdot { { X}_\alpha } - X} \right|\tag{5} Dα=C1XαX(5) D β = ∣ C 2 ⋅ X β − X ∣ (6) { { D}_\beta } = \left| { { { C}_2} \cdot { { X}_\beta } - X} \right|\tag{6} Dβ=C2XβX(6) D δ = ∣ C 3 ⋅ X δ − X ∣ (7) { { D}_\delta } = \left| { { { C}_3} \cdot { { X}_\delta } - X} \right|\tag{7} Dδ=C3XδX(7)其中, D α D_{α} Dα D β D_{β} Dβ D δ D_{δ} Dδ 分别表示 α α α 狼、 β β β 狼和 δ δ δ 狼与其他个体间的距离; X α X_{α} Xα X β X_{β} Xβ X δ X_{δ} Xδ 分别代表 α α α 狼、 β β β 狼和 δ δ δ 狼当前的位置; C 1 C_{1} C1 C 2 C_{2} C2 C 3 C_{3} C3 是随机数, X X X 是灰狼个体的当前位置。
X 1 = X α − A 1 ⋅ ( D α ) (8) { { X}_1} = { { X}_\alpha } - { { A}_1} \cdot ({ { D}_\alpha })\tag{8} X1=XαA1(Dα)(8) X 2 = X β − A 2 ⋅ ( D β ) (9) { { X}_2} = { { X}_\beta } - { { A}_2} \cdot ({ { D}_\beta })\tag{9} X2=XβA2(Dβ)(9) X 3 = X δ − A 3 ⋅ ( D δ ) (10) { { X}_3} = { { X}_\delta } - { { A}_3} \cdot ({ { D}_\delta })\tag{10} X3=XδA3(Dδ)(10)其中, X 1 X_{1} X1 X 2 X_{2} X2 X 3 X_{3} X3 分别表示受 α α α 狼、 β β β 狼、 δ δ δ 狼影响, ω ω ω 狼调整后的位置。这里取平均值,即:
X ( t + 1 ) = X 1 + X 2 + X 3 3 (11) X(t + 1) = { { { { X}_1} + { { X}_2} + { { X}_3}} \over 3}\tag{11} X(t+1)=3X1+X2+X3(11)  灰狼的位置更新方式可以用图2表示。
在这里插入图片描述

图2 灰狼的位置更新示意图

2.4 算法伪代码

  1. 初始化灰狼种群 X i ( i = 1 , 2 , . . . , n ) X_{i}(i=1,2,...,n) Xi(i=1,2,...,n)
  2. 初始化 a , A , C , t = 0 a,A,C,t=0 a,A,C,t=0
  3. 计算每个灰狼个体的适应度值
  4. X α X_{α} Xα = 适应度值最好的灰狼个体
  5. X β X_{β} Xβ = 适应度值第二的灰狼个体
  6. X δ X_{δ} Xδ = 适应度值第三的灰狼个体
  7. While t < M a x t < Max t<Max
  8.   For i = 1 i = 1 i=1 to N N N do
  9.     使用公式(11)更新当前灰狼个体的位置
  10.   End For
  11.   更新 a a a A A A C C C
  12.   计算所有灰狼个体的适应度值
  13.   更新 X α X_{α} Xα X β X_{β} Xβ X δ X_{δ} Xδ
  14.    t = t + 1 t=t+1 t=t+1
  15. End While
  16. 返回最优解 X α X_{α} Xα

三、实验结果

GWO在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收敛曲线

在这里插入图片描述

扫描二维码关注公众号,回复: 16842593 查看本文章

四、参考文献

[1] S. Mirjalili, S. M. Mirjalili, A. Lewis. Grey Wolf Optimizer[J]. Advances in Engineering Software, 2014, 69, 46-61.

猜你喜欢

转载自blog.csdn.net/jiaheming1983/article/details/129785117
今日推荐