智能优化算法:爬行动物搜索算法
摘要:爬行动物搜索算法(Reptile search algorithm, RSA)是于2021年提出的一种新型智能优化算法。该算法主要模拟鳄鱼的捕食行为,来实现寻优求解,具有收敛速度快,寻优能力强的特点。
1.算法原理
1.1 初始化
与其他优化算法一样,种群在搜索空间内随机初始化:
x
i
,
j
=
rand
×
(
U
B
−
L
B
)
+
L
B
,
j
=
1
,
2
,
⋯
,
n
(1)
x_{i, j}=\operatorname{rand} \times(U B-L B)+L B, j=1,2, \cdots, n \tag{1}
xi,j=rand×(UB−LB)+LB,j=1,2,⋯,n(1)
x
i
,
j
x_{i,j}
xi,j表示第
i
i
i个候选解第
j
j
j维的位置;
N
N
N为候选解的数量;
n
n
n为给定问题的维度。
r
a
n
d
rand
rand是[0,1]之间的随机数,
L
B
LB
LB和
U
B
UB
UB分别表示给定问题的下界和上界。
1.2 包围阶段(探索)
这个搜索阶段取决于两个条件。高空行走策略取决于
t
≤
T
/
4
t\leq T/4
t≤T/4,腹部行走策略取决于
T
/
4
<
t
≤
T
/
2
T/4<t \leq T/2
T/4<t≤T/2。这意味着:这一条件将满足几乎一半的探索迭代次数(高空行走)和另一半的腹部行走。这是两种探索搜索方法。注意,对元素的随机比例系数进行检查,以生成更多不同的解决方案并探索不同的区域。探索阶段的位置更新方程,如式(2)所示。
x
(
i
,
j
)
(
t
+
1
)
=
{
Best
j
(
t
)
−
η
(
i
,
j
)
(
t
)
×
β
−
R
(
i
,
j
)
(
t
)
×
rand
,
t
≤
T
4
Best
j
×
x
(
r
1
,
j
)
×
E
S
(
t
)
×
rand
,
t
≤
T
2
and
t
>
T
4
(2)
x_{(i, j)}(t+1)=\left\{\begin{array}{l} \text { Best }_{j}(t)-\eta_{(i, j)}(t) \times \beta-R_{(i, j)}(t) \times \text { rand }, \quad t \leq \frac{T}{4} \\ \text { Best }_{j} \times x_{(r 1, j)} \times E S(t) \times \text { rand }, \quad t \leq \frac{T}{2} \text { and } t>\frac{T}{4} \end{array}\right.\tag{2}
x(i,j)(t+1)={ Best j(t)−η(i,j)(t)×β−R(i,j)(t)× rand ,t≤4T Best j×x(r1,j)×ES(t)× rand ,t≤2T and t>4T(2)
其中,
B
e
s
t
j
Best_j
Bestj 是当前最优解的第
j
j
j 维位置;
r
a
n
d
rand
rand 为 (0,1) 之间的随机数;
t
t
t 为当前迭代次数;
T
T
T为最大迭代次数;
η
(
i
,
j
)
\eta_{(i, j)}
η(i,j) 表示第
i
i
i 个候选解第
j
j
j维的狩猎算子,计算如式(3)所示;
β
\beta
β 是一个敏感参数,控制迭代过程中包围阶段的探索精度(即高空行走),固定为0.1;缩减函数
R
(
i
,
j
)
(
t
)
R_{(i, j)} (t)
R(i,j)(t) 是一个用于减少搜索区域的值,使用式(4)计算;
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之间随机递减,使用式(5)计算。
η
(
i
,
j
)
=
Best
j
(
t
)
×
P
(
i
,
j
)
(3)
\eta_{(i, j)}=\operatorname{Best}_{j}(t) \times P_{(i, j)} \tag{3}
η(i,j)=Bestj(t)×P(i,j)(3)
R ( i , j ) = Best j ( t ) − x ( r 2 , j ) Best j ( t ) + ε (4) R_{(i, j)}=\frac{\operatorname{Best}_{j}(t)-x_{(r_2, j)}}{\operatorname{Best}_{j}(t)+\varepsilon}\tag{4} R(i,j)=Bestj(t)+εBestj(t)−x(r2,j)(4)
E S ( t ) = 2 × r 3 × ( 1 − t T ) (5) E S(t)=2 \times r_{3} \times\left(1-\frac{t}{T}\right) \tag{5} ES(t)=2×r3×(1−Tt)(5)
其中,
ε
\varepsilon
ε 是一个很小的正数;
r
2
r_{2}
r2 是 $[1, N] $的随机整数;
r
3
r_{3}
r3 表示
[
−
1
,
1
]
[-1,1]
[−1,1] 之间的随机整数; $P_{(i, j)}
表示最佳解和当前解第
表示最佳解和当前解第
表示最佳解和当前解第 j $维位置的百分比差异,计算如式(6)所示。
P
(
i
,
j
)
=
α
+
x
(
i
,
j
)
−
M
(
x
i
)
Best
j
(
t
)
×
(
U
B
(
j
)
−
L
B
(
j
)
)
+
ε
(6)
P_{(i, j)}=\alpha+\frac{x_{(i, j)}-M\left(x_{i}\right)}{\operatorname{Best}_{j}(t) \times\left(U B_{(j)}-L B_{(j)}\right)+\varepsilon}\tag{6}
P(i,j)=α+Bestj(t)×(UB(j)−LB(j))+εx(i,j)−M(xi)(6)
其中, $M\left(x_{i}\right)
表示第
表示第
表示第i$个候选解的平均位置,其计算如式(7)所示;
U
B
(
j
)
U B_{(j)}
UB(j)和
L
B
(
j
)
L B_{(j)}
LB(j)分别表示第
j
j
j维位置的上界和下界;
α
\alpha
α是一个敏感参数,用于控制迭代过程中狩猎合作的搜索精度(候选解之间的差异),本文将其固定为 0.1 。
M
(
x
i
)
=
1
n
∑
j
=
1
n
x
(
i
,
j
)
(7)
M\left(x_{i}\right)=\frac{1}{n} \sum_{j=1}^{n} x_{(i, j)} \tag{7}
M(xi)=n1j=1∑nx(i,j)(7)
1.3 狩猎阶段(开发)
RSA的开发机制利用了搜索空间,并基于两种主要的搜索策略(狩猎协调和狩猎合作)找到了最优解,模型如式(8)所示。狩猎协调操作取决于
t
≤
3
T
4
t \leq 3 \frac{T}{4}
t≤34T和
t
>
2
T
4
t>2 \frac{T}{4}
t>24T,狩猎合作操作取决于
t
≤
T
t \leq T
t≤T和
t
>
3
T
4
t>3 \frac{T}{4}
t>34T 。
x
(
i
,
j
)
(
t
+
1
)
=
{
B
e
s
t
j
(
t
)
×
P
(
i
,
j
)
(
t
)
×
r
a
n
d
,
w
T
4
<
t
≤
3
T
4
B
e
s
t
j
(
t
)
−
η
(
i
,
j
)
(
t
)
×
ε
−
R
(
i
,
j
)
(
t
)
×
r
a
n
d
,
3
T
4
<
t
<
T
(8)
x(i,j)(t+1)=\begin{cases} Best_j(t)\times P(i,j)(t)\times rand,\quad w\frac{T}{4}<t\leq \frac{3T}{4}\\ Best_j(t)-\eta_{(i, j)}(t)\times\varepsilon-R(i,j)(t)\times rand,\quad 3\frac{T}{4}<t<T \end{cases}\tag{8}
x(i,j)(t+1)={Bestj(t)×P(i,j)(t)×rand,w4T<t≤43TBestj(t)−η(i,j)(t)×ε−R(i,j)(t)×rand,34T<t<T(8)
其中
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维的狩猎算子,计算如式(3)所示;
P
(
i
,
j
)
P_{(i,j)}
P(i,j)表示最佳解和当前解第
j
j
j维位置的百分比差异,计算如式(6)所示;
ε
\varepsilon
ε是一个很小的正数;缩减函数
R
(
i
,
j
)
R_{(i,j)}
R(i,j)是一个用于减少搜索区域的值,使用式(4)计算。
算法流程图如下:
2.实验结果
3.参考文献
[1] Abualiga H L , Elaziz M A , Sumari P , et al. Reptile Search Algorithm (RSA): A nature-inspired meta-heuristic optimizer[J]. Expert Systems with Applications, 2021, 191(11):116158.