目录
- 1.算法原理
- 2.改进点
- 3.结果展示
- 4.参考文献
- 5.代码获取
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<STR2⩾ST(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,jt−Xbestt),Xi,jt+β⋅(Xworstt−Xbestt),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.代码获取
【资源清单】代码资源清单导航~