文章目录
- 一、理论基础
- 1、发现者位置更新
- 2、跟随者位置更新
- 3、警戒者位置更新
- 4、SSA算法伪代码
- 二、仿真实验与分析
- 三、参考文献
一、理论基础
麻雀搜索算法(Sparrow Search Algorithm, SSA)是2020年提出的一种新兴的元启发式算法,它与粒子群算法、蜻蜓优化算法等同属于基于群体的社会化特征优化的群智能算法。该算法通过不断更新个体位置,模拟麻雀觅食和反捕食行为。相比传统算法,麻雀搜索算法的结构简单、易于实现,且控制参数较少,局部搜索能力较强。该算法在单峰、多峰等基准函数上的表现优于粒子群算法、蚁群算法等传统算法。
在麻雀搜索算法中,将个体区分为发现者、跟随者和警戒者,每个个体位置对应一个解。根据算法设定,警戒者所占种群比例10%~20%,而发现者和跟随者是动态变化的, 即一只个体成为发现者必然意味着另一只个体将成为跟随者。按照分工划分,发现者主要为整个种群提供觅食方向和区域,跟随者则是跟随发现者进行觅食,警戒者负责对于觅食区域的监视。在觅食过程中,通过不断更新三者位置,完成资源的获取。
设种群中有只麻雀,则由所有个体组成的种群可表示为,个体各自对应的适应度函数为。具体表示为:
1、发现者位置更新
发现者的位置更新方式如下:其中,表示当前迭代次数,表示在第代中第只麻雀在第维的位置,,是最大迭代次数,表示报警值,表示安全阈值,是服从正态分布的随机数,是的全1矩阵,表示维度。发现者位置更新方式可总结如下:当时,意味着觅食区域周围没有捕食者,发现者可以广泛搜索食物;当时,意味着捕食者出现,所有发现者都需要飞往安全区域。
2、跟随者位置更新
跟随者的位置更新方式如下:其中,表示第代适应度最差的个体位置,表示第代中适应度最佳的个体位置。表示的矩阵,矩阵中每个元素随机预设为-1或1,。跟随者位置更新方式可总结为:当时,表示第个加入者的适应度较低,没有同发现者竞争食物的资格,需要飞往其他区域觅食;当时,加入者将在最优个体近觅食。
3、警戒者位置更新
警戒者位置更新方式如下:其中,表示第代中全局最优位置,为控制步长,服从均值为0,方差为1的正态分布,,设置为常数,用以避免分母为0。表示当前个体的适应度值,和表示目前全局最优和最差个体的适应度值。警戒者位置更新方式可总结为:当时,意味着该个体处于种群外围,需要采取反捕食行为,不断变换位置获得更高 的适应度;当时,意味着该个体处于种群中心,它将不断接近附近的同伴,以此远离危险区域。
4、SSA算法伪代码
图1 SSA算法的基本框架
二、仿真实验与分析
为了使算法更具说服力,在所有情况下,我们对每个测试函数进行30次独立试验。在每个实验中,迭代的最大次数为1000,种群大小设置为100()。GWO的参数设置如下:的值从2线性减少到0,是中的随机向量;PSO的参数为;GSA的参数为。SSA的参数设置如下:发现者数量和分别占20%和10%,。以文献[1]的F1、F2、F3为例。
下图为对比曲线。
最大值、最小值、平均值及标准差显示如下:
函数: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.