目录
- 1.算法原理
- 2.改进点
- 3.结果展示
- 4.参考文献
- 5.代码获取
1.算法原理
【智能算法】麻雀搜索算法(SSA)原理及实现
2.改进点
精英反向学习策略
将精英反向学习策略应用到初始化阶段, 通过反向解的生成与精英个体的选择, 不仅使算法搜索范围得到扩大, 提高了全局搜索的能力, 也能够提高算法规避局部最优的能力:
( x i j ′ ) t = k ( l b j t + u b j t ) − x i j t (1) (x_{ij}^{\prime})^t=k(lb_j^t+ub_j^t)-x_{ij}^t\tag{1} (xij′)t=k(lbjt+ubjt)−xijt(1)
阶段性控制步长策略
提出一种基于警戒值的螺旋式搜索策略,用于在扩大搜索范围的同时逼近最优解。为了提升搜索精度和收敛速度,引入了非线性衰减因子μ,使得算法初期可以广泛搜索不同区域,而中后期则集中优化已知区域。改进后的发现者位置更新:
x i , j t + 1 = { x b j t + ∣ x i , j t − x b j t ∣ × e l × cos ( 2 π l ) R 2 < 0.5 x i , j t × μ , 0.5 ⩽ R 2 < S T ′ x i , j t + Q , R 2 ⩾ S T ′ (2) x_{i,j}^{t+1}=\begin{cases}xb_j^t+|x_{i,j}^t-xb_j^t|\times\mathrm{e}^l\times\cos(2\pi l)\\[2ex]R_2<0.5\\[2ex]x_{i,j}^t\times\mu,0.5\leqslant R_2<\mathrm{S}T^{\prime}\\[2ex]x_{i,j}^t+Q,R_2\geqslant\mathrm{S}T^{\prime}\end{cases}\tag{2} xi,jt+1=⎩ ⎨ ⎧xbjt+∣xi,jt−xbjt∣×el×cos(2πl)R2<0.5xi,jt×μ,0.5⩽R2<ST′xi,jt+Q,R2⩾ST′(2)
各参数表述为:
l = ( a − 1 ) × r a n d + 1 a = ( − t i t e r max ) − 1 μ = 1 a × t i t e r max e (3) l=(a-1)\times rand+1\\a=\left(-\frac t{iter_{\max}}\right)-1\\\mu=\frac1{a\times\frac t{iter_{\max}}}\\\mathrm{e}\tag{3} l=(a−1)×rand+1a=(−itermaxt)−1μ=a×itermaxt1e(3)
混沌余弦变化因子
在发现者寻找到最优解并引领种群收敛的情况下, 其余跟随者的迅速靠拢是跳跃式的, 这会导致算法陷入局部最优, 降低了算法的多样性。 在跟随者的位置更新中引入混沌余弦变化因子, 通过在不同阶段调整, 加强跟随者对未知区域的广泛探索, 降低陷入局部最优的概率:
η = e ( δ × cos ( π 2 u ) u = 1 − t i t e r m a x (4) \begin{aligned}\eta&=\mathrm{e}^{\left(\delta\times\cos\left(\frac\pi2u\right.\right)}\\\\u&=1-\frac t{iter_{\mathrm{max}}}\end{aligned}\tag{4} ηu=e(δ×cos(2πu)=1−itermaxt(4)
采用 Circle 混沌映射生成相关参数:
y i + 1 = m o d ( y i + 0.2 − ( 0.5 2 π ) sin ( 2 π y i ) , 1 ) (5) y_{i+1}=\mathrm{mod}\left(y_i+0.2-\left(\frac{0.5}{2\pi}\right)\sin\left(2\pi y_i\right),1\right)\tag{5} yi+1=mod(yi+0.2−(2π0.5)sin(2πyi),1)(5)
改进后的跟随者位置更新:
x i , j t + 1 = { Q × exp ( x w j ′ − x i , j ′ i 2 ) , i > n 2 x b j t + 1 + ∣ x i , j ′ − x b j t + 1 ∣ × L × A + × η × cos ( 2 π k ) , i ⩽ n 2 (6) x_{i,j}^{t+1}=\begin{cases}Q\times\exp\Bigl(\frac{xw_j^{\prime}-x_{i,j}^{\prime}}{i^2}\Bigr) ,i>\frac{n}{2}\\xb_j^{t+1}+\bigl| x_{i,j}^{\prime}-xb_j^{t+1} \bigr|\times\\\boldsymbol{L}\times\boldsymbol{A}^{+}\times\eta\times\cos(2\pi\boldsymbol{k} ) ,i\leqslant\frac{n}{2}\end{cases}\tag{6} xi,jt+1=⎩ ⎨ ⎧Q×exp(i2xwj′−xi,j′),i>2nxbjt+1+ xi,j′−xbjt+1 ×L×A+×η×cos(2πk),i⩽2n(6)
自适应选择机制的 Lévy 飞行
提出一种自适应选择机制的 Lévy 飞行策略, 通过随迭代次数不断减小的自适应因子p , 随机选择麻雀个体进行 Lévy 飞行扰动, 增强麻雀位置的多样性。自适应选择因子:
p = 1 − t i t e r max e i t e r max − t i t e r max (7) p=1-\frac t{iter_{\max}}\mathrm{e}^{\frac{iter_{\max}-t}{iter_{\max}}}\tag{7} p=1−itermaxteitermaxitermax−t(7)
Lévy 飞行的位置更新:
( x i ′ ) t = x i t + m ⊕ L e v y ( λ ) (8) (x_i^{\prime})^t=x_i^t+m\oplus Levy(\lambda)\tag{8} (xi′)t=xit+m⊕Levy(λ)(8)
3.结果展示
比较困难的F7,F8
4.参考文献
[1] 李江华,王鹏晖,李伟.一种混合多策略改进的麻雀搜索算法[J].计算机工程与科学,2024,46(02):303-315.
5.代码获取
【资源清单】代码资源清单导航~