大猩猩部队优化算法(Gorilla Troops Optimizer,GTO)

一、算法灵感

  大猩猩部队优化算法(Gorilla Troops Optimizer, GTO)是于2021年提出的元启发式算法,其灵感来自于大猩猩在自然界中的社会行为。将大猩猩的集体社会生活习性数学化,从而提出了具体的数学模型。

二、算法介绍

2. 1 初始化

  在GTO的初始化过程中会先设置相应的参数:种群数量 N N N、最大迭代次数 M a x I t MaxIt MaxIt β β β p p p w w w。然后在探索空间中随机初始化种群。其中, p p p 是在 0 0 0 1 1 1 之间的参数,控制大猩猩对未知位置的迁移策略。 β β β 为计算大猩猩暴力程度公式中的参数,其值为 0.3 0.3 0.3 w w w 是开发阶段的两种机制的控制参数,其值为 0.8 0.8 0.8

2. 2 探索阶段

  大猩猩们在银背大猩猩的领导下以群体的形式生活在自然中,在探索阶段文章设计了三种机制,分别是迁移到未知位置,迁移到已知位置以及迁移到其他大猩猩的位置。这些机制使GTO算法拥有了出色的空间探索能力,第一种机制的执行条件是 r a n d 1 < p rand_1<p rand1<p,它能够使大猩猩随机探索空间,第二种机制用于提升GTO对空间的探索程度,它的执行条件是 r a n d 2 ≥ 0.5 rand_2≥0.5 rand20.5;最后,当 r a n d 2 < 0.5 rand_2<0.5 rand2<0.5 时,执行第三种机制,用于增强了GTO逃离局部最优点的能力。具体的模拟公式如下:
