1. 序章

Dragonflyアルゴリズムは、最近開発されたヒューリスティック最適化手法の1つです。 さらに、さまざまな現実世界の問題を最適化する能力を示しています。 このチュートリアルでは、Dragonflyアルゴリズムについて説明し、アルゴリズムのさまざまな手順を示します。

2. Dragonflyアルゴリズムとは何ですか?

ミルジャリリは2016年にグリフィス大学でトンボアルゴリズムを作成しましたトンボアルゴリズムは、野生のトンボの静的および動的な群れ行動に触発されました。 実際、最適化に必要な2つのフェーズである探索と活用は、静的および動的な群れ行動によって表されます。

また、トンボはサブスウォームを形成し、静的なスウォームのさまざまな領域を飛び越えます。 これは探索に似ており、アルゴリズムが適切な検索スペースの場所を見つけるのに役立ちます。 一方、ダイナミックな群れのトンボは、より大きな群れで同じ方向に飛ぶ。 さらに、このタイプの群れは、アルゴリズムを使用してグローバルな最良のソリューションに収束するのを支援するのと同じです。

3. Dragonflyアルゴリズムの手順

一般に、Dragonflyアルゴリズムの群れの動作は、次の3つの基本原則に従います。

  • 分離:隣接する静的衝突の回避を示します
  • アラインメント:隣接する個人とペアになっている個人の速度を返します
  • 凝集力:群れの中心に向かう個々の傾向を示します

群れの究極の目的は生き残ることなので、メンバー全員が食料源に引き寄せられ、潜在的な攻撃者から遠ざかる必要があります。 したがって、次の図に示すように、これら2つの動作を考慮すると、群れの個体の位置更新には5つの主要な側面があります。分離、整列、凝集、引力、および気晴らしです。

4. トンボアルゴリズム数学モデル

前のセクションで述べたように、トンボのポジショニングの動きは、次の5つの動作で構成されます。 それでは、操作を定義しましょう。

4.1. 分離

次のように、2つの隣接するトンボ間の分離を計算できます。

                                      (1)

ここで、は現在の個人の位置を示し、隣接する個人を示し、  は隣接する個人の数です。

4.2. アラインメント

この方程式は、トンボの配置を決定するために使用されます。

                                (2)

ここで、は隣接する個体の速度を表します。

4.3. 凝集

凝集力は次のように導き出すことができます。

                                   (3)

ここで、は現在の個人の位置を示し、は隣接する個人を示し、  は隣接する個人の数です。

4.4. アトラクション

この方程式を使用して、食物の供給源への引力操作を計算します。

                                                                       (4)

ここで、現在の個人の位置を示し、食料源の位置を説明します。

4.5. 気晴らし

ここに示すように、敵からの注意散漫を判断できます。

                                                                     (5)

ここで、は現在の個人の位置を示し、 天敵を示します。

探索空間内の人工トンボの位置を更新し、その動きを再現するために、ステップベクトル()と位置ベクトル()の2つのベクトルが考慮されます。

したがって、ステップベクトルはトンボの動きの方向を表します。 このベクトルは次の式で定義できます。

                (6)

ここで、、、、およびはフェーズの重みです:分離、整列、凝集、引力、および気晴らし。 また、慣性重みを表し、反復カウンターです。

これらの重みの値を変更することで、探索と活用の段階を実現できます。

位置ベクトルは、次の式に示すように、ステップベクトルを使用して簡単に決定できます。

                                                           (7)

実際、低い凝集度の重み()と高い整列の重み()が探索フェーズに割り当てられます。 同様に、低いアライメントウェイト()と高い凝集ウェイト()が活用フェーズに割り当てられます。

位置ベクトルはトンボの位置を示します。 ただし、周囲の解が存在しない場合、トンボはランダムな探索空間を飛行する必要があり、調整された方程式を使用してその位置を更新する必要があります。

                                  (8)

ここで:

             (9)

ここで、[0,1]の範囲は一定であり、

次のように定義されます。

         (10)

5. Dragonflyアルゴリズムの擬似コード

次に、アルゴリズムのさまざまなステップを見てみましょう。

アルゴリズムは、与えられた最適化問題に対する一連の解をランダムに生成することによって最適化プロセスを開始します。 トンボの位置とステップベクトルを初期化するために、変数の下限と上限の範囲内で定義されたランダムな値が使用されます。

各トンボの位置とステップは、各サイクルで更新されました。 さらに、すべてのトンボ間のユークリッド距離を計算し、そのうちのN個を選択することにより、更新とベクトルのために各トンボの近傍が選択されます。 次に、終了基準が満たされるまで、位置の更新プロセスを繰り返し続けました。

6. 例

ここでは、この方法をよりよく理解するために、トンボの行動の1つの特定の例を示します。 この図は、前の数学モデルを使用して近隣半径を増加させたトンボの群れ行動の例を示しています。

確かに、分離、整列、結束、食物、および敵の要因(s、a、c、f、r、およびw)を使用して、最適化中にさまざまな探索的および搾取的な行動が作成される可能性があります。 トンボの隣人は非常に重要であるため、各トンボは特定の半径を持つ近隣を持つことになっています。

s =、a =、c =、f =、r =を利用し、wはからまで直線的に減少し、パラメーターを使用して、さまざまな群れ行動を刺激することができました。 また、緑の円は食料源、黒の円は個体、赤の円は敵、紫の線はトンボのステップベクトルです。

実際、この画像は、提案されたモデルが、検索エリア全体で、互いに、食料源、および敵との関係で個人をどのように移動させるかを示しています。

7. 結論

一般に、応用科学のDragonflyアルゴリズムは、ネットワーキング、機械学習、画像処理、ワイヤレスの分野で提供されています。 実際、このチュートリアルでは、さまざまなステップと数学モデルを説明することにより、Dragonflyアルゴリズムを紹介しました。