GOOSE鹅优化算法原理

1)鹅优化算法介绍

      鹅优化算法(GOOSE Algorithm,简称GOOSE)是一种基于鹅群休息和觅食行为的新型智能优化算法,由Rebwar Khalid Hamad于2024年提出。该算法模拟了鹅在面对潜在威胁时发出警鸣唤醒群体、以及单腿站立保持平衡的行为。通过自适应调整搜索空间的分辨率和搜索速度,GOOSE算法能够快速准确地找到最优解,具有收敛速度快、精度高等优点,广泛适用于各种复杂的优化问题。该研究成果已于2024年1月发表在SCI期刊《Evolving Systems》(JCQ3区)。

2)鹅的行为

       在自然环境中,每一群鹅都有一到两只守卫负责看护,其他鹅则在草地上觅食或休息。守卫的鹅通常会站在一只脚上。有时,它会抬起一只腿,夹住一块小石头,这样每当它打瞌睡时,石头掉落,将它惊醒。当鹅听到任何陌生的声音或看到不寻常的动静时,它们会发出响亮的叫声,提醒群体中的其他鹅保持警觉,确保安全。与其他鸟类不同,鹅的反应方式通常对人类有益。鹅有着响亮且具有攻击性的叫声,非常适合用来保护它们的领地。鹅对自己的家园极具占有欲,尤其是在交配期和育雏期,它们会猛烈地守卫领地。图1展示了这些鹅在群体中与其他个体的互动。

图1 GOOSE休息状态下行为的照片

        通过这种行为,鹅群体在彼此之间营造了一种有吸引力的保护氛围。该方法是基于鹅的行为提出了一种新的元启发式算法。该算法的基本技术是基于鹅尝试单腿站立并用另一条腿举起石头。具体步骤如下:

(1)在休息时,鹅会聚集在一起,其中一只鹅单腿站立保持平衡。

(2)偶尔,它会抬起一只腿,夹住一块小石头,这样当它打瞌睡时,石头会掉落,将它惊醒。

(3)当鹅察觉到任何意外的噪声或活动时,会发出响亮的叫声,提醒群体中的其他鹅保持警觉,确保安全。

      最初,鹅会聚集在它们的栖息地和休息区。群体中会有一只鹅被指定为守卫,它开始执行任务,通过单腿站立来保持平衡。每当这只守卫的鹅进入睡眠状态时,它的腿或携带的石头会掉落到地面。这时,石头掉落的声音会传播到群体中的其他鹅,听到声音的鹅会进入警觉状态。因此,其他鹅听到守卫鹅的叫声需要一些时间。这种声音传播的距离可以通过乘以声音在空气中传播的速度343米/秒来估算。图2展示了鹅的守卫行为。

图2 GOOSE行为、探索与开发的示意图

3)GOOSE算法原理详解

(1)开发阶段

根据鹅的行为所述的群体保护机制,开发阶段的实现依赖于此。

首先会计算鹅用脚夹住的石头的重量 S_Wit,该重量估计在5到25克之间。通过公式(1),为每次迭代随机分配一个石头的重量。

然后,通过公式(2),计算石头掉落到地面的时间T_o_A_Oit,这个时间是随机的,范围从1到当前循环维度的数量。

通过公式(3),确定石头掉落到地面后发出的声音传播并传递到群体中其他个体所需的时间。

接下来的公式(4)中,计算声音在多次迭代中传播并传递给鹅群个体所需的总时间。然后,通过公式(5),将总时间除以2,得到平均时间。

该算法使用一个随机变量rnd负责平衡开发和探索阶段的分布。变量pro的值在范围[0, 1]内随机选择。假设变量pro的值大于0.2,同时石头重量 S_Wit 大于等于12,公式(6)计算石头掉落速度 F_F_S,该速度是通过 T_o_A_Oit 与石头重量 S_Wit 的平方根之积除以重力加速度9.81得到的。

通过公式(7),计算声音传播的距离 D_S_Tit​,这是声音速度 S_S(在空气中的343.2 m/s)与传播时间 T_o_A_Sit的乘积。图3解释了声音传播距离。

