【论文笔记】A Deep Reinforcement Learning Based Real-Time Solution Policy for the TSP

《基于 DRL 和 DCNN 的实时 TSP 求解策略》

IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS, VOL. 24, NO. 6, JUNE 2023

一段话总结

本文提出了一种基于深度强化学习(DRL)深度卷积神经网络(DCNN) 的实时旅行商问题(TSP)求解策略。通过问题分解将 TSP 转化为一系列子问题,采用图像表示将城市坐标转化为图像输入,利用 DCNN 的特征提取能力拟合子问题映射,并设计过滤机制确保解的可行性。基于 DRL 的训练方法无需标签,通过并行采样加速训练,实验表明该方法在 50 城市 TSP 中平均误差仅 3.97%,求解时间 0.022 秒,显著快于传统算法(如 CPLEX、LKH),且在不同城市规模和真实基准(TSPLIB)中表现出良好的泛化能力


详细总结

1. 研究背景与动机

  • TSP 的实时需求:物流、导航等领域对 TSP 实时求解需求增加,但传统算法(如穷举、遗传算法)因迭代过程难以满足实时性。

  • 现有方法局限

    • 确定性算法(如 CPLEX)能求最优解,但存在 “组合爆炸”,大规模问题效率极低;

    • 启发式算法(如 LKH、GA)依赖迭代,参数变化时需重新计算;

    • 监督学习的深度学习方法(如 PtrNet)需大量最优解标签,标签生成成本高。

  • 研究目标:提出基于 DRL 和 DCNN 的方法,实现 TSP 的实时求解,无需标签且泛化能力强。

2. 核心方法

在这里插入图片描述

2.1 TSP 分解与图像表示
  • 问题分解:将 TSP 拆分为一系列子问题,每个子问题只需从剩余城市中选择下一个访问城市,递归求解:
    在这里插入图片描述

其中,fk(i,Uk)f_k(i, U_k)fk(i,Uk) 表示从当前城市 iii 访问剩余 kkk 个城市后返回起点的最短距离。

  • 图像表示

    • 城市坐标归一化后映射到 40×40 图像,像素标记为:背景(0)、当前城市(-1)、剩余城市(1)、起点(2);

    • 子问题转化为图像分类任务,DCNN 输出下一个城市的像素概率。
      *在这里插入图片描述

2.2 DCNN 架构与过滤机制
  • DCNN 结构:基于 VGG16 改进,输入 40×40 图像,经 5 次卷积 - 池化操作提取特征,最终通过 SoftMax 输出 1600 维(40×40)概率分布,对应每个像素被选为下一个城市的概率。

  • 过滤机制:排除无效像素(背景、已访问城市),起点仅在最后一步可选,确保解满足 TSP 约束(每个城市仅访问一次,最终返回起点)。
    在这里插入图片描述

2.3 DRL 训练方法
  • 无需标签的训练:通过策略梯度优化 DCNN 参数,智能体( salesman )与环境(TSP 实例)交互,以路径负距离为奖励:
 r(s, a) = -d_{ij}  
  • 并行采样:多线程同时处理不同 TSP 实例,加速采样过程(8 线程比 1 线程快 3.5 倍)。

  • 训练过程可视化:分为 5 个阶段(随机开始→初始策略→全局搜索→局部搜索→微调),可直观观察策略形成。

在这里插入图片描述

3. 实验结果与分析

3.1 性能对比(50 城市 TSP)
算法 平均误差 平均求解时间 优势场景
CPLEX 0% 16.53s 小规模问题最优解
LKH 0.39% 0.33s 中规模问题高效近似
GA 29.55% 7.77s 实现简单但精度低
DCNN(本文)3.97%0.022s实时性要求高的场景
3.2 泛化能力测试
  • 不同城市规模:无需额外训练,10-100 城市误差随规模缓慢增长(100 城市误差约 6.33%)。

  • 迁移学习提升:基于 50 城市模型微调,60-80 城市误差进一步降低(80 城市误差从 5.98% 优化至更低)。

3.3 真实基准验证
  • 在 TSPLIB(真实城市坐标数据集)上测试,结果与理论趋势一致,表明方法适用于实际场景。

4. 结论与未来方向

  • 优势:实时性强(求解时间 < 0.05s)、泛化能力好(跨规模适用)、无需标签;

  • 局限:受图像尺寸限制,超大规模问题需优化;

  • 未来方向:扩展至 TSP 变体(带时间窗、多 salesman 问题),设计更灵活的图像表示。


