智能优化算法:塘鹅优化算法-附代码

智能优化算法:塘鹅优化算法


摘要:塘 鹅 优 化 算 法(Gannet Optimization Algorithm, GOA) 是 2022 年 3 月 Pan 等根据塘的捕食行为提出的一种群优化算法。具有寻优能力强,收敛速度快等特点。

1.塘鹅优化算法

1.1种群初始化

在 GOA 中, 初始种群有 N N N 只塘我身, 第 i i i 只塘 我岛 X i X_i Xi 的位置, 如公式 (1) 所示:
X i = ( x i 1 , x i 2 , ⋯   , x i D ) , i = 1 , 2 , ⋯   , N , (1) X_i=\left(x_{i 1}, x_{i 2}, \cdots, x_{i D}\right), i=1,2, \cdots, N,\tag{1} Xi=(xi1,xi2,,xiD),i=1,2,,N,(1)
其中 x i j = r 1 × ( U B j − L B j ) + L B j , i = 1 , 2 , ⋯   , N , j = x_{i j}=r_1 \times\left(U B_j-L B_j\right)+L B_j, i=1,2, \cdots, N, j= xij=r1×(UBjLBj)+LBj,i=1,2,,N,j= 1 , 2 , ⋯   , D 1,2, \cdots, D 1,2,,D, 表示第 i i i 只塘鹅在第 j j j 维的位置, D D D 是 每只塘我的维数, r 1 r_1 r1 [ 0 , 1 ] [0,1] [0,1] 内的随机数, U B j U B_j UBj L B j L B_j LBj 分别是每只塘找的第 j j j 维的上界和下界。
此外, 定义一个存储矩阵 M X M X MX, 用来存放每 次迭代的过程中塘鹅个体的位置。在迭代的过 程中, 如果此 M X i M X_i MXi 的值优于当前 X i X_i Xi 的值, 那么 个体 X i X_i Xi 的值被 M X i M X_i MXi 的值替换。接下来,采用一 个 [ 0 , 1 ] [0,1] [0,1] 的随机数 r r r, 当 r < 0.5 r<0.5 r<0.5 时,塘鹅处于探 索阶段; 当 r ⩾ 0.5 r \geqslant 0.5 r0.5 时,塘我处于开发阶段。

1.2探索阶段

