基于衰减因子和动态学习的改进樽海鞘群算法

一、理论基础

1、樽海鞘群算法

请参考这里

2、基于衰减因子和动态学习的改进樽海鞘群算法

通过研究SSA的原理发现,由于位置更新搜索范围无约束,且精英个体的影响权重小,导致SSA在迭代后期不能进行很精确的搜索,跟随者不能很好的协助个体位置更新。因此,本文的改进思路从两个方面考虑:针对SSA在领导者更新阶段搜索范围不受限的问题,添加衰减因子,增强迭代后期的局部开发能力;针对跟随者位置更新的局限性,引入动态学习策略,提高全局探索能力。

(1)添加衰减因子

本文提出将衰减因子引入SSA,得到添加衰减因子的樽海鞘群算法(reduction factor salp swarm algorithm, RSSA),使得领导者位置更新范围随着迭代次数的增加而逐渐减小,收敛前期避免陷入局部极值,收敛后期越来越逼近最优值,达到更高的求解精度。
添加衰减因子的领导者位置更新公式(1)如下: x j 1 = { A ( l ) [ F j + c 1 ( ( u b j − l b j ) c 2 + l b j ) ] , c 3 ≥ 0.5 A ( l ) [ F j − c 1 ( ( u b j − l b j ) c 2 + l b j ) ] , c 3 < 0.5 (1) x_j^1=\begin{dcases}A(l)[F_j+c_1((ub_j-lb_j)c_2+lb_j)],\quad c_3≥0.5\\A(l)[F_j-c_1((ub_j-lb_j)c_2+lb_j)],\quad c_3<0.5\end{dcases}\tag{1} xj1={A(l)[Fj+c1((ubjlbj)c2+lbj)],c30.5A(l)[Fjc1((ubjlbj)c2+lbj)],c3<0.5(1)其中控制搜索范围的衰减因子 A ( l ) A(l) A(l)是一个非线性递减函数,定义如下: A ( l ) = e − 30 ( l L ) (2) A(l)=\text e^{-30(\frac lL)}\tag{2} A(l)=e30(Ll)(2)收敛前期,搜索范围不受限,个体可以充分在全局移动,充分发挥算法的全局搜索能力,避免陷入局部极值;收敛后期,随着个体越来越逼近最优值,搜索范围也逐渐减小,个体在限制范围内进行精确搜索,增强局部搜索能力,以达到更高的求解精度。

(2)引入动态学习

为了增强精英个体的影响权重,本文将动态学习策略引入SSA,得到引入动态学习的樽海鞘群算法(dynamic learning salp swarm algorithm, DSSA),先比较 x j i x_j^i xji x j i − 1 x_j^{i-1} xji1的适应值,在适应值较大的位置(即离最优值距离较远的位置)上添加削弱因子 k k k,以削弱较差位置个体的影响权重,增强较优位置个体的影响权重。
引入动态学习策略的跟随者位置更新公式如下: x j i = { 1 2 ( k × x j i + x j i − 1 ) , f ( x j i ) ≥ f ( x j i − 1 ) 1 2 ( x j i + k × x j i − 1 ) , f ( x j i ) < f ( x j i − 1 ) , i ≥ 2 (3) x_j^i=\begin{dcases}\frac12(k×x_j^i+x_j^{i-1}),\quad f(x_j^i)≥f(x_j^{i-1})\\\frac12(x_j^i+k×x_j^{i-1}),\quad f(x_j^i)<f(x_j^{i-1})\end{dcases},i≥2\tag{3} xji=21(k×xji+xji1),f(xji)f(xji1)21(xji+k×xji1),f(xji)<f(xji1),i2(3)其中, f ( x j i ) f(x_j^i) f(xji) f ( x j i − 1 ) f(x_j^{i-1}) f(xji1)分别表示两位置的适应值, k k k是服从参数为0.5的指数分布随机数。
在收敛过程中,精英个体能更好的发挥协助作用,帮助领导者做决策,不断向食物源逼近,提高寻优效率。

(3)RDSSA的实现流程

将RSSA和DSSA结合,同时改变领导者和跟随者的位置更新公式,可以得到新的优化算法RDSSA,提高领导者局部开发能力,增强跟随者的协助作用,以提高收敛速度,获得更好的优化效果。RDSSA的实现流程如下所示:
Step 1 设定种群规模 N N N、迭代次数 I t e r a t i o n Iteration Iteration、维数 D D D和上下界;
Step 2 初始化樽海鞘群个体的位置,并计算各个体的适应值 F i t n e s s Fitness Fitness,将最小适应值个体的位置确定为食物源位置 F o o d P o s i t i o n FoodPosition FoodPosition
Step 3 生成衰减因子 A ( l ) A(l) A(l),根据式(1)更新领导者位置;
Step 4 生成随机数 k k k,根据式(3)更新跟随者位置;
Step 5 计算更新位置后的个体适应值,若小于当前 F o o d P o s i t i o n FoodPosition FoodPosition,则更新 F o o d P o s i t i o n FoodPosition FoodPosition
Step 6 判断当前迭代次数是否达到预设迭代次数,若已达到,结束迭代,否则返回执行Step 3
Step 7 输出 F o o d P o s i t i o n FoodPosition FoodPosition位置及该位置上的适应值 F i t n e s s Fitness Fitness
RDSSA的伪代码如下图所示:
在这里插入图片描述

二、测试实验分析

本文将RDSSA与SSA、RSSA、DSSA进行对比,测试函数为文献[1]中的f1~f4(单峰函数)、f13~f16(多峰函数)。为了遵循实验公平性原则,实验基本参数保持一致:种群数量 N N N设为50,函数维数 D D D设为45,迭代次数 I t e r a t i o n Iteration Iteration设为500,每次实验结果为独立运行30次的平均值。
结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
SSA:最差值: 3524.9065,最优值:998.8546,平均值:1973.4763,标准差:582.9121
RSSA:最差值: 2.4903e-35,最优值:1.0959e-35,平均值:1.6129e-35,标准差:2.811e-36
DSSA:最差值: 6.9699e-41,最优值:3.4148e-46,平均值:3.1646e-42,标准差:1.2662e-41
RDSSA:最差值: 4.9458e-64,最优值:4.6386e-69,平均值:3.8904e-65,标准差:1.0147e-64
函数:F2
SSA:最差值: 32.3036,最优值:17.566,平均值:25.5322,标准差:3.8434
RSSA:最差值: 2.565e-18,最优值:1.85e-18,平均值:2.1873e-18,标准差:1.9092e-19
DSSA:最差值: 2.4503e-21,最优值:2.7966e-23,平均值:5.5804e-22,标准差:7.2559e-22
RDSSA:最差值: 1.3688e-32,最优值:3.4198e-35,平均值:1.7116e-33,标准差:2.8507e-33
函数:F3
SSA:最差值: 21595.011,最优值:2401.204,平均值:8614.5134,标准差:4872.8367
RSSA:最差值: 2.0317e-34,最优值:2.5577e-35,平均值:8.0167e-35,标准差:4.1236e-35
DSSA:最差值: 9.5259e-41,最优值:1.3566e-44,平均值:1.2344e-41,标准差:2.2173e-41
RDSSA:最差值: 1.7051e-63,最优值:6.9384e-68,平均值:1.9419e-64,标准差:4.0834e-64
函数:F4
SSA:最差值: 21.8,最优值:13.3484,平均值:17.419,标准差:1.9018
RSSA:最差值: 1.7379e-18,最优值:9.8417e-19,平均值:1.3292e-18,标准差:1.8175e-19
DSSA:最差值: 6.9331e-22,最优值:1.5417e-23,平均值:2.0608e-22,标准差:1.6876e-22
RDSSA:最差值: 4.5634e-33,最优值:2.0181e-35,平均值:1.0902e-33,标准差:1.2728e-33
函数:F13
SSA:最差值: 312.019,最优值:179.0085,平均值:253.6474,标准差:43.6681
RSSA:最差值: 0,最优值:0,平均值:0,标准差:0
DSSA:最差值: 0,最优值:0,平均值:0,标准差:0
RDSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F14
SSA:最差值: 7.2999,最优值:4.7999,平均值:6.1065,标准差:0.69428
RSSA:最差值: 0,最优值:0,平均值:0,标准差:0
DSSA:最差值: 0,最优值:0,平均值:0,标准差:0
RDSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F15
SSA:最差值: 199.4559,最优值:30.7942,平均值:94.9727,标准差:36.4916
RSSA:最差值: 1.7068e-36,最优值:3.0966e-37,平均值:9.8005e-37,标准差:3.8859e-37
DSSA:最差值: 1.3726e-42,最优值:3.5218e-46,平均值:1.4833e-43,标准差:3.5428e-43
RDSSA:最差值: 2.8864e-65,最优值:1.2069e-69,平均值:1.1872e-66,标准差:5.2416e-66
函数:F16
SSA:最差值: 1072.8803,最优值:330.2378,平均值:632.5687,标准差:168.8757
RSSA:最差值: 2.2621e-36,最优值:1.1537e-37,平均值:4.1213e-37,标准差:3.8945e-37
DSSA:最差值: 2.017e-42,最优值:3.048e-47,平均值:1.4334e-43,标准差:3.9035e-43
RDSSA:最差值: 3.958e-66,最优值:1.2899e-69,平均值:6.9684e-67,标准差:1.03e-66

结果表明,本文提出的改进算法在收敛精度和收敛速度方面有较大提升,具有良好的优化性能。

三、参考文献

[1] 陈雷, 蔺悦, 康志龙. 基于衰减因子和动态学习的改进樽海鞘群算法[J]. 控制理论与应用, 2020, 37(8): 1766-1780.

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值