多子群的共生非均匀高斯变异樽海鞘群算法-附代码
多子群的共生非均匀高斯变异樽海鞘群算法
文章目录
- 多子群的共生非均匀高斯变异樽海鞘群算法
- 1.樽海鞘群算法
- 2.多子群的共生非均匀高斯变异樽海鞘算法
- 2.1 SSA 算法参数分析
- 2.2 共生策略
- 2.3非均匀高斯变异
- 3.实验结果
- 5.参考文献
- 6.Matlab代码
- 7.python代码
摘要:针对樽海鞘群算法求解精度不高和收敛速度慢等缺点,提出一种多子群的共生非均匀高斯变异樽海鞘群算法(MSNSSA).根据不同适应度值将樽海鞘链群分为三个子种群,各个子种群分别进行领导者位置更新、追随者共生策略和链尾者非均匀高斯变异等操作.
1.樽海鞘群算法
基础樽海鞘群优化算法算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107767869
2.多子群的共生非均匀高斯变异樽海鞘算法
智能算法的核心是为了寻求探索能力和开发能力的平衡,为了实现这一点.本文在标准樽海鞘群算法基础上,以最小化问题为例,保持原种群个体数目不变的条件下,按照适应度值从小到大,均匀的把原有种群分为领导者、追随者和链尾者三个子群体.这三种子群体执行不同的更新策略,分别侧重于平衡搜索、局部搜索和全局搜索.并结合相应的进化策略,改善算法的优化性能.具体描述如下.
2.1 SSA 算法参数分析
领导者位置更新公式(2)中,参数 c 1 可以使 SSA的探索能力和开发能力处于较好状态.因而系数c1c_1c1是樽海鞘群算法中最重要的参数.式中的幂系数 m的取值大小对算法探索能力和开发能力起到至关重要的作用。本文选取mmm 从 1.0 到 3.5 之间分析对算法性能的影响。最终当 m=2.5m=2.5m=2.5 时,参数 c1c_1c1能使 SSA 算法的探索能力和开发能力处于更好的平衡状态.
2.2 共生策略
由式(5)追随者位置更新公式产生的新个体直接替换原个体,此更新方式存在以下缺点:(1)更新后的追随者个体不管适应度值好与坏都直接替换原有个体,具有一定盲目性,会导致收敛速度降低;(2)第i只樽海鞘位置会根据第i和i–1只樽海鞘位置进行更新,对先前个体依懒性较强,缺乏与其它个体学习的部分.若追随者的位置是局部最优解,则会容易陷入局部最优,出现停滞.为增强樽海鞘群算法的开发能力.本文提出一种共生策略对追随者位置进行更新,公式如下:
xji=xji+rand(0,1)×(Fj−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)×(Fj−C×R)
式中,rand(0,1)是(0,1)之间的随机数;FjF_jFj为食物源在第 j 维空间的位置;C=(xji+xji−1)/2C=(x_j^i+x_j^{i-1})/2C=(xji+xji−1)/2称为共生量,代表樽海鞘链中第 i 和 i–1 只樽海鞘的关系特征;R 的作用解释如下:在自然界中,某些互惠关系可能给一个生物带来比另一个生物更大的有益优势.换句话说,樽海鞘 i 与樽海鞘 i-1 相互作用时可能会获得巨大的利益.同时,樽海鞘 i-1 与樽海鞘 i 相互作用时可能只会获得足够的利益或没有那么显着的利益.在这里,受益因子 R 是随机确定的1 或 2.这些因素代表樽海鞘个体是部分或全部受益于相互作用.经上式新产生的追随者需判断适应度值是否优劣后再替换原有个体.
在上式追随者位置更新策略中,增加了社会部分 rand(0,1)×(Fj−C×R)rand(0,1)×(F_j −C×R)rand(0,1)×(Fj−C×R),使种群中的最优个体参与追随者的进化.与原来追随者更新公式只使用第 i和 i–1 只樽海鞘位置进行信息交流的方式相比,社会部分引入更多组合模式,使其不再单一围绕前一个追随者附近搜索,即将追随者从原个体位置指引到食物源位置所在附近.从而提高算法的开发能力.
2.3非均匀高斯变异
处于樽海鞘链尾端个体的适应度值较差,被分类为链尾者子群.对于这类樽海鞘个体可以很好地保留自身信息,而不是一味地朝着领导者移动.为增强种群多样性,本文为适应度值较差的链尾者提出一种非均匀高斯变异策略,其更新公式如下:
xji=xji+Δ(t,GDti)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/Tmax)b)\Delta(t, y)=y\left(1-r^{\left(1-t / T_{\max }\right)^{b}}\right) Δ(t,y)=y(1−r(1−t/Tmax)b)
GDti=N((Fj−xji),σ)G D_{t}^{i}=N\left(\left(F_{j}-x_{j}^{i}\right), \sigma\right) GDti=N((Fj−xji),σ)
式中, Δ(t,GDti)\Delta\left(t, G D_{t}^{i}\right)Δ(t,GDti)为非均匀变异步长,是一种通过高斯分布自适应调节步长的变异算子;rrr 为[0,1]区间均匀产生的随机数;bbb 为系统参数,决定变异计算的非均匀程度,取值为 b=2b=2b=2 ;FjF_jFj 为食物源在第 jjj 维空间的位置;σσσ 为高斯分布标准差.
非均匀高斯变异策略有如下特色:(1)其更新对象为种群中适应度最差的樽海鞘个体,而不是当前种群中的全部个体,降低变异计算复杂度.(2)对链尾者更新公式以个体自身为基准,选择食物源位置与当前个体进行高斯分布后自适应调整变异步长的学习策略.该更新方式有利于保持种群多样性,进一步增强算法全局搜索能力.
3.实验结果
5.参考文献
[1]陈忠云,张达敏,辛梓芸.多子群的共生非均匀高斯变异樽海鞘群算法[J/OL].自动化学报:1-9[2020-11-25].https://doi.org/10.16383/j.aas.c190684.
6.Matlab代码
7.python代码
多子群的共生非均匀高斯变异樽海鞘群算法-附代码相关推荐
- 非均匀变异的互利自适应缎蓝园丁鸟优化算法-附代码
非均匀变异的互利自适应缎蓝园丁鸟优化算法 文章目录 非均匀变异的互利自适应缎蓝园丁鸟优化算法 1.缎蓝园丁鸟优化算法 2.非均匀变异的互利自适应缎蓝园 2.1 非均匀变异 2.2 互利因子 2.3自适 ...
- 基于交叉算子和非均匀变异算子的飞蛾扑火优化算法-附代码
基于交叉算子和非均匀变异算子的飞蛾扑火优化算法 文章目录 基于交叉算子和非均匀变异算子的飞蛾扑火优化算法 1.飞蛾扑火优化算法 2. 改进飞蛾扑火优化算法 2.1 交叉算子 2.2 非均匀变异算子 3 ...
- 基于Cat混沌与高斯变异的改进灰狼优化算法-附代码
基于Cat混沌与高斯变异的改进灰狼优化算法 文章目录 基于Cat混沌与高斯变异的改进灰狼优化算法 1.灰狼优化算法 2. 改进灰狼优化算法 2.1 混沌反向学习策略的种群初始化 2. 2 引入个体记忆 ...
- 多子群改进的海洋捕食者算法-附代码
多子群改进的海洋捕食者算法 文章目录 多子群改进的海洋捕食者算法 1.海洋捕食者算法 2.改进海洋捕食者算法 2.1 高斯变异 2.2 MSMPA 算法 3.实验结果 4.参考文献 5.Matlab代 ...
- 螺旋探索与自适应混合变异的麻雀搜索-附代码
螺旋探索与自适应混合变异的麻雀搜索 文章目录 螺旋探索与自适应混合变异的麻雀搜索 1.麻雀优化算法 2. 改进麻雀算法 2.1 ICMIC 混沌初始化种群 2.2 螺旋探索策略 2.3 基于精英差分和 ...
- 融合互利共生和透镜成像学习的哈里斯鹰优化算法-附代码
融合互利共生和透镜成像学习的HHO优化算法 文章目录 融合互利共生和透镜成像学习的HHO优化算法 1.哈里斯鹰优化算法 2.改进哈里斯鹰优化算法 2.1 Tent 混沌初始化种群 2.2 融合互利共生 ...
- 基于柯西变异的蚁狮优化算法 - 附代码
基于柯西变异的蚁狮优化算法 文章目录 基于柯西变异的蚁狮优化算法 1.蚁狮优化算法 2. 改进蚁狮优化算法 2.1 基于柯西变异算子改进 3.实验结果 4.参考文献 5.Matlab代码 6.Pyth ...
- 结合重心反向变异的飞蛾扑火优化算法-附代码
结合重心反向变异的飞蛾扑火优化算法 文章目录 结合重心反向变异的飞蛾扑火优化算法 1.飞蛾扑火优化算法 2. 改进飞蛾扑火优化算法 2.1 佳点集初始化种群 2.2 引入动态惯性权重 2.3 重心反向 ...
- t-分布扰动策略和变异策略的花授粉算法-附代码
t-分布扰动策略和变异策略的花授粉算法 文章目录 t-分布扰动策略和变异策略的花授粉算法 1.花授粉算法 2. 改进花授粉算法 2.1 混沌映射初始化花朵个体位置 2. 2 基于 t-分布扰动策略的全 ...
- 柯西变异和自适应权重优化的蝴蝶算法-附代码
融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 文章目录 融合正弦余弦和无限折叠迭代混沌映射的蝴蝶优化算法 1.蝴蝶优化算法 2. 改进蝴蝶优化算法 2.1 柯西变异 2.2 自适应权重 2.3动态 ...
最新文章
- 微信小程序 - 富文本图片宽度自适应(正则)
- Cross_validation.train_test_split 中 stratify这个参数的意义是什么?
- mysql 表与表之间的条件比对_Mysql分库分表面试题(mysql高可用方案解析)
- C++ Opengl纹理贴图源码
- 使用Spring+Junit4.4进行测试
- linux下的五种io模型,Linux下的五种IO模型
- 2019年IT界,程序员是否不好找工作了?
- 阿里mysql笔记_MySQL学习笔记(一)
- 【转】vb获得网络时间的函数
- Linux的DNS高速缓存
- Go Elasticsearch 快速入门
- 火力发电计算机控制参数详细过程,火力发电过程
- 蓝奏网盘 解析 php,自制蓝奏云网盘解析接口全解
- 微讲师录课软件下载、录屏软件下载
- 无穷小、梯度向量和泰勒展开
- 所罗门王的宝藏 思维
- java http 手机浏览器下载word文档失败的问题
- IOS开发之UI进阶(安全区高度)
- ahocorasick使用
- 如何在计算机面试中牵着面试官鼻子走?
热门文章
- 机器学习之支持向量回归(SVR)
- 【海量地图图源合集】教你如何一键获取150+高清卫星影像、电子地图、地质图、DEM等地图图源
- 【超详细】Redhat Linux 7/CentOS 7/Oracle Linux 7安装MySQL5.7
- 医疗行业的信息化建设
- 制作芭奇站群软件自定义发布接口命令大全
- 广日电梯主板灯说明_广日MAX电梯维修手册.pdf
- 单片微机计算机原理与接口技术高峰,单片微机原理与接口技术(第2版)
- 华为四核处理器K3V2
- 一键清理电脑垃圾小程序
- 浅谈切比雪夫多项式推导及其实现模版归类