图3 声音在空气中的传播距离 

接着,通过公式(8),计算守卫鹅与正在休息或觅食的其他鹅之间的距离 D_Git。这是声音传播距离 D_S_Tit的一半。

为了在种群中找到一个新的位置 Xit+1​,也就是唤醒群体中的个体,我们需要确定一个新的最佳位置(BestX),该过程由公式(9)描述。公式由石头掉落速度 F_F_S加上鹅之间的距离 D_Git 以及平均时间 T_A的平方之积构成。

如果变量 S_Wit 和 pro 分别小于12和0.2,则使用公式(10)计算新的 F_F_S。与公式(6)类似,但在这里进一步考虑 S_Wit 和重力的影响。

在另一种情况下,我们用公式(11)重新计算一个新的位置 Xit+1​。公式(11)中,所有变量(如石头的掉落速度、鹅之间的距离、平均时间,以及系数 coe)依次相乘。

总结一下就是:在开发阶段,通过公式(9)和公式(11)确定新的位置 Xit+1。具体使用哪个公式由变量pro 和 S_Wit 的值决定。

(2)勘探阶段

       在该阶段中,鹅随机地从当前发现的最佳位置唤醒,以调节随机唤醒或保护个体的行为。如果鹅未用脚携带石头,那么鹅群中的个体会随机被唤醒。一旦其中一只鹅醒来,它们会开始保护鹅群中的所有个体。显然,如前文所述,如果变量 rnd 的值小于 0.5,则适用如方程 (3) 和方程 (4) 中所示的规则。同时检查最小时间 M_T 是否大于总时间 T_T,若大于,则将最小时间赋值为总时间。

变量 alpha 的值从 2 到 0。其值在每次循环迭代中会显著减少。方程 (12) 用于改进搜索空间中新 X 值的结果:

      其中,Max_It 是最大迭代次数。通过调整搜索阶段的方向,使其朝向最有可能是最佳解的方向计算,两个参数 M_T 和 alpha 起到了重要作用。

      需要确保鹅以随机方式(通过 randn(1, dim) 函数)在搜索空间中探索个体。此外,M_T 和 alpha 变量都用于提高鹅算法的搜索性能。在方程 (13) 中,M_T 和 alpha 被随机数相乘,然后添加到搜索空间中的最佳位置:

其中,dim 是求解问题的维度数,Best_pos 是我们在搜索区域中找到的最佳位置。

      总结来说,鹅算法从随机生成种群开始。在第一次迭代中,它会检查种群中的值,并在边界外部的值被重置后恢复到边界内。此外,目标函数用于确定搜索边界内的最佳分数和最佳位置。

      为了控制开发和探索阶段,使用了随机变量 rnd 和随机选定的值。如果 rnd 的值大于或等于 0.5,则进入开发阶段。在这种情况下,还有两个随机变量,比如 pro 和石头的重量 S_W。如果 pro 大于 0.2,且石头的重量大于或等于 12,则适用方程 (1)、(2)、(3)、(4)、(5)、(6)、(7)、(8) 和 (9)。另一方面,如果 pro 小于或等于 0.2,且石头重量小于 12,则适用方程 (1)、(2)、(3)、(4)、(5)、(7)、(8)、(10) 和 (11)。

       在 rnd 小于 0.5 的情况下,进入探索阶段。为此,使用了变量 T_O_A_S、T_T 和 alpha。在这种情况下,按顺序应用方程 (3)、(4)、(12) 和 (13)。

      此外,在该算法中,采用了三种方法来在搜索空间中找到新的 X 值。开发阶段使用了两个方程,例如方程 (9) 和方程 (11)。但是,在探索阶段仅使用方程 (13) 来发现新的 X 值。

Python实现GO鹅优化算法优化随机森林回归模型项目实战https://blog.youkuaiyun.com/weixin_42163563/article/details/145785621

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张陈亚

您的鼓励,将是我最大的坚持!

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

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

打赏作者

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

抵扣说明:

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

余额充值