グレイ ウルフ オプティマイザー (GWO)

1. アルゴリズムのインスピレーション

  Gray Wolf Optimizer (GWO) は、2014 年にオーストラリアのグリフィス大学の学者である Mirjalili らによって提案された群知能最適化アルゴリズムです。ハイイロオオカミの群れでの狩猟行動からインスピレーションを得たもの。GWO アルゴリズムは、自然界のハイイロオオカミのリーダーシップ階層と狩猟メカニズムをシミュレートします。ハイイロオオカミは階層をシミュレートするために 4 つのタイプに分類されます。さらに、獲物を見つける、獲物を囲む、獲物を攻撃するという 3 つの主要な段階がシミュレーションされます。

2. アルゴリズムの紹介

2.1 初期化

  GWO では、オオカミの社会階層を数学的にシミュレートするために、最適解はアルファ ( α αα ) は、先頭のオオカミ (一次オオカミ) の位置をシミュレートするために使用されます。したがって、2 番目と 3 番目に最適なソリューションは beta(β βb )和デルタ(d dδ ) は、2 次および 3 次のオオカミの位置をモデル化するために使用されます。残りの候補解は omega(ω ωω ) は従属ウルフ (4 次ウルフ) の位置をシミュレートするために使用されます。GWO アルゴリズムでは、ハンティング (解決) はα αα狼、b bβ狼和d dデルタウルフの案内。ω・ωωオオカミはこの 3 匹のオオカミを追いかけました。

