文章目录
- 一、理论基础
- 1、金豺优化算法
- (1)搜索空间公式
- (2)探索阶段或搜索猎物
- (3)开发阶段或围捕和突袭猎物
- (4)从探索转向开发
- 2、GJO伪代码
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、金豺优化算法
文献[1]提出了一种新的自然启发优化方法,称为金豺优化(Golden Jackal Optimization, GJO)算法,其灵感来自金豺的协作狩猎行为。算法的三个基本步骤是猎物搜索、包围和突袭。
(1)搜索空间公式
与许多其他元启发式方法一样,GJO是一种基于群体的方法,在该方法中,初始解随机均匀分布在搜索空间上:
Y
0
=
Y
min
+
r
a
n
d
(
Y
max
−
Y
min
)
(1)
Y_0=Y_{\min}+rand(Y_{\max}-Y_{\min})\tag{1}
Y0=Ymin+rand(Ymax−Ymin)(1)其中,
Y
max
Y_{\max}
Ymax和
Y
min
Y_{\min}
Ymin是变量的上界和下界,
r
a
n
d
rand
rand是0到1范围内的均匀随机向量。
初始化创建初始矩阵猎物,其中第一个和第二个最合适的是豺对。猎物如下所示:
P
r
e
y
=
[
Y
1
,
1
Y
1
,
2
⋯
Y
1
,
d
Y
2
,
1
Y
2
,
2
⋯
Y
2
,
d
⋮
⋮
⋮
Y
n
,
1
Y
n
,
2
⋯
Y
n
,
d
]
(2)
Prey=\begin{bmatrix} Y_{1,1} & Y_{1,2} & \cdots & Y_{1,d} \\Y_{2,1} & Y_{2,2} & \cdots & Y_{2,d} \\\vdots & \vdots & & \vdots \\Y_{n,1} & Y_{n,2} & \cdots & Y_{n,d} \end{bmatrix}\tag{2}
Prey=⎣⎢⎢⎢⎡Y1,1Y2,1⋮Yn,1Y1,2Y2,2⋮Yn,2⋯⋯⋯Y1,dY2,d⋮Yn,d⎦⎥⎥⎥⎤(2)其中,
Y
i
,
j
Y_{i,j}
Yi,j表示第
i
i
i个猎物的第
j
j
j维值。总共有
n
n
n个猎物和
d
d
d个变量。猎物位置是指特定解的参数。在优化过程中,应用适应度(目标)函数估计每个猎物的适应度值,随后的矩阵收集所有猎物的适应度值:
F
O
A
=
[
f
(
Y
1
,
1
;
Y
1
,
2
;
⋯
;
Y
1
,
d
)
f
(
Y
2
,
1
;
Y
2
,
2
;
⋯
;
Y
2
,
d
)
⋮
f
(
Y
n
,
1
;
Y
n
,
2
;
⋯
;
Y
n
,
d
)
]
(3)
F_{OA}=\begin{bmatrix} f(Y_{1,1};Y_{1,2};\cdots;Y_{1,d}) \\f(Y_{2,1};Y_{2,2};\cdots;Y_{2,d})\\\vdots\\f(Y_{n,1};Y_{n,2};\cdots;Y_{n,d}) \end{bmatrix}\tag{3}
FOA=⎣⎢⎢⎢⎡f(Y1,1;Y1,2;⋯;Y1,d)f(Y2,1;Y2,2;⋯;Y2,d)⋮f(Yn,1;Yn,2;⋯;Yn,d)⎦⎥⎥⎥⎤(3)其中,
F
O
A
F_{OA}
FOA是保存每个猎物适应度的矩阵,
Y
i
,
j
Y_{i,j}
Yi,j表示第
i
i
i个猎物的第
j
j
j维值,
n
n
n是猎物数量,
f
f
f是目标函数。适应度最优的被称为公豺,次优的被称为母豺。豺对获得相应的猎物位置。
(2)探索阶段或搜索猎物
在这一部分中,提出了GJO的探索策略。由于豺狼的天性,它们知道如何感知和跟踪猎物,但偶尔猎物不容易捕捉和逃脱。因此,豺狼等待并寻找其他猎物。狩猎是由雄性豺狼领导的,母豺跟随公豺。
Y
1
(
t
)
=
Y
M
(
t
)
−
E
⋅
∣
Y
M
(
t
)
−
r
l
⋅
P
r
e
y
(
t
)
∣
(4)
Y_1(t)=Y_M(t)-E\cdot|Y_M(t)-rl\cdot Prey(t)|\tag{4}
Y1(t)=YM(t)−E⋅∣YM(t)−rl⋅Prey(t)∣(4)
Y
2
(
t
)
=
Y
F
M
(
t
)
−
E
⋅
∣
Y
F
m
(
t
)
−
r
l
⋅
P
r
e
y
(
t
)
∣
(5)
Y_2(t)=Y_{FM}(t)-E\cdot|Y_{Fm}(t)-rl\cdot Prey(t)|\tag{5}
Y2(t)=YFM(t)−E⋅∣YFm(t)−rl⋅Prey(t)∣(5)其中,
t
t
t表示当前迭代次数,
P
r
e
y
(
t
)
Prey(t)
Prey(t)是猎物的位置向量,
Y
M
(
t
)
Y_M(t)
YM(t)和
Y
F
M
(
t
)
Y_{FM}(t)
YFM(t)表示雄豺和雌豺的位置,
Y
1
(
t
)
Y_1(t)
Y1(t)和
Y
2
(
t
)
Y_2(t)
Y2(t)是对应于猎物的雄性和雌性豺的更新位置。
E
E
E是躲避猎物的能量,计算如下:
E
=
E
1
∗
E
0
(6)
E=E_1*E_0\tag{6}
E=E1∗E0(6)其中,
E
1
E_1
E1表示猎物的能量下降,
E
0
E_0
E0表示其能量的初始状态。
E
0
=
2
∗
r
−
1
(7)
E_0=2*r-1\tag{7}
E0=2∗r−1(7)其中,
r
r
r是0到1的随机数。
E
1
=
c
1
∗
(
1
−
t
/
T
)
(8)
E_1=c_1*(1-t/T)\tag{8}
E1=c1∗(1−t/T)(8)其中,
T
T
T表示最大迭代次数,
c
1
c_1
c1是等于1.5的常数值,
t
t
t表示当前迭代次数。在整个迭代过程中,
E
1
E_1
E1从1.5线性减少到0。
式(4)和(5)中的
∣
Y
(
t
)
−
r
l
⋅
P
r
e
y
(
t
)
∣
|Y(t)-rl\cdot Prey(t)|
∣Y(t)−rl⋅Prey(t)∣计算豺与猎物之间的距离。根据猎物逃逸的能量,这个距离会被减去或加到豺狼的当前位置。
式(4)和(5)中的
r
l
rl
rl是基于表示Levy运动的Levy分布的随机数向量。
r
l
rl
rl和
P
r
e
y
Prey
Prey的乘法模拟了以Levy方式移动的猎物,计算如下:
r
l
=
0.05
∗
L
F
(
y
)
(9)
rl=0.05*LF(y)\tag{9}
rl=0.05∗LF(y)(9)
L
F
LF
LF是levy飞行函数,使用式(10)计算得出:
L
F
(
y
)
=
0.01
×
(
μ
×
σ
)
/
(
∣
v
∣
1
/
β
)
;
σ
=
(
Γ
(
1
+
β
)
×
sin
(
π
β
/
2
)
Γ
(
1
+
β
2
)
×
β
×
2
β
−
1
2
)
1
/
β
(10)
LF(y)=0.01\times(\mu\times\sigma)/\left(\left|v\right|^{1/\beta}\right);\sigma=\left(\frac{\Gamma(1+\beta)\times\sin(\pi\beta/2)}{\Gamma(\frac{1+\beta}{2})\times\beta\times2^{\frac{\beta-1}{2}}}\right)^{1/\beta}\tag{10}
LF(y)=0.01×(μ×σ)/(∣v∣1/β);σ=(Γ(21+β)×β×22β−1Γ(1+β)×sin(πβ/2))1/β(10)其中,
μ
\mu
μ和
v
v
v是
(
0
,
1
)
(0,1)
(0,1)内的随机值,
β
\beta
β是默认常数,设置为1.5。最后,通过取式(4)和(5)的平均值来更新豺的位置。
Y
(
t
+
1
)
=
Y
1
(
t
)
+
Y
2
(
t
)
2
(11)
Y(t+1)=\frac{Y_1(t)+Y_2(t)}{2}\tag{11}
Y(t+1)=2Y1(t)+Y2(t)(11)
(3)开发阶段或围捕和突袭猎物
当猎物受到豺的骚扰时,其逃逸能量降低,然后豺对包围前一阶段检测到的猎物。围捕后,它们突袭猎物并将其吞食。雄性和雌性豺一起狩猎的行为在数学上建模如下:
Y
1
(
t
)
=
Y
M
(
t
)
−
E
⋅
∣
r
l
⋅
Y
M
(
t
)
−
P
r
e
y
(
t
)
∣
(12)
Y_1(t)=Y_M(t)-E\cdot|rl\cdot Y_M(t)-Prey(t)|\tag{12}
Y1(t)=YM(t)−E⋅∣rl⋅YM(t)−Prey(t)∣(12)
Y
2
(
t
)
=
Y
F
M
(
t
)
−
E
⋅
∣
r
l
⋅
Y
F
M
(
t
)
−
P
r
e
y
(
t
)
∣
(13)
Y_2(t)=Y_{FM}(t)-E\cdot|rl\cdot Y_{FM}(t)-Prey(t)|\tag{13}
Y2(t)=YFM(t)−E⋅∣rl⋅YFM(t)−Prey(t)∣(13)其中,
t
t
t表示当前迭代次数,
P
r
e
y
(
t
)
Prey(t)
Prey(t)是猎物的位置向量,
Y
M
(
t
)
Y_M(t)
YM(t)和
Y
F
M
(
t
)
Y_{FM}(t)
YFM(t)表示雄性和雌性豺的位置,
Y
1
(
t
)
Y_1(t)
Y1(t)和
Y
2
(
t
)
Y_2(t)
Y2(t)是对应于猎物的雄性和雌性豺的更新位置,根据式(6)计算猎物的逃逸能量
E
E
E。最后,根据式(11)更新豺的位置。
式(12)和(13)中
r
l
rl
rl的功能是在开采阶段提供任意行为,有利于探索和避免局部最优。根据式(9)计算
r
l
rl
rl。该变量有利于避免局部最优解的迟缓,尤其是在最后的迭代中。
可以很好地将该变量视为朝向猎物移动的障碍的结果。通常,自然界中的困难发生在豺的追逐路径上,阻止它们适当而快速地向猎物移动。这就是
r
l
rl
rl在开发阶段的目的。
(4)从探索转向开发
在GJO算法中,猎物的逃逸能量用于从探索切换到开发。在整个躲避行为中,猎物的能量显著下降。考虑到这一点,根据式(6)对猎物的逃逸能量进行建模。初始能量
E
0
E_0
E0在每次迭代中从-1到1之间震荡。当
E
0
E_0
E0值从0减少到-1时,猎物的力量正在衰退,但当
E
0
E_0
E0值从0增加到1时,表明猎物的力量有所提高。
如图1所示,在迭代过程中,改变的逃逸能量
E
E
E呈下降趋势。当
∣
E
∣
>
1
|E|>1
∣E∣>1时,豺对搜索不同区域以探索猎物,当
∣
E
∣
<
1
|E|<1
∣E∣<1时,GJO攻击猎物并进行开发。
2、GJO伪代码
总之,GJO中的搜索过程始于创建随机猎物种群(候选解)。在迭代过程中,猎物的可能位置由雄性和雌性豺狩猎对估计。种群中的每个候选个体都会更新其与豺对的距离。
E
1
E_1
E1参数从1.5减少到0,以分别强调探索和开发。当
∣
E
∣
>
1
|E|>1
∣E∣>1时,金豺狩猎对偏离猎物,当
∣
E
∣
<
1
|E|<1
∣E∣<1时聚集到猎物。最后,GJO算法通过满足终止准则来完成。GJO算法的伪代码如图2所示。
二、仿真实验与结果分析
将GJO与GWO、GSA、MVO和MFO进行对比,以常用23个测试函数中的F4、F5(单峰函数/10维)、F10、F11(多峰函数/10维)、F15、F16(固定维度多峰函数/4维、2维)为例,实验设置种群规模为30,最大迭代次数为200,每种算法独立运算30次,结果显示如下:
函数:F4
GWO:最差值: 1.7075e-06, 最优值: 1.5939e-08, 平均值: 5.0863e-07, 标准差: 4.8871e-07, 秩和检验: 3.0199e-11
GSA:最差值: 0.00010035, 最优值: 3.2627e-05, 平均值: 6.0598e-05, 标准差: 1.7281e-05, 秩和检验: 3.0199e-11
MVO:最差值: 0.44026, 最优值: 0.11892, 平均值: 0.22102, 标准差: 0.074485, 秩和检验: 3.0199e-11
MFO:最差值: 30.487, 最优值: 0.32858, 平均值: 6.1688, 标准差: 7.9857, 秩和检验:3.0199e-11
GJO:最差值: 3.6323e-14, 最优值: 8.1343e-18, 平均值: 2.4166e-15, 标准差: 7.0375e-15, 秩和检验: 1
函数:F5
GWO:最差值: 8.0741, 最优值: 5.8466, 平均值: 7.0781, 标准差: 0.52566, 秩和检验: 0.10869
GSA:最差值: 91.1663, 最优值: 6.1697, 平均值: 11.8933, 标准差: 19.9896, 秩和检验: 0.0015178
MVO:最差值: 1369.5102, 最优值: 5.9133, 平均值: 87.0825, 标准差: 254.8173, 秩和检验: 6.0459e-07
MFO:最差值: 90007.6356, 最优值: 0.70249, 平均值: 3404.0693, 标准差: 16378.9063, 秩和检验:1.6351e-05
GJO:最差值: 8.0939, 最优值: 6.2387, 平均值: 7.1311, 标准差: 0.5039, 秩和检验: 1
函数:F10
GWO:最差值: 8.5739e-11, 最优值: 1.8732e-12, 平均值: 1.8104e-11, 标准差: 1.7847e-11, 秩和检验: 5.1436e-12
GSA:最差值: 0.00017464, 最优值: 6.0412e-05, 平均值: 0.00011252, 标准差: 2.8375e-05, 秩和检验: 5.1436e-12
MVO:最差值: 2.4319, 最优值: 0.11489, 平均值: 0.70675, 标准差: 0.80691, 秩和检验: 5.1436e-12
MFO:最差值: 19.9435, 最优值: 0.0036455, 平均值: 0.84425, 标准差: 3.6462, 秩和检验:5.1436e-12
GJO:最差值: 7.9936e-15, 最优值: 4.4409e-15, 平均值: 5.033e-15, 标准差: 1.3467e-15, 秩和检验: 1
函数:F11
GWO:最差值: 0.12329, 最优值: 0, 平均值: 0.041772, 标准差: 0.036403, 秩和检验: 3.8872e-10
GSA:最差值: 11.6183, 最优值: 2.0228, 平均值: 5.4245, 标准差: 2.7055, 秩和检验: 3.1602e-12
MVO:最差值: 0.77234, 最优值: 0.18921, 平均值: 0.51579, 标准差: 0.12578, 秩和检验: 3.1602e-12
MFO:最差值: 0.48484, 最优值: 0.037216, 平均值: 0.15913, 标准差: 0.098084, 秩和检验:3.1602e-12
GJO:最差值: 0.011216, 最优值: 0, 平均值: 0.00037386, 标准差: 0.0020477, 秩和检验: 1
函数:F15
GWO:最差值: 0.020363, 最优值: 0.00034426, 平均值: 0.0066034, 标准差: 0.0091652, 秩和检验: 0.98231
GSA:最差值: 0.023217, 最优值: 0.001797, 平均值: 0.0081274, 标准差: 0.0067001, 秩和检验: 2.1327e-05
MVO:最差值: 0.056556, 最优值: 0.00055514, 平均值: 0.0054155, 标准差: 0.01175, 秩和检验: 0.0038481
MFO:最差值: 0.0016554, 最优值: 0.00055474, 平均值: 0.00096053, 标准差: 0.00027353, 秩和检验:0.016285
GJO:最差值: 0.020365, 最优值: 0.00030815, 平均值: 0.0046095, 标准差: 0.0080138, 秩和检验: 1
函数:F16
GWO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.8492e-07, 秩和检验: 1.5581e-08
GSA:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 2.0888e-10, 秩和检验: 3.0199e-11
MVO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.9518e-06, 秩和检验: 0.11536
MFO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 6.6486e-16, 秩和检验:2.3638e-12
GJO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.3177e-06, 秩和检验: 1
实验结果表明:GJO算法与其他算法相比具有更优的寻优性能、更好的鲁棒性、更快的搜索速度和更高的收敛精度。
三、参考文献
[1] Nitish Chopra, Muhammad Mohsin Ansari. Golden jackal optimization: A novel nature-inspired optimizer for engineering applications[J]. Expert Systems With Applications , 2022, 198: 116924.