インテリジェントな最適化アルゴリズム: タスマニア デビル最適化アルゴリズム - コード付き

インテリジェントな最適化アルゴリズム: タスマニア デビル最適化アルゴリズム


概要: タスマニア デビル最適化 (TDO) は、2022 年に提案されたタスマニア デビルの行動に基づく最適化アルゴリズムです. アルゴリズムは、タスマニア デビルの狩猟行動をシミュレートすることによって最適化を求め、強力な最適化能力、高速収束などを持っています.

1.タスマニアデビル最適化アルゴリズム

1.1 初期化

他の最適化アルゴリズムと同様に、母集団は最適化空間でランダムに初期化されます:
xi , j = lbj + r ⋅ ( ubj − lbj ) (2) x_{i, j}=l b_j+r \cdot\left(u b_j - l b_j\right) \tag{2}バツ j=l b+r( u bl b)(2)
其中 x i , j x_{i,j} バツ j個体、lbj lb_jl b下限を見つけるには、ubj ub_jあなた_上限を求めるには、rrrは [0,1] の間の乱数です。

1.2 戦略 1: 腐肉を食べる (探索段階)

タスマニア デビルは、この地域で狩りをするよりも、腐肉を食べることを好むことがあります。タスマニアデビルは、大きな獲物を狩るが、すべてを食べることができない他の捕食者に囲まれています. さらに、タスマニアデビルが到着するまで、動物は獲物から十分に食べることができない場合があります. この場合、タスマニアデビルはこれらの腐肉を好んで食べます。タスマニアデビルが生息地の領域をスキャンして腐肉を特定する際の行動は、問題解決空間でのアルゴリズム検索に似ています。このタスマニア デビル戦略は、検索空間のさまざまな領域をスキャンして元の最適な領域を特定する際の TDO 探索の威力を実際に示しています。

タスマニアデビルの死体を食べる戦略で表現された概念は、(3) から (5) を使用して数学的にモデル化されました。TDO 設計では、タスマニア デビルごとに、検索空間内の他の個体群メンバーの位置が腐肉の位置であると想定されます。(3) では、ケースの 1 つがランダムに選択されるようにシミュレートされるため、k 番目の個体群メンバーが i 番目のタスマニアデビルのターゲット腐肉として選択されます。したがって、k は 1 から N までランダムに選択する必要があり、その反対が i です。
C i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ≠ i } (3) C_i=X_k, \quad i=1,2, \ldots, N , k \in\{1,2, \ldots, N \mid k \neq i\} \tag{3}=バツk=1 2 N kε{ 1 2 Nk=}(3)
其中 C i C_i 選ばれた腐肉です。

