多子群的共生非均匀高斯变异樽海鞘群算法-附代码

多子群的共生非均匀高斯变异樽海鞘群算法


摘要:针对樽海鞘群算法求解精度不高和收敛速度慢等缺点,提出一种多子群的共生非均匀高斯变异樽海鞘群算法(MSNSSA).根据不同适应度值将樽海鞘链群分为三个子种群,各个子种群分别进行领导者位置更新、追随者共生策略和链尾者非均匀高斯变异等操作.

1.樽海鞘群算法

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

2.多子群的共生非均匀高斯变异樽海鞘算法

智能算法的核心是为了寻求探索能力和开发能力的平衡,为了实现这一点.本文在标准樽海鞘群算法基础上,以最小化问题为例,保持原种群个体数目不变的条件下,按照适应度值从小到大,均匀的把原有种群分为领导者、追随者和链尾者三个子群体.这三种子群体执行不同的更新策略,分别侧重于平衡搜索、局部搜索和全局搜索.并结合相应的进化策略,改善算法的优化性能.具体描述如下.

2.1 SSA 算法参数分析

领导者位置更新公式(2)中,参数 c 1 可以使 SSA的探索能力和开发能力处于较好状态.因而系数 c 1 c_1 c1是樽海鞘群算法中最重要的参数.式中的幂系数 m的取值大小对算法探索能力和开发能力起到至关重要的作用。本文选取 m m m 从 1.0 到 3.5 之间分析对算法性能的影响。最终当 m = 2.5 m=2.5 m=2.5 时,参数 c 1 c_1 c1能使 SSA 算法的探索能力和开发能力处于更好的平衡状态.

2.2 共生策略

由式(5)追随者位置更新公式产生的新个体直接替换原个体,此更新方式存在以下缺点:(1)更新后的追随者个体不管适应度值好与坏都直接替换原有个体,具有一定盲目性,会导致收敛速度降低;(2)第i只樽海鞘位置会根据第i和i–1只樽海鞘位置进行更新,对先前个体依懒性较强,缺乏与其它个体学习的部分.若追随者的位置是局部最优解,则会容易陷入局部最优,出现停滞.为增强樽海鞘群算法的开发能力.本文提出一种共生策略对追随者位置进行更新,公式如下:
x j i = x j i + rand ⁡ ( 0 , 1 ) × ( F j − C × R ) x_{j}^{i}=x_{j}^{i}+\operatorname{rand}(0,1) \times\left(F_{j}-C \times R\right) xji=xji+rand(0,1)×(FjC×R)
式中,rand(0,1)是(0,1)之间的随机数; F j F_j Fj为食物源在第 j 维空间的位置; C = ( x j i + x j i − 1 ) / 2 C=(x_j^i+x_j^{i-1})/2 C=(xji+xji1)/2称为共生量,代表樽海鞘链中第 i 和 i–1 只樽海鞘的关系特征;R 的作用解释如下:在自然界中,某些互惠关系可能给一个生物带来比另一个生物更大的有益优势.换句话说,樽海鞘 i 与樽海鞘 i-1 相互作用时可能会获得巨大的利益.同时,樽海鞘 i-1 与樽海鞘 i 相互作用时可能只会获得足够的利益或没有那么显着的利益.在这里,受益因子 R 是随机确定的1 或 2.这些因素代表樽海鞘个体是部分或全部受益于相互作用.经上式新产生的追随者需判断适应度值是否优劣后再替换原有个体.

在上式追随者位置更新策略中,增加了社会部分 r a n d ( 0 , 1 ) × ( F j − C × R ) rand(0,1)×(F_j −C×R) rand(0,1)×(FjC×R),使种群中的最优个体参与追随者的进化.与原来追随者更新公式只使用第 i和 i–1 只樽海鞘位置进行信息交流的方式相比,社会部分引入更多组合模式,使其不再单一围绕前一个追随者附近搜索,即将追随者从原个体位置指引到食物源位置所在附近.从而提高算法的开发能力.

2.3非均匀高斯变异

处于樽海鞘链尾端个体的适应度值较差,被分类为链尾者子群.对于这类樽海鞘个体可以很好地保留自身信息,而不是一味地朝着领导者移动.为增强种群多样性,本文为适应度值较差的链尾者提出一种非均匀高斯变异策略,其更新公式如下:
x j i = x j i + Δ ( t , G D t i ) x_{j}^{i}=x_{j}^{i}+\Delta\left(t, G D_{t}^{i}\right) xji=xji+Δ(t,GDti)

Δ ( t , y ) = y ( 1 − r ( 1 − t / T max ⁡ ) b ) \Delta(t, y)=y\left(1-r^{\left(1-t / T_{\max }\right)^{b}}\right) Δ(t,y)=y(1r(1t/Tmax)b)

G D t i = N ( ( F j − x j i ) , σ ) G D_{t}^{i}=N\left(\left(F_{j}-x_{j}^{i}\right), \sigma\right) GDti=N((Fjxji),σ)

式中, Δ ( t , G D t i ) \Delta\left(t, G D_{t}^{i}\right) Δ(t,GDti)为非均匀变异步长,是一种通过高斯分布自适应调节步长的变异算子; r r r 为[0,1]区间均匀产生的随机数; b b b 为系统参数,决定变异计算的非均匀程度,取值为 b = 2 b=2 b=2 F j F_j Fj 为食物源在第 j j j 维空间的位置; σ σ σ 为高斯分布标准差.

非均匀高斯变异策略有如下特色:(1)其更新对象为种群中适应度最差的樽海鞘个体,而不是当前种群中的全部个体,降低变异计算复杂度.(2)对链尾者更新公式以个体自身为基准,选择食物源位置与当前个体进行高斯分布后自适应调整变异步长的学习策略.该更新方式有利于保持种群多样性,进一步增强算法全局搜索能力.

3.实验结果

请添加图片描述

5.参考文献

[1]陈忠云,张达敏,辛梓芸.多子群的共生非均匀高斯变异樽海鞘群算法[J/OL].自动化学报:1-9[2020-11-25].https://doi.org/10.16383/j.aas.c190684.

6.Matlab代码

7.python代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

智能算法研学社(Jack旭)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值