面向全局搜索的自适应领导者樽海鞘群算法

文章目录

  • 面向全局搜索的自适应领导者樽海鞘群算法
    • 1.樽海鞘群算法
    • 2.改进樽海鞘群算法
      • 2.1 改进领导者位置更新公式
      • 2.2 引入领导者-跟随者自适应调整策略
    • 3.实验结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

摘要:为了进一步改善基本樽海鞘群算法容易陷入局部最优,寻优精度有时不高,求解结果不太稳定的不足,提出了一种面向全局搜索的自适应领导者樽海鞘群算法。在领导者位置更新公式中引入上一代樽海鞘群位置,增强了全局搜索的充分性,有效避免算法陷入局部极值。然后在领导者位置更新公式中加入惯性权重,并在全局和局部搜索的选择上引入领导者-跟随者数量自适应调整策略,使算法在迭代前期领导者数目较多且受全局最优解影响较大,能以较大的全局搜索步幅快速收敛到全局最优区域;而在迭代后期领导者步幅较小且跟随者数量较多,可以在最优解附近深度挖掘,提高算法的收敛精度。

1.樽海鞘群算法

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

2.改进樽海鞘群算法

2.1 改进领导者位置更新公式

2.1.1 引入上一代樽海鞘领导者位置

在基本楢海鞘群算法中, 樽海鞘领导者从迭代 开始就奔向全局最优值, 导致全局搜索不充分, 容 易陷入局部极值区域,造成算法有时收敛精度较低。 本文在领导者位置更新公式中引入上一代樽海鞘领 导者位置, 使得领导者在位置更新阶段既受上一代 楢海鞘领导者位置的影响, 同时又受上一代全局最 优解的影响, 有效地避免了基本算法易陷入局部极 值的问题, 提高了算法的寻优精度。改进后的樽海 鞘领导者位置更新公式为:
Xji(t)=Xji(t−1)+(FoodPosition j(t−1)−Xji(t−1))⋅rand⁡(5)X_j^i(t)=X_j^i(t-1)+\left(\text { FoodPosition }_j(t-1)-X_j^i(t-1)\right) \cdot \operatorname{rand} \tag{5} Xji​(t)=Xji​(t−1)+( FoodPosition j​(t−1)−Xji​(t−1))⋅rand(5)
其中, Xji(t−1)X_j^i(t-1)Xji​(t−1) 为上一代中第 iii 个樽海鞘领导 者在第 jjj 维的位置, FoodPosition (t−1)(t-1)(t−1) 为上一代 中第 jjj 维的全局最优解, 通过引入上一代的位置, 楢 海鞘领导者能够更有效地进行全局搜索, 增强算法 跳出局部极值的能力。

2.1.2 引入惯性权重

