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

2023年ASOC SCI2区TOP,随机跟随蚁群优化算法RFACO,深度解析+性能实测

目录

    • 1.摘要
    • 2.连续蚁群优化算法ACOR
    • 3.随机跟随策略
    • 4.结果展示
    • 5.参考文献
    • 6.代码获取
    • 7.算法辅导·应用定制·读者交流


1.摘要

连续蚁群优化是一种基于群体的启发式搜索算法(ACOR),其灵感来源于蚁群的路径寻找行为,具有结构简单、控制参数少的特点。然而,在面对多峰和高维优化问题时,该算法常常受限于可行域空间中的局部区域,这对找到最优解点所需的计算效率产生了负面影响。为了缓解这一局限性,本文提出了一种随机跟随策略,用来增强蚁群搜索代理与其他蚁群成员在搜索维度内的交流能力,结合该策略所提出的算法被称为随机跟随蚁群优化算法(RFACO)。

2.连续蚁群优化算法ACOR

2008年EJOR SCI2区,连续蚁群优化算法ACOR,深度解析+性能实测

3.随机跟随策略

ACOR在图像分割、工程优化和数据聚类等连续空间问题中表现出良好的性能。然而算法在处理复杂问题时存在两大缺陷:一是收敛速度较慢,二是容易陷入局部最优,尤其在面对多峰、复合及组合类函数时更为明显。为克服这些问题,本文借鉴CS的维度变异思想和SSA的贪婪选择机制,提出了一种随机跟随策略,并将其嵌入到 ACOR 算法中,该策略通过引入搜索代理在特定维度上的扰动与筛选操作,显著提升了算法的全局搜索能力与收敛速度。
V j = { s ˉ i j + c 1 ⋅ ( l b + c 2 ⋅ ( u b − l b ) ) , j ≤ k and  r a n d > 0.5 s ˉ i j − c 1 ⋅ ( l b + c 2 ⋅ ( u b − l b ) ) , j ≤ k and  r a n d ≤ 0.5 ( T e m p + s ˉ i j ) / 2 , otherwise V_j = \begin{cases} \bar{s}_i^j + c_1 \cdot \left( lb + c_2 \cdot (ub - lb) \right), & j \leq k \text{ and } rand > 0.5 \\ \bar{s}_i^j - c_1 \cdot \left( lb + c_2 \cdot (ub - lb) \right), & j \leq k \text{ and } rand \leq 0.5 \\ \left( Temp + \bar{s}_i^j \right) / 2, & \text{otherwise} \end{cases} Vj= sˉij+c1(lb+c2(ublb)),sˉijc1(lb+c2(ublb)),(Temp+sˉij)/2,jk and rand>0.5jk and rand0.5otherwise

自适应阶跃控制参数 c 1 c_1 c1定义为:
c 1 = 2 × e − ( 4 ⋅ f e s M a x f e s ) 2 c_1=2\times e^{-\left(\frac{4\cdot fes}{Max_{fes}}\right)^2} c1=2×e(Maxfes4fes)2

RFACO伪代码

RFACO流程图

4.结果展示




5.参考文献

[1] Zhou X, Gui W, Heidari A A, et al. Random following ant colony optimization: Continuous and binary variants for global optimization and feature selection[J]. Applied Soft Computing, 2023, 144: 110513.

6.代码获取

7.算法辅导·应用定制·读者交流

http://www.lqws.cn/news/216865.html

相关文章:

  • PCB设计教程【大师篇】——STM32开发板电源设计(电压基准、滤波电容)
  • 基于TarNet、CFRNet与DragonNet的深度因果推断模型全解析
  • 当SAP系统内计划订单转换为生产订单时发生了什么?
  • 使用 SAM + YOLO + ResNet 检测工业开关状态:从零到部署
  • 在 Java 中!(逻辑非)和 ||(逻辑或)的优先级关系
  • Qt(part 2)1、Qwindow(菜单栏,工具栏,状态栏),铆接部件,核心部件 ,2、添加资源文件 3、对话框
  • LINUX67 FTP 3客户服务系统;FTP 上传、下载测试调试
  • 从认识AI开始-----AutoEncoder:生成模型的起点
  • STM32开发,创建线程栈空间大小判断
  • 手拉手处理RuoYi脚手架常见文问题
  • 零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
  • 【C/C++】std::vector成员函数清单
  • Global Security Market知识点总结:主经纪商业务
  • 以智能管理为基础,楼宇自控打造建筑碳中和新路径
  • Java基于SpringBoot的校园闲置物品交易系统,附源码+文档说明
  • 总结html标签之button标签
  • 6月7日day47打卡
  • Python控制台输出彩色字体指南
  • 从零设计一个智能英语翻译API:架构与实现详解
  • 深入理解 Vue.observable:轻量级响应式状态管理利器
  • 如何在c/c++中定义和使用宏
  • 实习学习项目
  • 沉金电路板的黑盘缺陷挑战与解决方案——高密度互连设计的关键考量
  • 跳转指令四维全解:从【call/jmp 】的时空法则到内存迷宫导航术
  • 常用函数库之 - std::function
  • MySQL事务与锁中的MVCC 深度解析与面试题讲解
  • 理解 RAG_HYBRID_BM25_WEIGHT:打造更智能的混合检索增强生成系统
  • 【优选算法】C++滑动窗口
  • 如何区分 “通信网络安全防护” 与 “信息安全” 的考核重点?
  • PySide6 GUI 学习笔记——常用类及控件使用方法(单行文本控件QLineEdit)