文章目录
- 一、理论基础
- 1、北方苍鹰优化算法
- (1)初始化阶段
- (2)第一阶段:猎物识别(探索)
- (3)第二阶段:追逐和逃跑行为(开发)
- 2、NGO算法伪代码
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、北方苍鹰优化算法
受北方苍鹰捕食行为的启发,文献[1]提出了一种新的基于种群的优化算法——北方苍鹰优化(Northern goshawk optimization, NGO)算法。
(1)初始化阶段
在算法开始时,种群成员在搜索空间中随机初始化,如式(1)所示:
X
=
[
X
1
⋮
X
i
⋮
X
N
]
N
×
m
=
[
x
1
,
1
⋯
x
1
,
j
⋯
x
1
,
m
⋮
⋱
⋮
⋱
⋮
x
i
,
1
⋯
x
i
,
j
⋯
x
i
,
m
⋮
⋱
⋮
⋱
⋮
x
N
,
1
⋯
x
N
,
j
⋯
x
N
,
m
]
N
×
m
(1)
X=\begin{bmatrix}X_1\\\vdots\\X_i\\\vdots\\X_N\end{bmatrix}_{N\times m}=\begin{bmatrix} x_{1,1} & \cdots & x_{1,j} & \cdots & x_{1,m} \\\vdots & \ddots & \vdots & \ddots & \vdots\\x_{i,1} & \cdots & x_{i,j} & \cdots & x_{i,m}\\\vdots & \ddots & \vdots & \ddots & \vdots\\x_{N,1} & \cdots & x_{N,j} & \cdots & x_{N,m}\end{bmatrix}_{N\times m}\tag{1}
X=⎣
⎡X1⋮Xi⋮XN⎦
⎤N×m=⎣
⎡x1,1⋮xi,1⋮xN,1⋯⋱⋯⋱⋯x1,j⋮xi,j⋮xN,j⋯⋱⋯⋱⋯x1,m⋮xi,m⋮xN,m⎦
⎤N×m(1)其中,
X
X
X表示北方苍鹰种群的矩阵,
X
i
X_i
Xi是第
i
i
i个个体的初始解,
x
i
,
j
x_{i,j}
xi,j是第
i
i
i个个体第
j
j
j维的值,
N
N
N是种群成员的数量,
m
m
m是问题空间的维度。
北方苍鹰种群的目标函数值可以用目标函数值向量表示,如式(2)所示:
F
(
X
)
=
[
F
1
=
F
(
X
1
)
⋮
F
i
=
F
(
X
i
)
⋮
F
N
=
F
(
X
N
)
]
N
×
1
(2)
F(X)=\begin{bmatrix}F_1=F(X_1)\\\vdots\\F_i=F(X_i)\\\vdots\\F_N=F(X_N)\end{bmatrix}_{N\times 1}\tag{2}
F(X)=⎣
⎡F1=F(X1)⋮Fi=F(Xi)⋮FN=F(XN)⎦
⎤N×1(2)其中,
F
F
F是获得的目标函数值的向量,
F
i
F_i
Fi是第
i
i
i个解获得的目标函数值。
(2)第一阶段:猎物识别(探索)
苍鹰在狩猎的第一阶段,随机选择一个猎物,然后迅速攻击它。由于搜索空间中猎物的随机选择,该阶段增加了NGO的探索能力。该阶段导致搜索空间的全局搜索,目的是识别最优区域。建模如式(3)~(5): P i = X k , i = 1 , 2 , ⋯ , N , k = 1 , 2 , ⋯ , i − 1 , i + 1 , ⋯ , N (3) P_i=X_k,i=1,2,\cdots,N,k=1,2,\cdots,i-1,i+1,\cdots,N\tag{3} Pi=Xk,i=1,2,⋯,N,k=1,2,⋯,i−1,i+1,⋯,N(3) X i , j n e w , P 1 = { x i , j + r ( p i , j − I x i , j ) , F P i < F i x i , j + r ( x i , j − p i , j ) , F P i ≥ F i (4) X_{i,j}^{new,P1}=\begin{dcases}x_{i,j}+r(p_{i,j}-Ix_{i,j}),\quad F_{P_i}<F_i\\[2ex]x_{i,j}+r(x_{i,j}-p_{i,j}),\quad\,\,\, F_{P_i}\geq F_i\end{dcases}\tag{4} Xi,jnew,P1=⎩ ⎨ ⎧xi,j+r(pi,j−Ixi,j),FPi<Fixi,j+r(xi,j−pi,j),FPi≥Fi(4) X i = { X i n e w , P 1 , F i n e w , P 1 < F i X i , F i n e w , P 1 ≥ F i (5) X_i=\begin{dcases}X_i^{new,P1},\quad F_i^{new,P1}<F_i\\[2ex]X_i,\quad\quad\quad\, F_i^{new,P1}\geq F_i\end{dcases}\tag{5} Xi=⎩ ⎨ ⎧Xinew,P1,Finew,P1<FiXi,Finew,P1≥Fi(5)其中, P i P_i Pi是第 i i i只北方苍鹰的猎物位置, F P i F_{P_i} FPi是其目标函数值, k k k是区间 [ 1 , N ] [1,N] [1,N]中不为 i i i的随机整数, X i n e w , P 1 X_i^{new,P1} Xinew,P1是第 i i i个解的新位置, X i , j n e w , P 1 X_{i,j}^{new,P1} Xi,jnew,P1是其第 j j j维的值, F i n e w , P 1 F_i^{new,P1} Finew,P1是NGO第一阶段的目标函数值, r r r是区间 [ 0 , 1 ] [0,1] [0,1]的随机数, I I I的值为1或2。参数 r r r和 I I I是用于在搜索和更新中生成随机NGO行为的随机数。
(3)第二阶段:追逐和逃跑行为(开发)
在苍鹰攻击猎物后,猎物试图逃跑。因此,在尾随和追逐过程中,苍鹰继续追逐猎物。由于苍鹰的高速飞行,它们几乎可以在任何情况下追逐猎物并最终狩猎。对这种行为的模拟提高了算法对搜索空间局部搜索的利用能力。在提出的NGO算法中,假设该狩猎接近半径为 R R R的攻击位置。第二阶段使用式(6)~(8)进行数学建模: x i , j n e w , P 2 = x i , j + R ( 2 r − 1 ) x i , j (6) x_{i,j}^{new,P2}=x_{i,j}+R(2r-1)x_{i,j}\tag{6} xi,jnew,P2=xi,j+R(2r−1)xi,j(6) R = 0.02 ( 1 − t T ) (7) R=0.02\left(1-\frac tT\right)\tag{7} R=0.02(1−Tt)(7) X i = { X i n e w , P 2 , F i n e w , P 2 < F i X i , F i n e w , P 2 ≥ F i (8) X_i=\begin{dcases}X_i^{new,P2},\quad F_i^{new,P2}<F_i\\[2ex]X_i,\quad\quad\quad\, F_i^{new,P2}\geq F_i\end{dcases}\tag{8} Xi=⎩ ⎨ ⎧Xinew,P2,Finew,P2<FiXi,Finew,P2≥Fi(8)其中, t t t是当前迭代次数, T T T是最大迭代次数, X i n e w , P 2 X_i^{new,P2} Xinew,P2是第 i i i个解的新位置, X i , j n e w , P 2 X_{i,j}^{new,P2} Xi,jnew,P2是其第 j j j维的值, F i n e w , P 2 F_i^{new,P2} Finew,P2是NGO第二阶段的目标函数值。
2、NGO算法伪代码
NGO算法伪代码如图1所示。
二、仿真实验与结果分析
将NGO与GSA、GWO、TSA和MPA进行对比,以文献[1]中表19~21的F1、F2、F3(单峰函数/30维)、F9、F10、F11(多峰函数/30维)、F17、F18、F19(固定维度多峰函数/2维、2维、3维)为例,实验设置种群规模为30,最大迭代次数为1000,每种算法独立运算30次,结果显示如下:
函数:F1
GSA:最差值: 5.3952e-08, 最优值: 1.6663e-08, 平均值: 3.0386e-08, 标准差: 1.0644e-08, 秩和检验: 3.0199e-11
GWO:最差值: 3.4798e-58, 最优值: 3.7518e-61, 平均值: 4.9755e-59, 标准差: 8.3874e-59, 秩和检验: 3.0199e-11
WOA:最差值: 2.6938e-149, 最优值: 2.3755e-175, 平均值: 9.5949e-151, 标准差: 4.913e-150, 秩和检验: 3.0199e-11
TSA:最差值: 4.2674e-47, 最优值: 5.1714e-52, 平均值: 6.2278e-48, 标准差: 1.0027e-47, 秩和检验: 3.0199e-11
MPA:最差值: 6.7484e-49, 最优值: 2.5331e-53, 平均值: 7.754e-50, 标准差: 1.606e-49, 秩和检验: 3.0199e-11
NGO:最差值: 2.6837e-178, 最优值: 8.0422e-182, 平均值: 2.6046e-179, 标准差: 0, 秩和检验: 1
函数:F2
GSA:最差值: 0.0012427, 最优值: 0.00059005, 平均值: 0.00085911, 标准差: 0.00014329, 秩和检验: 3.0199e-11
GWO:最差值: 3.1109e-34, 最优值: 5.3772e-36, 平均值: 9.0312e-35, 标准差: 7.0522e-35, 秩和检验: 3.0199e-11
WOA:最差值: 2.7477e-102, 最优值: 8.6834e-116, 平均值: 9.2783e-104, 标准差: 5.0144e-103, 秩和检验: 3.0199e-11
TSA:最差值: 7.6156e-28, 最优值: 1.2235e-30, 平均值: 1.1552e-28, 标准差: 1.8906e-28, 秩和检验: 3.0199e-11
MPA:最差值: 5.3093e-27, 最优值: 1.5854e-29, 平均值: 8.6168e-28, 标准差: 1.0688e-27, 秩和检验: 3.0199e-11
NGO:最差值: 4.0323e-91, 最优值: 5.6002e-94, 平均值: 2.5029e-92, 标准差: 7.5048e-92, 秩和检验: 1
函数:F3
GSA:最差值: 104.5995, 最优值: 7.9602, 平均值: 46.9917, 标准差: 25.8137, 秩和检验: 3.0199e-11
GWO:最差值: 9.8259e-14, 最优值: 2.0711e-20, 平均值: 9.2924e-15, 标准差: 2.4662e-14, 秩和检验: 3.0199e-11
WOA:最差值: 42638.8847, 最优值: 2487.2217, 平均值: 19790.8173, 标准差: 10842.1084, 秩和检验: 3.0199e-11
TSA:最差值: 9.7617e-10, 最优值: 6.328e-21, 平均值: 3.8884e-11, 标准差: 1.7798e-10, 秩和检验: 3.0199e-11
MPA:最差值: 3.0198e-11, 最优值: 3.6645e-20, 平均值: 2.1718e-12, 标准差: 5.8506e-12, 秩和检验: 3.0199e-11
NGO:最差值: 7.4012e-47, 最优值: 1.3217e-59, 平均值: 2.5725e-48, 标准差: 1.3503e-47, 秩和检验: 1
函数:F9
GSA:最差值: 77.6063, 最优值: 16.9143, 平均值: 32.1703, 标准差: 12.4306, 秩和检验: 1.2118e-12
GWO:最差值: 4.8211, 最优值: 0, 平均值: 0.48875, 标准差: 1.3294, 秩和检验: 0.0006522
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
TSA:最差值: 264.6038, 最优值: 110.7145, 平均值: 171.029, 标准差: 39.9087, 秩和检验: 1.2118e-12
MPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
NGO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
GSA:最差值: 0.00017213, 最优值: 8.86e-05, 平均值: 0.00012896, 标准差: 1.7003e-05, 秩和检验: 6.3188e-12
GWO:最差值: 2.2204e-14, 最优值: 1.1546e-14, 平均值: 1.6402e-14, 标准差: 2.8731e-15, 秩和检验: 1.6309e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 3.7303e-15, 标准差: 2.3603e-15, 秩和检验: 0.0080027
TSA:最差值: 3.265, 最优值: 7.9936e-15, 平均值: 0.91016, 标准差: 1.4179, 秩和检验: 6.7184e-12
MPA:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 1.084e-15, 秩和检验: 0.0027818
NGO:最差值: 7.9936e-15, 最优值: 4.4409e-15, 平均值: 5.1514e-15, 标准差: 1.4454e-15, 秩和检验: 1
函数:F11
GSA:最差值: 0.76749, 最优值: 3.5235e-10, 平均值: 0.079625, 标准差: 0.14507, 秩和检验: 1.2118e-12
GWO:最差值: 0.015823, 最优值: 0, 平均值: 0.001945, 标准差: 0.0045624, 秩和检验: 0.021577
WOA:最差值: 0.088596, 最优值: 0, 平均值: 0.0029532, 标准差: 0.016175, 秩和检验: 0.33371
TSA:最差值: 0.0221, 最优值: 0, 平均值: 0.0052442, 标准差: 0.0071434, 秩和检验: 2.9343e-05
MPA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
NGO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F17
GSA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 1.1802e-11, 秩和检验: 1.2118e-12
GWO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 8.116e-07, 秩和检验: 1.2118e-12
WOA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 8.4212e-07, 秩和检验: 1.2118e-12
TSA:最差值: 0.3981, 最优值: 0.39789, 平均值: 0.39792, 标准差: 4.8836e-05, 秩和检验: 1.2118e-12
MPA:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
NGO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 0, 秩和检验: NaN
函数:F18
GSA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 1.2122e-09, 秩和检验: 9.3482e-12
GWO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 9.5694e-06, 秩和检验: 9.3482e-12
WOA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 8.6628e-06, 秩和检验: 9.3482e-12
TSA:最差值: 92.0351, 最优值: 3, 平均值: 9.5678, 标准差: 21.9114, 秩和检验: 9.3482e-12
MPA:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 2.0633e-15, 秩和检验: 0.011377
NGO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 9.546e-16, 秩和检验: 1
函数:F19
GSA:最差值: -2.4819, 最优值: -3.851, 平均值: -3.2896, 标准差: 0.35188, 秩和检验: 1.2118e-12
GWO:最差值: -3.855, 最优值: -3.8628, 平均值: -3.8621, 标准差: 0.0019623, 秩和检验: 1.2118e-12
WOA:最差值: -3.8508, 最优值: -3.8628, 平均值: -3.8601, 标准差: 0.0035419, 秩和检验: 1.2118e-12
TSA:最差值: -3.855, 最优值: -3.8628, 平均值: -3.8622, 标准差: 0.0019104, 秩和检验: 1.2118e-12
MPA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.6962e-15, 秩和检验: 0.33371
NGO:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.7101e-15, 秩和检验: NaN
实验结果表明:通过在探索和开发之间建立适当的平衡,所提出的NGO算法在求解优化问题方面具有有效的性能,并且比类似算法更具竞争力。
三、参考文献
[1] M. Dehghani, Š. Hubálovský, P. Trojovský. Northern Goshawk Optimization: A New Swarm-Based Algorithm for Solving Optimization Problems[J]. IEEE Access, 2021, 9: 162059-162080.