当前位置: 首页 > news >正文

基于瞬态自适应的麻雀搜索算法

文章目录

  • 一、理论基础
    • 1、麻雀搜索算法SSA
    • 2、瞬态自适应麻雀搜索算法TASSA
      • (1)瞬态搜索策略
      • (2)自适应惯性权重
      • (3)TASSA实现流程
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、麻雀搜索算法SSA

请参考这里。

2、瞬态自适应麻雀搜索算法TASSA

(1)瞬态搜索策略

发现者作为种群中适应度值最优的一部分个体,负责搜索并引领加入者向最佳觅食位置移动,因此其位置更新过程直接影响着 SSA的寻优性能,而发现者搜索范围的广度将进一步决定算法是否能找到更好的位置。当 R 2 ≥ S T R_2\geq ST R2ST时,发现者将按正态分布在当前区域随机移动;当 R 2 < S T R_2<ST R2<ST时,其位置更新受到式(1)的影响: f ( x ) = exp ⁡ ( − x α ⋅ I t e r max ⁡ ) (1) f(x)=\exp(-\frac{x}{\alpha\cdot Iter_{\max}})\tag{1} f(x)=exp(αItermaxx)(1) α = 1 \alpha=1 α=1时,在 [ 0 , 1 ] [0,1] [0,1]上绘制数量为1000的个体迭代更新过程如图1所示。
在这里插入图片描述

图1 发现者位置的分布情况

