集成随机惯性权重和差分变异操作的樽海鞘群算法-附代码

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


摘要:为了提高樽海鞘群算法(Salp Swarm Algorithm,SSA)的收敛速度、计算精度和全局优化能力,在分析总结粒子群优化(Particle Swarm Optimization,PSO)和差分进化(Differential Evolution,DE)算法相关研究成果后,提出了一种集成PSO算法随机惯性权重和DE算法差分变异操作的改进SSA算法——iSSA。首先,将PSO算法的随机惯性权重引入SSA算法的追随者位置更新公式中,用于增强和平衡SSA算法的勘探与开发能力;其次,用DE算法的变异操作替代SSA算法的领导者位置更新操作,以提高SSA算法的收敛速度和计算精度。

1.樽海鞘群算法

基础樽海鞘群算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107767869

2.改进樽海鞘群算法

2.1 PSO算法随机惯性权重的引入

由 SSA 算法中的式 (3) 可知, 追随者 i i i 的第 j j j 维位置 x j i x_j^i xji 的更新操作直接受前一个追随者 i − 1 i-1 i1 的第 j j j 维位置 x j i − 1 x_j^{i-1} xji1 的 影响。然而, 在大多数情况下, 追随者 i − 1 i-1 i1 的位置对应的解 通常较差, 从而导致 S S A \mathrm{SSA} SSA 算法易陷入局部最优, 收敛速度慢 且计算精度低。

在 PSO 算法中, 粒子速度更新直接决定着粒子位置更 新。惯性权重是 PSO 算法粒子速度更新公式中的重要参数, 它体现了上一代粒子对当前粒子速度更新的影响力, 用于平 衡 PSO 算法的勘探与开发 [ 6 ] { }^{[6]} [6] 。尽管迄今为止已有大量学者 提出了各种 PSO 算法惯性权重控制策略, 但文献 [ 15 ] [15] [15] 的研究 表明, 在总计 18 种 PSO 算法惯性权重控制策略中, 除了随机 惯性权重以外, 常数项惯性权重优于其他所有的惯性权重控 制策略。
常数项惯性权重需要繁琐的算法参数调校, 因此本文将 P S O \mathrm{PSO} PSO 算法的随机惯性权重引入 SSA 算法追随者位置更新操 作中, 从而得到追随者位置更新公式:
x j i = 1 2 ( x j i + w × x j i − 1 ) (4) x_j^i=\frac{1}{2}\left(x_j^i+w \times x_j^{i-1}\right)\tag{4} xji=21(xji+w×xji1)(4)
其中, w w w 为随机惯性权重系数, 其取值方法如式 (5) 1 [16] 所示:
w = 0.5 +  Random  ( 0 , 1 ) / 2 (5) w=0.5+\text { Random }(0,1) / 2 \tag{5} w=0.5+ Random (0,1)/2(5)
其中, Random ( 0 , 1 ) (0,1) (0,1) 表示均匀分布于 ( 0 , 1 ) (0,1) (0,1) 内的随机数, 故 w w w 的取值范围为 ( 0.5 , 1 ) (0.5,1) (0.5,1) 。显然, 此处引入的随机惯性权重没有 改变 SSA 算法的时间复杂度。

2.2 集成DE算法的变异操作

根据 SSA 算法的式(1), 在领导者位置更新操作中, 参与 者是食物源且没有追随者, 缺乏樽海鞘之间的协作和信息共 享, 容易导致 SSA算法过早收敛于较差的局部最优解。
变异操作是 DE 算法的重要组成部分, 它一般通过 3 个 不同的个体来为种群内每一个个体生成一个新个体, 通过比 例因子可以调节算法开发和勘探之间的平衡 。目前 D E \mathrm{DE} DE 算法研究中最典型的变异操作有 5 种, 其中与 SSA 算法的式 (1)一样包含最优解且形式最简单的变异操作一般简称为:“DE/best/1” D E \mathrm{DE} DE / 。
综上所述, 本文提出用 D E \mathrm{DE} DE 算法的上述变异操作来替代 S S A \mathrm{SSA} SSA 算法领导者的位置更新操作, 从而得到如式 (6) 所示的 领导者位置更新操作:
x j i = F k + r × ( x j m − x j n ) (6) x_j^i=F_k+r \times\left(x_j^m-x_j^n\right) \tag{6} xji=Fk+r×(xjmxjn)(6)

3.实验结果

请添加图片描述

4.参考文献

[1]张志强,鲁晓锋,隋连升,李军怀.集成随机惯性权重和差分变异操作的樽海鞘群算法[J].计算机科学,2020,47(08):297-301.

5.Matlab代码

6.python代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值