当前位置: 首页 > news >正文

基于Levy飞行策略的改进樽海鞘群算法-附代码

基于Levy飞行策略的改进樽海鞘群算法

文章目录

  • 基于Levy飞行策略的改进樽海鞘群算法
    • 1.樽海鞘群算法
    • 2.改进樽海鞘群算法
      • 2.1 领导者位置更新改进策略
      • 2.2 追随者位置更新改进策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

摘要:针对樽海鞘群算法(Salp Swarm Algorithm,SSA)在寻优过程中存在的收敛速度较慢、容易陷入局部最优的缺点,提出了一种改进的采用莱维飞行策略的条件化更新的樽海鞘群算法(Levy Flight-based Conditional Updating Salp Swarm Algorithm,LECUSSA),并将其运用于分类算法的特征子集选择过程。首先,利用莱维飞行策略的长短跳跃特点对领导者位置进行随机更新,以增强全局最优的搜索能力;其次,增加对追随者位置的更新条件,让追随者不再盲目地跟随,从而加快收敛速度。

1.樽海鞘群算法

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

2.改进樽海鞘群算法

2.1 领导者位置更新改进策略

采用 Levy 飞行随机步长对领导者的位置更新进行改进。 Levy 飞行策略使得算法能够在长短距离之间随机变化, 利用 其中的少数长距离跳跃来避免算法陷入局部最优, 增强了全 局最优搜索能力。领导者的位置依据式(11) 进行更新:
X 1 = F + c 1 [ ( U b − L b ) ⊕ L ( λ ) + L b ] (11) X^{1}=F+c_{1}[(U b-L b) \oplus L(\lambda)+L b] \tag{11} X1=F+c1[(UbLb)L(λ)+Lb](11)
其中, F F F 是基础目标位置, L ( λ ) L(\lambda) L(λ) 是 Levy 飞行路径。低频长距 离探索可以使算法更好地跳出局部最优, 向全局最优搜索, 从 而可以适当地解决算法易陷入局部最优的问题。

2.2 追随者位置更新改进策略

追随者在原有的樽海鞘群算法中斍目地跟随前一个樽海 鞘, 这会使得它错过更好的适应度位置。在改进算法 LECUSSA 中, 采用有条件的位置更新, 首先将前一个樽海鞘的 适应度与当前的适应度进行比较, 使得新位置更加地偏向适 应度较好的一侧。因此追随者的位置按照式 (12) 所示的改进 方式进行更新:
X d n = r ( X d n − 1 + X d n ) (12) X_{d}^{n}=r\left(X_{d}^{n-1}+X_{d}^{n}\right)\tag{12} Xdn=r(Xdn1+Xdn)(12)
其中, r r r 是位置偏移的系数, 其计算式如下:
r = { 0.5 × rand ⁡ ( 0 , 1 ) , f ( X d n − 1 ) < f ( X d n ) 0.5 , f ( X d n − 1 ) = f ( X d n ) 1 − 0.5 × rand ⁡ ( 0 , 1 ) , f ( X d n − 1 ) > f ( X d n ) (13) r= \begin{cases}0.5 \times \operatorname{rand}(0,1), & f\left(X_{d}^{n-1}\right)<f\left(X_{d}^{n}\right) \\ 0.5, & f\left(X_{d}^{n-1}\right)=f\left(X_{d}^{n}\right) \\ 1-0.5 \times \operatorname{rand}(0,1), & f\left(X_{d}^{n-1}\right)>f\left(X_{d}^{n}\right)\end{cases}\tag{13} r= 0.5×rand(0,1),0.5,10.5×rand(0,1),f(Xdn1)<f(Xdn)f(Xdn1)=f(Xdn)f(Xdn1)>f(Xdn)(13)
其中, f f f 是适应度函数。

改进的算法 LECUSSA

步骤 1 初始化一个规模为 N 的樽海鞘种群,并在(lb,ub)内随机初始化种群的位置;
步骤 2 计算种群中每个樽海鞘的适应度 f \mathrm{f} f 值, 将适应度最小 (记为 f best  ) \left.\mathrm{f}_{\text {best }}\right) fbest ) 的樽海鞘的位置定义为目标位置 F F F;
步骤 3 按照式(11)更新领导者的位置;
步骤 4 对当前的樽海輎位置的适应度和前一个樽海鞘位置的适应 度进行比较, 根据式 (13) 得出偏移系数 r \mathrm{r} r, 再根据式 (12) 更新 跟随者的位置;
步骤 5 根据步棃 2 更新最小适应度 f best  \mathrm{f}_{\text {best }} fbest  和目标位置 F \mathrm{F} F;
步骤 6 不停地迭代步骤 3-步骤 5 , 直到达到最大迭代次数后停止, 并输出当前的目标位置 F F F 和最佳适应度 f b e s t f_{b e s t} fbest

3.实验结果

请添加图片描述

4.参考文献

[1]张严,秦亮曦.基于Levy飞行策略的改进樽海鞘群算法[J].计算机科学,2020,47(07):154-160.

5.Matlab代码

6.python代码

相关文章:

  • 【CSDN高校社区无锡学院】# 新学期,新Flag # 开学季征文活动
  • Linux安装zlib、libpng、freetype给交叉编译工具链使用
  • 深度讲解指针的笔试题目
  • Python 环境安装系统教程——PyCharm
  • 都这麽大了还不快了解防火墙(1)?
  • Code For Better 谷歌开发者之声——谷歌Web工具包(GWT)
  • c++图解内存管理
  • 【微信小程序】自定义组件(二)
  • 基于SSM的水果商城
  • Ubuntu20.04美化成mac OS苹果风格
  • 国际航运管理复习总结题
  • 详解Redis基础数据类型Set增删查(带Java源码)
  • 从零开始实现一个量化回测系统(二)
  • 设计模式:工厂模式
  • 基于Python实现的英文文本信息检索系统
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Brief introduction of how to 'Call, Apply and Bind'
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • export和import的用法总结
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • js继承的实现方法
  • markdown编辑器简评
  • mysql 5.6 原生Online DDL解析
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • react 代码优化(一) ——事件处理
  • supervisor 永不挂掉的进程 安装以及使用
  • Vue2 SSR 的优化之旅
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Webpack 4 学习01(基础配置)
  • 讲清楚之javascript作用域
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 如何在 Tornado 中实现 Middleware
  • 一些css基础学习笔记
  • 进程与线程(三)——进程/线程间通信
  • ​水经微图Web1.5.0版即将上线
  • #LLM入门|Prompt#3.3_存储_Memory
  • #pragma预处理命令
  • #Z0458. 树的中心2
  • $.ajax()参数及用法
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (145)光线追踪距离场柔和阴影
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (第二周)效能测试
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转) 深度模型优化性能 调参
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .net中的Queue和Stack
  • .pop ----remove 删除
  • @AutoConfigurationPackage的使用