从图1可以看出,发现者的搜索范围从 [ 0 , 1 ] [0,1] [0,1]逐渐缩减至 [ 0 , 0.4 ] [0,0.4] [0,0.4],造成算法出现搜索盲点,同时存在大量个体聚集的现象,也在一定程度上降低了搜索过程的种群多样性,增加了陷入局部极值的风险,极大的影响着算法的寻优性能。
混合是算法设计的一种有效模式,通过结合不同算法的优势往往能构造出性能更优的混合型算法。由此,本文引入瞬态搜索策略用以改善 SSA搜索范围不足的缺陷。瞬态搜索优化(Transient Search Optimization, TSO)是一种基于开关电路瞬态行为的物理启发式群智能搜索机制,由沙特学者Qais等于2020年提出,具有灵活、简易、鲁棒性高的特点,其数学模型为 X i t + 1 = { X b e s t t + ( X i t − C 1 ⋅ X i t ) e − T ,   r 1 < 0.5 X b e s t t + e − T [ cos ⁡ ( 2 π T ) + sin ⁡ ( 2 π T ) ] ∣ X i t − C 1 ⋅ X b e s t t ∣ , e l s e (2) X_i^{t+1}=\begin{dcases}X_{best}^t+(X_i^t-C_1\cdot X_i^t)e^{-T},\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\, r_1<0.5\\[2ex]X_{best}^t+e^{-T}[\cos(2\pi T)+\sin(2\pi T)]|X_i^t-C_1\cdot X_{best}^t|,\quad else\end{dcases}\tag{2} Xit+1= Xbestt+(XitC1Xit)eT,r1<0.5Xbestt+eT[cos(2πT)+sin(2πT)]XitC1Xbestt,else(2)其中, r 1 r_1 r1 [ 0 , 1 ] [0,1] [0,1]内的随机数, T T T C 1 C_1 C1为随机系数,具体的计算方式如下: T = 2 × z × r 2 − z (3) T=2\times z\times r_2-z \tag{3} T=2×z×r2z(3) C 1 = k × z × r 3 + 1 (4) C_1=k\times z\times r_3+1\tag{4} C1=k×z×r3+1(4) z = 2 − 2 ( t I t e r max ⁡ ) (5) z=2-2(\frac{t}{Iter_{\max}})\tag{5} z=22(Itermaxt)(5)其中, r 2 r_2 r2 r 3 r_3 r3均为 [ 0 , 1 ] [0,1] [0,1]内的随机数,常数 k ∈ N k\in N kN z z z表示从2到0的衰减系数。瞬态搜索策略通过随机系数 T ∈ [ − 2 , 2 ] T\in[-2,2] T[2,2]实现对勘探和开发过程的平衡,当 T < 0 T<0 T<0时,瞬态搜索将保持较大的振幅在解空间内搜索最佳的解决方案,进行全局勘探;当 T > 0 T>0 T>0时,瞬态搜索逐渐达到稳态,进行局部开发。可以看出瞬态搜索策略的流程十分简洁,本文即采用式(2)作为改进算法的发现者迭代更新公式,使算法具有动态调节搜索范围的能力。

(2)自适应惯性权重

惯性权重是群智能算法中一类重要的控制参数,其思想起源于粒子群算法,最初通过设置定常的权重系数来提高算法的收敛能力。然而,一成不变的权重系数并不适用于算法的整个迭代过程,因此在后续的研究中发展出了对权值的调整策略,即使其能够按照一定规律而改变的时变惯性权重,主要包含了线性与非线性两种调整策略。其中,又以非线性关系大量存在于实际的优化问题中,因而非线性策略的应用更加广泛。本文采用一种基于凹函数的非线性递减惯性权重应用于SSA,具体表示如下: ω = ω min ⁡ ( ω max ⁡ ω min ⁡ ) 1 / ( 1 + c t / I t e r max ⁡ ) (6) \omega=\omega_{\min}(\frac{\omega_{\max}}{\omega_{\min}})^{1/(1+ct/Iter_{\max})}\tag{6} ω=ωmin(ωminωmax)1/(1+ct/Itermax)(6)其中, ω min ⁡ \omega_{\min} ωmin ω max ⁡ \omega_{\max} ωmax为权重调整参数,分别设置为0.9与0.4, c c c作为调整参数,本文设置为10。该惯性权重随迭代次数的变化情况如图2所示。
在这里插入图片描述

图2 惯性权重的变化趋势

改进算法使加入者更好的契合迭代过程,将 ω \omega ω引入加入者位置更新公式中,使算法在发现者迭代阶段拥有良好的全局与局部平衡能力,同时这也有助于加入者较快的转变为发现者,从而加速算法收敛于最优解的速度。TASSA的加入者跟进阶段迭代公式如下: X i t + 1 = { Q ⋅ exp ⁡ ( X w o r s t t − X i t i 2 ) ,    i > n / 2 ω ⋅ X p t + ∣ X i t − X p t ∣ ⋅ A + ⋅ L , e l s e (7) X_i^{t+1}=\begin{dcases}Q\cdot\exp\left(\frac{X_{worst}^t-X_i^t}{i^2}\right),\quad\quad\,\, i>n/2\\[2ex]\omega\cdot X_p^t+|X_i^t-X_p^t|\cdot A^+\cdot L,\quad else\end{dcases}\tag{7} Xit+1= Qexp(i2XworsttXit),i>n/2ωXpt+XitXptA+L,else(7)

(3)TASSA实现流程

基于瞬态搜索策略和自适应策略,本文提出的TASSA算法伪代码步骤如下:
在这里插入图片描述

图1 TASSA算法的运行框架

二、仿真实验与结果分析

将TASSA与MPA、TSO、HHO和SSA进行对比,以文献[1]中表1的9个测试函数(30维)为例,实验设置种群规模为30,最大迭代次数为200,每种算法独立运算30次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
MPA:最差值: 1.022e-05, 最优值: 8.1039e-07, 平均值: 4.2507e-06, 标准差: 2.518e-06
TSO:最差值: 2.5754e-36, 最优值: 1.6835e-60, 平均值: 8.5856e-38, 标准差: 4.702e-37
HHO:最差值: 1.0014e-40, 最优值: 1.5767e-51, 平均值: 4.7048e-42, 标准差: 1.8708e-41
SSA:最差值: 1.399e-24, 最优值: 0, 平均值: 4.6652e-26, 标准差: 2.5541e-25
TASSA:最差值: 3.8921e-152, 最优值: 2.0605e-188, 平均值: 1.298e-153, 标准差: 7.1059e-153
函数:F2
MPA:最差值: 0.00091045, 最优值: 9.6311e-05, 平均值: 0.00049546, 标准差: 0.00023245
TSO:最差值: 5.7656e-20, 最优值: 4.3191e-38, 平均值: 1.9836e-21, 标准差: 1.0517e-20
HHO:最差值: 9.9676e-21, 最优值: 5.0797e-27, 平均值: 7.1901e-22, 标准差: 2.0765e-21
SSA:最差值: 1.8528e-15, 最优值: 0, 平均值: 7.0697e-17, 标准差: 3.3881e-16
TASSA:最差值: 3.4409e-80, 最优值: 1.4262e-91, 平均值: 2.0084e-81, 标准差: 7.3434e-81
函数:F3
MPA:最差值: 233.4535, 最优值: 18.6894, 平均值: 87.3381, 标准差: 62.6498
TSO:最差值: 1.4318e-10, 最优值: 1.4856e-34, 平均值: 5.2106e-12, 标准差: 2.6098e-11
HHO:最差值: 1.5079e-26, 最优值: 4.917e-42, 平均值: 5.5151e-28, 标准差: 2.7517e-27
SSA:最差值: 5.6998e-21, 最优值: 0, 平均值: 1.9003e-22, 标准差: 1.0406e-21
TASSA:最差值: 2.213e-99, 最优值: 3.0084e-146, 平均值: 7.3771e-101, 标准差: 4.0404e-100
函数:F4
MPA:最差值: 0.018795, 最优值: 0.0052669, 平均值: 0.01037, 标准差: 0.0031946
TSO:最差值: 2.3436e-18, 最优值: 6.6079e-34, 平均值: 8.6725e-20, 标准差: 4.2705e-19
HHO:最差值: 4.5626e-21, 最优值: 3.1773e-29, 平均值: 3.4205e-22, 标准差: 9.9404e-22
SSA:最差值: 4.2278e-16, 最优值: 1.3506e-217, 平均值: 1.4115e-17, 标准差: 7.7185e-17
TASSA:最差值: 4.2366e-78, 最优值: 2.1586e-121, 平均值: 2.286e-79, 标准差: 8.6029e-79
函数:F5
MPA:最差值: 0.010995, 最优值: 0.00027237, 平均值: 0.004506, 标准差: 0.0027184
TSO:最差值: 0.002046, 最优值: 2.086e-05, 平均值: 0.00063884, 标准差: 0.00057035
HHO:最差值: 0.0023384, 最优值: 2.5408e-05, 平均值: 0.00061827, 标准差: 0.00056706
SSA:最差值: 0.003058, 最优值: 2.5239e-05, 平均值: 0.0012331, 标准差: 0.00081272
TASSA:最差值: 0.0018369, 最优值: 2.9003e-05, 平均值: 0.00061383, 标准差: 0.00053925
函数:F6
MPA:最差值: -10181.4734, 最优值: -13983.8391, 平均值: -11974.3352, 标准差: 781.9148
TSO:最差值: -20712.2084, 最优值: -20949.1441, 平均值: -20939.7947, 标准差: 43.6315
HHO:最差值: -20841.45, 最优值: -20949.1442, 平均值: -20939.7661, 标准差: 19.3993
SSA:最差值: -7603.4762, 最优值: -11443.4778, 平均值: -9657.0927, 标准差: 1011.9727
TASSA:最差值: -9633.6105, 最优值: -20948.7422, 平均值: -19116.0231, 标准差: 3226.1821
函数:F7
MPA:最差值: 0.0082631, 最优值: 0.0018058, 平均值: 0.0045051, 标准差: 0.0019545
TSO:最差值: 0.0077723, 最优值: 2.203e-05, 平均值: 0.00081762, 标准差: 0.0014741
HHO:最差值: 0.0024662, 最优值: 2.3119e-05, 平均值: 0.00059858, 标准差: 0.00056424
SSA:最差值: 0.0057416, 最优值: 6.1548e-05, 平均值: 0.0011485, 标准差: 0.0011809
TASSA:最差值: 0.002594, 最优值: 6.3542e-06, 平均值: 0.00065296, 标准差: 0.00058313
函数:F8
MPA:最差值: 0.089054, 最优值: 0.018275, 平均值: 0.046573, 标准差: 0.017016
TSO:最差值: 0.0018986, 最优值: 4.2624e-07, 平均值: 0.00029978, 标准差: 0.00038066
HHO:最差值: 7.9648e-05, 最优值: 2.1601e-08, 平均值: 2.0613e-05, 标准差: 1.9299e-05
SSA:最差值: 6.1795e-07, 最优值: 1.4322e-10, 平均值: 9.2645e-08, 标准差: 1.4227e-07
TASSA:最差值: 2.4465e-06, 最优值: 1.4207e-09, 平均值: 3.8745e-07, 标准差: 6.1717e-07
函数:F9
MPA:最差值: 2.0857, 最优值: 0.8389, 平均值: 1.4122, 标准差: 0.34174
TSO:最差值: 0.082433, 最优值: 0.00010636, 平均值: 0.0071, 标准差: 0.016707
HHO:最差值: 0.0027391, 最优值: 1.3772e-06, 平均值: 0.00058797, 标准差: 0.00070558
SSA:最差值: 1.8944e-05, 最优值: 2.2279e-09, 平均值: 2.2744e-06, 标准差: 3.8966e-06
TASSA:最差值: 3.9513e-05, 最优值: 3.3596e-09, 平均值: 5.7919e-06, 标准差: 8.4155e-06

实验结果证明了TASSA算法的有效性。

三、参考文献

[1] 刘睿, 莫愿斌. 动态优化问题的瞬态自适应麻雀搜索算法求解[J/OL]. 计算机应用研究: 1-9 [2022-09-02].

相关文章:

  • PHP 使用 PhpSpreadsheet
  • Pytorch获取特征图
  • yaml文件格式说明及编写教程
  • java计算机毕业设计能源类网站平台源码+系统+数据库+lw文档+mybatis+运行部署
  • 个人做量化交易一定不靠谱?
  • 迅为RK3588开发板编译环境Ubuntu20.04编译配置-增加交换内存
  • 申报绿色工厂的条件是什么
  • Android面试官:入职大厂的Android程序员具备怎样的专业素养?
  • 六大设计原则
  • VMware vCenter Server 7 升级
  • Word控件Spire.Doc 【段落处理】教程(十二):如何在 C# 中管理 word 文档的分页
  • 在线批注审片工具有哪些?分秒帧团队版与个人版的主要区别
  • 中国内窥镜行业市场投资战略规划分析报告
  • flink 自定义序列化对象Sink/Source
  • 目前期货开户手续费比较透明
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Android交互
  • IDEA 插件开发入门教程
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • sessionStorage和localStorage
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • WePY 在小程序性能调优上做出的探究
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 开源地图数据可视化库——mapnik
  • 嵌入式文件系统
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #if #elif #endif
  • (1)bark-ml
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (分布式缓存)Redis分片集群
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)Android布局类型(线性布局LinearLayout)
  • (算法二)滑动窗口
  • (转)linux 命令大全
  • .cfg\.dat\.mak(持续补充)
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net core 6 集成和使用 mongodb
  • .NET 使用配置文件
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [ 转载 ] SharePoint 资料
  • [AIGC] 使用Curl进行网络请求的常见用法
  • [BSGS算法]纯水斐波那契数列
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream
  • [flask]http请求//获取请求体数据
  • [Fri 26 Jun 2015 ~ Thu 2 Jul 2015] Deep Learning in arxiv
  • [Go WebSocket] 多房间的聊天室(三)自动清理无人房间