1. 概要

このチュートリアルでは、 クジラ最適化アルゴリズム(WOA)とは何か、そしてそれが何をするかについて説明します。 さらに、アルゴリズムを調べ、例を使用して、WOAがいくつかの単純な最適化をどのように解決するかを示します。

2. クジラ最適化アルゴリズムとは何ですか?

WOAは、メタヒューリスティックアルゴリズムです。 名前が示すように、このアルゴリズムは、 Mirjalili and Lewis、2016によって数値問題を最適化するために提案されました。 WOAのインスピレーションは、特に、海でのザトウクジラの社会的行動とバブルネットハンティングから来ています。

3. ザトウクジラは誰ですか?

ザトウクジラは世界最大の哺乳類の1つです。 彼らはまた、7種類のクジラの1つです。 また、バブルネットフィーディング方式と呼ばれる独自のハンティングメカニズムを備えています。 彼らの脳には紡錘細胞が含まれているので、彼らは間違いなくインテリジェントです。 この採餌行動は、らせん状または小道の形で特別な泡を形成することによって達成されます。 結果として、クジラのリーダーシップの階層を調べてみましょう。

  • リーダーのクジラは獲物を見つけて約12メートル潜り、獲物の周りにらせん状の泡を作り、泡を追いながら水面まで泳ぎます。
  • 同期するために電話をかけることによってリーダーをサポートする経験豊富なクジラ
  • 他の人はリーダーの後ろにフォーメーションを形成し、各ランジに対して同じ位置を取ります

要するに、ザトウクジラのバブルネットハンティングは下の画像に似ているかもしれません:

4. クジラ最適化アルゴリズムの数学的モデル

WOAアルゴリズムは、海洋におけるザトウクジラの社会的行動と狩猟方法を模倣しています。では、クジラ狩りの基本について見ていきましょう。

  1. 探索フェーズ:獲物を探す
  2. 獲物を取り囲む
  3. 搾取段階:バブルネット法を使用して獲物を攻撃する

クジラの狩猟プロセスの各段階の背後にある数学的モデルを見てみましょう。

4.1. 探索フェーズ:モデルの検索

検索エージェント(ザトウクジラ)は、各エージェントの位置に基づいてランダムに最適な解決策(獲物)を探します。 このフェーズでは、最適な検索エージェントではなく、ランダムに選択された検索エージェントを使用して、検索エージェントの位置を更新します。 その後、式3で定義されているように、検索エージェントを参照クジラから遠ざけるように強制します。 このフェーズの背後にある数学的モデルは次のとおりです。

(1)  

(2)  

ここで、は現在の母集団から選択されたランダムな位置ベクトルであり、{、}は係数ベクトルです。 さらに、最適な検索エージェントを見つけるために使用できる{と}の方程式は次のとおりです。

(3)  

(4)  

ここで、は範囲[0、1]のランダムベクトルであり、反復中に2から0まで直線的に減少します。

4.2. 包囲モデル

ザトウクジラは狩猟中に獲物を取り囲みます。 次に、彼らは現在の最良の候補解を最良の解と見なし、最適に近いものと見なします。 要するに、これが最高の検索エージェントに向けて他のクジラの位置を更新するために使用される包囲行動のモデルです:

(5)  

(6)  

ここで、tは現在の反復であり、は最良の解の位置であり、解の位置ベクトルを指し、{、}は式3および4に示す係数ベクトルです。

4.3. 搾取フェーズ:バブルネット攻撃モデル

このフェーズでは、バブルネットを使用して獲物を攻撃することに焦点を当てます。 このバブルネット戦略は、2つのアプローチを組み合わせたものです。 このステップをよりよく理解するために、各アプローチの数学的モデルを見てみましょう。

  • 縮小する包囲メカニズム:このメカニズムのの値は[-a、a]間隔内のランダムな値であり、式3に示すように、の値は反復の過程で2から0に減少します。 。 ここで、[-1、1]のランダムな値を定義しましょう。 また、検索エージェントの新しい位置を、現在の最良のエージェントの位置とエージェントの元の位置の間のどこにでも定義できます。 それでは、からまでの可能な位置を表示するグラフを見てみましょう:
  • スパイラル更新位置メカニズム:この方法は、クジラと獲物の間の距離の計算から始まります。 ザトウクジラと獲物の間の位置を定義するためのザトウクジラのらせん状の動きの背後にあるスパイラル方程式は次のとおりです。

(7)  

ここで、はクジラと獲物の間の距離(これまでに得られた最良の解)を表し、は[-1、1]の間の乱数であり、対数螺旋の形状を定義する定数です。 次に、縮小する円を使用し、同時にらせん状のパスをたどって、獲物の周りのザトウクジラの水泳スタイルの背後にある数学モデルを定義しましょう。

(8)  

ここで、は、クジラの位置を更新するためにこれら2つの方法のいずれかを選択する確率を表します。 次に、2つのアプローチのどちらかを選択する確率が50%であるとしましょう。 次に、は[0、1]の乱数です。 スパイラル更新位置をより詳細に説明するグラフは次のとおりです。

5. クジラ最適化アルゴリズムのフローチャート

フローチャートを見てみましょう。

まず、クジラの個体数と値を初期化する必要があります。 次に、検索エージェントのフィットネスソリューションの値を評価します。 次に、反復回数を1に設定します。 その後、式1を使用して獲物を検索します。 次に、獲物を見つけた後、式5を使用してそれを囲みます。 続いて、式8のバブルネット戦略を使用して獲物を攻撃する検索エージェントの位置を更新します。 次に、{、、}の値を検索エージェントの新しい位置で更新します。 その後、各検索エージェントの新しい位置の等式と不等式の制約を確認し、反復回数を増やします。

最後に、最大反復回数に達した場合、最適なソリューションとしてフィットネス値を停止して保存します。 それ以外の場合は、解決策が見つかるまでこのプロセスを繰り返します。

6. 例を挙げたクジラ最適化アルゴリズムの説明

クジラの最適化アルゴリズムを理解するための簡単な例を見つけましょう。

  • ステップ1:まず、クジラの個体数をランダムに初期化しましょう
  • ステップ2:次に、反復カウンターt=0を初期化します。
  • ステップ3:次に、a = 2(2から0に減少するため)と{}の値をランダムな値(式3と4に基づく)を使用して初期化し、次のように定義します。

   

  • ステップ4:その後、適応度関数を計算して各検索エージェントを評価する必要があります。 適応度関数の例は次のとおりです。

   

5つの検索エージェントの母集団のランダムな初期化を設定した後の適応度関数の結果は次のとおりです。

   

結果として、最適なソリューションは、すべての検索エージェントの中で最も低い適応度値を持つソリューションです。 したがって、は最初の反復の最適なソリューションです。

  • ステップ5:では、とに従って位置ベクトルを更新しましょう:

   

  • ステップ6: もしもそれから値を更新する{} && 手順4と5を繰り返します
  • ステップ7: If thenが最適なソリューションを返します

7. 結論

この記事では、クジラの最適化アルゴリズムと、このアルゴリズムを理解することで、クジラの方法を使用して問題の最適な解決策を探すのがどのように容易になるかについて説明しました。 このアルゴリズムを導入したのは、非常に効果的でありながら、簡単に理解できるほどシンプルなままであるためです。