【智能算法】蛇优化算法(SO)原理及实现

在这里插入图片描述


1.背景

2022年,FA Hashim等人受到蛇特殊交配行为启发,提出了蛇优化算法(Snake Optimizer, SO)。

2.算法原理

2.1算法思想

SO算法模拟蛇类的战斗与交配模式来实现全局优化。在战斗模式中,雄性为了得到最佳雌性而竞争,而每个雌性则选择最佳雄性。在交配模式中,雌雄之间交配受食物可用性影响。若交配发生在搜索阶段内,雌蛇可能产卵,孵化新后代。

2.2算法过程

初始化
SO 算法首先生成一个均匀分布的随机群体,并假设蛇群中雌性与雄性占比均为50% , 群体分为雄性种群和雌性种群。

SO算法寻优过程分为探索阶段和开发阶段。 其中探索阶段模拟蛇群在无食物情况下蛇类的行为模式, 开发阶段模拟食物存在时蛇类的行为模式, 蛇类行为模式通过实物总量Q和温度 Temp控制。
探索阶段
如果Q<ThresholdQ(0.25) , 蛇通过选择任意随机位置来寻找食物, 并更新它们的位置。 位置更新公式如下:
X i , m ( t + 1 ) = X r a n d , m ( t ) ± X X = c 2 × A m × ( ( X max ⁡ − X min ⁡ ) × r a n d + X min ⁡ ) (1) \begin{aligned}X_{i,m}\left(t+1\right)&=X_{rand,m}\left(t\right)\pm X\\X&=c_2\times A_m\times((X_{\max}-X_{\min})\times rand+X_{\min})\end{aligned}\tag{1} Xi,m(t+1)X=Xrand,m(t)±X=c2×Am×((XmaxXmin)×rand+Xmin)(1)
其中,Xi,m表示第 i 只雄性位置,Xrand,m表示随机雄性的位置;Am表示雄性蛇个体的捕食能力。
开发阶段
在 Q>ThresholdQ 时,如果 Temp>ThresholdT(0.6) , 蛇只会向食物移动, 蛇个体的移动公式如下:
X i , j ( t + 1 ) = X f o o d ± X X = c 3 × T e m p × r a n d × ( X f o o d − X i , j ( t ) ) (2) \begin{gathered}X_{i,j}(t+1)=X_{\mathrm{food}}\pm X\\X=c_3\times Temp\times rand\times(X_{\mathrm{food}}-X_{i,j}(t))\end{gathered}\tag{2} Xi,j(t+1)=Xfood±XX=c3×Temp×rand×(XfoodXi,j(t))(2)
Xi,j是个体i的位置,Xfood是最佳个体的位置。
如果 Temp<ThresholdT(0.6) , 蛇将处于战斗模式或交配模式, 蛇个体处于战斗模式下的移动公式如下:
X i , m ( t + 1 ) = X i , m ( t ) + X X = c 3 × F M × r a n d × ( Q × X b e s t , f − X i , m ( t ) ) (3) X_{i,m}\left(t+1\right)=X_{i,m}\left(t\right)+X\\X=c_3\times FM\times rand\times\left(Q\times X_{best,f}-X_{i,m}\left(t\right)\right)\tag{3} Xi,m(t+1)=Xi,m(t)+XX=c3×FM×rand×(Q×Xbest,fXi,m(t))(3)
Xi,m为雄性个体i的位置,Xbest,f为雌性群体中最佳位置,FM为雄性战斗力。
在 Temp<ThresholdT(0.6) 时, 蛇个体处于交配模式下的移动公式如下:
X i , m ( t + 1 ) = X i , m ( t ) + X X = c 3 × M m × r a n d × ( Q × X i , f ( t ) − X i , m ( t ) ) (4) X_{i,m}\left(t+1\right)=X_{i,m}\left(t\right)+X\\X=c_3\times M_m\times rand\times(Q\times X_{i,f}(t)-X_{i,m}(t))\tag{4} Xi,m(t+1)=Xi,m(t)+XX=c3×Mm×rand×(Q×Xi,f(t)Xi,m(t))(4)

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

3.结果展示

在这里插入图片描述

4.参考文献

[1] Hashim F A, Hussien A G. Snake Optimizer: A novel meta-heuristic optimization algorithm[J]. Knowledge-Based Systems, 2022, 242: 108320.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值