一、理论基础
在本章中,详细描述了提出的饥饿博弈搜索(Hunger games search, HGS)算法的数学模型。请注意,我们必须根据饥饿驱动的活动和行为选择建立一个数学模型,该模型应尽可能简单,同时也是最有效的表现。
1、饥饿博弈搜索算法
(1)接近食物
为了用数学公式表示其接近行为,使用以下公式模拟收缩模式:
X
(
t
+
1
)
=
{
X
(
t
)
⋅
(
1
+
r
a
n
d
n
(
1
)
)
,
r
1
<
l
W
1
⋅
X
b
+
R
⋅
W
2
⋅
∣
X
b
−
X
(
t
)
∣
,
r
1
>
l
,
r
2
>
E
W
1
⋅
X
b
−
R
⋅
W
2
⋅
∣
X
b
−
X
(
t
)
∣
,
r
1
>
l
,
r
2
<
E
(1)
X(t+1)=\begin{dcases}X(t)\cdot\left(1+randn(1)\right),\quad\quad\quad\quad\,\,\, r_1<l\\W_1\cdot X_b+R\cdot W_2\cdot|X_b-X(t)|,\quad r_1>l,r_2>E\\W_1\cdot X_b-R\cdot W_2\cdot|X_b-X(t)|,\quad r_1>l,r_2<E\end{dcases}\tag{1}
X(t+1)=⎩⎪⎨⎪⎧X(t)⋅(1+randn(1)),r1<lW1⋅Xb+R⋅W2⋅∣Xb−X(t)∣,r1>l,r2>EW1⋅Xb−R⋅W2⋅∣Xb−X(t)∣,r1>l,r2<E(1)其中,
R
R
R是介于
[
−
a
,
a
]
[-a,a]
[−a,a]的随机数;
r
1
r_1
r1和
r
2
r_2
r2均为
[
0
,
1
]
[0,1]
[0,1]之间的随机数;
r
a
n
d
n
(
1
)
randn(1)
randn(1)是满足标准正态分布的随机数;
t
t
t为当前迭代次数;
W
1
W_1
W1和
W
2
W_2
W2表示饥饿权重;
X
b
X_b
Xb表示全局最优位置;
X
(
t
)
X(t)
X(t)表示当前个体位置;
l
l
l是设置的常数。
E
E
E的计算公式如下:
E
=
sech
(
∣
F
(
i
)
−
B
F
∣
)
(2)
E=\text{sech}(|F(i)-BF|)\tag{2}
E=sech(∣F(i)−BF∣)(2)其中,
i
∈
1
,
2
,
⋯
,
N
i\in1,2,\cdots,N
i∈1,2,⋯,N,
F
(
i
)
F(i)
F(i)第
i
i
i个个体的适应度值;
B
F
BF
BF是当前最优适应度值。
sech
\text{sech}
sech是一个双曲函数,
sech
(
x
)
=
2
e
x
+
e
−
x
\text{sech}(x)=\frac{2}{e^x+e^{-x}}
sech(x)=ex+e−x2。
R
R
R的计算公式如下:
R
=
2
×
a
×
r
a
n
d
−
a
(3)
R=2×a×rand-a\tag{3}
R=2×a×rand−a(3)
a
=
2
×
(
1
−
t
M
a
x
_
i
t
e
r
)
(4)
a=2×(1-\frac{t}{Max\_iter})\tag{4}
a=2×(1−Max_itert)(4)其中,
r
a
n
d
rand
rand为
[
0
,
1
]
[0,1]
[0,1]之间的随机数;
M
a
x
_
i
t
e
r
Max\_iter
Max_iter表示最大迭代次数。
(2)饥饿角色
对搜索中个体的饥饿特征进行了数学模拟。
W
1
W_1
W1的计算如式(5)所示:
W
1
i
=
{
h
u
n
g
r
y
(
i
)
⋅
N
S
H
u
n
g
r
y
×
r
4
,
r
3
<
l
1
,
r
3
>
l
(5)
W_1^i=\begin{dcases}hungry(i)\cdot\frac{N}{SHungry}×r_4,\quad r_3<l\\1,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\, r_3>l \end{dcases}\tag{5}
W1i=⎩⎨⎧hungry(i)⋅SHungryN×r4,r3<l1,r3>l(5)W_2的计算如式(6)所示:
W
2
i
=
(
1
−
exp
(
−
∣
h
u
n
g
r
y
(
i
)
−
S
H
u
n
r
g
y
∣
)
)
×
r
5
×
2
(6)
W_2^i=\left(1-\exp(-|hungry(i)-SHunrgy|)\right)×r_5×2\tag{6}
W2i=(1−exp(−∣hungry(i)−SHunrgy∣))×r5×2(6)其中,
h
u
n
g
r
y
hungry
hungry表示每个个体的饥饿程度;
N
N
N表示所有个体的总数;
S
H
u
n
g
r
y
SHungry
SHungry表示所有个体饥饿程度的总和,即
s
u
m
(
h
u
n
g
r
y
)
sum(hungry)
sum(hungry);
r
3
,
r
4
r_3,r_4
r3,r4和
r
5
r_5
r5均为
[
0
,
1
]
[0,1]
[0,1]之间的随机数。
h
u
n
g
r
y
(
i
)
hungry(i)
hungry(i)计算如下:
h
u
n
g
r
y
(
i
)
=
{
0
,
A
l
l
F
i
t
n
e
s
s
(
i
)
=
=
B
F
h
u
n
g
r
y
(
i
)
+
H
,
A
l
l
F
i
t
n
e
s
s
(
i
)
≠
B
F
(7)
hungry(i)=\begin{dcases}0,\quad\quad\quad\quad\quad\quad\quad AllFitness(i)==BF\\hungry(i)+H,\quad AllFitness(i)≠BF\end{dcases}\tag{7}
hungry(i)={0,AllFitness(i)==BFhungry(i)+H,AllFitness(i)=BF(7)其中,
A
l
l
F
i
t
n
e
s
s
(
i
)
AllFitness(i)
AllFitness(i)表示每个个体的适应度值。
H
H
H计算如下:
T
H
=
F
(
i
)
−
B
F
W
F
−
B
F
×
r
6
×
2
×
(
U
B
−
L
B
)
(8)
TH=\frac{F(i)-BF}{WF-BF}×r_6×2×(UB-LB)\tag{8}
TH=WF−BFF(i)−BF×r6×2×(UB−LB)(8)
H
=
{
L
H
×
(
1
+
r
)
,
T
H
<
L
H
T
H
,
T
H
≥
L
H
(9)
H=\begin{dcases}LH×(1+r),\quad TH<LH\\TH,\quad\quad\quad\quad\quad\, TH≥LH\end{dcases}\tag{9}
H={LH×(1+r),TH<LHTH,TH≥LH(9)其中,
r
6
r_6
r6为
[
0
,
1
]
[0,1]
[0,1]之间的随机数;
F
(
i
)
F(i)
F(i)为每个个体的适应度值;
B
F
BF
BF为当前最优适应度值;
W
F
WF
WF为当前最差适应度值;
U
B
UB
UB和
L
B
LB
LB分别表示搜索空间的上限和下限;
L
H
LH
LH为
H
H
H的下界。
2、算法伪代码
HGS算法伪代码如图1所示。
二、实验及分析
以文献[1]中的F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F16、F17(固定维度的多峰函数/2维)为例,将HGS算法分别与花授粉算法(FPA)、鲸鱼优化算法(WOA)、飞蛾火焰优化算法(MFO)、正弦余弦算法(SCA)以及灰狼优化算法(GWO)进行对比,设置种群规模为30,最大迭代次数为1000,每个算法独立运行30次。HGS中设置
l
=
0.03
l=0.03
l=0.03、
L
H
=
100
LH=100
LH=100。
结果显示如下:
函数:F1
FPA:最差值: 0.37143,最优值:0.051982,平均值:0.17557,标准差:0.075872
WOA:最差值: 9.0799e-152,最优值:4.1248e-169,平均值:3.5901e-153,标准差:1.6578e-152
MFO:最差值: 20000,最优值:1.4307e-05,平均值:2666.6672,标准差:5208.3044
SCA:最差值: 0.21401,最优值:2.2612e-07,平均值:0.018106,标准差:0.053456
GWO:最差值: 1.7613e-58,最优值:1.0784e-61,平均值:2.9179e-59,标准差:4.5517e-59
HGS:最差值: 9.7144e-227,最优值:1.0951e-266,平均值:3.7625e-228,标准差:0
函数:F2
FPA:最差值: 0.67052,最优值:0.25951,平均值:0.43488,标准差:0.1091
WOA:最差值: 1.0844e-103,最优值:4.8097e-112,平均值:9.0573e-105,标准差:2.6323e-104
MFO:最差值: 80,最优值:0.00059191,平均值:38.6657,标准差:22.704
SCA:最差值: 0.0001082,最优值:4.5564e-08,平均值:9.7311e-06,标准差:2.0091e-05
GWO:最差值: 6.0477e-34,最优值:6.5351e-36,平均值:1.2765e-34,标准差:1.3477e-34
HGS:最差值: 1.7403e-116,最优值:1.4912e-142,平均值:9.8321e-118,标准差:3.4852e-117
函数:F9
FPA:最差值: 141.9644,最优值:82.7476,平均值:113.3436,标准差:12.5937
WOA:最差值: 5.6843e-14,最优值:0,平均值:1.8948e-15,标准差:1.0378e-14
MFO:最差值: 250.1599,最优值:104.5414,平均值:172.0961,标准差:33.5805
SCA:最差值: 116.2791,最优值:1.1251e-05,平均值:17.9381,标准差:27.6715
GWO:最差值: 7.5422,最优值:0,平均值:0.50163,标准差:1.6412
HGS:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F10
FPA:最差值: 15.3991,最优值:0.18265,平均值:5.3648,标准差:4.3423
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:4.4409e-15,标准差:2.4685e-15
MFO:最差值: 19.9613,最优值:0.0018039,平均值:12.2932,标准差:7.8713
SCA:最差值: 20.3029,最优值:0.00012705,平均值:12.5608,标准差:9.6735
GWO:最差值: 2.2204e-14,最优值:1.1546e-14,平均值:1.6046e-14,标准差:2.7886e-15
HGS:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F16
FPA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.3208e-16
WOA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:2.7538e-11
MFO:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.7752e-16
SCA:最差值: -1.0315,最优值:-1.0316,平均值:-1.0316,标准差:1.8779e-05
GWO:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.6161e-09
HGS:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:6.7752e-16
函数:F17
FPA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0
WOA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:1.2986e-06
MFO:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0
SCA:最差值: 0.39984,最优值:0.39792,平均值:0.39853,标准差:0.00056102
GWO:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:2.133e-07
HGS:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:0
结果表明,HGS算法具有更快的收敛速度、更高的收敛精度以及更好的寻优能力。
三、参考文献
[1] Yutao Yang, Huiling Chen, Ali Asghar Heidari, Amir H Gandomi. Hunger Games Search: Visions, Conception, Implementation, Deep Analysis, Perspectives, and Towards Performance Shifts[J]. Expert Systems with Applications, 2021, 177: 114864.