一、理论基础
本文提出了一种新的自然启发的元启发式优化器,称为爬行动物搜索算法(Reptile search algorithm, RSA),其动机是鳄鱼的狩猎行为。鳄鱼行为的两个主要步骤是实施围捕,这是通过高空行走或腹部行走来实现的,而狩猎是通过狩猎协调或狩猎合作来实现的。
1、爬行动物搜索算法
(1)初始化阶段
在RSA中,优化过程从一组候选解开始( X X X),如式(1)所示,该公式是随机生成的,在每次迭代中,获得的最佳解被视为接近最佳值。 X = [ x 1 , 1 ⋯ x 1 , j x 1 , n − 1 x 1 , n x 2 , 1 ⋯ x 2 , j ⋯ x 2 , n ⋯ ⋯ x i , j ⋯ ⋯ ⋮ ⋮ ⋮ ⋮ ⋮ x N − 1 , 1 ⋯ x N − 1 , j ⋯ x N − 1 , n x N , 1 ⋯ x N , j ⋯ x N , n ] (1) X=\begin{bmatrix} x_{1,1} & \cdots & x_{1,j} & x_{1,n-1} & x_{1,n} \\x_{2,1} & \cdots & x_{2,j} & \cdots & x_{2,n}\\\cdots & \cdots & x_{i,j} & \cdots & \cdots\\\vdots & \vdots & \vdots & \vdots & \vdots \\x_{N-1,1} & \cdots & x_{N-1,j} & \cdots & x_{N-1,n}\\x_{N,1} & \cdots & x_{N,j} & \cdots & x_{N,n}\end{bmatrix}\tag{1} X=⎣⎢⎢⎢⎢⎢⎢⎢⎡x1,1x2,1⋯⋮xN−1,1xN,1⋯⋯⋯⋮⋯⋯x1,jx2,jxi,j⋮xN−1,jxN,jx1,n−1⋯⋯⋮⋯⋯x1,nx2,n⋯⋮xN−1,nxN,n⎦⎥⎥⎥⎥⎥⎥⎥⎤(1)其中, X X X是随机生成的一组候选解,如式(2)所示; x i , j x_{i,j} xi,j表示第 i i i个候选解第 j j j维的位置; N N N为候选解的数量; n n n为给定问题的维度。 x i , j = r a n d × ( U B − L B ) + L B , j = 1 , 2 , ⋯ , n (2) x_{i,j}=rand\times(UB-LB)+LB,\,\,j=1,2,\cdots,n\tag{2} xi,j=rand×(UB−LB)+LB,j=1,2,⋯,n(2)其中, r a n d rand rand是 [ 0 , 1 ] [0,1] [0,1]之间的随机数, L B LB LB和 U B UB UB分别表示给定问题的下界和上界。
(2)包围阶段(探索)
RSA可以在包围(探索)和狩猎(开发)搜索阶段之间进行转换,不同行为之间的这种变化基于四个条件:即将总迭代次数分为四部分。RSA的探索机制基于两种主要的搜索策略(高空行走策略和腹部行走策略)探索搜索区域,以便找到更好解决方案的方法。
这个搜索阶段取决于两个条件。高空行走策略取决于
t
≤
T
4
t\leq\frac T4
t≤4T,腹部行走策略取决于
t
≤
2
T
4
t\leq2\frac T4
t≤24T和
t
>
T
4
t>\frac T4
t>4T。这意味着:这一条件将满足几乎一半的探索迭代次数(高空行走)和另一半的腹部行走。这是两种探索搜索方法。注意,对元素的随机比例系数进行检查,以生成更多不同的解决方案并探索不同的区域。探索阶段的位置更新方程,如式(3)所示。
x
(
i
,
j
)
(
t
+
1
)
=
{
B
e
s
t
j
(
t
)
−
η
(
i
,
j
)
(
t
)
×
β
−
R
(
i
,
j
)
(
t
)
×
r
a
n
d
,
t
≤
T
4
B
e
s
t
j
×
x
(
r
1
,
j
)
×
E
S
(
t
)
×
r
a
n
d
,
t
≤
2
T
4
a
n
d
t
>
T
4
(3)
x_{(i,j)}(t+1)=\begin{dcases}Best_j(t)-\eta_{(i,j)}(t)\times\beta-R_{(i,j)}(t)\times rand,\quad t\leq\frac T4\\[2ex] Best_j\times x_{(r_1,j)}\times ES(t)\times rand,\quad\quad\quad\,\,\,\,\, t\leq 2\frac T4\,\,and\,\,t>\frac T4\end{dcases}\tag{3}
x(i,j)(t+1)=⎩⎪⎪⎨⎪⎪⎧Bestj(t)−η(i,j)(t)×β−R(i,j)(t)×rand,t≤4TBestj×x(r1,j)×ES(t)×rand,t≤24Tandt>4T(3)其中,
B
e
s
t
j
Best_j
Bestj是当前最优解的第
j
j
j维位置;
r
a
n
d
rand
rand为
(
0
,
1
)
(0,1)
(0,1)之间的随机数;
t
t
t为当前迭代次数;
T
T
T为最大迭代次数;
η
(
i
,
j
)
\eta_{(i,j)}
η(i,j)表示第
i
i
i个候选解第
j
j
j维的狩猎算子,计算如式(4)所示;
β
\beta
β是一个敏感参数,控制迭代过程中包围阶段的探索精度(即高空行走),固定为0.1;缩减函数
R
(
i
,
j
)
R_{(i,j)}
R(i,j)是一个用于减少搜索区域的值,使用式(5)计算;
r
1
r_1
r1是
[
1
,
N
]
[1,N]
[1,N]之间的随机整数,
x
(
r
1
,
j
)
x_{(r_1,j)}
x(r1,j)表示第
r
1
r_1
r1个随机候选解的第
j
j
j维位置;
N
N
N是候选解数量;进化因子
E
S
(
t
)
ES(t)
ES(t)是一个概率比,在整个迭代过程中,取值在2和-2之间随机递减,使用式(6)计算。
η
(
i
,
j
)
=
B
e
s
t
j
(
t
)
×
P
(
i
,
j
)
(4)
\eta_{(i,j)}=Best_j(t)\times P_{(i,j)}\tag{4}
η(i,j)=Bestj(t)×P(i,j)(4)
R
(
i
,
j
)
=
B
e
s
t
j
(
t
)
−
x
(
r
2
,
j
)
B
e
s
t
j
(
t
)
+
ε
(5)
R_{(i,j)}=\frac{Best_j(t)-x_{(r_2,j)}}{Best_j(t)+\varepsilon}\tag{5}
R(i,j)=Bestj(t)+εBestj(t)−x(r2,j)(5)
E
S
(
t
)
=
2
×
r
3
×
(
1
−
t
T
)
(6)
ES(t)=2\times r_3\times\left(1-\frac tT\right)\tag{6}
ES(t)=2×r3×(1−Tt)(6)其中,
ε
\varepsilon
ε是一个很小的正数;
r
2
r_2
r2是
[
1
,
N
]
[1,N]
[1,N]的随机整数;
r
3
r_3
r3表示
[
−
1
,
1
]
[-1,1]
[−1,1]之间的随机整数;
P
(
i
,
j
)
P_{(i,j)}
P(i,j)表示最佳解和当前解第
j
j
j维位置的百分比差异,计算如式(7)所示。
P
(
i
,
j
)
=
α
+
x
(
i
,
j
)
−
M
(
x
i
)
B
e
s
t
j
(
t
)
×
(
U
B
(
j
)
−
L
B
(
j
)
)
+
ε
(7)
P_{(i,j)}=\alpha+\frac{x_{(i,j)}-M(x_i)}{Best_j(t)\times(UB_{(j)}-LB_{(j)})+\varepsilon}\tag{7}
P(i,j)=α+Bestj(t)×(UB(j)−LB(j))+εx(i,j)−M(xi)(7)其中,
M
(
x
i
)
M(x_i)
M(xi)表示第
i
i
i个候选解的平均位置,其计算如式(8)所示;
U
B
(
j
)
UB_{(j)}
UB(j)和
L
B
(
j
)
LB_{(j)}
LB(j)分别表示第
j
j
j维位置的上界和下界;
α
\alpha
α是一个敏感参数,用于控制迭代过程中狩猎合作的搜索精度(候选解之间的差异),本文将其固定为0.1。
M
(
x
i
)
=
1
n
∑
j
=
1
n
x
(
i
,
j
)
(8)
M(x_i)=\frac1n\sum_{j=1}^nx_{(i,j)}\tag{8}
M(xi)=n1j=1∑nx(i,j)(8)
(3)狩猎阶段(开发)
RSA的开发机制利用了搜索空间,并基于两种主要的搜索策略(狩猎协调和狩猎合作)找到了最优解,模型如式(9)所示。狩猎协调操作取决于 t ≤ 3 T 4 t\leq3\frac T4 t≤34T和 t > 2 T 4 t>2\frac T4 t>24T,狩猎合作操作取决于 t ≤ T t\leq T t≤T和 t > 3 T 4 t>3\frac T4 t>34T。 x ( i , j ) ( t + 1 ) = { B e s t j ( t ) × P ( i , j ) ( t ) × r a n d , t ≤ 3 T 4 a n d t > w T 4 B e s t j ( t ) − η ( i , j ) ( t ) × ε − R ( i , j ) ( t ) × r a n d , t ≤ T a n d t > 3 T 4 (9) x_{(i,j)}(t+1)=\begin{dcases}Best_j(t)\times P_{(i,j)}(t)\times rand,\quad\quad\quad\quad\quad\quad\quad t\leq3\frac T4\,\,and\,\,t>w\frac T4\\[2ex] Best_j(t)-\eta_{(i,j)}(t)\times\varepsilon-R_{(i,j)}(t)\times rand,\quad t\leq T\,\,and\,\,t>3\frac T4\end{dcases}\tag{9} x(i,j)(t+1)=⎩⎪⎪⎨⎪⎪⎧Bestj(t)×P(i,j)(t)×rand,t≤34Tandt>w4TBestj(t)−η(i,j)(t)×ε−R(i,j)(t)×rand,t≤Tandt>34T(9)其中, B e s t j ( t ) Best_j(t) Bestj(t)表示当前第 j j j维的最佳位置; η ( i , j ) \eta_{(i,j)} η(i,j)表示第 i i i个候选解第 j j j维的狩猎算子,计算如式(4)所示; P ( i , j ) P_{(i,j)} P(i,j)表示最佳解和当前解第 j j j维位置的百分比差异,计算如式(7)所示; ε \varepsilon ε是一个很小的正数;缩减函数 R ( i , j ) R_{(i,j)} R(i,j)是一个用于减少搜索区域的值,使用式(5)计算。
2、RSA算法伪代码
综上所述,在RSA中,优化过程从生成一组随机的候选解(种群)开始。在重复的轨迹中,RSA的搜索机制探索接近最优解的可能位置。每个解都会根据所提出的RSA的过程,从最佳解中替换其位置。
为了强调探索和开发,搜索过程分为两种主要方法(探索和开发)和四种策略。探索:高空行走策略和腹部行走策略。开发:狩猎协调与合作。候选解尝试在
t
≤
T
2
t\leq\frac T2
t≤2T时扩展搜索区域;在
t
>
T
2
t>\frac T2
t>2T时收敛到接近最优解。在探索阶段,
t
≤
T
4
t\leq\frac T4
t≤4T时执行高空行走运动策略,
t
≤
2
T
4
t\leq2\frac T4
t≤24T和
t
>
T
4
t>\frac T4
t>4T时执行腹部行走运动策略;在开发阶段,
t
≤
3
T
4
t\leq3\frac T4
t≤34T和
t
>
2
T
4
t>2\frac T4
t>24T时执行狩猎协调策略,否则,
t
≤
T
t\leq T
t≤T和
t
>
3
T
4
t>3\frac T4
t>34T时执行狩猎合作策略。最后,RSA在满足结束条件时停止。下图详细介绍了RSA算法的伪代码。
二、仿真实验与结果分析
将RSA与SSA、WOA、SCA、MPA和GWO进行对比,以CEC2019的F1和F2测试函数为例,种群规模设置为30,最大迭代次数设置为500,每个算法独立运算30次。结果显示如下:
函数:F1
SSA:最差值: 13593028.487, 最优值:68567.3549, 平均值: 2529061.3008, 标准差: 2989613.243, 秩和检验: 1.2118e-12
WOA:最差值: 72710370.9833, 最优值: 15554.3437, 平均值: 11728640.7531, 标准差: 15656366.9962, 秩和检验: 1.2118e-12
SCA:最差值: 13078486.589, 最优值: 2.1248, 平均值: 3907378.6416, 标准差: 4440613.8216, 秩和检验: 1.2118e-12
MPA:最差值: 1.213, 最优值: 1, 平均值: 1.0393, 标准差: 0.057853, 秩和检验: 1.9346e-10
GWO:最差值: 861293.8277, 最优值: 1, 平均值: 64050.6729, 标准差: 198878.1677, 秩和检验: 1.2118e-12
RSA:最差值: 1, 最优值: 1, 平均值: 1, 标准差: 0, 秩和检验: NaN
函数:F2
SSA:最差值: 3886.7249, 最优值:385.1763, 平均值: 1688.3598, 标准差: 1016.6993, 秩和检验: 6.4789e-12
WOA:最差值: 16808.3337, 最优值: 51.2046, 平均值: 7910.9719, 标准差: 4204.1531, 秩和检验: 6.4789e-12
SCA:最差值: 7583.4867, 最优值: 1301.9366, 平均值: 3979.5497, 标准差: 1838.395, 秩和检验: 6.4789e-12
MPA:最差值: 22.8124, 最优值: 3.8684, 平均值: 9.8714, 标准差: 4.5423, 秩和检验: 2.4145e-09
GWO:最差值: 975.2558, 最优值: 7.0972, 平均值: 438.6046, 标准差: 287.86, 秩和检验: 6.4789e-12
RSA:最差值: 5, 最优值: 4.8286, 平均值: 4.9925, 标准差: 0.032407, 秩和检验: 1
结果表明:RSA算法具有很好的性能。
三、参考文献
[1] Laith Abualigah, Mohamed Abd Elaziz, Putra Sumari, et al. Reptile Search Algorithm (RSA): A nature-inspired meta-heuristic optimizer[J]. Expert Systems With Applications, 2022, 191: 116158.