G X ( t + 1 ) = { ( U B − L B ) × r 1 + L B   , r a n d 1 < p ( r 2 − C ) × X r ( t ) + L × H , r a n d 2 ≥ 0.5   a n d   r a n d 1 ≥ p X ( t ) − L × ( L × ( X ( t ) − G X ( t ) ) ) + r 3 × ( X ( t ) − G X r ( t ) ) , r a n d 2 < 0.5   a n d   r a n d 1 ≥ p (1) GX(t + 1) = \left\{ \begin{aligned} &(UB - LB) \times {r_1} + LB\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad\ ,rand_1 < p \cr &({r_2} - C) \times {X_r}(t) + L \times H\qquad\qquad\qquad\qquad\qquad\qquad\qquad,rand_2 \ge 0.5\ and\ rand_1 \ge p \cr &X(t) - L \times (L \times (X(t) - GX(t))) + {r_3} \times (X(t) - G{X_r}(t)),rand_2 < 0.5\ and\ rand_1 \ge p \cr \end{aligned} \right. \tag{1} GX(t+1)= (UBLB)×r1+LB ,rand1<p(r2C)×Xr(t)+L×H,rand20.5 and rand1pX(t)L×(L×(X(t)GX(t)))+r3×(X(t)GXr(t)),rand2<0.5 and rand1p(1)其中, G X ( t + 1 ) GX(t+1) GX(t+1) 表示大猩猩下一次迭代时的位置, X ( t ) X(t) X(t) 表示当前大猩猩的位置。 r 1 r_1 r1 r 2 r_2 r2 r 3 r_3 r3 r a n d rand rand 都表示 0 0 0 1 1 1 之间的随机数。变量的上下界分别表示为 U B UB UB L B LB LB X r X_r Xr G X r GX_r GXr 都是随机选取的大猩猩的位置。 t t t 表示当前的迭代次数。在初始阶段的时候 C C C 的值的变化会较大,在后期变化值的变化会逐渐减少,其用公式(2)计算。 L L L 是用来模拟银背大猩猩的领导才能,其用公式(4)计算。银背大猩猩会由于经验的不足而导致寻找食物或者管理群体的决策错误。 Z Z Z 是区间 [ − C , C ] [-C,C] [C,C] 内的一个随机数,其用公式(6)计算。
C = F × ( 1 − t M a x I t ) (2) C = F \times \left( {1 - {t \over {MaxIt}}} \right) \tag{2} C=F×(1MaxItt)(2) F = cos ⁡ ( 2 × r 4 ) + 1 (3) F = \cos (2 \times {r_4}) + 1 \tag{3} F=cos(2×r4)+1(3)其中, r 4 r_4 r4 是在 [ − 1 , 1 ] [-1,1] [1,1] 之间的一个随机数
L = C × l (4) L = C \times l \tag{4} L=C×l(4)其中, l l l 0 0 0 1 1 1 之间的随机数
H = Z × X ( t ) (5) H = Z \times X(t) \tag{5} H=Z×X(t)(5) Z = [ − C , C ] (6) Z = \left[ { - C,C} \right] \tag{6} Z=[C,C](6)  在探索阶段结束时,要分别计算 G X GX GX X X X 的适应度值。如果 G X ( t ) GX(t) GX(t) 的适应度值小于 X ( t ) X(t) X(t) 的适应度值,则 X ( t ) X(t) X(t) 的位置将被 G X ( t ) GX(t) GX(t) 的位置替代 。

2. 3 开发阶段

  在GTO算法的开发阶段,模拟了大猩猩的两种行为:跟随银背和成年女性竞争。这两种行为是通过 C C C 进行切换的,当 C ≥ w C≥w Cw 时,选择跟随银背大猩猩,相反则进行竞争。跟随银背大猩猩机制的具体公式如下:
{ G X ( t + 1 ) = L × M × ( X ( t ) − X s i l v e r b a c k ) + X ( t ) M = ( ∣ 1 N ∑ i = 1 N G X i ( t ) ∣ g ) 1 g g = 2 L (7) \left\{ \begin{aligned} &GX(t + 1) = L \times M \times (X(t) - {X_{silverback}}) + X(t) \cr &M = {\left( {{{\left| {{1 \over N}\sum\limits_{i = 1}^N {G{X_i}(t)} } \right|}^g}} \right)^{{1 \over g}}} \cr &g = {2^L} \cr \end{aligned} \right. \tag{7} GX(t+1)=L×M×(X(t)Xsilverback)+X(t)M=( N1i=1NGXi(t) g)g1g=2L(7) 这里的 X S i l v e r b a c k X_{Silverback} XSilverback 代表着最优解, G X i ( t ) GX_i(t) GXi(t) 是指迭代时每只候选大猩猩的位置, N N N 表示大猩猩的总数。
  成年女性竞争机制的计算公式如下:
{ G X ( t ) = X s i l v e r b a c k − ( X s i l v e r b a c k × Q − X ( t ) × Q ) × A Q = 2 × r 5 − 1 A = β × E E = { N 1 , r a n d ≥ 0.5 N 2 , r a n d < 0.5 (8) \left\{ \begin{aligned} &GX(t) = {X_{silverback}} - ({X_{silverback}} \times Q - X(t) \times Q) \times A \cr &Q = 2 \times {r_5} - 1 \cr &A = \beta \times E \cr &E = \left\{ \begin{aligned} {N_1}, {rand \ge 0.5} \cr {N_2},{rand < 0.5} \cr \end{aligned} \right. \end{aligned} \right. \tag{8} GX(t)=Xsilverback(Xsilverback×QX(t)×Q)×AQ=2×r51A=β×EE={N1,rand0.5N2,rand<0.5(8)其中, Q Q Q 是模拟大猩猩竞争强度, r 5 r_5 r5 是介于 0 0 0 1 1 1 之间的随机数。 A A A 是用来模拟竞争程度的系数, β β β 是进行优化操作前设定的参数。 E E E 用来模拟暴力对解决方案维度的影响。 r a n d rand rand 是0到1之间的随机数,当 r a n d ≥ 0.5 rand≥0.5 rand0.5 E E E 会等于正态分布和问题维度中的随机值;反之, E E E 会等于正态分布中的随机数。

2. 4 算法伪代码

  1. 设置参数:种群的数量 N N N、最大的迭代次数 M a x I t MaxIt MaxIt β β β p p p w w w
  2. 随机初始化每个种群个体 X i ( i = 1 , 2 , . . . , N ) X_i(i=1,2,...,N) Xi(i=1,2,...,N)
  3. 计算每一个大猩猩个体的适应度值
  4. While t ≤ M a x I t t≤MaxIt tMaxIt do
  5.   更新计算 C C C L L L 的值
  6.   For i = 1 i = 1 i=1 to N N N do
  7.     用公式(1)更新当前位置大猩猩
  8.   End
  9.   计算大猩猩个体的适应度值,如果 G X GX GX 的适应度值比 X X X 的适应度值好,则进行替换,同时更新银背大猩猩的位置(最好个体位置)。
  10.   For i = 1 i = 1 i=1 to N N N do
  11.     If ∣ C ∣ ≥ w |C|≥w Cw then
  12.       使用公式(7)进行更新
  13.     Else
  14.       使用公式(8)进行更新
  15.     End If
  16.   End For
  17.   计算大猩猩个体的适应度值,如果 G X GX GX 的适应度值比 X X X 的适应度值好,则进行替换,同时更新银背大猩猩的位置(最好个体位置)。
  18.    t = t + 1 t=t+1 t=t+1
  19. End While
  20. 返回最优适应度值和最优的大猩猩个体。

三、实验结果

  GTO在23个经典测试函数(设置维度 d i m = 30 dim=30 dim=30)的F5、F6、F7中的收敛曲线,测试函数公式如下:

函数公式理论值
F5 F 5 ( x ) = ∑ i = 1 d − 1 [ 100 ( x i + 1 − x i 2 ) 2 + ( x i − 1 ) 2 ] {F_5}(x) = \sum\nolimits_{i = 1}^{d - 1} {[100{{({x_{i + 1}} - x_i^2)}^2} + {{({x_i} - 1)}^2}]} F5(x)=i=1d1[100(xi+1xi2)2+(xi1)2] 0.00 0.00 0.00
F6 F 6 ( x ) = ∑ i = 1 d ( x i + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^d {({x_i} + 5)} ^2} F6(x)=i=1d(xi+5)2 0.00 0.00 0.00
F7 F 7 ( x ) = ∑ i = 1 d i × x i 4 + r a n d o m [ 0 , 1 ) {F_7}(x) = \sum\nolimits_{i = 1}^d {i \times x_i^4 + random[0,1)} F7(x)=i=1di×xi4+random[0,1) 0.00 0.00 0.00

3. 1 F5收敛曲线

在这里插入图片描述

3. 2 F6收敛曲线

在这里插入图片描述

3. 3 F7收敛曲线

在这里插入图片描述

四、改进大猩猩部队优化算法

点这里:改进的大猩猩部队优化算法(Modified Gorilla Troops Optimizer,MGTO)

五、参考文献

[1] Abdollahzadeh Benyamin, Farhad Soleimanian Gharehchopogh, Seyedali Mirjalili. Artificial gorilla troops optimizer: a new nature‐inspired metaheuristic algorithm for global optimization problems. International Journal of Intelligent Systems, 36, 10 (2021), 5887-5958.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值