塘鹅在空中发现猎物时, 根据猎物在水中 的深浅采用 U \mathrm{U} U 型潜水方式和 V \mathrm{V} V 型潜水方式进 行捕捉猎物。当猎物在比较深的位置时, 塘鹅 以 U 型潜水方式潜水,如公式 (2) 所示:
a = 2 × cos ⁡ ( 2 × π × r 2 ) × t 1 , (2) a=2 \times \cos \left(2 \times \pi \times r_2\right) \times t_1,\tag{2} a=2×cos(2×π×r2)×t1,(2)
当猎物在比较浅的位置时, 塘鹅以 V \mathrm{V} V 型潜水方 式潜水,如公式 (3) 所示:
其中
V ( x ) = { − 1 π ⋅ x + 1 , x ∈ ( 0 , π ) 1 π × x − 1 , x ∈ ( π , 2 π ) , t 1 = 1 − t T max  (3) V(x)=\left\{\begin{array}{l}-\frac{1}{\pi} \cdot x+1, x \in(0, \pi) \\ \frac{1}{\pi} \times x-1, x \in(\pi, 2 \pi)\end{array}, t_1=1-\frac{t}{T_{\text {max }}}\right.\tag{3} V(x)={π1x+1,x(0,π)π1×x1,x(π,2π),t1=1Tmax t(3)
, 式中 t t t 为当前迭代次数, T max  T_{\text {max }} Tmax  为最大迭代 次数, r 2 r_2 r2 r 3 r_3 r3 均为 [ 0 , 1 ] [0,1] [0,1] 的随机数。
引人一个随机变量 q q q 随机选择一种塘鹅的 位置更新,塘鹅的位置更新方式如下:
M X i ( t + 1 ) = { X i ( t ) + u 1 + u 2 , q ⩾ 0.5 X i ( t ) + v 1 + v 2 , q < 0.5 (4) M X_i(t+1)=\left\{\begin{array}{l} X_i(t)+u_1+u_2, q \geqslant 0.5 \\ X_i(t)+v_1+v_2, q<0.5 \end{array}\right.\tag{4} MXi(t+1)={Xi(t)+u1+u2,q0.5Xi(t)+v1+v2,q<0.5(4)
式 (4) 中 u 2 = A × ( X i ( t ) − X r ( t ) ) , v 2 = B × u_2=A \times\left(X_i(t)-X_r(t)\right), v_2=B \times u2=A×(Xi(t)Xr(t)),v2=B× ( X i ( t ) − X m ( t ) ) , A = ( 2 × r 4 − 1 ) × a , B = ( 2 × \left(X_i(t)-X_m(t)\right), \quad A=\left(2 \times r_4-1\right) \times a, \quad B=(2 \times (Xi(t)Xm(t)),A=(2×r41)×a,B=(2× r 5 − 1 ) × b \left.r_5-1\right) \times b r51)×b, 其中 r 4 r_4 r4 r 5 r_5 r5 均为 [ 0 , 1 ] [0,1] [0,1] 的随机数, u 1 u_1 u1 [ − a , a ] [-a, a] [a,a] 之间的随机数, v 1 v_1 v1 [ − b , b ] [-b, b] [b,b] 之间的 随机数, X i ( t ) X_i(t) Xi(t) 是第 i i i 个塘我鸟个体在第 t t t 次迭代时 的位置, X i ( t ) X_i(t) Xi(t) 是当前迭代中随机选择的塘我鸟个 体的位置, X m ( t ) X_m(t) Xm(t) 是指当前迭代中所有个体位置 的平均值, 其计算公式为: X m ( t ) = X_m(t)= Xm(t)= 1 N ∑ i = 1 N X i ( t ) \frac{1}{N} \sum_{i=1}^N X_i(t) N1i=1NXi(t)

1.3开发阶段

当塘我囲人水中之后, 其捕捉能力 C C C 大于 等于 c c c, 则会突然旋转去捕捉鱼; 其捕捉能力 C C C 小于 c c c, 则会放弃捕鱼随机游行, 采用Levy 飞行 模型模拟塘鹅游行, 其位置更新如下:
M X i ( t + 1 ) = { t 1 × δ × ( X i ( t ) − X Best  ( t ) ) + X i ( t ) , C ⩾ c X Best  ( t ) − ( X i ( t ) − X Best  ( t ) ) × P × t 1 , C < c (5) \begin{aligned} & M X_i(t+1)= \\ & \begin{cases}t_1 \times \delta \times\left(X_i(t)-X_{\text {Best }}(t)\right)+X_i(t), & C \geqslant c \\ X_{\text {Best }}(t)-\left(X_i(t)-X_{\text {Best }}(t)\right) \times P \times t_1, & C<c\end{cases} \\ & \end{aligned}\tag{5} MXi(t+1)={t1×δ×(Xi(t)XBest (t))+Xi(t),XBest (t)(Xi(t)XBest (t))×P×t1,CcC<c(5)
式 (5) 中, t 1 = 1 − t T max ⁡ , C = 1 R × t 2 , t 2 = 1 + t T max ⁡ t_1=1-\frac{t}{T_{\max }}, C=\frac{1}{R \times t_2}, t_2=1+\frac{t}{T_{\max }} t1=1Tmaxt,C=R×t21,t2=1+Tmaxt,
R = M × v e l 2 L , L = 0.2 + ( 2 − 0.2 ) × r 6 , δ = C × R=\frac{M \times v_{\mathrm{e}} l^2}{L}, \quad L=0.2+(2-0.2) \times r_6, \quad \delta=C \times R=LM×vel2,L=0.2+(20.2)×r6,δ=C×
∣ X i ( t ) − X Best  ( t ) ∣ , P = Levy ⁡ ( D ) , Levy ⁡ ( D ) = 0.01 × \left|X_i(t)-X_{\text {Best }}(t)\right|, P=\operatorname{Levy}(D), \operatorname{Levy}(D)=0.01 \times Xi(t)XBest (t),P=Levy(D),Levy(D)=0.01×
μ × σ ∣ v ∣ 1 β , σ = ( Γ ( 1 + β ) × sin ⁡ ( π β 2 ) Γ ( 1 + β 2 ) × β × 2 ( β − 1 2 ) ) 1 β \frac{\mu \times \sigma}{|v|^{\frac{1}{\beta}}}, \sigma=\left(\frac{\Gamma(1+\beta) \times \sin \left(\frac{\pi \beta}{2}\right)}{\Gamma\left(\frac{1+\beta}{2}\right) \times \beta \times 2^{\left(\frac{\beta-1}{2}\right)}}\right)^{\frac{1}{\beta}} vβ1μ×σ,σ=(Γ(21+β)×β×2(2β1)Γ(1+β)×sin(2πβ))β1, 其中 , r 6 r_6 r6
[ 0 , 1 ] [0,1] [0,1] 的随机数, M = 2.5   k g M=2.5 \mathrm{~kg} M=2.5 kg 是塘我的质量, V e l = 1.5   m / s V e l=1.5 \mathrm{~m} / \mathrm{s} Vel=1.5 m/s 为塘鹅的速度, c c c 是常数, 经过多 次实验取 c = 0.2 , β = 1.5 , X Best  ( t ) c=0.2, \beta=1.5, X_{\text {Best }}(t) c=0.2,β=1.5,XBest (t) 是指当前种 群中表现最好的个体, μ \mu μ σ \sigma σ [ 0 , 1 ] [0,1] [0,1] 内的随 机数。

2.实验结果

在这里插入图片描述

3.参考文献

[1]祁慧玲,胡红萍,白艳萍等.基于改进塘鹅算法优化BP神经网络的新冠疫情预测[J/OL].山西大学学报(自然科学版):1-10[2023-07-23].DOI:10.13451/j.sxu.ns.2023025.

4.Matlab

5.python

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值