关键问题

  1. 该方法如何实现 TSP 的实时求解?与传统算法相比优势何在?

    答:通过问题分解将 TSP 转化为子问题,利用 DCNN 的前向传播直接输出下一个城市,避免迭代;DRL 训练无需标签,模型训练完成后求解新实例仅需 0.022 秒(50 城市),而 CPLEX 需 16.53 秒,LKH 需 0.33 秒,显著提升实时性。优势在于:① 求解速度快,不受问题规模激增影响;② 泛化能力强,跨城市规模无需重新训练。

  2. 该方法为何能在无标签情况下训练?DRL 的作用是什么?

    答:采用 DRL 中的策略梯度方法,智能体通过与环境(TSP 实例)交互自主学习:① 以路径负距离为奖励,鼓励选择短路径;② 蒙特卡洛采样生成轨迹,通过优势函数(A (τ))优化策略,无需预先知道最优解标签。DRL 的作用是替代监督学习的标签,使模型从自身决策中学习最优策略。

  3. 该方法在大规模 TSP(如 100 城市)中的表现如何?泛化能力的核心原因是什么?

    答:100 城市 TSP 中,平均误差可控制在 10% 以内,无需额外训练。泛化能力源于:① 问题分解降低了映射复杂度,子问题结构一致(均为选择下一个城市);② DCNN 通过图像特征提取学习城市间的空间关系,而非记忆特定实例;③ 过滤机制确保解的可行性,避免无效决策干扰。

个人感悟

其创新点在于将TSP序列问题转换成了视觉问题,这个视觉模块,感觉可以后续写论文水一个创新点。将TSP坐标离散映射到图像上,会丢失一些信息,这个映射处理还需要进一步优化。

强化学习的训练是需要微调的,感觉不是很稳定,尤其是没有一个固定的baseline的时候,policy可能会学歪,有时可以快速收敛,有时难以收敛

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90591.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MMaDA:多模态大型扩散语言模型

集众家之所长&#xff0c;成大一统。普林斯顿大学、北京大学、清华大学、字节跳动的研究者将“文本推理、多模态分析、图像生成”三大方向融合在一个单一扩散模型里&#xff0c;并用恰当的优化策略来提升模型在各个方向的性能。 研究动机 研究人员致力于开发一个能够处理多种模…

容器技术入门与Docker环境部署

容器技术入门与Docker环境部署Docker概述什么是 DockerDocker 的优势Docker 的应用场景Docker 核心概念(1)镜像(2)容器(3)仓库Docker 安装1.关闭系统防火墙和内核2.下载Docker的repo文件3.替换仓库地址4.更新索引文件并安装Docker5.添加国内镜像站6.开启Docker服务7.优化内核参…

【01】MFC入门到精通—— MFC新建基于对话框的项目 介绍(工作界面、资源视图 、类视图)

文章目录1 创建工程2 运行3 工作界面介绍3. 1 类视图 Class View3.2 如何打开 类视图3.3 资源视图1 创建工程 选择菜单项 文件->新建->项目&#xff0c;弹出 “新项目” 对话框。 选择 MFC&#xff0c;点击下一步&#xff0c;然后键入工程名称&#xff0c;本例取名“Add…

2025!在Windows的Python中安装GDAL包(小白能成!)

最近更新 在2025.06.05日&#xff0c;GDAL发布预告&#xff1a;新版本将适配pipeline和向量读写功能。 直到2025.06.25日&#xff0c;最新的版本才算发行出来。 有朋友催我赶紧更新教程&#xff0c;我上次更新是3月份的时候了&#xff0c;恰好是GDAL上一个版本出来的时间。 前…

Python第一次作业

# 1.技术面试题**&#xff08;1&#xff09;TCP与UDP的区别是什么&#xff1f;****答&#xff1a;TCP 是 “可靠但较慢” 的协议&#xff0c;适合对数据完整性要求高的场景&#xff1b;UDP 是 “快速但不可靠” 的协议&#xff0c;适合对实时性要求高的场景。两者互补&#xff…

Linux【大数据运维】下制作Redis绿色免安装包(一)

linux下安装Redis比较繁琐&#xff0c;遇到内网部署环境更是麻烦。根据经验将Redis打包一个绿色版进行使用。 大体思路&#xff0c;在一台正常的机器上面制造好安装包&#xff0c;然后上传到内网服务器&#xff0c;解压使用。 下载&#xff1a; wget https://download.redis…

89104 PCIe Switch芯片国产替代 - PCIE5.0国产AI服务器高性能扩展,支持海光/龙芯/飞腾等

以下是针对89104 PCIe Switch芯片国产替代的高性能PCIe 5.0 AI服务器扩展方案的详细分析&#xff1a;一、核心国产替代芯片&#xff1a;TL63104控制器‌技术规格‌支持PCIe 5.0全速率&#xff08;32 GT/s&#xff09;&#xff0c;提供968 Lanes配置&#xff0c;聚合双向带宽达1…

Docker跨架构部署实操

需求场景 python项目&#xff0c;开发环境以及可供测试的环境为X86架构下的LINUX服务器&#xff0c;但正式环境需要部署在ARM架构下的麒麟服务器&#xff0c;且正式环境后续可能会长时间处于断网状态&#xff0c;需要一份跨架构的部署方案。 解决思路 在 X86 上打包、在 ARM&am…

