【智能算法改进】改进的麻雀搜索算法及其求解旅行商问题


1.算法原理

【智能算法】麻雀搜索算法(SSA)原理及实现

2.改进点

改进发现者更新位置

为了使 SSA 算法能够避开向原点收敛的弊端, 将算法向最优位置跳跃的操作转换为向最优位置的移动:
X i , j t + 1 = { X i , j t ⋅ ( Q + 1 ) , R 2 < S T X i , j t + Q , R 2 ⩾ S T (1) \left.X_{i,j}^{t+1}=\left\{\begin{array}{ll}X_{i,j}^{t}\cdot(Q+1),&R_2<S T\\\\X_{i,j}^{t}+Q,&R_2\geqslant S T\end{array}\right.\right.\tag{1} Xi,jt+1= Xi,jt(Q+1),Xi,jt+Q,R2<STR2ST(1)

改进预警者更新位置

为了让预警者发现危险后能够逃离到最优的安全位置, 提高算法的全局搜索能力:
X i , j t + 1 = { X i , j t ⋅ β ⋅ ( X i , j t − X b e s t t ) , f i = f g X i , j t + β ⋅ ( X w o r s t t − X b e s t t ) , f i ≠ f g (2) \left.X_{i,j}^{t+1}=\left\{\begin{array}{ll}X_{i,j}^{t}\cdot\beta\cdot(X_{i,j}^{t}-X_{\mathrm{best}}^{t}),&f_{i}=f_{g}\\X_{i,j}^{t}+\beta\cdot(X_{\mathrm{worst}}^{t}-X_{\mathrm{best}}^{t}),&f_{i}\neq f_{g}\end{array}\right.\right.\tag{2} Xi,jt+1={Xi,jtβ(Xi,jtXbestt),Xi,jt+β(XworsttXbestt),fi=fgfi=fg(2)

高斯变异策略

引入高斯变异算子对每次迭代得到的全局最优解进行扰动, 避免算法陷入局部最优, 出现早熟现象的缺点, 同时也能够维持种群个体的多样性:
X g a u s s t + 1 = X g b e s t t ⋅ ( 1 + G a u s s i a n ( α ) ) (3) X_{\mathrm{gauss}}^{t+1}=X_{\mathrm{gbest}}^{t}\cdot(1+Gaussian(\alpha))\tag{3} Xgausst+1=Xgbestt(1+Gaussian(α))(3)

3.结果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TSP应用
在这里插入图片描述
在这里插入图片描述

4.参考文献

[1] 张月栋,莫愿斌.改进的麻雀搜索算法及其求解旅行商问题.计算机系统应用,2022,31(2):200-206

5.代码获取

【资源清单】代码资源清单导航~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小O的算法实验室

谢谢大佬的肯定!

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

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

打赏作者

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

抵扣说明:

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

余额充值