グレイ ウルフ オプティマイザー (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 -1−1 的 A A 個々のハイイロオオカミに獲物から逸れるように強制するためのA。これは主にアルゴリズムの探索に使用され、GWO がグローバル検索を実行できるようにします。図 1 に示すように、∣ A ∣ > 1 |A|>1∣ A ∣>1 は、より強い獲物を見つけることを期待して、ハイイロオオカミを獲物から遠ざけることを強制します。探索を容易にする GWO のもう 1 つのコンポーネントはCCCは式 (4) を使用して計算され、 [0, 2] [0,2]の範囲の乱数です。[ 0 ,2 ]。このパラメータは、強化する獲物にランダムな重みを与えます (C > 1 C > 1C>1 ) または減少します (C < 1 C < 1C<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 は現在の反復番号、AAAとCCCは係数、X p X_{p}バツpは獲物の位置、 は獲物の位置、X ( t ) X(t)X ( t )はtt 番目のです世代tの位置AAAとCCCの計算方法は次のとおりです。
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=2⋅r2( 4 )その中で、r 1 r_{1}r1、r 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⋅バツb−X ∣( 6 ) D δ = ∣ C 3 ⋅ X δ − X ∣ (7) {
{ D}_\delta } = \left| {
{
{ C}_3} \cdot {
{ X}_\delta } - X} \right|\tag{7}Dd=∣C _3⋅バツd−X ∣( 7 )その中で、D α D_{α}Dある、D β D_{β}Db和DδD_{δ}Ddα αをそれぞれ表すα狼、b bβ狼和d dδオオカミと他の個体との距離、X α X_{α}バツある、X β X_{β}バツb和XδX_{δ}バツdα αをそれぞれ表すα狼、b bβ狼和d dδオオカミの現在位置;C 1 C_{1}C1,C 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=バツb−あ2⋅( Db)( 9 ) X 3 = X δ − A 3 ⋅ ( D δ ) (10) {
{ X}_3} = {
{ X}_\delta } - {
{ A}_3} \cdot ({
{ D}_\デルタ })\タグ{10}バツ3=バツd−あ3⋅( Dd)( 1 0 )ここで、X 1 X_{1}バツ1,X 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.4 アルゴリズムの擬似コード
- ハイイロオオカミの個体群X i (i = 1, 2, ..., n) X_{i}(i=1,2,...,n) を初期化します。バツ私は(私は=1 、2 、。。。、n )
- a、A、C、t = 0を初期化しますa,A,C,t=0、_あ、C 、t=0
- ハイイロオオカミの各個体の適応度を計算する
- X a X_{a}バツある= 最高の適応度値を持つハイイロオオカミの個体
- X β X_{β}バツb= 2 番目に高い適応度を持つハイイロオオカミの個体
- X δ X_{δ}バツd= 3 番目に高い適応度を持つハイイロオオカミの個体
- t < 最大 < 最大の場合t<マックス_ _
- i = 1の場合、 i = 1私=1 からNNまで N する
- 式(11)を使用してハイイロオオカミ個体の現在位置を更新します
- 終了
- アップデート_あ、AAAとCCC
- すべてのハイイロオオカミ個体の適応度値を計算する
- X a X_{a} を更新しますバツある、X β X_{β}バツb和XδX_{δ}バツd
- t = t + 1 t=t+1t=t+1
- 途中で終了
- 最適解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。