自适应变异麻雀搜索优化算法

news/2024/11/24 3:06:14/

文章目录

  • 一、理论基础
    • 1、麻雀搜索算法
    • 2、改进麻雀搜索算法
      • 2.1 猫映射混沌初始化种群
      • 2.2 Tent混沌和柯西变异扰动策略
        • 2.2.1 Tent混沌扰动
        • 2.2.2 柯西变异
      • 2.3 改进探索者位置更新公式
      • 2.4 探索者-跟随者自适应调整策略
      • 2.5 改进后麻雀搜索算法
  • 二、仿真实验与分析
  • 三、参考文献

一、理论基础

1、麻雀搜索算法

请参考这里。

2、改进麻雀搜索算法

2.1 猫映射混沌初始化种群

针对Logistic映射和Tent映射的缺点,本文通过猫映射来生成改进算法的初始种群。猫映射表达式为: [ y i + 1 w i + 1 ] = [ 1 a 1 b 1 a 1 b 1 + 1 ] [ y i w i ] mod 1 (1) \begin{bmatrix}y_{i+1}\\w_{i+1}\end{bmatrix}=\begin{bmatrix}1&a_1\\b_1&a_1b_1+1\end{bmatrix}\begin{bmatrix}y_i\\w_i\end{bmatrix}\text{mod}\,\,1\tag{1} [yi+1wi+1]=[1b1a1a1b1+1][yiwi]mod1(1)其中, a 1 = b 1 = 1 a_1=b_1=1 a1=b1=1 mod 1 \text{mod}\,\,1 mod1表示求 a 1 a_1 a1小数部分。由于猫映射结构简单,不易陷入小循环周期和不动点,通过该映射产生初始种群具有更好的遍历均匀性。

2.2 Tent混沌和柯西变异扰动策略

2.2.1 Tent混沌扰动

