文章目录
- 一、理论基础
- 1、火鹰优化算法
- 2、FHO算法伪代码
- 二、仿真实验与结果分析
- 三、参考文献
一、理论基础
1、火鹰优化算法
文献[1]提出了火鹰优化算法(Fire Hawk Optimizer, FHO)作为一种新的元启发式算法,该算法基于啸鸢、麻鹰和褐隼的觅食行为,这些鸟类被称为火鹰,因为它们在自然界中捕捉猎物的具体行动,特别是通过“放火”的方式。
FHO元启发式算法模拟了火鹰的觅食行为,考虑了生火和传火以及捕获猎物的过程。首先,确定若干候选解(
X
X
X)作为火鹰和猎物的位置向量,利用一个随机初始化过程来确定这些向量在搜索空间中的初始位置。
X
=
[
X
1
X
2
⋮
X
i
⋮
X
N
]
=
[
x
1
1
x
1
2
⋯
x
1
j
⋯
x
1
d
x
2
1
x
2
2
⋯
x
2
j
⋯
x
2
d
⋮
⋮
⋮
⋱
⋮
x
i
1
x
i
2
⋯
x
i
j
⋯
x
i
d
⋮
⋮
⋮
⋱
⋮
x
N
1
x
N
2
⋯
x
N
j
⋯
x
N
d
]
,
{
i
=
1
,
2
,
…
,
N
j
=
1
,
2
,
…
,
d
(1)
X=\begin{bmatrix}X_1\\X_2\\\vdots\\X_i\\\vdots\\X_N\end{bmatrix}=\begin{bmatrix}x_1^1x_1^2\cdots x_1^j\cdots x_1^d\\x_2^1x_2^2\cdots x_2^j\cdots x_2^d\\\vdots\vdots\vdots\ddots\vdots\\x_i^1x_i^2\cdots x_i^j\cdots x_i^d\\\vdots\vdots\vdots\ddots\vdots\\x_N^1x_N^2\cdots x_N^j\cdots x_N^d\end{bmatrix},\quad\begin{dcases}i=1,2,\ldots,N\\j=1,2,\ldots,d\end{dcases}\tag{1}
X=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡X1X2⋮Xi⋮XN⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x11x12⋯x1j⋯x1dx21x22⋯x2j⋯x2d⋮⋮⋮⋱⋮xi1xi2⋯xij⋯xid⋮⋮⋮⋱⋮xN1xN2⋯xNj⋯xNd⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤,{i=1,2,…,Nj=1,2,…,d(1)
x
i
j
(
0
)
=
x
i
,
min
j
+
rand
⋅
(
x
i
,
max
j
−
x
i
,
min
j
)
,
{
i
=
1
,
2
,
…
,
N
j
=
1
,
2
,
…
,
d
(2)
x_i^j(0)=x_{i,\min}^j+\text{rand}\cdot\left(x_{i,\max}^j-x_{i,\min}^j\right),\quad\begin{dcases}i=1,2,\ldots,N\\j=1,2,\ldots,d\end{dcases}\tag{2}
xij(0)=xi,minj+rand⋅(xi,maxj−xi,minj),{i=1,2,…,Nj=1,2,…,d(2)其中,
N
N
N为搜索空间中候选解的总数;
x
i
j
x_i^j
xij为第
i
i
i个候选解的第
j
j
j个决策变量;
x
i
j
(
0
)
x_i^j(0)
xij(0)表示候选解的初始位置;
X
i
,
min
j
X_{i,\min}^j
Xi,minj和
x
i
,
max
j
x_{i,\max}^j
xi,maxj是第
i
i
i个候选解的第
j
j
j个决策变量的最小和最大边界;
rand
\text{rand}
rand是一个
[
0
,
1
]
[0,1]
[0,1]均匀分布的随机数。
为了确定火鹰在搜索空间中的位置,候选解的目标函数评价考虑了所选优化问题。一些具有较好目标函数值的候选解表示为火鹰,而其余的候选解则是猎物。选定的火鹰用于在搜索空间内的猎物周围散布火焰,以使狩猎更容易。此外,假设全局最佳解决方案是火鹰在搜索空间(自然)中首先使用的主火。数学表达式如下:
P
R
=
[
P
R
1
P
R
2
⋮
P
R
k
⋮
P
R
m
]
,
k
=
1
,
2
,
…
,
m
(3)
PR=\begin{bmatrix}PR_1\\PR_2\\\vdots\\PR_k\\\vdots\\PR_m\end{bmatrix},\,\,k=1,2,\ldots,m\tag{3}
PR=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡PR1PR2⋮PRk⋮PRm⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤,k=1,2,…,m(3)
F
H
=
[
F
H
1
F
H
2
⋮
F
H
l
⋮
F
H
n
]
,
l
=
1
,
2
,
…
,
n
(4)
FH=\begin{bmatrix}FH_1\\FH_2\\\vdots\\FH_l\\\vdots\\FH_n\end{bmatrix},\,\,l=1,2,\ldots,n\tag{4}
FH=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡FH1FH2⋮FHl⋮FHn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤,l=1,2,…,n(4)其中,
P
R
k
PR_k
PRk是搜索空间中关于
m
m
m个猎物总数的第
k
k
k个猎物;
F
H
l
FH_l
FHl是搜索空间中
n
n
n个火鹰的总数中的第
l
l
l个火鹰。
在算法的下一个阶段,计算火鹰和猎物之间的总距离。结果导致每只鸟最近的猎物被确定,从而区分这些鸟的有效领地。需要注意的是,确定距离第一火鹰最近且目标函数值最好的猎物,而通过剩余的猎物来考虑其他鸟类的领地。
D
k
l
D_k^l
Dkl由下式确定:
D
k
l
=
(
x
2
−
x
1
)
2
+
(
y
2
−
y
1
)
2
,
{
l
=
1
,
2
,
…
,
n
k
=
1
,
2
,
…
,
m
(5)
D_k^l=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2},\,\,\begin{dcases}l=1,2,\ldots,n\\k=1,2,\ldots,m\end{dcases}\tag{5}
Dkl=(x2−x1)2+(y2−y1)2,{l=1,2,…,nk=1,2,…,m(5)其中,
D
k
l
D_k^l
Dkl为第
l
l
l只火鹰与第
k
k
k只猎物之间的总距离;
m
m
m为搜索空间中的猎物总数;
n
n
n为搜索空间中火鹰的总数;
(
x
1
,
y
1
)
(x_1, y_1)
(x1,y1)和
(
x
2
,
y
2
)
(x_2, y_2)
(x2,y2)表示火鹰和猎物在搜索空间中的坐标。
在进行了上述测量火鹰和猎物之间总距离的程序后,通过它们周围最近的猎物来区分这些鸟的领土。通过对火鹰和猎物的分类,配置了算法的搜索过程。需要注意的是,目标函数值较好的火鹰在其特定领土的搜索空间中选择最接近的最佳猎物。然后,其他的火鹰在搜索空间中完成了下一个最近的猎物,这证明了最强的火鹰比较弱的鸟完成了更成功的狩猎。
在算法的下一个阶段,火鹰从主火收集燃烧的木棍,以便在选定的区域点火。在这一阶段,每只鸟都会捡起一根燃烧的棍子,然后把它扔到自己的特定领地,迫使猎物匆忙逃离。与此同时,一些鸟渴望使用来自火鹰其他领地的燃烧棒。因此,这两种行为可作为FHO主搜索循环中的位置更新过程,如下式所示:
F
H
l
n
e
w
=
F
H
l
+
(
r
1
×
G
B
−
r
2
×
F
H
N
e
a
r
)
,
l
=
1
,
2
,
…
,
n
(6)
FH_l^{new}=FH_l+(r_1\times GB-r_2\times FH_{Near}),\,\,l=1,2,\ldots,n\tag{6}
FHlnew=FHl+(r1×GB−r2×FHNear),l=1,2,…,n(6)其中,
F
H
l
n
e
w
FH_l^{new}
FHlnew为第
l
l
l只火鹰(
F
H
l
FH_l
FHl)的新位置向量;
G
B
GB
GB是搜索空间中的全局最优解,被认为是主火;
F
H
N
e
a
r
FH_{Near}
FHNear是搜索空间中的另一只火鹰;
r
1
r_1
r1和
r
2
r_2
r2是在
(
0
,
1
)
(0,1)
(0,1)范围内均匀分布的随机数,用于确定火鹰向主火和其他火鹰领地的移动。
在算法的下一个阶段,猎物在每只火鹰的领地内的移动被认为是动物行为的一个关键方面,用于位置更新过程。当火鹰扔下一根燃烧的棍子时,猎物决定躲藏,逃跑,或者会误朝火鹰跑去。在位置更新过程中可以考虑这些动作,使用以下式子更新:
P
R
q
n
e
w
=
P
R
q
+
(
r
3
×
F
H
l
−
r
4
×
S
P
l
)
,
{
l
=
1
,
2
,
…
,
n
q
=
1
,
2
,
…
,
r
(7)
PR_q^{new}=PR_q+(r_3\times FH_l-r_4\times SP_l),\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{7}
PRqnew=PRq+(r3×FHl−r4×SPl),{l=1,2,…,nq=1,2,…,r(7)其中,
P
R
q
n
e
w
PR_q^{new}
PRqnew为被第
l
l
l只火鹰(
F
H
l
FH_l
FHl)包围的第
q
q
q个猎物(
P
R
q
PR_q
PRq)的新位置向量;
G
B
GB
GB是搜索空间中的全局最优解,被认为是主火;
S
P
l
SP_l
SPl是第
l
l
l只火鹰属下的一个安全地点;
r
3
r_3
r3和
r
4
r_4
r4是在
(
0
,
1
)
(0,1)
(0,1)范围内均匀分布的随机数,用于确定猎物向火鹰和安全地点的移动。
此外,猎物可能会向其他火鹰的领地移动,而猎物也有可能在附近的伏击中更接近火鹰,甚至试图躲到火鹰领地之外更安全的地方。在位置更新过程中可以考虑这些动作,使用以下公式:
P
R
q
n
e
w
=
P
R
q
+
(
r
5
×
F
H
A
l
t
e
r
−
r
6
×
S
P
)
,
{
l
=
1
,
2
,
…
,
n
q
=
1
,
2
,
…
,
r
(8)
PR_q^{new}=PR_q+(r_5\times FH_{Alter}-r_6\times SP),\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{8}
PRqnew=PRq+(r5×FHAlter−r6×SP),{l=1,2,…,nq=1,2,…,r(8)其中,
P
R
q
n
e
w
PR_q^{new}
PRqnew为第
q
q
q个猎物被第
l
l
l个火鹰包围的新位置向量(
P
R
q
PR_q
PRq);
F
H
A
l
t
e
r
FH_{Alter}
FHAlter是搜索空间中的另一个火鹰;
S
P
SP
SP是火鹰第
l
l
l团领地之外的安全地带;
r
5
r_5
r5和
r
6
r_6
r6是在
(
0
,
1
)
(0,1)
(0,1)范围内均匀分布的随机数,用于确定猎物向其他火鹰和领土外的安全地点移动。
基于自然界中的安全场所是大多数动物聚集在一起的场所,以便在危险期间保持安全和健康的事实,
S
P
l
SP_l
SPl和
S
P
SP
SP的数学表达式如下:
S
P
l
=
∑
q
=
1
r
P
R
q
r
,
{
l
=
1
,
2
,
…
,
n
q
=
1
,
2
,
…
,
r
(9)
SP_l=\frac{\sum_{q=1}^rPR_q}{r},\,\,\begin{dcases}l=1,2,\ldots,n\\q=1,2,\ldots,r\end{dcases}\tag{9}
SPl=r∑q=1rPRq,{l=1,2,…,nq=1,2,…,r(9)
S
P
=
∑
k
=
1
m
P
R
k
m
,
k
=
1
,
2
,
…
,
m
(10)
SP=\frac{\sum_{k=1}^mPR_k}{m},\,\,k=1,2,\ldots,m\tag{10}
SP=m∑k=1mPRk,k=1,2,…,m(10)其中,
P
R
q
PR_q
PRq是被第
l
l
l只火鹰(
F
H
l
FH_l
FHl)包围的第
q
q
q个猎物;
P
R
k
PR_k
PRk是搜索空间中的第
k
k
k个猎物。
2、FHO算法伪代码
图1给出了FHO算法的伪代码。
二、仿真实验与结果分析
将FHO与CS、MVO、SCA和ASO进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以文献[2]表1中的F2、F5、F9、F12、F19、F20为例,结果显示如下:
函数:F2
CS:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:1.859e-14,秩和检验:2.8991e-11
MVO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:9.844e-06,秩和检验:0.016955
SCA:最差值: -23.7608,最优值:-24.1523,平均值:-24.0896,标准差:0.082235,秩和检验:3.0199e-11
ASO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:1.086e-14,秩和检验:2.0668e-11
FHO:最差值: -24.1568,最优值:-24.1568,平均值:-24.1568,标准差:8.2549e-06,秩和检验:1
函数:F5
CS:最差值: -176.1376,最优值:-176.1376,平均值:-176.1376,标准差:2.2545e-09,秩和检验:3.018e-11
MVO:最差值: -90.8845,最优值:-176.1375,平均值:-145.9469,标准差:27.745,秩和检验:0.077272
SCA:最差值: -174.9205,最优值:-176.072,平均值:-175.7971,标准差:0.2496,秩和检验:0.051877
ASO:最差值: -174.4688,最优值:-176.1376,平均值:-176.056,标准差:0.31906,秩和检验:1.1652e-09
FHO:最差值: -174.6498,最优值:-176.1358,平均值:-175.5762,标准差:0.42623,秩和检验:1
函数:F9
CS:最差值: 28.3278,最优值:22.4495,平均值:25.5358,标准差:1.587,秩和检验:3.0199e-11
MVO:最差值: 28.944,最优值:12.5698,平均值:18.4464,标准差:4.0713,秩和检验:3.0199e-11
SCA:最差值: 17.9536,最优值:0.1324,平均值:6.4182,标准差:4.8785,秩和检验:3.0199e-11
ASO:最差值: 2.8213,最优值:0.012917,平均值:0.60252,标准差:0.76176,秩和检验:3.0199e-11
FHO:最差值: 6.7388e-22,最优值:4.8612e-25,平均值:1.0095e-22,标准差:1.8365e-22,秩和检验:1
函数:F12
CS:最差值: -8.3158,最优值:-11.4563,平均值:-9.6363,标准差:0.93867,秩和检验:3.0199e-11
MVO:最差值: -5.6063,最优值:-12.0308,平均值:-8.3491,标准差:1.5287,秩和检验:3.0199e-11
SCA:最差值: -11.096,最优值:-19.4145,平均值:-14.1445,标准差:2.035,秩和检验:1.0937e-10
ASO:最差值: -12.7339,最优值:-21.8777,平均值:-16.4089,标准差:2.3121,秩和检验:7.1186e-09
FHO:最差值: -16.2835,最优值:-45.1872,平均值:-28.7838,标准差:8.8617,秩和检验:1
函数:F19
CS:最差值: 31.6907,最优值:22.6836,平均值:26.437,标准差:2.1178,秩和检验:3.0199e-11
MVO:最差值: 69.9174,最优值:45.083,平均值:58.079,标准差:6.1903,秩和检验:3.0199e-11
SCA:最差值: 94.7724,最优值:80.3177,平均值:90.0727,标准差:3.2913,秩和检验:3.0199e-11
ASO:最差值: 35.6872,最优值:17.571,平均值:28.0979,标准差:4.0029,秩和检验:3.0199e-11
FHO:最差值: 5.6983e-28,最优值:3.5571e-33,平均值:2.799e-29,标准差:1.0564e-28,秩和检验:1
函数:F20
CS:最差值: -366,最优值:-426,平均值:-386.6333,标准差:13.0608,秩和检验:1.1931e-12
MVO:最差值: -383,最优值:-467,平均值:-432.2333,标准差:19.493,秩和检验:1.2068e-12
SCA:最差值: -211,最优值:-253,平均值:-230.6667,标准差:10.9461,秩和检验:1.1892e-12
ASO:最差值: -250,最优值:-309,平均值:-280.4667,标准差:13.8159,秩和检验:1.2068e-12
FHO:最差值: -575,最优值:-575,平均值:-575,标准差:0,秩和检验:NaN
实验结果表明:FHO算法比文献中比较的算法具有更好的性能。
三、参考文献
[1] Mahdi Azizi, Siamak Talatahari, Amir H. Gandomi. Fire Hawk Optimizer: a novel metaheuristic algorithm[J]. Artificial Intelligence Review, 2022.
[2] Mahdi Azizi. Atomic orbital search: A novel metaheuristic algorithm[J]. Applied Mathematical Modelling, 2021, 93: 657-683.