一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法 -附代码

news/2024/7/5 5:47:34

一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法

文章目录

  • 一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法
    • 1.樽海鞘群算法
    • 2.改进樽海鞘群算法
      • 2.1 折射反向学习机制
      • 2.2 自适应控制因子
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

摘要:为克服基本樽海鞘群算法(SSA)存在的收敛速度慢、易陷入局部最优等不足,提出了一种基于折射反向学习和自适应控制因子的新型改进樽海鞘群算法(RCSSA).首先,采用折射反向学习机制在每一次个体的求解中计算折射反向解,极大地提高了算法收敛精度和速度.然后,将原SSA算法中引导者的自适应控制因子引入跟随者的位置更新中,有效地控制整个搜索过程并增加了算法的局部开发能力.

1.樽海鞘群算法

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

2.改进樽海鞘群算法

2.1 折射反向学习机制

当优化问题的空间维度增加时, 折射反 向学习解可按下式计算
x i , j ∗ = a j + b j 2 + a j + b j 2 k − x i , j k . (10) x_{i, j}^*=\frac{a_j+b_j}{2}+\frac{a_j+b_j}{2 k}-\frac{x_{i, j}}{k} . \tag{10} xi,j=2aj+bj+2kaj+bjkxi,j.(10)
式中: x i , j x_{i, j} xi,j 表示当前种群中第 i i i 个体在第 j j j 维上位置, x i , j ∗ x_{i, j}^* xi,j x i , j x_{i, j} xi,j 的折射反向解, a j a_j aj b j b_j bj 分别为搜索空间上第 j j j 维的最小值和最大值.

2.2 自适应控制因子

在原 SSA 算法中, 随着算法的迭代进化, 楢海 輎群体中的引导者不断向食物源移动, 其余追随者 依次相连, 逐渐向种群中适应度较优的引导者靠扰. 然而, 从式 (3) 中可看到, 追随者的位置只跟自身和 相邻个体的位置相关, 其行为较为单一. 因此, 当种 群中的引领者陷入局部最优时, 追随者必然随之陷 入局部最优, 从而导致算法出现古熟收敛现象.
前文已经提到: 控制因子 c 1 c_1 c1 随着迭代次数的增 加, 从 2 非线性降低到趋于 0 . 这样的变化有利于算 法在迭代初期进行全局探索,在迭代后期能够在局 部进行开发. 为此, 本文提出将控制因子 c 1 c_1 c1 引入追随 者的位置更新, 此时追随者也能够与引导者一样, 产 生自适应更新, 从而提高算法跳出局部最优的能力, 并加快整体的收敛速度. 新的追随者公式为
x i , j = c 1 2 ( x i , j + x i − 1 , j ) . (11) x_{i, j}=\frac{c_1}{2}\left(x_{i, j}+x_{i-1, j}\right) .\tag{11} xi,j=2c1(xi,j+xi1,j).(11)
其中 c 1 c_1 c1 的表达式见式 (2).

RCSSA 算法实现流程如下:

Step1:设置算法参数:种群规模 N N N, 最大帙代次 数 T T T,搜索维数 D D D, 掜索范围 [ l b , u b ] [l b, u b] [lb,ub]; 随机生成樽海 脒种群;
Step ⁡ 2 \operatorname{Step} 2 Step2 : 计算每个个体的适应度值, 将适应度值 最、的个体位置作为食物源;

Step3: 更新控制因子 c 1 c_1 c1, 判断种群数是否超过 N / 2 N / 2 N/2 : 超讨则进入 Step5, 否则进入 Step4;

Step4:更新随机数 c 2 、 c 3 c_2 、 c_3 c2c3 ,根据式 (1) 更新每个 引导者个体的位置,同时采用式(10)计算其折射反 向解, 比较二者适应度大小, 取较小的一个个体为新 的位置, 并进入 Step6;

Step5:根据式 (3) 更新每个追随者个体的位置, 采用引入控制因子 c 1 c_1 c1 的式 (11) 计算其折射反向解, 比 较二者适应度大小, 取较小的一个个体为新的位置;
Step6:比较食物源和当前棏海革肖最优个体的适 应度大小, 取䢂小的一个为新的食物源;

Step7:若当代迭代次数讴到最大迭代次数 T T T, 则输出最优个体, 即算法找到的最优解; 否则, 返回 Step2.

3.实验结果

请添加图片描述

4.参考文献

[1]范千,陈振健,夏樟华.一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法[J].哈尔滨工业大学学报,2020,52(10):183-191.

5.Matlab代码

6.python代码


http://lihuaxi.xjx100.cn/news/9662.html

相关文章

MySQL数据库常用命令大全(完整)(表格形式)

目录本地登录相关命令mysql服务启动和关闭数据库相关命令增删改查等相关命令查询一个、多个、所有字段列(字段)起别名和参与数学运算条件查询和多字段排序表的创建表的删除查看建表语句insert 插入数据update修改数据delete删除数据指定存储引擎约束相关命令单行处理函数相关命…

OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)

文章目录整体运行环境框架GLFW作用使用CMake编译配置步骤编译器如何找到库和头文件的位置?GLAD使用GLAD的必要性——存储函数位置的操作太繁琐GLAD安装方法整体运行环境框架 OpenGL是Windows平台在安装VS以后自带的,还需要一下其他的库: GLF…

观测云产品更新|新增基础设施 YAML 显示;新增日志查看器 DQL 搜索模式;优化应用性能监测等

观测云更新 优化笔记文本组件 Markdown 格式 在场景笔记,文本组件 Markdown 输入框增加工具栏及预览模式,您可以更简单、快速的调整输入的文本格式。 新增基础设施 YAML 显示 在基础设施容器「Pods」、「Deployments」、「Services」查看器&#xff0…

win和linux动静态链接库介绍,以及win下动态库生成和调用方法

目录 参考文献 知识点介绍 linux下动静态库编译简单介绍 win下动静态库使用 win下动态库的生成和隐式链接(静态调用) 参考文献 【基础】动态链接库/静态链接库的区别_叫我东方小巴黎的博客-CSDN博客_动态链接库和静态链接库的区别 Linux动静态库详…

响应式UI组件集DevExtreme v22.1.5,9月全新发布!

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

计算机毕业设计之java+ssm基于个人需求和地域特色的外卖推荐系统

计算机毕业设计之javassm基于个人需求和地域特色的外卖推荐系统 项目介绍 系统权限按管理员,商家和用户这三类涉及用户划分。 (a) 管理员:管理员使用本系统涉到的功能主要有:首页,个人中心,用户管理,商家管理,菜系分类管理,城市管理,系统管理,订单管理等…

csmall-passport(Day14)

1. 使用JWT保存权限 在UserDetailsServiceImpl中,调用的adminMapper.getLoginInfoByUsername()中已经包含用户的权限,则,在返回的UserDetails对象中封装权限信息: UserDetails userDetails User.builder().username(loginAdmin…

Fabric.js 自定义子类,创建属于自己的图形~

theme: smartblue 我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第14篇文章,点击查看活动详情 本文简介 点赞 关注 收藏 学会了 fabric.js 在出厂时就提供了几个基础图形,比如矩形、圆形、三角形等。 但这些图形可能不能满足日常开…