2.2 獲物を探す(探索フェーズ)

  ハイイロオオカミは主にα αをベースとしていますα狼、b bβ狼和d dデルタウルフの居場所を探す彼らは獲物を求めて互いに離れ、その後獲物を攻撃するために集合します。発散を数学的にモデル化するには、 1 1より大きいランダム値を使用します。1以下-1 -11 A A 個々のハイイロオオカミに獲物から逸れるように強制するためのA。これは主にアルゴリズムの探索に使用され、GWO がグローバル検索を実行できるようにします。図 1 に示すように、∣ A ∣ > 1 |A|>1A >1 は、より強い獲物を見つけることを期待して、ハイイロオオカミを獲物から遠ざけることを強制します。探索を容易にする GWO のもう 1 つのコンポーネントはCCCは式 (4) を使用して計算され、 [0, 2] [0,2]の範囲の乱数です。[ 0 ,2 ]このパラメータは、強化する獲物にランダムな重みを与えます (C > 1 C > 1C>1 ) または減少します (C < 1 C < 1C<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=∣C _バツp( 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 )=バツp( t )D( 2 )その中で、ttt は現在の反復番号、AAACCCは係数、X p X_{p}バツpは獲物の位置、 は獲物の位置、X ( t ) X(t)X ( t )はtt 番目のです世代tの位置AAACCCの計算方法は次のとおりです。
A = 2 a ⋅ r 1 − a (3) A = 2 a \cdot { r_1} - a \tag{3}=2a_ _r1ある( 3 ) C = 2 ⋅ r 2 (4) C = 2 \cdot { r_2}\tag{4}C=2r2( 4 )その中で、r 1 r_{1}r1r 2 r_{2}r2[ 0 , 1 ] [0,1][ 0 ,1 ]ランダム値。獲物への接近をシミュレートするには、AAA 是区间 [ − a , a ] [-a,a] [ a ]内ランダムな値aaa は反復中に2 22 が0 0に減ります0

2.3.2 獲物を攻撃する

  ハイイロオオカミは獲物の位置を特定して狩る能力を持っています。狩猟は通常、 α αで構成されます。α狼が指揮をとり、β ββ狼和d dデルタオオカミも時々狩猟に参加します。獲物の位置を追跡する個々のハイイロオオカミの数学的モデルは次のように記述されます:
D α = ∣ C 1 ⋅ X α − X ∣ (5) { { D}_\alpha } = \left| { { { C} _1} \cdot { { X}_\alpha } - X} \right|\tag{5}Dある=∣C _1バツあるX( 5 ) D β = ∣ C 2 ⋅ X β − X ∣ (6) { { D}_\beta } = \left| { { { C}_2} \cdot { { X}_\beta } - X} \right|\tag{6}Db=∣C _2バツbX( 6 ) D δ = ∣ C 3 ⋅ X δ − X ∣ (7) { { D}_\delta } = \left| { { { C}_3} \cdot { { X}_\delta } - X} \right|\tag{7}Dd=∣C _3バツdX( 7 )その中で、D α D_{α}DあるD β D_{β}DbDδD_{δ}Ddα αをそれぞれ表すα狼、b bβ狼和d dδオオカミと他の個体との距離、X α X_{α}バツあるX β X_{β}バツbXδX_{δ}バツdα αをそれぞれ表すα狼、b bβ狼和d dδオオカミの現在位置;C 1 C_{1}C1C 2 C_{2}C2そしてC3C_{3}C3は乱数、XXXはハイイロオオカミ個体の現在位置です。
X 1 = X α − A 1 ⋅ ( D α ) (8) { { X}_1} = { { X}_\alpha } - { { A}_1} \cdot ({ { D}_\alpha }) \タグ{8}バツ1=バツある1( Dある)( 8 ) X 2 = X β − A 2 ⋅ ( D β ) (9) { { X}_2} = { { X}_\beta } - { { A}_2} \cdot ({ { D}_\ベータ版 })\tag{9}バツ2=バツb2( Db)( 9 ) X 3 = X δ − A 3 ⋅ ( D δ ) (10) { { X}_3} = { { X}_\delta } - { { A}_3} \cdot ({ { D}_\デルタ })\タグ{10}バツ3=バツd3( Dd)( 1 0 )ここで、X 1 X_{1}バツ1X 2 X_{2}バツ2そしてX 3 X_{3}バツ3それぞれα αを表しますα狼、b bβウルフ、d dδ狼の影響、ω・ωωWolfの位置を調整しました。ここでは平均値がとられます。つまり、 X (t + 1) = X 1 + X 2 + X 3 3 (11) X( t
+ 1) = { { { { { X}_3}} \over 3} \タグ{11} X ( t+1 )=3バツ1+バツ2+バツ3( 1 1 )  ハイイロオオカミの位置更新方法は図 2 で表すことができます。
ここに画像の説明を挿入します

図2 ハイイロオオカミの位置更新の模式図

2.4 アルゴリズムの擬似コード

  1. ハイイロオオカミの個体群X i (i = 1, 2, ..., n) X_{i}(i=1,2,...,n) を初期化します。バツ私は(私は=1 2 n )
  2. a、A、C、t = 0を初期化しますa,A,C,t=0_C t=0
  3. ハイイロオオカミの各個体の適応度を計算する
  4. X a X_{a}バツある= 最高の適応度値を持つハイイロオオカミの個体
  5. X β X_{β}バツb= 2 番目に高い適応度を持つハイイロオオカミの個体
  6. X δ X_{δ}バツd= 3 番目に高い適応度を持つハイイロオオカミの個体
  7. t < 最大 < 最大の場合t<マックス_ _
  8.   i = 1の場合、 i = 1=1 からNNまで N する
  9.     式(11)を使用してハイイロオオカミ個体の現在位置を更新します
  10.   終了
  11.   アップデート_AAACCC
  12.   すべてのハイイロオオカミ個体の適応度値を計算する
  13. X a X_{a}  を更新しますバツあるX β X_{β}バツbXδX_{δ}バツd
  14.   t = t + 1 t=t+1t=t+1
  15. 途中で終了
  16. 最適解X α X_{α}を返しますバツある

3. 実験結果

23 の古典的なテスト関数の GWO (ディメンションdim = 30 dim=30を設定)_=3 0の F5、F6、および F7 の収束曲線

関数 公式 理論値
F5 F 5 ( x ) = ∑ i = 1 d − 1 [ 100 ( xi + 1 − xi 2 ) 2 + ( xi − 1 ) 2 ] {F_5}(x) = \sum\nolimits_{i = 1}^{ d - 1} {[100{ {({x_{i + 1}} - x_i^2)}^2} + { { ({x_i} - 1)}^2}]}F5( × )=i = 1d 1[ 1 0 0 ( x+ 1バツ2)2+( ×私は1 )2 ] 0.00 0.000 0 0
F6 F 6 ( x ) = ∑ i = 1 d ( xi + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^d {({x_i} + 5)} ^2}F6( × )=i = 1d( ×私は+5 )2 0.00 0.000 0 0
F7 F 7 ( x ) = ∑ i = 1 di × xi 4 + ランダム [ 0 , 1 ) {F_7}(x) = \sum\nolimits_{i = 1}^d {i \times x_i^4 + ランダム[0 ,1)}F7( × )=i = 1d×バツ4+ランダム[ 0 , _ _ _ _ _1 ) 0.00 0.000 0 0

3.1 F5 収束曲線

画像の説明を追加してください

3.2 F6 収束曲線

ここに画像の説明を挿入します

3.3 F7 収束曲線

ここに画像の説明を挿入します

4. 参考文献

[1] S. ミルジャリリ、SM ミルジャリリ、A. ルイス。グレイウルフオプティマイザー[J]。エンジニアリング ソフトウェアの進歩、2014、69、46-61。

おすすめ

転載: blog.csdn.net/jiaheming1983/article/details/129785117