-------往期目录------
スカイホークオプティマイザー
Aquila Optimizer (AO) は、獲物を捕らえるアクイラの自然な行動からインスピレーションを受けています。したがって、提案する AO アルゴリズムの最適化プロセスは、垂直屈曲高ソアリングによる探索空間の選択、輪郭飛行および短滑空攻撃による発散探索空間内での探索、および収束における低空飛行および低速降下攻撃の使用の 4 つの方法に分割されます。探索空間内を利用するだけでなく、徒歩で急降下して獲物を捕まえることもできます。さまざまな最適化問題に対する最適な解を見つける新しいオプティマイザーの能力を検証するために、一連の実験が行われました。
提示:以下是本篇文章正文内容,下面案例可供参考
1. 最初の検索方法
アクイラは前かがみで垂直に飛行することで獲物がいる場所を特定し、最適な狩猟場所を選択します。ここでは、スカイホークが上空から探検家に向けて広範囲に飛び、獲物がいる 170 度の捜索空間のエリアを決定します。図1は、アクイラが垂直飛行し、屈む様子を示しています。この動作は、次の方程式で数学的に表されます。
図 1: Aquila の垂直曲げ挙動
X 1 ( t + 1 ) = X best ( t ) × ( 1 − t T ) + ( XM ( t ) − (t+1)=X_{best}(t)\times\ left(1-{\frac{t}{T}}\right)+(X_{M}(t)-X_{best}(t) *rand)バツ1( t+1 )=バツそうです_( t )×( 1−Tた)+( XM( t )−バツそうです_( t )∗と)_ _
XM ( t ) = 1 N ∑ i = 1 NX i ( t ) 、 ∀ j = 1 、 2 、... 。。, D im X_{M}(t)={\frac{1}{N}}\sum_{i=1}^{N}X_{i}(t),\forall j=1,2,.. .,D imバツM( t )=N1i = 1∑Nバツ私は( t ) 、∀j _=1 、2 、... 、D imwhere
,X 1 ( t + 1 ) X_{1}(t+1)バツ1( t+1 )は、最初の検索方法 (X 1 X_{1}バツ1)定義X ベスト ( t ) X_{ベスト}(t)バツそうです_( t )は、t 回目の反復までに得られた最良の解であり、獲物のおおよその位置を反映しています。この方程式1 − t T 1-{\frac{t}{T}}1−Tた反復による拡張検索 (探索) を制御するために使用されます。XM(t)X_M(t)バツM( t ) は、t 回目の反復で接続された現在の解の位置平均を表します。rand ∈ [0, 1] rand∈[0,1]と_ _∈[ 0 ,1 ]。
2. 2つ目の検索方法
X 2 ( t + 1 ) = X best ( t ) × L evy ( D ) + XR ( t ) + ( y − x ) ∗ rand 、X_{2}(t+1)=X_{best}(t) \times L evy(D)+X_{R}(t)+(yx)*rand,バツ2( t+1 )=バツそうです_( t )×課徴金( D ) _ _+バツR( t )+( y−× )∗rおよびd 、
ここでX 2 ( t + 1 ) X_2(t+1)バツ2( t+1 )です_tの次の反復の解は、X 2 X_2バツ2生成、DDDは次元空間、Levy (D) Levy(D)レヴィ( D )はレヴィレヴィ_ _飛行分布関数、式XR ( t ) X_R ( t )を使用して計算バツR( t ) はtt 番目ですt反復中の[1, N] [1,N][ 1 、N ]の範囲内で取得されるランダムな解
L evy ( D ) = s × u × σ ∣ v ∣ 1 β L evy(D)=s\times{\frac{u\times\sigma}{|v|^ { \frac{1}{β}}}}課徴金( D ) _ _=s×∣ v ∣b1あなた×p
ここで、s は 0.01 に固定された定数値、uuu和 v v vは0 00から1までの乱数σ σσ は次の計算を使用します。
σ = Γ ( 1 + β ) × sin ( π β 2 ) Γ ( 1 + β 2 ) × β × 2 β − 1 2 \sigma={\frac{\Gamma(1+ \ beta)\times\sin\left({\frac{\pi\beta}{2}}\right)}{\Gamma\left({\frac{1+\beta}{2}}\right)\ 回\beta\times2^{\frac{\beta-1}{2}}}}p=C(21 + b)×b×22b − 1C ( 1+b )×罪(2pb _)
β率でも1.5%程度です。
r = r 1 + U × D 1 θ = − ω × D 1 + θ 1 θ 1 = 3 × π 2 \begin{array}{c}{ {r=r_{1}+U\times D_
{1} }}\\ {
{}}\\ {
{\theta=-\omega\times D_{1}+\theta_{1}}}\\ {
{}}\\ {
{\theta_{1}=\frac {3\times\in}{2}}}\end{配列}r=r1+U×D1私=-ああ×D1+私1私1=23 × π
R 1 ∈ [ 1 , 20 ] R_1∈[1,20]R1∈[ 1 、20 ]、固定検索サイクル数、UUU は0.00565 に固定された小さな値です。D1D_1D1は 1 から検索空間の長さ (Dim) までの整数です。ω \omegaωは 0.005 に固定された小さな値です。AO の挙動は螺旋の形で示されます
x = r × sin ( θ ) y = r × cos ( θ ) r = − 0.005 × D 1 + 3 × π 2 \begin{array}{c}{ {x=
r \times\mathrm{in}(\theta)}}\\ {
{y=r\times\cos(\theta)}}\\ { {
r=-0.005\times D_{1}+ \frac{3 \times\pi}{2}}}\end{配列}バツ=r×( i )のsy=r×cos ( θ )r=− 0.005×D1+23 × π
3. 3番目の検索方法
第3の方法(X3)では、獲物の領域が正確に指定され、スカイホークが着地して攻撃の準備をすると、スカイホークは垂直に降下し、獲物の反応を探知するための予備攻撃を行う。
低速降下攻撃として知られる低空飛行。ここで、AOはターゲットの選択された領域を使用して獲物に近づき、攻撃します。図はアクイラの低高度飛行徐降降下攻撃の挙動を示す
X 3 ( t + 1 ) = ( X best ( t ) − X_{3}(t+1)=(X_{best}(t)-X_{M }(t))\times\alpha-r an d+((U BL B)\times ran d+LB)\times \deltaバツ3( t+1 )=( Xそうです_( t )−バツM( t ))×ある−と_ _+(( U B−LB )_×と_ _+LB )_×δ
X 3 ( t + 1 ) X_3(t+1)バツ3( t+1 )は 3 番目の検索方法X 3 X_3バツ3t の次の反復に対して生成された解。XBest(t)X_Best(t)バツBest ( t )は、i 回目の反復 (最もよく得られた解) の前の獲物のおおよその位置、XM (t) X_M(t)バツM( t ) は、式 1 を使用して計算された、t 回目の反復における現在の解の平均です。rand は 0 から 1 までのランダムな値です。α\アルファα和δ \デルタδは本記事では小さい値(0.1)に固定した現像調整パラメータです。LB L_BLB指定された問題の下限を表します。UB U_BUB上限の 200 を表します。
4. 4つ目の検索方法
獲物に近づくと、アクイラはランダムな動きに基づいて陸上の獲物を攻撃します。この方法を「歩いて獲物を捕まえる」といいます。ここで、ついに AO が最後の位置で獲物を攻撃します。図は、アクイラが歩いて獲物を捕まえているところを示しています。
X 4 ( t + 1 ) = QF × }{
{X_{4}(t+1)=QF\times X_{bex}(t)-(G_{1}\times X(t)\times rand)- G_{2}\times L e\nu y(D)+rand×G_1}}\\{
{}}\end{array}バツ4( t+1 )=準々決勝×バツビーエックス_( t )−( G1×X ( t )×と)_ _−G2×L e ν y ( D )+と_ _×G1
QF ( t ) = trand − 1 ( 1 − T ) 2 QF(t)=t^{\frac{rand-1}{(1-T)^{2}}}QF ( t )=t( 1 − T )2rと− 1 _
G 1 = 2 × rand − 1 G 2 = 2 × ( 1 − t T ) \begin{array}{c}{ {
G_{1}=2\times ran d-1}}\\ {
{}}\ \ {
{G_{2}=2\times\left(1-\frac{t}{T}\right)}}\end{配列}G1=2×と_ _−1G2=2×( 1−Tた)
QF ( t ) QF(t)QF(t)是第 i t h i^{th} 私t回の反復における品質関数の値、rand randrとd は0 から 1 までのランダムな値です。t と T はそれぞれ現在の反復と最大反復数を表します。レヴィ(D) レヴィ(D)L e v y ( D ) は、式 (1) を使用して計算された賦課金。飛行分配機能の強化
コード
完整代码请私信领取:
function [Best_FF,Best_P,conv]=AO(N,T,LB,UB,Dim,F_obj)
Best_P=zeros(1,Dim);
Best_FF=inf;
X=initialization(N,Dim,UB,LB);
Xnew=X;
Ffun=zeros(1,size(X,1));
Ffun_new=zeros(1,size(Xnew,1));
t=1;
alpha=0.1;
delta=0.1;
while t<T+1
for i=1:size(X,1)
F_UB=X(i,:)>UB;
F_LB=X(i,:)<LB;
X(i,:)=(X(i,:).*(~(F_UB+F_LB)))+UB.*F_UB+LB.*F_LB;
Ffun(1,i)=F_obj(X(i,:));
if Ffun(1,i)<Best_FF
Best_FF=Ffun(1,i);
Best_P=X(i,:);
end
end
G2=2*rand()-1; % Eq. (16)
G1=2*(1-(t/T)); % Eq. (17)
to = 1:Dim;
u = .0265;
r0 = 10;
r = r0 +u*to;
omega = .005;
phi0 = 3*pi/2;
phi = -omega*to+phi0;
x = r .* sin(phi); % Eq. (9)
y = r .* cos(phi); % Eq. (10)
QF=t^((2*rand()-1)/(1-T)^2); % Eq. (15)
%-------------------------------------------------------------------------------------
for i=1:size(X,1)
%-------------------------------------------------------------------------------------
if t<=(2/3)*T
if rand <0.5
Xnew(i,:)=Best_P(1,:)*(1-t/T)+(mean(X(i,:))-Best_P(1,:))*rand(); % Eq. (3) and Eq. (4)
Ffun_new(1,i)=F_obj(Xnew(i,:));
if Ffun_new(1,i)<Ffun(1,i)
X(i,:)=Xnew(i,:);
Ffun(1,i)=Ffun_new(1,i);
end
else
%-------------------------------------------------------------------------------------
Xnew(i,:)=Best_P(1,:).*Levy(Dim)+X((floor(N*rand()+1)),:)+(y-x)*rand; % Eq. (5)
Ffun_new(1,i)=F_obj(Xnew(i,:));
if Ffun_new(1,i)<Ffun(1,i)
X(i,:)=Xnew(i,:);
Ffun(1,i)=Ffun_new(1,i);
end
end
%-------------------------------------------------------------------------------------
else
if rand<0.5
Xnew(i,:)=(Best_P(1,:)-mean(X))*alpha-rand+((UB-LB)*rand+LB)*delta; % Eq. (13)
Ffun_new(1,i)=F_obj(Xnew(i,:));
if Ffun_new(1,i)<Ffun(1,i)
X(i,:)=Xnew(i,:);
Ffun(1,i)=Ffun_new(1,i);
end
else
%-------------------------------------------------------------------------------------
Xnew(i,:)=QF*Best_P(1,:)-(G2*X(i,:)*rand)-G1.*Levy(Dim)+rand*G2; % Eq. (14)
Ffun_new(1,i)=F_obj(Xnew(i,:));
if Ffun_new(1,i)<Ffun(1,i)
X(i,:)=Xnew(i,:);
Ffun(1,i)=Ffun_new(1,i);
end
end
end
end
%-------------------------------------------------------------------------------------
if mod(t,100)==0
display(['At iteration ', num2str(t), ' the best solution fitness is ', num2str(Best_FF)]);
end
conv(t)=Best_FF;
t=t+1;
end
end
function o=Levy(d)
beta=1.5;
sigma=(gamma(1+beta)*sin(pi*beta/2)/(gamma((1+beta)/2)*beta*2^((beta-1)/2)))^(1/beta);
u=randn(1,d)*sigma;v=randn(1,d);step=u./abs(v).^(1/beta);
o=step;
end
Abualigah, L.、Yousri, D.、Elaziz, MA、Ewees, AA、A. Al-qaness, MA、Gandomi, AH、Aquila Optimizer: A new meta-heuristic optimization Algorithm、Computers & Industrial Engineering (2021)、doi : https://doi.org/10.1016/j.cie.2021.107250