JavaScript 树形菜单总结

树形菜单是前端开发中常见的交互组件,用于展示具有层级关系的数据(如文件目录、分类列表、组织架构等)。以下从核心概念、实现方式、常见功能及优化方向等方面进行总结。 一、核心概念 层级结构:数据以父子嵌套形式存在,如{ id: 1, children: [{ id: 2 }] }。节点:树形结…

【python实用小脚本-131】Python 实现 HTML 到 PDF 转换:解决文档处理痛点的高效工具

引言 在当今数字化办公环境中&#xff0c;文档格式的转换需求日益频繁。假设你是一位市场营销人员&#xff0c;需要将公司网站的产品介绍页面&#xff08;HTML 格式&#xff09;转换为 PDF 文档&#xff0c;以便用于线下宣传。然而&#xff0c;手动复制粘贴内容并调整格式不仅…

【Linux操作系统】简学深悟启示录:Linux基本指令

文章目录1.什么是操作系统&#xff1f;2.Xshell的使用3.常用指令3.1 ls指令3.2 pwd指令3.3 cd指令3.4 touch指令3.5 mkdir指令3.6 rmdir指令 && rm指令3.7 man指令3.8 cp指令3.9 mv指令3.10 cat指令3.11 echo指令&#xff08;重定向&#xff09;3.12 more指令3.13 less…

「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件

如何将 Python 爬取的数据保存为 CSV 文件 从原始网络数据到纯净 CSV - 搭建通往分析的桥梁 恭喜你&#xff01;经过前面的努力&#xff0c;你的 Python 脚本终于成功地从一个网站上爬取了数据&#xff0c;一个充满信息的宝库正静静地躺在你的变量中。但接下来呢&#xff1f;…

qemu vcpu的创建过程

在 QEMU 中&#xff0c;vCPU 线程的启动流程涉及多个阶段&#xff0c;包括初始化、线程创建和执行逻辑。以下是基于搜索结果的详细分析&#xff1a; QEMU vCPU 线程的启动流程 1. 初始化阶段 设备实例化&#xff1a;QEMU 使用 QOM&#xff08;QEMU Object Model&#xff09;系统…

Spring Security架构与实战全解析

Spring security1.安全架构1. 认证who are you登陆系统&#xff1a;用户系统2. 授权权限管理&#xff1a;用户授权3. 攻击防护xss (cross-site scripting)csrf (cross-site request forgery)cors (cross-origin resource sharing)sql注入4. 扩展&#xff1a;权限管理模型a. RBA…

LeetCode Hot 100 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a;每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1&#xff1a;输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[…

Windows Edge 播放 H.265 视频指南

目录 &#x1f4cc;前言 一 . 什么是 H.265&#xff08;HEVC&#xff09;&#xff1f; 二、为什么 Edge 默认不能播放 H.265&#xff1f; 三、Edge 播放 H.265 解决方案 1 . 查看显卡是否支持硬解AMD GPU Decoder Device InformationNVIDIA GPU Decoder Device Informat…

线性代数--AI数学基础复习

原文链接&#xff1a;Github-Funny_Mr_Zhi GNN_playground 参考&#xff1a;麻省理工公开课 线性代数 MIT Linear Algebra Chapter1 可以带着问题去读&#xff0c;线性代数到底是什么&#xff0c;矩阵又是什么。尽管深入学习数学需要一种抽离出现实和直观理解的高度抽象思维&…

Cursor配置DeepSeek调用MCP服务实现任务自动化

文章目录1. 任务需求2. 环境准备2.1 Cursor安装2.2 Node.js安装2.3 DeepSeek模型Key申请2.4 高德地图Key申请3. MCP服务配置3.1 Cursor配置Server方式3.1.1全局设置3.1.2 项目级别设置3.2 MCP服务接入3.2.1 高德地图MCP服务3.2.2 Mysql MCP服务3.2.3 FileSystem MCP服务3.2.4 验…

java SpringBoot数据库查询 时间范围查询

exTime的类型为varchar 存储的数据格式为yyy-MM-ddTHH:mm:ss,查询时传进来的时间格式也需要为yyy-MM-ddTHH:mm:ss格式Query(value "SELECT * FROM test_fbep fbep WHERE delFlag 1 " "AND IF(?1 ! AND ?1 IS NOT NULL, fbep.passId ?1, TRUE) " &q…

Linux 操作系统如何实现软硬件解耦?从容器与硬件接口封装谈起

在计算机系统中&#xff0c;软硬件解耦是提升系统灵活性、可移植性和可维护性的核心设计思想。Linux 作为开源操作系统的典范&#xff0c;通过数十年的演进形成了一套成熟的解耦机制。本文将从容器技术和硬件接口封装两个维度&#xff0c;深入解析 Linux 如何实现软硬件解耦&am…