選択された腐肉に基づいて、検索空間におけるタスマニアデビルの新しい位置が計算されます。この戦略のタスマニア デビルの動きのシミュレーションでは、タスマニア デビルは、腐肉の目的関数値が優れている場合は腐肉に向かって移動し、そうでない場合は腐肉から離れます。タスマニア デビルの移動戦略は (4) でシミュレートされます。最初の戦略の最後のステップで、タスマニアデビルの新しい位置を計算した後、この新しい位置で目的関数の値が優れている場合、この位置が受け入れられます。そうでない場合、タスマニアデビルは以前の位置にとどまります。この更新ステップは (5) でモデル化されています。
xi , jnew , S 1 = { xi , j + r ⋅ ( ci , j − I ⋅ xi , j ) , FC i < F ixi , j + r ⋅ ( xi , j − ci , j ) , そうでない場合 (4) x_{i, j}^{new, S 1}= \begin{cases}x_{i, j}+r \cdot\left(c_{i, j}-I \cdot x_{i, j}\right ), & F_{C_i}<F_i \\ x_{i, j}+r \cdot\left(x_{i, j}-c_{i, j}\right), & \text {それ以外の場合}\end{ケース} \タグ{4}バツj新しいS 1 _ _={ バツ j+r( c jバツ j)バツ j+r( × jc j)<そうでなければ ( 4 )

X i = { X inew , S 1 , F i new , S 1 < F i X i , そうでない場合 (5) X_i= \begin{cases}X_i^{new, S 1}, & F_i^{\text {new }, S 1}<F_i \\ X_i, & \text { それ以外の場合 }\end{cases} \tag{5}バツ={ バツ新しいS 1 _ _バツ新しい S 1<そうでなければ ( 5 )

r は [0,1] の間の乱数、I は {1, 2} に属する乱数値です。

1.3 戦略 2: 獲物を食べる (発生段階)

タスマニア デビルの 2 つ目の摂食戦略は、獲物を探すことです。タスマニア デビルは、攻撃中に 2 段階で行動します。最初のフェーズでは、エリアをスキャンし、獲物を選択して攻撃します。そして第二段階で、獲物に近づいた後、獲物を追いかけ、止めて食べ始めます。第 1 段階のモデル化は、第 1 戦略、つまり枝肉の選択のモデル化に似ています。したがって、獲物の選択と攻撃の最初の段階は、(6) から (8) を使用してモデル化されます。2 番目の戦略では、i0 番目のタスマニアデビルが更新されると、他の個体群メンバーの位置が獲物の位置であると想定されます。k0 番目の人口メンバーが獲物としてランダムに選択され、k は 1 と N の間で i と反対の自然乱数です。獲物の選択プロセスは (6) でシミュレートされます。
P i = X k , i = 1 , 2 , … , N , k ∈ { 1 , 2 , … , N ∣ k ≠ i } (6) P_i=X_k, \quad i=1,2, \ldots, N , k \in\{1,2, \ldots, N \mid k \neq i\} \tag{6}P=バツk=1 2 N kε{ 1 2 Nk=}(6)
其中 P i P_i P選ばれた獲物です。

獲物の位置を特定した後、タスマニアデビルは新しい位置に計算されます。この新しい位置を計算するとき、選択した獲物の目的関数の値が優れている場合、タスマニアデビルはその場所に向かって移動し、そうでない場合はこの場所から離れます。このプロセスのモデリングを (7) に示します。タスマニアデビルに対して計算された新しい位置が目的関数の値を改善する場合、以前の位置が置き換えられます。2 番目の戦略のこのステップは、(8) でモデル化されています。
xi , j new , S 2 = { xi , j + r ⋅ ( pi , j − I ⋅ xi , j ) , FP i < F ixi , j + r ⋅ ( xi , j − pi , j ) , そうでない場合 (7 ) x_{i, j}^{\text {new }, S 2}= \begin{cases}x_{i, j}+r \cdot\left(p_{i, j}-I \cdot x_{i , j}\right), & F_{P_i}<F_i \\ x_{i, j}+r \cdot\left(x_{i, j}-p_{i, j}\right), & \text {それ以外の場合}\end{cases}\tag{7}バツj新しい S 2={ バツ j+r( p jバツ j)バツ j+r( × jp j)P<そうでなければ ( 7 )

X i = { X inew , S 2 , F i new , S 2 < F i X i , そうでない場合 (8) X_i= \begin{cases}X_i^{new, S 2}, & F_i^{\text {new }, S 2}<F_i \\ X_i, & \text { それ以外の場合 }\end{cases} \tag{8}バツ={ バツ新しいS 2 _ _バツ新しい S 2<そうでなければ ( 8 )

この戦略と最初の戦略の主な違いは、第 2 段階と獲物の追跡のシミュレーションです。攻撃サイトの近くで獲物を追跡することは、検索スペースのローカル検索に似ています。このタスマニアの振る舞いは、TDO がそれを利用してより良い候補ソリューションに収束する能力を実際に示しています。追跡をシミュレートするために、タスマニアデビルは、攻撃された場所の近くで獲物に忍び寄りました。獲物の追跡フェーズは、(9) から (11) を使用してタスマニア デビルによってモデル化されます。この段階では、タスマニアデビルの場所は、獲物を追跡するプロセスが行われるコミュニティの中心であると考えられています. この近隣の半径は、タスマニアデビルが獲物を追いかける距離を表し、(9) を使用して計算できます。したがって、タスマニア デビルの新しい位置は、(10) で数学的にシミュレートされた、この近隣での追跡プロセスに基づいて計算できます。新たに計算された位置が目的関数に対して以前の位置よりも優れた値を提供する場合、タスマニアデビルはそれを受け入れることができます。タスマニア デビルの位置更新プロセスは、(11) でシミュレートされます。
R = 0.01 ( 1 − t T ) , (9) R=0.01\left(1-\frac{t}{T}\right), \tag{9}R=0.01( 1Tt)( 9 )

xi , jnew = xi , j + ( 2 r − 1 ) ⋅ R ⋅ xi , j (10) x_{i, j}^{new}=x_{i, j}+(2 r-1) \cdot R \cdot x_{i, j} \tag{10}バツj新しい_ _=バツ j+( 2 r1 )Rバツ j( 10 )

X i = { X inew , F i new < F i X i , そうでない場合 (11) X_i= \begin{cases}X_i^{new}, & F_i^{\text {new }}<F_i \\ X_i, & \text { それ以外の場合 }\end{cases} \tag{11}バツ={ バツ新しい_ _バツ新しい <そうでなければ ( 11 )

ここで、t は反復回数、T は最大反復回数です。

アルゴリズムのフローチャートは次のとおりです。

ここに画像の説明を挿入

2. 実験結果

ここに画像の説明を挿入

3.参考文献

[1] M. Dehghani、シュ。Hubálovský および P. Trojovský、「Tasmanian Devil Optimization: A New Bio-Inspired Optimization Algorithm for Solving Optimization Algorithm」、IEEE Access vol. 10, pp. 19599-19620, 2022, doi: 10.1109/ACCESS.2022.3151641.

4.マトラブ

おすすめ

転載: blog.csdn.net/u011835903/article/details/130543093