Bootstrap

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


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.代码获取

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

;