本文还在领导者位置更新公式中引入动态惯性权重,随迭代次数自适应递减的惯性权重 w 表示了樽海鞘领导者受全局最优解影响程度的变化。在迭代前期,领导者受全局最优解影响较大,有较大的全局搜索步幅,能够更快速地找到全局最优区域。而在迭代后期,大部分樽海鞘都已达到较优值,领导者受全局最优解影响变小, 领导者可以在最优解附 近深度挖掘, 提高了算法的收敛精度。本文中惯性 权重的计算公式为:
w=e2⋅(1−t/Maxiter)−e−2⋅(1−t/Maxiter)e2⋅(1−t/Maxiter)+e−2⋅(1−t/Maxiter)(6)w=\frac{e^{2 \cdot(1-t / { Max_iter })}-e^{-2 \cdot(1-t / { Max_iter })}}{e^{2 \cdot(1-t / { Max_iter) }}+e^{-2 \cdot(1-t / { Max_iter })}} \tag{6} w=e2⋅(1−t/Maxi​ter)+e−2⋅(1−t/Maxi​ter)e2⋅(1−t/Maxi​ter)−e−2⋅(1−t/Maxi​ter)​(6)
结合公式 (5)、(6), 新的楢海鞘领导者位置更 新公式为:
Xji(t)=Xji(t−1)+(w⋅FoodPosition j(t−1)−Xji(t−1))⋅rand (7)\begin{aligned} X_j^i(t)=& X_j^i(t-1)+\left(w \cdot \text { FoodPosition }_j(t-1)-X_j^i(t-1)\right) \cdot \text { rand } \end{aligned} \tag{7} Xji​(t)=​Xji​(t−1)+(w⋅ FoodPosition j​(t−1)−Xji​(t−1))⋅ rand ​(7)
其中,惯性权重 www 为基于双曲正切函数的非线 性递减值, 其取值范围为 (0,1),t(0,1), t(0,1),t 为当前迭代次数, Max−M a x_{-}Max−​iter 为最大迭代次数,Xji(t−1)X_j^i(t-1)Xji​(t−1) 为上一代中第 i\mathrm{i}i 个楢海鞘领导者在第 j\mathrm{j}j 维的位置, FoodPosition (t−(t-(t− 1) 为上一代中第 jjj 维的全局最优解。通过引入惯性 权重, 使得改进后的算法能够在全局和局部搜索之 间保持较好平衡, 樽海鞘领导者更好地发挥领导者 作用, 提高算法的寻优精度。

2.2 引入领导者-跟随者自适应调整策略

在基本 SSA 算法中,樽海鞘领导者和跟随者的数目始终是各占种群中个体数的一半,这就使得在迭代前期,执行全局搜索的领导者比例过低,跟随者比例过高,领导者无法有效地进行全局搜索,全局搜索不充分,容易陷入局部最优;而在迭代后期,执行局部搜索的跟随者比例过低,局部搜索不够充分,容易造成寻优精度不高。针对此问题,本文引领导者-跟随者自适应调整策略,樽海鞘领导者的数目随迭代次数的增加自适应减少,跟随者数目自适应增加,在算法前期能够保持很强的全局搜索能力,同时兼顾局部搜索,而在算法运行后期,局部搜索逐渐增强,同时也兼顾全局搜索,从整体上提高了算法的收敛精度。改进后的领导者-跟随者数量计算公式为:

每代中领导者数量等于 r⋅Nr \cdot Nr⋅N
跟随者数量等于 (1−r)N(1-r) N(1−r)N
r=b⋅(tan⁡(−πt4⋅Maxiter+π4)−k⋅rand⁡())(8)r=b \cdot\left(\tan \left(-\frac{\pi t}{4 \cdot { Max_iter }}+\frac{\pi}{4}\right)-k \cdot \operatorname{rand}()\right)\tag{8} r=b⋅(tan(−4⋅Maxi​terπt​+4π​)−k⋅rand())(8)
其中, ttt 是当前迭代次数, Max_iter 是最大迭 代次数。 bbb 为控制领导者-跟随者数量的比例系数, 避 免迭代前期的樽海鞘领导者或迭代后期的樽海鞘跟 随者比例过高, 全局和局部搜索失衡降低寻优性能, 易陷入局部极值的现象, 经大量实验测试, 本文取 值为 0.750.750.75 。分析式 (8) 可知, rrr 的值随着算法迭代次数的增加呈非线性递减趋势, 于是领导者数量逐 渐减少, 跟随者数量逐渐增加, 在迭代后期, 更多的 樽海鞘跟随者在全局最优值附近深度挖掘。 kkk 为扰 动偏离因子, 结合 rand 函数对递减的 rrr 值进行扰动, 经大量实验反复测试, kkk 等于 0.20.20.2 时, 寻优效果最佳。

3.实验结果

4.参考文献

[1]刘景森,袁蒙蒙,左方.面向全局搜索的自适应领导者樽海鞘群算法[J/OL].控制与决策:1-10[2021-07-30].https://doi.org/10.13195/j.kzyjc.2020.0090.

5.Matlab代码

6.python代码

面向全局搜索的自适应领导者樽海鞘群算法-附代码相关推荐

  1. matlab代码:面向全局搜索的自适应领导者樽海鞘群算法

    matlab代码:面向全局搜索的自适应领导者樽海鞘群算法 面向全局搜索的自适应领导者樽海鞘群算法. 首先, 在领导者位置更新公式中引入上一代樽海鞘群位置,增强全局搜索的充分性,有效避免算法陷入局部极值 ...

  2. 混沌映射与动态学习的自适应樽海鞘群算法-附代码

    混沌映射与动态学习的自适应樽海鞘群算法 文章目录 混沌映射与动态学习的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 基于改进 Tent 映射的种群初始化 2.2 基于 Logis ...

  3. 基于混沌映射的自适应樽海鞘群算法-附代码

    基于混沌映射的自适应樽海鞘群算法 文章目录 基于混沌映射的自适应樽海鞘群算法 1.樽海鞘群算法 2.改进樽海鞘群算法 2.1 混沌映射 2.2 自适应权重变化 2.3 追随者机制变化 3.实验结果 4 ...

  4. 基于疯狂自适应的樽海鞘群算法

    基于疯狂自适应的樽海鞘群算法 文章目录 基于疯狂自适应的樽海鞘群算法 1.樽海鞘群算法 2.基于疯狂自适应樽海鞘群算法 2.1 Tent映射的种群初始化 2.2 疯狂算子 2.3自适应惯性权重 3.实 ...

  5. 融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法-附代码

    融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法 文章目录 融合改进 Logistics 混沌和正弦余弦算子的自适应 t 分布海鸥算法 1.海鸥优化算法 2. 改进海鸥优化算 ...

  6. 全局优化的改进鸡群算法-附代码

    全局优化的改进鸡群算法 文章目录 全局优化的改进鸡群算法 1.鸡群优化算法 2.全局优化的改进鸡群算法 2.1自适应策略 2.2 偏好随机游动 2.3 定向变异策略 3.实验结果 4.参考文献 5.M ...

  7. 智能优化算法:沙猫群算法—附代码

    智能优化算法:沙猫群算法 摘要:沙猫群优化算法(Sand Cat Swarm Optimization,SCSO)是由Amir Seyyedabbasi和Farzad Kiani于2022年提出的一种 ...

  8. 一种非线性动态自适应惯性权重PSO算法-附代码

    一种非线性动态自适应惯性权重PSO算法 文章目录 一种非线性动态自适应惯性权重PSO算法 1.粒子群优化算法 2. 改进粒子群算法 2.1 改进的动态自适应惯性权重 PSO 算法 3.实验结果 4.参 ...

  9. 基于觅食生境选择的改进粒子群算法-附代码

    基于觅食生境选择的改进粒子群算法 文章目录 基于觅食生境选择的改进粒子群算法 1.粒子群优化算法 2. 改进粒子群算法 3.实验结果 4.参考文献 5.Matlab代码 6.Python代码 摘要:在 ...

最新文章

  1. Django的路由系统
  2. Java中的与、或、非以及异或( | ~ ^)运算符的运算原理
  3. 30个数据可视化超级工具_Python5个数据可视化工具
  4. 程序员是吃青春饭的吗?未来发展前途如何?
  5. C++虚继承(九) --- 构造函数调用顺序的实用之处
  6. 华为鸿蒙内置,内置鸿蒙系统,华为生态产品海雀智能摄像头Pro体验
  7. 分布式服务下的关键技术(转)
  8. javascript原型_使用JavaScript的示例报告卡Web应用程序原型
  9. LeetCode--81. 搜索旋转排序数组Ⅱ(遍历法,二分法)
  10. linux下安装不同版本的jdk
  11. 2-visio使用与卸载
  12. “内容为王”时代,游戏渠道商还能“躺赢”吗?
  13. word文档字不靠边_word怎么调整单元格文字边距表格文字紧靠边框怎么办
  14. 揭秘京东文件系统JFS的前世今生,支持双11每秒约10万个对象同时读写
  15. 关于js数组方法的题目整理 6.24更新至题目5
  16. strlen,strcpy,strcat,strcmp函数
  17. zipkin下载地址新
  18. 【Java教学】win11如何安装Java配置Java环境并进行自检
  19. 解决哈希(hash)冲突的方法
  20. linux 5353端口禁止,系统运维|解决DNS污染与劫持之使用特殊DNS端口

热门文章

  1. 国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
  2. 全新Thinkphp养我吧宠物区块链网站源码+可封装APP源码 免费下载 源码搭建教程
  3. 求最大值的c语言程序,c语言如何求最大值
  4. ecshop不同文章分类 不同文章详情页模板
  5. 基于51单片机的水塔水箱液水位监测控制系统无线WIFI报警
  6. springboot 配置404页面
  7. scsi设备驱动体系架构
  8. 03-软件配置项管理计划
  9. 黑马程序员--IO流(19天)
  10. 受保护的PDF文件如何编辑【PDF解密软件】