最初に声明をさせてください。記事は私の個人公式アカウントのプッシュから直接コピーして貼り付けたものであるため、インテリジェントな最適化アルゴリズムに興味のある友人は、私の個人公式アカウント「ヒューリスティックアルゴリズムの議論」をフォローしてください。時々、公式アカウントでさまざまなインテリジェントな最適化アルゴリズム、古典的なアルゴリズム、または近年提案された新しいインテリジェントな最適化アルゴリズムを MATLAB コードを添付して共有します。
Zhao Shijie教授らは、自然界におけるタツノオトシゴの移動、捕食、生殖行動から出発し、群知能に基づくメタヒューリスティックアルゴリズムであるタツノオトシゴオプティマイザー(SHO)を提案した。SHO のパフォーマンスは 23 のベンチマーク関数と CEC2014 テスト スイートで評価され、6 つの最先端のアルゴリズムと比較されます。最後に、著者らは 5 つの実際の工学問題を使用して、この方法の有効性を検証します。実験結果は、このアルゴリズムが高性能のオプティマイザーであり、制約付きの最適化問題にも優れた適応性を持っていることを示しています。SHO の元のリファレンスは次のとおりです。
「Zhao S、Zhang T、Ma S、他。タツノオトシゴオプティマイザー: 大域的最適化問題のための、自然にインスピレーションを得た新しいメタヒューリスティック[J]。アプライド・インテリジェンス、2023、53(10): 11833-11860。」
01
インスピレーションの源
以下に説明するように、移動、捕食、生殖行動はタツノオトシゴの一生にとって特に重要です。
運動行動の観点から見ると、タツノオトシゴは尾を藻類の茎 (または葉) に巻き付けることがあります。藻類の茎は海の渦の作用を受けて藻類の根の周りを浮遊しているため、このときタツノオトシゴは螺旋運動をします。また、タツノオトシゴが浮遊藻類やその他の物体に逆さまにぶら下がり、波とともにランダムに移動するときにブラウン運動が発生することもあります。
捕食行動に関しては、タツノオトシゴは特殊な頭の形を利用して獲物に忍び寄り、最大 90% の成功率で獲物を捕らえます。
生殖行動の観点から見ると、タツノオトシゴは雄と雌がランダムに交尾して新しい子孫を残し、それが父親と母親から特定の優れた情報を受け継ぐのに役立ちます。
これら 3 つの行動を総合すると、海馬は環境に適応し、よりよく生き残ることができます。著者が提案した SHO アルゴリズムは、主に上記の 3 つの動作からインスピレーションを受けています。したがって、これらの動作は、著者が数学的モデリングを通じてこの新しいオプティマイザーを開発する動機となっています。
02
アルゴリズム設計
著者が提案したSHOアルゴリズムは、移動、捕食、再生という3つの主要な部分から構成されています。SHOの探索と活用のバランスをとるために、移動と捕食の社会的行動に対してそれぞれローカル探索とグローバル探索戦略が設計された。繁殖行動は、最初の 2 つの行動が完了した後に実行されます。彼らの数学的モデルは以下のように表現され、詳細に議論されます。
03
計算プロセス
SHO アルゴリズムの計算プロセスは少し複雑で、擬似コードは次のとおりです。
04
実験シミュレーション
以下は、SHO アルゴリズムのパフォーマンスの簡単なテストです。まず、SHO アルゴリズムは関数の最適化に使用され、アルゴリズムの MATLAB プログラムは元のリファレンスに従って厳密にコーディングされています。さらに、母集団サイズはN = 50 に設定され、ベンチマーク関数は CEC2005 テスト セット、CEC2013 テスト セット、CEC2014 テスト セット、CEC2017 テスト セット、CEC2020 最適化機能テスト セット、および CEC2022 最適化機能テスト セットを使用します。シミュレーション結果はここに簡単に表示され、それ以上の分析は行われません。
まず、グローバル探査とローカル開発のための SHO アルゴリズムのバランス能力をテストしてみましょう。図 4 に示すように、これは CEC2005 テスト関数 f8 上の SHO アルゴリズムの探索開発率曲線です。
図 4 CEC2005 f8 における SHO の探鉱および開発パーセンテージの変化曲線
次に、図 5 に示すように、単峰関数 Schwefel の 2.22 (f2) と CEC2005 の多峰関数 Ackley (f10) を例として、30 次元環境における SHO アルゴリズムの収束効果を示します。
(a) f2
(b) f10
図 5 CEC2005 の 2 つのテスト関数に対する SHO の収束曲線
ここでも、CEC2013 テスト セットの単峰関数 F5 を例として取り上げ、30 次元環境における SHO の収束効果を示します (図 6 を参照)。(誤差曲線が描かれていることに注意してください)
図 6 CEC2013 F5 での SHO の誤差収束曲線
次に、CEC2014 テスト セットのマルチモーダル関数 F14 を例として、30 次元環境における SHO の収束効果を図 7 に示します。(誤差曲線が描かれていることに注意してください)
図 7 CEC2014 F14 での SHO の誤差収束曲線
次に、CEC2017 テスト セットのマルチモーダル関数 F4 を例として、30 次元環境における SHO の収束効果を図 8 に示します。(誤差曲線が描かれていることに注意してください)
図 8 CEC2017 F4 での SHO の誤差収束曲線
その後、図 9 に示すように、CEC2020 最適化関数テスト セットの複合関数 F9 を例として、10 次元環境における SHO の収束効果を示します。(誤差曲線が描かれていることに注意してください)
図 9 CEC2020 最適化関数 F9 における SHO の誤差収束曲線
最後に、図 10 に示すように、CEC2022 最適化関数テスト セットの単峰関数 F1 を例として、10 次元環境における SHO の収束効果を示します。(誤差曲線が描かれていることに注意してください)
図 10 CEC2022 最適化関数 F1 における SHO の誤差収束曲線
さらに、SHO アルゴリズムは、以前にプッシュされた 2 つのアルゴリズムのアプリケーション コンテンツなど、複雑なエンジニアリング制約付き最適化問題に適用できます。
アルゴリズム アプリケーション: DBO アルゴリズムに基づくエンジニアリング最適化設計 (フェーズ 1) (MATLAB コードを含む)
アルゴリズム アプリケーション: エンジニアリング最適設計 (フェーズ 2) (MATLAB コードを含む)
ここでは、溶接梁の設計問題を例として、SHO アルゴリズムの解法効果を示します。収束曲線を図 11 に示します。
図11 溶接梁設計問題におけるSHOの目的関数の収束曲線
05
MATLAB コード
SHO アルゴリズムは、オープン ソースの CEC2005 テスト セットの MATLAB を実行します。以下のアドレスをコピーして抽出できます。
リンク: https://pan.baidu.com/s/1JM4l1sH_2w372Gq7FqCcdA
抽出コード:8023
SHO アルゴリズムは CEC2013 テスト セットを実行します。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムは CEC2014 テスト セットを実行します。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムは CEC2017 テスト セットを実行します。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムは、CEC2020 最適化関数テスト セットを実行します。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムは CEC2022 最適化関数テスト セットを実行します。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムの探索 (Exploration) と開発 (Exploitation) の割合の分析:
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHO アルゴリズムの工学的応用 (フェーズ 1): 圧力容器の設計、転がり軸受の設計、引張/圧縮ばねの設計、片持ち梁の設計、輪列設計、3 節トラスの設計。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論
SHOアルゴリズムの工学的応用(その2):溶接梁設計、多板クラッチブレーキ設計問題、ステッピングコニカルプーリ問題、減速機設計問題、遊星歯車列設計最適化問題、ロボットグリッパ問題。
公式アカウントに注目:ヒューリスティックアルゴリズムの議論