Tent混沌映射存在小周期和不稳定周期点,为避免落入小周期点和不稳定周期点,在原有的Tent映射表达式上引入随机变量 rand ( 0 , 1 ) × 1 N \text{rand}(0,1)×\frac1N rand(0,1)×N1,改进后的Tent混沌映射表达式如下: z i + 1 = { 2 z i + rand ( 0 , 1 ) × 1 N , 0 ≤ z i ≤ 1 2 2 ( 1 − z i ) + rand ( 0 , 1 ) × 1 N , 1 2 < z i ≤ 1 (2) z_{i+1}=\begin{dcases}2z_i+\text{rand}(0,1)×\frac1N,\quad\quad\quad\,\,\,\, 0≤z_i≤\frac12\\2(1-z_i)+\text{rand}(0,1)×\frac1N,\quad\, \frac12<z_i≤1\end{dcases}\tag{2} zi+1= 2zi+rand(0,1)×N1,0zi212(1zi)+rand(0,1)×N1,21<zi1(2)贝努利移位变换后的表达式为: z i + 1 = ( 2 z i ) mod 1 + rand ( 0 , 1 ) × 1 N (3) z_{i+1}=(2z_i)\text{mod}\,1+\text{rand}(0,1)×\frac1N\tag{3} zi+1=(2zi)mod1+rand(0,1)×N1(3)其中, N N N为序列内粒子个数。

2.2.2 柯西变异

柯西变异来源于连续型概率分布的柯西分布,主要特点为零处峰值较小,从峰值到零值下降缓慢,使变异范围更均匀。变异公式为: m u t a t i o n ( x ) = x ( 1 + tan ⁡ ( π ( u − 0.5 ) ) ) (4) mutation(x)=x(1+\tan(\pi(u-0.5)))\tag{4} mutation(x)=x(1+tan(π(u0.5)))(4)其中, x x x为原来个体位置, m u t a t i o n ( x ) mutation(x) mutation(x)为经过柯西变异后的个体位置, u u u ( 0 , 1 ) (0,1) (0,1)区间内的随机数。

2.3 改进探索者位置更新公式

由于 exp ⁡ ( − i α ⋅ i t e r max ⁡ ) \exp\left(\frac{-i}{\alpha\cdot iter_{\max}}\right) exp(αitermaxi)值的微小改变对探索者的影响较大,因此本文在此基础上,将探索者更新公式改为: x i , d t + 1 = { x i , d t ⋅ 2 exp ⁡ ( 4 i α ⋅ i t e r max ⁡ ) m , R 2 < S T x i , d t + Q × L , R 2 ≥ S T (5) x_{i,d}^{t+1}=\begin{dcases}x_{i,d}^t\cdot\frac{2}{\exp\left(\frac{4i}{\alpha\cdot iter_{\max}}\right)^m},\quad R_2<ST\\x_{i,d}^t+\boldsymbol Q×\boldsymbol L,\quad\quad\quad\quad\,\,\, R_2≥ST\end{dcases}\tag{5} xi,dt+1= xi,dtexp(αitermax4i)m2,R2<STxi,dt+Q×L,R2ST(5) c = 2 exp ⁡ ( 4 i α ⋅ i t e r max ⁡ ) m c=\frac{2}{\exp\left(\frac{4i}{\alpha\cdot iter_{\max}}\right)^m} c=exp(αitermax4i)m2,选取 m m m从1到4之间分析参数 m m m对探索者性能的影响,如图1所示。在这里插入图片描述

图1 c c c变化曲线

m m m值的选取影响着麻雀探索者对于全局和局部搜索之间的平衡关系。从图1可以看出,每条曲线都是前期收敛速度快,后期收敛速度慢,由文献[1]的分析可知,取 m = 2 m=2 m=2,参数 c c c可以使改进算法的探索能力和觅食能力达到较好的平衡,此时探索者可在前期充分广泛搜索目标,后期着重对最优位置进行挖掘。

2.4 探索者-跟随者自适应调整策略

本文提出探索者-跟随者自适应调整策略,该策略在迭代前期,探索者可以占种群数目的多数,随着迭代次数的增加,探索者的数目自适应减少,跟随者的数目自适应增加,逐步从全局搜索转为局部精确搜索,从整体上提高算法的收敛精度。探索者和跟随者数目调整公式为: r = b ( tan ⁡ ( − π t 4 ⋅ i t e r max ⁡ + π 4 ) − k ⋅ rand ( 0 , 1 ) ) (6) r=b(\tan(-\frac{\pi t}{4\cdot iter_{\max}}+\frac\pi4)-k\cdot\text{rand}(0,1))\tag{6} r=b(tan(4itermaxπt+4π)krand(0,1))(6) p N u m = r ⋅ N (7) pNum=r\cdot N\tag{7} pNum=rN(7) s N u m = ( 1 − r ) ⋅ N (8) sNum=(1-r)\cdot N\tag{8} sNum=(1r)N(8)其中, p N u m pNum pNum为探索者数目, s N u m sNum sNum为跟随者数目; b b b为比例系数,用于控制探索者和跟随者之间的数目,本文取值为1; k k k为扰动偏离因子,对非线性递减的 r r r值进行扰动,本文取值为0.2。

2.5 改进后麻雀搜索算法

AMSSA算法流程图如下:
在这里插入图片描述

图2 AMSSA算法流程图

二、仿真实验与分析

为验证本文所改进算法的寻优能力及可行性,将AMSSA与PSO、GWO、WOA、SSA算法同时在部分基准函数上进行对比测试,以文献[1]中表2的f1、f2(单峰函数/30维)、f9、f10(多峰函数/30维)、f13、f14(固定维度多峰函数/6维、4维)为例。为了避免偶然误差过大,在实验中选取各基准函数独立运行40次,取最佳值、平均值和标准差作为评价指标,实验中设定种群规模为30,最大迭代次数为500。
结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
PSO:最大值: 2394.9371,最小值:761.4281,平均值:1436.7306,标准差:395.3435
GWO:最大值: 3.186e-27,最小值:1.9119e-29,平均值:8.3043e-28,标准差:7.8847e-28
WOA:最大值: 4.7117e-70,最小值:5.666e-85,平均值:1.1785e-71,标准差:7.4498e-71
SSA:最大值: 1.0801e-53,最小值:0,平均值:2.7002e-55,标准差:1.7078e-54
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F2
PSO:最大值: 35.2167,最小值:17.1769,平均值:26.9807,标准差:4.2543
GWO:最大值: 2.8915e-16,最小值:2.6267e-17,平均值:1.1027e-16,标准差:6.7414e-17
WOA:最大值: 7.6953e-49,最小值:7.0577e-57,平均值:3.5303e-50,标准差:1.3891e-49
SSA:最大值: 6.2909e-37,最小值:1.4022e-161,平均值:2.3898e-38,标准差:1.0325e-37
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F9
PSO:最大值: 11.9577,最小值:7.3331,平均值:8.9889,标准差:0.83767
GWO:最大值: 1.5721e-13,最小值:6.4837e-14,平均值:1.0543e-13,标准差:1.949e-14
WOA:最大值: 7.9936e-15,最小值:8.8818e-16,平均值:4.5297e-15,标准差:2.4781e-15
SSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
AMSSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F10
PSO:最大值: 28.3564,最小值:6.7043,平均值:16.3545,标准差:5.2621
GWO:最大值: 0.030659,最小值:0,平均值:0.003812,标准差:0.007937
WOA:最大值: 0.18347,最小值:0,平均值:0.006929,标准差:0.032232
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
AMSSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F13
PSO:最大值: -2.8735,最小值:-3.3218,平均值:-3.1643,标准差:0.10617
GWO:最大值: -3.0406,最小值:-3.322,平均值:-3.2367,标准差:0.089385
WOA:最大值: -2.8335,最小值:-3.3218,平均值:-3.2046,标准差:0.13641
SSA:最大值: -3.2031,最小值:-3.322,平均值:-3.2655,标准差:0.060129
AMSSA:最大值: -3.2031,最小值:-3.322,平均值:-3.2477,标准差:0.058292
函数:F14
PSO:最大值: -2.625,最小值:-10.1532,平均值:-5.3019,标准差:3.4499
GWO:最大值: -4.8746,最小值:-10.1527,平均值:-9.512,标准差:1.7133
WOA:最大值: -2.6261,最小值:-10.1531,平均值:-8.3547,标准差:2.6306
SSA:最大值: -5.0552,最小值:-10.1532,平均值:-9.3867,标准差:1.8428
AMSSA:最大值: -5.0552,最小值:-10.1532,平均值:-9.5159,标准差:1.7075

实验表明,AMSSA寻优性能提升较明显,具有良好的开拓能力,鲁棒性强,表现出良好的实时能力。

三、参考文献

[1] 唐延强, 李成海, 宋亚飞, 等. 自适应变异麻雀搜索优化算法[J]. 北京航空航天大学学报, 2023, 49(3): 681-692.


http://www.ppmy.cn/news/684114.html

相关文章

【acwing】165. 小猫爬山(DFS之剪枝)

穿越隧道 搜索&#xff1a; 1.优化搜索顺序 大部分情况下&#xff0c;应优选搜索分支较少的节点 2.排除等效冗余 3.可行性剪枝 4.最优性剪枝 5.记忆化搜索&#xff08;DP) 在这题中 1.优化搜索顺序&#xff1a;√&#xff08;有&#xff09; 猫越重&#xff0c;分支可能越少。 …

最好用的五个黑科技搜索引擎推荐

一. 数据搜&#xff1a;http://data.chongbuluo.com/ 「数据搜」这个网站就是搜索一些热词和数据指数的&#xff0c;包括百度指数、阿里指数、微博指数、微信指数、搜狗指数等等。当然&#xff0c;还有一些汽车数据、腾讯大数据、票房数据相关数据查询网站。 估计很多人经常用的…

bootStrap 搜索框

2、 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><!--声明文档兼容模式&#xff0c;表示使用IE浏览器的最新模式--><meta http-equiv"X-UA-Compatible" content"IEedge"><!…

坏坏猫搜索怎么显示服务器异常,坏坏猫搜索

坏坏猫搜索是一款囊括了全网影视、小说、漫画的一款小聚合软件&#xff0c;支持安卓和iOS双平台&#xff0c;之前推荐过他的安卓版本&#xff0c;非常好用&#xff0c;不过现在安卓原版原版已经有很多G告&#xff0c;所以只能给各位带来他的功能一样的安卓替代品—三香堂&#…

Python———运行环境搭建

不管用什么工具开发 Python 程序&#xff0c;都必须安装 Python 的运行环境。 目前最常用的是Windows 、 Linux 平台。这里 我们以Windows10为主讲解。 其实编程和平台关系不大。大家也可以使用Linux、Mac。 Windows 平台下 Python 环境搭建 第一步&#xff1a;进入 python 官…

一个类似AOV或者AOE的数据结构的类似排序的算法

背景: 一个东西的执行有多个入参和出参, 一个东西的出参又可以是别的东西的入参, 因此执行的依赖关系. 草图里a b c d e f为三个东西, 上面的数字是入参,下面的数字是出参 当前已知这6个东西, 和他们的入参出参 求他们的运行顺序. 要求同样执行顺序的东西可以并行执行. 代码如…

UART、RS-232、RS-422、RS-485之间有什么区别

通讯问题&#xff0c;和交通问题一样&#xff0c;也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通&#xff0c;UART比作车站&#xff0c;那么一帧的数据就好比汽车。汽车跑在路上&#xff0c;要遵守交通规则。如果是市内&#xff0c;一般限速30、40,而高速公路…

UART、RS-232、RS-422、RS-485

通讯问题&#xff0c;和交通问题一样&#xff0c;也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通&#xff0c;UART比作车站&#xff0c;那么一帧的数据就好比汽车。汽车跑在路上&#xff0c;要遵守交通规则。如果是市内&#xff0c;一般限速30、40,而高速公路…