基于爬行动物搜索算法的函数寻优算法

一、理论基础

本文提出了一种新的自然启发的元启发式优化器,称为爬行动物搜索算法(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,1xN1,1xN,1x1,jx2,jxi,jxN1,jxN,jx1,n1x1,nx2,nxN1,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×(UBLB)+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 t4T,腹部行走策略取决于 t ≤ 2 T 4 t\leq2\frac T4 t24T 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,t4TBestj×x(r1,j)×ES(t)×rand,t24Tandt>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×(1Tt)(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=1nx(i,j)(8)

(3)狩猎阶段(开发)

RSA的开发机制利用了搜索空间,并基于两种主要的搜索策略(狩猎协调和狩猎合作)找到了最优解,模型如式(9)所示。狩猎协调操作取决于 t ≤ 3 T 4 t\leq3\frac T4 t34T t > 2 T 4 t>2\frac T4 t>24T,狩猎合作操作取决于 t ≤ T t\leq T tT 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,t34Tandt>w4TBestj(t)η(i,j)(t)×εR(i,j)(t)×rand,tTandt>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 t2T时扩展搜索区域;在 t > T 2 t>\frac T2 t>2T时收敛到接近最优解。在探索阶段, t ≤ T 4 t\leq\frac T4 t4T时执行高空行走运动策略, t ≤ 2 T 4 t\leq2\frac T4 t24T t > T 4 t>\frac T4 t>4T时执行腹部行走运动策略;在开发阶段, t ≤ 3 T 4 t\leq3\frac T4 t34T t > 2 T 4 t>2\frac T4 t>24T时执行狩猎协调策略,否则, t ≤ T t\leq T tT t > 3 T 4 t>3\frac T4 t>34T时执行狩猎合作策略。最后,RSA在满足结束条件时停止。下图详细介绍了RSA算法的伪代码。
在这里插入图片描述

图1 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.

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值