【智能算法】狐狸优化算法(FOX)原理及实现

本文介绍了由HMohammed等人提出的狐狸优化算法(FOX),模仿狐狸捕猎过程中的行为,包括随机搜索、声音传播距离计算和位置更新策略。算法通过概率选择跳跃方向,控制搜索效率,适用于解决优化问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述


1.背景

2023年,H Mohammed等人受到狐狸猎食过程启发,提出了狐狸优化算法(Fox Optimizer, FOX)。

2.算法原理

2.1算法思想

FOX模仿了狐狸潜入雪中捕猎猎物的行为,具体步骤:

  • 当地面被雪覆盖时,雪会阻挡猎物的视线,狐狸会尝试随机搜索猎物
  • 狐狸通过听到猎物发出的超声波来找到猎物,它需要一些时间来接近猎物
  • 通过听到猎物的声音和时间差,狐狸可以确定自己与猎物之间的距离
  • 确定距离后,狐狸估计需要跳跃来捕捉猎物
  • 根据最小时间和最佳位置,狐狸随机行走

在这里插入图片描述

2.2算法过程

开发阶段

考虑到了捕杀猎物的机会,若随机数p大于0.18,则需要狐狸找到新的位置。为了确定新位置,需要计算声音传播距离:
D i s t _ S _ T i t = S p _ S ∗ T i m e _ S _ T i t (1) Dist\_S\_T_{it}=Sp\_S*Time\_S\_T_{it}\tag{1} Dist_S_Tit=Sp_STime_S_Tit(1)

最佳位置找到声音速度𝑆𝑝_𝑆:
S p − S = B e s t P o s i t i o n i t T i m e − S − T i t (2) Sp_{-}S=\frac{BestPosition_{it}}{Time_{-}S_{-}T_{it}}\tag{2} SpS=TimeSTitBestPositionit(2)
在物理学中计算传感器与物体之间的距离时,声音传播的距离除以2,因为传感器与物体之间的距离是通过声波找到的距离的一半:
D i s t _ F o x _ P r e y i t = D i s t _ S _ T i t ∗ 0.5 (3) Dist\_Fox\_Prey_{it}=Dist\_S\_T_{it}*0.5\tag{3} Dist_Fox_Preyit=Dist_S_Tit0.5(3)
在这里插入图片描述

在找到狐狸和猎物之间的距离后,需要找到一个新位置,以便狐狸要跳跃来捕捉猎物。狐狸需要计算跳跃高度𝐽𝑢𝑚𝑝𝑖𝑡:
J u m p i t = 0.5 ∗ 9.81 ∗ t 2 (4) Jump_{it}=0.5*9.81*t^{2}\tag{4} Jumpit=0.59.81t2(4)
c1,c2 的值分别为 0.18 和 0.82,如果 p 值大于 0.18,则表示红狐向东北方向跳跃。𝐷𝑖𝑠𝑡_𝐹𝑜𝑥_𝑃𝑟𝑒𝑦𝑖𝑡 和 𝐽𝑢𝑚𝑝𝑖𝑡 都将乘以 c1。此时利用新位置的机会很大,狐狸向全局最优解前进。如果 p 值小于 0.18,则狐狸向相反方向跳跃,这意味着捕杀猎物的机会很低,𝐷𝑖𝑠𝑡_𝐹𝑜𝑥_𝑃𝑟𝑒𝑦𝑖𝑡 和 𝐽𝑢𝑚𝑝𝑖𝑡 都将乘以c2。
X ( i t + 1 ) = D i s t _ F o x _ P r e y i t ∗ J u m p i t ∗ c 1 X ( i t + 1 ) = D i s t _ F o x _ P r e y i t ∗ J u m p i t ∗ c 2 (5) X_{(it+1)}=Dist\_Fox\_Prey_{it}{}^{*}Jump_{it}{}^{*}c_{1}\\ X_{(it+1)}=Dist\_Fox\_Prey_{it}{}^{*}Jump_{it}{}^{*}c_{2}\tag{5} X(it+1)=Dist_Fox_PreyitJumpitc1X(it+1)=Dist_Fox_PreyitJumpitc2(5)

探索阶段

为了控制随机行走,在这个阶段,狐狸根据迄今为止找到的最佳位置随机搜索。在这个阶段,狐狸没有跳跃技术,因为它必须随机行走以探索搜索区域中的猎物。为了确保狐狸朝着最佳位置随机行走,使用了最小时间变量 𝑀𝑖𝑛𝑇 和变量 a 来控制搜索:
t t = s u m ( T i m e S T i t ( i , : ) ) d i m e n s i o n , M i n T = M i n ( t t ) (6) tt=\frac{sum\left(Time_{S_{Tit}}\left(i,:\right)\right)}{dimension},\quad MinT=Min(tt)\tag{6} tt=dimensionsum(TimeSTit(i,:)),MinT=Min(tt)(6)
参数a表述为:
a = 2 ∗ ( i t − ( 1 M a x i t ) ) (7) a=2*(it-\Big(\frac{1}{Max_{it}}\Big))\tag{7} a=2(it(Maxit1))(7)
狐狸位置更新为:
X ( i t + 1 ) = B e s t X i t ∗ r a n d ( 1 , d i m e n s i o n ) ∗ M i n T ∗ a (8) X_{(it+1)}=BestX_{it}*rand(1,dimension)*MinT*a\tag{8} X(it+1)=BestXitrand(1,dimension)MinTa(8)

伪代码
在这里插入图片描述

3.结果展示

在这里插入图片描述

4.参考文献

[1] Mohammed H, Rashid T. FOX: a FOX-inspired optimization algorithm[J]. Applied Intelligence, 2023, 53(1): 1030-1050.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值