Antライオンの最適化
1. 序章
自然に触発されたAntLion Optimizer は、最適化問題のメタヒューリスティックアルゴリズムを提供します。 これは、人口ベースのアルゴリズムです。 私たちが焦点を当てているのは、ウスバカゲロウとアリです。 幼虫の形をしたウスバカゲロウは、砂に穴を掘ってアリを狩ります。これにより、ウスバカゲロウが攻撃を待っている中心に向かって落下する可能性があります。 ウスバカゲロウは、探索エージェントとして機能する探索アリによって補完されます。
2. 世界を代表する
私たちの世界には、アリとウスバカゲロウの2つの実体があります。 それらとその動作をモデル化する必要があります。 そのために、ベクトルを使用して、ウスバカゲロウとアリ、および同じ個体群の行列を表します。 モデル化する動作は、アリのランダムウォークと、それらのウォークに対するウスバカゲロウのトラップの影響です。ウスバカゲロウの位置を適切なアリの位置に更新することにより、アルゴリズムは時間の経過とともに最適なソリューションに収束します。
2.1. アリを表す
アリは、空間をランダムに歩く検索エージェントです。アリは、ウスバカゲロウの罠の間を歩くときに、適応度関数を使用してスコアを付けます。
アリは確率論的政策を使用して世界を移動します。 ランダムウォークを使用します。 アリの目標は、ウスバカゲロウを避けることです。
アリのランダムウォークは、次の式を使用して計算されます。
(1)
この場合は、累積合計関数です。 また、以下に示すランダム関数を使用します。
(2)
ランドは、範囲から均一にサンプリングされたランダムな数値です
下の画像では、1次元での3回のランダムウォークの結果を示しています。 場合によっては、歩行は原点の上下で非常に劇的に上下します。 これにより、既存のソリューションに関する適切なレベルの調査が可能になります。
ここで説明するランダムウォークを再検討して、それをバインドし、その動作をウスバカゲロウの存在と統合します。 まず、ウスバカゲロウを紹介します。
2.2. ウスバカゲロウを表す
ウスバカゲロウの目標はアリを捕獲することです。ウスバカゲロウは最適化問題の解決策を表しています。 ウスバカゲロウを行列で表します。 ウスバカゲロウは、アリがつまずく可能性のある罠として機能する穴を掘ります。 このように、ウスバカゲロウはアリのランダムウォークに影響を与えます。 アリのランダムウォークをウスバカゲロウの影響を受けることで、この行動をモデル化します。
ウスバカゲロウの罠の効果を含むようにモデル化されたアリのランダムウォークを以下に示します。
(3)
上記のランダムウォークの式では、アリの位置を正規化しています。 ここでは、次元に沿ったランダムウォークの最小値をとして、次元に沿った最大値をとして表します。 これは通常の最小-最大スケーリングです。 このスケーリングを拡張して、ウスバカゲロウのトラップの効果を含めます。
(4)
(5)
これらの正規化項は、選択したウスバカゲロウのトラップの範囲内でランダムウォークを維持するために使用されます。時間の経過とともに境界を減らすことで、アリをトラップする効果を実現できます。 これは、散歩自体のダイナミクスに影響を与えます。 アリが罠に入ると、ウスバカゲロウはそれを穴の中心に向かってノックしようとします。
エリート主義は、最高のパフォーマンスを発揮するウスバカゲロウを保存し、他のすべての検索に影響を与えることによっても使用されます。 これは、アリが2つのウスバカゲロウの穴の中を歩き、それらの間を平均することで実現します。 最高のパフォーマンスのウスバカゲロウとウスバカゲロウは、ルーレット盤を介して選択されます。 パフォーマンスの良いウスバカゲロウが選ばれる可能性が高くなります。
ルーレット盤とは、加重ランダム選択を使用することを意味します。 選択は、より適切なウスバカゲロウに偏っています。
2.3. アリの捕獲
アリがトラップの周りを探索できる超球を減らすことにより、アリはトラップの中心に向かってノックされます。これは、アリの軌道の下限と上限に比率を適用することによって実現されます。 時間の経過とともにサイズが減衰します。
(6)
(7)
はとして表される比率です。 この方程式では、与えられた時間間隔で定数であり、段階的に増加します。 このようにして、発生する悪用の量を制御できます。
3. アルゴリズムのフローチャート
すべてのステップをまとめる前に、アルゴリズムのフローチャートを示します。 フローチャートは、上記で概説した操作を組み合わせたアルゴリズムの概要を示しています。 アルゴリズムは、終了条件をチェックする標準の外部ループで流れます。たとえば、到達した最大反復回数やアルゴリズムの収束などです。 内側のループは、アリのランダムウォークのそれぞれを計算します。 すべての歩行が計算されたら、アリがウスバカゲロウよりも健康になったウスバカゲロウの位置を更新できます。 いずれかのウスバカゲロウが最高のエリートウスバカゲロウよりも優れている場合は、エリートウスバカゲロウも更新します。
4. 方法
モデル化したすべての動作をまとめましょう。
まず、ウスバカゲロウ(ソリューション)のランダムな母集団から始めます。 次に、アリはランダムウォークを使用して空間を探索するために使用されます。 これらのランダムウォークは境界領域内にあり、ウスバカゲロウへの近さの影響を受けます。
これは、アリが時間の経過とともにウスバカゲロウの周りを探索できる超球を減らすことによってモデル化されます。 これを下限と上限でモデル化します。 アリが捕まえられ、対応するウスバカゲロウよりも健康になると、より多くのアリを捕まえる可能性を最適化するために、ウスバカゲロウはその位置を更新します。 時間の経過とともに、最良のウスバカゲロウは最適解に収束します。
エリート主義はここで良い解決策の周りの検索を指示するために使用されます。アリのランダムウォークは2つのウスバカゲロウの周りで行われます。 最初のウスバカゲロウは、その適応度に比例して、ルーレット盤のように選択されます。 2つ目は、これまでに発見された最高の適応度を備えたソリューションであるエリートウスバカゲロウです。 アリの2つの提案された歩行は一緒に平均化されます。
5. 例
単一のアリとウスバカゲロウについて、個別のランダムウォークを示します。 赤いタイルは、アリの動きを制限するウスバカゲロウの罠で覆われた領域であり、時間の経過とともに減少します。 黒いタイルはウスバカゲロウの現在の位置です。 水色はアリがランダムウォークで訪れたタイルを表し、濃い青はこのタイムステップの最後のタイルです。 2番目の図に示すように、アリの最終的な位置が現在のウスバカゲロウよりも優れた適応度の値を持っている場合、ウスバカゲロウはそれ自体とそのトラップを再配置します。 通常、アリの位置を平均して、対応する2番目のエリートウスバカゲロウの周りをランダムウォークします。 これは、ウスバカゲロウの罠に覆われていない白いグリッドで、検索を世界に拡大するのに役立ちます。
6. 結論
ALOは健全なアルゴリズムです。 アリのランダムウォークにより、高度な探索が可能になります。 ALOは個体群ベースのアルゴリズムであるため、局所最適にとらわれる可能性は低いため、局所最適は回避されます。 アリのランダムウォークとウスバカゲロウのルーレットホイールの選択は、局所最適点での停滞を回避するのに役立ちます。 ウスバカゲロウの罠の境界が縮小することで搾取も促進され、アリの動きの強さは時間の経過とともに減少し、収束が可能になります。
Ant Lion Optimizerは、使いやすく、グラデーションのない、ブラックボックス最適化手法です。使用可能な調整可能なパラメーターが少ないため、使いやすいです。 これはさまざまな最適化問題に適用でき、 Moth FlameOptimizationやGrayWolfOptimizationなどの最適化手法ファミリーの一部です。これらは最適化ツールボックスへの優れた追加機能です。