1.背景
2021年,Yang等人受到自然界饥饿驱动的活动和动物的行为选择启发,提出了饥饿游戏搜索算法(Hunger Games Search, HGS)。
2.算法原理
2.1算法思想
HGS源自动物在寻找食物时的行为模式,强调动物根据感知信息和计算规则与环境交互,优先选择和追求食物来源以支持生存、繁殖和获取食物。饥饿作为强大的驱动力,能够推动动物行为,并在竞争和其他驱动力之间起主导作用。
2.2算法过程
群居动物在觅食过程中经常相互合作:
X
(
t
+
1
)
→
=
{
G
a
m
e
1
:
X
(
t
)
→
•
(
1
+
r
a
n
d
n
(
1
)
)
,
r
1
<
l
G
a
m
e
2
:
W
1
→
•
X
b
→
+
R
→
•
W
2
→
•
∣
X
b
→
−
X
(
t
)
→
∣
,
r
1
>
l
,
r
2
>
E
G
a
m
e
3
:
W
1
→
•
X
b
→
−
R
→
•
W
2
→
•
∣
X
b
→
−
X
(
t
)
→
∣
,
r
1
>
l
,
r
2
<
E
(1)
\left.\overrightarrow{X(t+1)}=\left\{\begin{array}{c}Game_1:\overrightarrow{X(t)}•(1+randn(1)),r_1<l\\Game_2:\overrightarrow{W_1}•\overrightarrow{X_b}+\overrightarrow{R}•\overrightarrow{W_2}•\left|\overrightarrow{X_b}-\overrightarrow{X(t)}\right|,r_1>l,r_2>E\\Game_3:\overrightarrow{W_1}•\overrightarrow{X_b}-\overrightarrow{R}•\overrightarrow{W_2}•\left|\overrightarrow{X_b}-\overrightarrow{X(t)}\right|,r_1>l,r_2<E\end{array}\right.\right.\tag{1}
X(t+1)=⎩
⎨
⎧Game1:X(t)•(1+randn(1)),r1<lGame2:W1•Xb+R•W2•
Xb−X(t)
,r1>l,r2>EGame3:W1•Xb−R•W2•
Xb−X(t)
,r1>l,r2<E(1)
E是所有位置的变分控制:
E
=
s
e
c
h
(
∣
F
(
i
)
−
B
F
∣
)
(2)
E=\mathrm{sech}(|F(i)-BF | )\tag{2}
E=sech(∣F(i)−BF∣)(2)
BF是当前迭代最优适应度,sech为双曲函数:
s
e
c
h
(
x
)
=
2
e
x
+
e
−
x
(3)
\mathrm{sech}(x)=\frac2{e^x+e^{-x}}\tag{3}
sech(x)=ex+e−x2(3)
参数表述为:
R
→
=
2
×
s
h
r
i
n
k
×
r
a
n
d
−
s
h
r
i
n
k
s
h
r
i
n
k
=
2
×
(
1
−
t
T
)
(4)
\begin{aligned}&\overrightarrow{R}=2\times shrink\times rand-shrink\\&shrink=2\times(1-\frac tT)\end{aligned}\tag{4}
R=2×shrink×rand−shrinkshrink=2×(1−Tt)(4)
个体在搜索中的饥饿特征:
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)
\overrightarrow{W_1(i)}=\begin{cases} hungry(i)•\dfrac{N}{SHungry}\times r_4,r_3<l\\ 1r_3>l\end{cases}\tag{5}
W1(i)=⎩
⎨
⎧hungry(i)•SHungryN×r4,r3<l1r3>l(5)
W2表达式表述为:
W
2
(
i
)
→
=
(
1
−
e
x
p
(
−
∣
h
u
n
g
r
y
(
i
)
−
S
H
u
n
g
r
y
∣
)
)
×
r
5
×
2
(6)
\overrightarrow{W_2(i)}=(1-exp(-|hungry(i)-SHungry|))\times r_5\times2\tag{6}
W2(i)=(1−exp(−∣hungry(i)−SHungry∣))×r5×2(6)
hungry代表每个人的饥饿,SHungry是所有个体饥饿感受的总和,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)=\left\{\begin{array}{c}0,AllFitness(i)==BF\\hungry(i)+H,AllFitness(i)!=BF\end{array}\right.\tag{7}
hungry(i)={0,AllFitness(i)==BFhungry(i)+H,AllFitness(i)!=BF(7)
AllFitness(i)保留当前迭代中每个个体的适应度。在每次迭代中,最佳个体的饥饿感被设置为0。对于其他个体,在原有饥饿的基础上增加一个hungry(H),H表述为:
T
H
=
F
(
i
)
−
B
F
W
F
−
B
F
×
r
6
×
2
×
(
U
B
−
L
B
)
H
=
{
L
H
×
(
1
+
r
)
,
T
H
<
L
H
T
H
,
T
H
≥
L
H
(8)
TH=\frac{F(i)-BF}{WF-BF}\times r_6\times2\times(UB-LB)\\H=\left\{\begin{array}{c}LH\times(1+r),TH<LH\\TH,TH\geq LH\end{array}\right.\tag{8}
TH=WF−BFF(i)−BF×r6×2×(UB−LB)H={LH×(1+r),TH<LHTH,TH≥LH(8)
流程图
伪代码
3.结果展示
使用测试框架,测试HGS性能 一键run.m
CEC2005-F7
探索与开发
4.参考文献
[1] Yang Y, Chen H, Heidari A A, et al. Hunger games search: Visions, conception, implementation, deep analysis, perspectives, and towards performance shifts[J]. Expert Systems with Applications, 2021, 177: 114864.