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

DeepACO:用于组合优化的神经增强蚂蚁系统


文章目录

  • Abstract
  • 1 Introduction
  • 2 Related work
    • 2.1 神经组合优化
    • 2.2 蚁群优化
  • 3 蚁群优化初探
  • 4 Methodology
    • 4.1 参数化启发式空间
    • 4.2 局部搜索与局部神经引导扰动交织
    • 4.3 训练启发式学习器
    • 4.4 更好的探索
      • 4.4.1 多头解码器
      • 4.4.2 Top-k熵损失
      • 4.4.3 模仿损失
  • 5 实验
    • 5.1 实验设置
    • 5.2 DeepACO作为一种增强的ACO算法
    • 5.3 DeepACO作为NCO方法

Abstract

提出了 DeepACO,这是一个利用深度强化学习来自动化启发式设计的通用框架。DeepACO 旨在加强现有 ACO 算法的启发式措施,并在未来的 ACO 应用中免除繁琐的手动设计。作为一种神经增强元启发式算法,DeepACO 在使用单个神经模型和一组超参数的 8 个 COP 上始终优于其 ACO 同行。作为一种神经组合优化方法,DeepACO 在规范路由问题上的表现优于或与特定问题的方法相当。

1 Introduction

启发式设计上存在缺陷:
1)需要额外的努力,并且使得ACO灵活性较差;
2)启发式举措的有效性很大程度上依赖于专家知识和人工调优;
3)考虑到可用的专业知识的缺乏,为研究较少的问题设计启发式措施可能特别具有挑战性。

本文提出DeepACO,一种通用的神经增强 ACO 元启发式算法,以及针对上述限制的解决方案。DeepACO 旨在加强现有 ACO 算法的启发式措施,并在未来的 ACO 应用中免除繁琐的手动设计。主要涉及两个学习阶段。第一阶段通过跨 COP 实例训练神经模型来学习从实例到其启发式测量的特定问题映射。通过偏置解决方案构造并引导局部搜索(LS)逃避局部最优,将第一阶段学习的启发式措施纳入 ACO(第二学习阶段)。

此外,我们提出了三种扩展实现,以更好地平衡开发和探索:一种具有多头解码器,一种采用额外的 top-k 熵损失进行训练,另一种采用额外的模仿损失进行训练。它们通常可应用于基于热图的 NCO 方法。

2 Related work

2.1 神经组合优化

端到端方法:直接使用神经网络将问题的输入映射到输出,实现端到端的优化。神经网络可以学习问题的表示和解码策略,从而直接生成最优解或近似最优解。端到端方法的优点是简单直接,但可能受限于问题的复杂性和规模。

混合方法:将传统的优化算法与神经网络结合起来,形成混合模型。例如,可以使用神经网络来学习问题的特征表示,然后将这些特征输入到传统的优化算法中进行进一步的优化。这种混合方法结合了传统优化算法的高效性和神经网络的表示学习能力,可以在一定程度上克服端到端方法的限制。

2.2 蚁群优化

ACO 可以利用一组名为超启发式 [69] 的技术,这些技术在概念上与 DeepACO 相关。但超启发式大多涉及专家设计的启发式选择(启发式选择超启发式)[27]或针对特定问题和手动定义的组件来演化启发式(启发式生成超启发式)[14]。相比之下,DeepACO 更加通用,几乎不需要 COP 的先验知识。

3 蚁群优化初探

选择节点 j j j作为下一个目的地的概率:


基于等式(1)构建完整的解决方案需要n步图遍历。生成 s 的概率可以分解为:


构建解决方案后,可选择应用局部搜索 (LS) 来细化解决方案。

4 Methodology

DeepACO示意图如图1所示,其中与ACO进行了比较。它不需要专家知识,而是学习一套更强的启发式举措来指导ACO的进化。

4.1 参数化启发式空间

我们引入了一个启发式学习器,它由具有可训练参数 θ 的图神经网络 (GNN) 定义,以参数化启发式空间。

启发式学习器将输入COP实例 ρ \rho ρ(具体的组合优化实例)映射到启发式测量 η θ \eta_\theta ηθ

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SAP与赛美特MES系统集成案例
  • python测试开发---vue的常见指令
  • 66、Python之函数高级:一个装饰器不够用,可以多装饰器buffer叠加
  • 存储虚拟化
  • QT QPrinter无弹窗后台打印
  • 金融壹账通:智能面审解决方案“大显身手”
  • 【未解决】everything软件 中文文件夹 查找不到
  • Java 学习中使用文件、网络连接等资源时,未正确关闭资源,导致资源泄漏应该怎么办?
  • 实现C程序绑定TCP端口
  • 前端封装组件可视化库
  • HTTP 响应状态码详解
  • fileinput pdf编辑初始化预览
  • 【西电电装实习】5. 无人机模块及作用、上位机的操作
  • 【Qt网络编程基础】Tcp服务器和客户端(只支持一对一)
  • Gitea Action注册runner
  • [PHP内核探索]PHP中的哈希表
  • SegmentFault for Android 3.0 发布
  • 11111111
  • HashMap剖析之内部结构
  • JavaScript异步流程控制的前世今生
  • LeetCode18.四数之和 JavaScript
  • Next.js之基础概念(二)
  • PaddlePaddle-GitHub的正确打开姿势
  • PhantomJS 安装
  • PHP 小技巧
  • PV统计优化设计
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue脚手架vue-cli
  • 大整数乘法-表格法
  • 浮现式设计
  • 汉诺塔算法
  • 机器学习学习笔记一
  • 使用 Docker 部署 Spring Boot项目
  • 听说你叫Java(二)–Servlet请求
  • 微服务核心架构梳理
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • # Java NIO(一)FileChannel
  • #预处理和函数的对比以及条件编译
  • (1)Android开发优化---------UI优化
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (39)STM32——FLASH闪存
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (面试必看!)锁策略
  • (三)Honghu Cloud云架构一定时调度平台
  • (十三)Maven插件解析运行机制
  • (算法)求1到1亿间的质数或素数
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • .“空心村”成因分析及解决对策122344
  • .net8.0与halcon编程环境构建