【智能算法改进】一种混合多策略改进的麻雀搜索算法


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,jtxbjt×el×cos(2πl)R2<0.5xi,jt×μ,0.5R2<STxi,jt+Q,R2ST(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=(a1)×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)=1itermaxt(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(i2xwjxi,j),i>2nxbjt+1+ xi,jxbjt+1 ×L×A+×η×cos(2πk),i2n(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=1itermaxteitermaxitermaxt(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+mLevy(λ)(8)

3.结果展示

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

比较困难的F7,F8

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

4.参考文献

[1] 李江华,王鹏晖,李伟.一种混合多策略改进的麻雀搜索算法[J].计算机工程与科学,2024,46(02):303-315.

5.代码获取

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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 00:46:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 00:46:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 00:46:05       58 阅读
  4. Python语言-面向对象

    2024-07-11 00:46:05       69 阅读

热门阅读

  1. SQL的时间格式和文本灵活转换

    2024-07-11 00:46:05       27 阅读
  2. ubuntu22 设置开机直接登录桌面

    2024-07-11 00:46:05       22 阅读
  3. Sqlmap中文使用手册 - Options模块参数使用

    2024-07-11 00:46:05       17 阅读
  4. GIT基本概念以及简单使用方法

    2024-07-11 00:46:05       22 阅读
  5. SQL注入如何判断数据库类型

    2024-07-11 00:46:05       25 阅读
  6. 什么是引用

    2024-07-11 00:46:05       23 阅读
  7. 如何从Git仓库中删除大文件并解决推送错误方案

    2024-07-11 00:46:05       23 阅读
  8. Git删除了文件拉取时失败

    2024-07-11 00:46:05       22 阅读
  9. 学习测试练习题

    2024-07-11 00:46:05       24 阅读
  10. QT log日志

    2024-07-11 00:46:05       29 阅读
  11. Angular页面项目以HTTPS方式启动调试

    2024-07-11 00:46:05       22 阅读
  12. ArduPilot开源飞控之AP_VisualOdom

    2024-07-11 00:46:05       20 阅读
  13. 如何实现跨域

    2024-07-11 00:46:05       19 阅读
  14. centos7yum-mysql-community-server安装流程步骤

    2024-07-11 00:46:05       24 阅读