目錄
- 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?=fg?fi?=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.代碼獲取
【資源清單】代碼資源清單導航~