文章目录

  • 一、理论基础
  • 1、发现者位置更新
  • 2、跟随者位置更新
  • 3、警戒者位置更新
  • 4、SSA算法伪代码
  • 二、仿真实验与分析
  • 三、参考文献


一、理论基础

麻雀搜索算法(Sparrow Search Algorithm, SSA)是2020年提出的一种新兴的元启发式算法,它与粒子群算法、蜻蜓优化算法等同属于基于群体的社会化特征优化的群智能算法。该算法通过不断更新个体位置,模拟麻雀觅食和反捕食行为。相比传统算法,麻雀搜索算法的结构简单、易于实现,且控制参数较少,局部搜索能力较强。该算法在单峰、多峰等基准函数上的表现优于粒子群算法、蚁群算法等传统算法。
在麻雀搜索算法中,将个体区分为发现者、跟随者和警戒者,每个个体位置对应一个解。根据算法设定,警戒者所占种群比例10%~20%,而发现者和跟随者是动态变化的, 即一只个体成为发现者必然意味着另一只个体将成为跟随者。按照分工划分,发现者主要为整个种群提供觅食方向和区域,跟随者则是跟随发现者进行觅食,警戒者负责对于觅食区域的监视。在觅食过程中,通过不断更新三者位置,完成资源的获取。
设种群中有麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础只麻雀,则由所有个体组成的种群可表示为麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_02,个体各自对应的适应度函数为麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_03。具体表示为:麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_04麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_05

1、发现者位置更新

发现者的位置更新方式如下:麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_06其中,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_07表示当前迭代次数,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_08表示在第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_07代中第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_10只麻雀在第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_11维的位置,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_12麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_13是最大迭代次数,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_14表示报警值,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_15表示安全阈值,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_16是服从正态分布的随机数,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_17麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_18的全1矩阵,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_19表示维度。发现者位置更新方式可总结如下:当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_20时,意味着觅食区域周围没有捕食者,发现者可以广泛搜索食物;当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_21时,意味着捕食者出现,所有发现者都需要飞往安全区域。

2、跟随者位置更新

跟随者的位置更新方式如下:麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_22其中,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_23表示第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_07代适应度最差的个体位置,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_25表示第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_26代中适应度最佳的个体位置。麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_27表示麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_18的矩阵,矩阵中每个元素随机预设为-1或1,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_29。跟随者位置更新方式可总结为:当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_30时,表示第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_10个加入者的适应度较低,没有同发现者竞争食物的资格,需要飞往其他区域觅食;当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_32时,加入者将在最优个体麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_33近觅食。

3、警戒者位置更新

警戒者位置更新方式如下:麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_34其中,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_35表示第麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_07代中全局最优位置,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_37为控制步长,服从均值为0,方差为1的正态分布,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_38麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_39设置为常数,用以避免分母为0。麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_40表示当前个体的适应度值,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_41麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_42表示目前全局最优和最差个体的适应度值。警戒者位置更新方式可总结为:当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_43时,意味着该个体处于种群外围,需要采取反捕食行为,不断变换位置获得更高 的适应度;当麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_44时,意味着该个体处于种群中心,它将不断接近附近的同伴,以此远离危险区域。

4、SSA算法伪代码

麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_45


图1 SSA算法的基本框架

二、仿真实验与分析

为了使算法更具说服力,在所有情况下,我们对每个测试函数进行30次独立试验。在每个实验中,迭代的最大次数为1000,种群大小设置为100(麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_搜索算法_46)。GWO的参数设置如下:麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_47的值从2线性减少到0,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_48麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法_49中的随机向量;PSO的参数为麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_50;GSA的参数为麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_matlab_51。SSA的参数设置如下:发现者数量和麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_52分别占20%和10%,麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_53。以文献[1]的F1、F2、F3为例。

下图为对比曲线。

麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_麻雀搜索算法 算是神经网络吗_54

麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_55

麻雀搜索算法 算是神经网络吗 麻雀搜索算法原理_理论基础_56

最大值、最小值、平均值及标准差显示如下:

函数:F1
GWO:最大值: 1.9014e-90,最小值:1.1467e-93,平均值:2.6184e-91,标准差:5.3549e-91
PSO:最大值: 25.6849,最小值:2.8582,平均值:9.0364,标准差:5.9129
GSA:最大值: 6.5868e-18,最小值:2.3286e-18,平均值:4.0924e-18,标准差:1.0661e-18
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F2
GWO:最大值: 8.0552e-52,最小值:4.8965e-54,平均值:1.5053e-52,标准差:2.105e-52
PSO:最大值: 14.9366,最小值:4.5229,平均值:8.2907,标准差:2.6433
GSA:最大值: 1.2197e-08,最小值:8.179e-09,平均值:1.0214e-08,标准差:9.821e-10
SSA:最大值: 9.1086e-306,最小值:0,平均值:3.0362e-307,标准差:0
函数:F3
GWO:最大值: 1.7551e-17,最小值:1.049e-25,平均值:7.2717e-19,标准差:3.1948e-18
PSO:最大值: 255.9549,最小值:38.1862,平均值:112.098,标准差:53.1931
GSA:最大值: 215.1596,最小值:44.459,平均值:106.1498,标准差:36.8177
SSA:最大值: 0,最小值:0,平均值:0,标准差:0

结果表明,该算法在搜索精度、收敛速度和稳定性等方面均优于现有算法。


三、参考文献

[1] Jiankai Xue, Bo Shen. A novel swarm intelligence optimization approach: sparrow search algorithm[J]. Systems Science & Control Engineering, 2020, 8(1): 22-34.
[2] 段玉先, 刘昌云. 基于Sobol序列和纵横交叉策略的麻雀搜索算法[J]. 计算机应用, 2022, 42(1): 36-43.