文章目录

  • 一、理论基础
  • 1、麻雀搜索算法SSA
  • 2、增强型麻雀搜索算法ESSA
  • (1)Gauss映射
  • (2)动态惯性权重
  • (3)学生t分布扰动
  • (4)越界处理方法
  • (5)ESSA算法流程
  • 二、仿真实验结果与分析
  • 三、参考文献


一、理论基础

1、麻雀搜索算法SSA

请参考这里。

2、增强型麻雀搜索算法ESSA

(1)Gauss映射

本文将混沌映射模型引入SSA算法的初始化阶段,利用Gauss映射所具有规律性、随机性、遍历性等特征,通过建立映射关系将映射产生的混沌序列转换至SSA算法的解空间代替原始种群,从而减弱随机种群带来的不确定性影响,为全局寻优奠定良好的基础。Gauss映射的数学表达式为:基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法基于Tent混沌映射的麻雀搜索算法 python代码_matlab_02其中,基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_03为求余函数,基于Tent混沌映射的麻雀搜索算法 python代码_matlab_04代表取整,基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_05为高斯映射产生的混沌序列,基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_06表示维度。图1为Gauss映射在基于Tent混沌映射的麻雀搜索算法 python代码_搜索_07区间内产生的散点分布图。

基于Tent混沌映射的麻雀搜索算法 python代码_迭代_08


图1 Gauss混沌序列分布

(2)动态惯性权重

为了进一步平衡算法在不同迭代阶段的搜索方式,在发现者位置更新公式中引入动态变化的惯性权重基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_09,随着迭代的增加,自适应线性递减的基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_09将对式(1)中发现者位置基于Tent混沌映射的麻雀搜索算法 python代码_搜索_11的参与程度进行动态调控,尤其在迭代后期使发现者可以更加有效的进行局部搜索,加强了算法在解空间的邻域搜索能力。新的发现者位置更新公式及基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_09的计算式为:基于Tent混沌映射的麻雀搜索算法 python代码_matlab_13基于Tent混沌映射的麻雀搜索算法 python代码_matlab_14式(7)中,基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_15基于Tent混沌映射的麻雀搜索算法 python代码_matlab_16为权重调整参数,本文设置基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_17基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_18

(3)学生t分布扰动

利用t分布调节基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_19值大小可以达到不同种类分布的特性,将不断变化的迭代次数基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_20赋予基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_19值以产生不同的变异幅频。每次循环后,对麻雀位置使用学生t分布模型进行扰动更新如式(5)所示:基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_22其中,基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_23为当前麻雀的位置,基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_24为扰动后产生的新位置,基于Tent混沌映射的麻雀搜索算法 python代码_matlab_25表示点乘,基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_26为t分布扰动因子。特别地,在每次麻雀扰动前产生一个随机数基于Tent混沌映射的麻雀搜索算法 python代码_matlab_27,并设置扰动发生概率基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_28,只有当基于Tent混沌映射的麻雀搜索算法 python代码_搜索_29时才对麻雀位置进行学生t分布扰动,通常设置基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_28为0.5,采用随机概率选择的好处是保证算法的收敛速度,避免次数过多的变异扰动使算法的搜索陷入停滞状态。

(4)越界处理方法

本文采用一种随机回归的越界处理操作对越界量进行处理,具体式(6)所示:基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_31其中,基于Tent混沌映射的麻雀搜索算法 python代码_搜索_32表示一个基于Tent混沌映射的麻雀搜索算法 python代码_搜索_07区间内均匀分布的随机数,基于Tent混沌映射的麻雀搜索算法 python代码_搜索_34基于Tent混沌映射的麻雀搜索算法 python代码_改进麻雀搜索算法_35分别表示所定义的上界与下界。采用带有随机性的越界处理方法可以让越界量的回归具有一定的弹性,而不是被刻板的赋予上下界值,使算法的种群多样性得到提升。

(5)ESSA算法流程

ESSA算法的伪代码如下图所示。

基于Tent混沌映射的麻雀搜索算法 python代码_迭代_36


图2 ESSA算法伪代码

二、仿真实验结果与分析

为验证ESSA的寻优性能,选取了文献[2]提出的基于粒子群算法和Tent映射的混合灰狼优化算法(Grey Wolf Optimization Algorithm based on Particle Swarm Optimization, PSO_GWO),文献[3]提出的基于精英反向学习的黄金正弦鲸鱼算法(Elite Opposition-Based Golden-Sine Whale Optimization Algorithm, EGolden-SWOA),文献[4]提出的融合柯西变异和反向学习策略的改进麻雀搜索算法1(Improved Sparrow Algorithm combining Cauchy mutation and Opposition-based learning, ISSA1),文献[5]提出的混合正余弦搜索和Lévy飞行的改进麻雀搜索算法2(Improved Sparrow Search Algorithm, ISSA2)。为保证计算效率,本文统一设置种群大小为30、迭代次数为100,仿真实验对比原算法并使每种算法在基准函数上各独立进行30次。以文献[1]中表2中的f1、f2(单峰函数/30维)、f6、f7(多峰函数/30维)、f12、f13(固定维度多峰函数)为例,结果显示如下:

基于Tent混沌映射的麻雀搜索算法 python代码_迭代_37

基于Tent混沌映射的麻雀搜索算法 python代码_matlab_38

基于Tent混沌映射的麻雀搜索算法 python代码_搜索_39

基于Tent混沌映射的麻雀搜索算法 python代码_迭代_40

基于Tent混沌映射的麻雀搜索算法 python代码_matlab_41

基于Tent混沌映射的麻雀搜索算法 python代码_搜索算法_42

函数:F1
PSO_GWO:最差值: 2.0021e-26,最优值:9.726e-30,平均值:1.376e-27,标准差:4.2399e-27,秩和检验:7.8787e-12
EGolden_SWOA:最差值: 8.0633e-36,最优值:6.3806e-41,平均值:6.2778e-37,标准差:1.9139e-36,秩和检验:7.8787e-12
SSA:最差值: 1.3423e-44,最优值:0,平均值:5.1104e-46,标准差:2.4625e-45,秩和检验:9.2307e-11
ISSA1:最差值: 4.699e-132,最优值:3.551e-171,平均值:1.5663e-133,标准差:8.5792e-133,秩和检验:7.8787e-12
ISSA2:最差值: 1.1133e-121,最优值:2.9193e-129,平均值:4.1834e-123,标准差:2.0301e-122,秩和检验:7.8787e-12
ESSA:最差值: 1.326e-182,最优值:0,平均值:4.42e-184,标准差:0,秩和检验:1
函数:F2
PSO_GWO:最差值: 4.0295e-15,最优值:5.7804e-17,平均值:9.361e-16,标准差:9.2046e-16,秩和检验:2.3657e-12
EGolden_SWOA:最差值: 9.6798e-20,最优值:1.2634e-23,平均值:6.2139e-21,标准差:1.899e-20,秩和检验:2.3657e-12
SSA:最差值: 3.6239e-19,最优值:0,平均值:1.228e-20,标准差:6.6133e-20,秩和检验:6.3581e-11
ISSA1:最差值: 7.2808e-66,最优值:9.0882e-89,平均值:2.44e-67,标准差:1.3291e-66,秩和检验:2.3657e-12
ISSA2:最差值: 9.4317e-63,最优值:1.2637e-68,平均值:1.1256e-63,标准差:2.3456e-63,秩和检验:2.3657e-12
ESSA:最差值: 1.8185e-104,最优值:0,平均值:6.0617e-106,标准差:3.3201e-105,秩和检验:1
函数:F6
PSO_GWO:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
EGolden_SWOA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
SSA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
ISSA1:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
ISSA2:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
ESSA:最差值: 0,最优值:0,平均值:0,标准差:0,秩和检验:NaN
函数:F7
PSO_GWO:最差值: 3.2863e-14,最优值:4.4409e-15,平均值:6.9278e-15,标准差:6.2691e-15,秩和检验:2.0666e-13
EGolden_SWOA:最差值: 4.4409e-15,最优值:8.8818e-16,平均值:3.4935e-15,标准差:1.5979e-15,秩和检验:5.3591e-09
SSA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
ISSA1:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
ISSA2:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
ESSA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0,秩和检验:NaN
函数:F12
PSO_GWO:最差值: -1.0279,最优值:-1.0314,平均值:-1.0302,标准差:0.0010526,秩和检验:3.0199e-11
EGolden_SWOA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:1.3003e-07,秩和检验:3.8202e-10
SSA:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:3.8746e-09,秩和检验:3.0199e-11
ISSA1:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:1.8804e-10,秩和检验:3.0199e-11
ISSA2:最差值: -1.0316,最优值:-1.0316,平均值:-1.0316,标准差:3.9383e-08,秩和检验:4.0772e-11
ESSA:最差值: -1.0315,最优值:-1.0316,平均值:-1.0316,标准差:2.4012e-05,秩和检验:1
函数:F13
PSO_GWO:最差值: 0.77143,最优值:0.39853,平均值:0.48908,标准差:0.079794,秩和检验:3.0199e-11
EGolden_SWOA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:1.5889e-06,秩和检验:1.2541e-07
SSA:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:9.5566e-08,秩和检验:5.4941e-11
ISSA1:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:1.866e-08,秩和检验:3.3384e-11
ISSA2:最差值: 0.39789,最优值:0.39789,平均值:0.39789,标准差:1.9399e-07,秩和检验:8.9934e-11
ESSA:最差值: 0.39833,最优值:0.39789,平均值:0.39792,标准差:7.9989e-05,秩和检验:1

实验结果验证了改进策略的有效性。