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

【论文精读-4】RBG:通过强化学习分层解决物流系统中的大规模路径问题(Zefang Zong,2022)

论文地址:

RBG: Hierarchically Solving Large-Scale Routing Problems in Logistic Systems via Reinforcement Learninghttps://dl.acm.org/doi/pdf/10.1145/3534678.3539037

🧭 一、论文总体内容与研究目标

1. 研究背景

  • VRP(车辆路径问题) 是物流系统中的核心优化问题:如何让多辆车从仓库出发、高效地为众多客户送货并返回,目的是最小化总行驶距离

  • 现实中的物流系统往往涉及上千客户,而传统算法(如 HGS、LKH3 等启发式方法)或强化学习方法通常只能处理 ≤100 个客户 的小规模问题。

  • 因此,如何让强化学习在大规模 VRP 上高效、稳定地工作成为关键挑战。


2. 主要贡献(核心思想)

论文提出了一个新框架:Rewriting-by-Generating(RBG),结合了 强化学习(RL)+ 启发式优化思想
它通过“分而治之(Divide-and-Conquer)”来解决大规模问题,核心是两个模块:

  1. Generator(生成器):在局部小区域上生成路径解;

  2. Rewriter(重写器):从全局角度合并、再划分区域,用强化学习优化整体结构。

通过“生成—重写—再生成”的循环,RBG 能够逐步改进全局解。

主要创新点包括:

  • 一个端到端的分层强化学习框架,可在全局—局部间迭代优化;

  • “生成器”部分可灵活替换不同子算法(如 HGS、LKH3、RL-based Generator);

  • 在合成数据与真实物流数据上均显著优于最优启发式算法(HGS);

  • 已在中国广东某物流系统中实际部署并验证。


3. 论文结构(五大部分)

部分内容概要
第1章 引言介绍大规模 VRP 的挑战、传统算法与强化学习的局限,并提出 RBG 框架的总体思路。
第2章 相关工作(Related Work)对比传统启发式方法(如 Tabu、GA、ACO、HGS)与 RL-based 方法(如 PointerNet, ReWriter, L2I, L2D)之间的差异。指出现有 RL 方法无法扩展到上千客户规模。
第3章 预备知识(Preliminary)定义 CVRP 的数学模型与约束条件。
第4章 RBG 框架设计(核心部分)详细介绍 RBG 的五步流程:①区域初始化 → ②初始生成 → ③再划分(Re-partition) → ④区域选择与合并(Merge) → ⑤在合并区域上再生成解。说明强化学习如何训练 Rewriter 模块。
第5章 实验与分析在合成数据与真实物流数据上与 HGS、LKH3、L2D、ReWriter 等比较,展示 RBG 的性能、泛化能力(CVRPTW、CVRPMDP)与鲁棒性。并展示在实际物流系统中的部署结果。
第6章 在线部署与结果展示 RBG-HGS 在真实快递调度系统中的应用界面与性能,说明其实用性与实时响应能力。
第7章 总结与展望总结方法优势与未来改进方向(如更多约束下的 VRP 扩展)。

4. 简要总结


RBG 是一个将“强化学习的策略优化”与“启发式算法的高效局部搜索”结合起来的层次化分治框架,可在超大规模物流路由问题中实现接近最优、且实时可用的解法。


🧩 二、RBG 框架的结构与工作机制

RBG 全称 Rewriting-by-Generating Framework,是一种分层强化学习结构(Hierarchical RL Framework),
核心思想是:

“把大规模的 VRP 问题拆分成多个小区域,在局部生成解,再用强化学习重写区域划分,从而不断优化全局解。”

这个框架由 两个核心模块 组成:

  • Generator(生成器):在局部小区域上求解 CVRP;

  • Rewriter(重写器):从全局角度控制区域的划分与合并,用 RL 学习决策。

两者在整个流程中循环协同,形成“生成—重写—再生成”的迭代过程。


🧭 1 Overall Architecture — 框架总体结构

(1)总体思想

  • RBG 遵循 “Divide and Conquer(分而治之)”:
    把上千客户的整体问题分为若干小区域(region/hyper-region);

  • 每个区域内部由 Generator 独立求解;

  • 然后 Rewriter 负责跨区域地调整结构(合并或再划分),让全局方案更优。

(2)结构组成

框架包含两个互补组件:

模块作用特点
Generator(生成器)为每个区域生成局部路线解可以是强化学习模型(Attention Model)或启发式算法(LKH3、HGS)
Rewriter(重写器)学习区域划分、合并决策使用强化学习(REINFORCE)优化策略,使划分更合理、全局路线更优

(3)核心循环

1️⃣ 初始化区域划分;
2️⃣ 局部生成路径解;
3️⃣ 重写器基于结果重新划分并选择合并区域;
4️⃣ 在新区域上再次生成解;
5️⃣ 若新解更优 → 更新整体方案。

重复上述过程,直到模型收敛。


🟦 2 Region Initialization — 区域初始化

(1)目标

为了让 Generator 更容易工作,初始划分要空间合理,即相近客户尽量在同一区域。

(2)方法:K-means 聚类(结合空间与方向)

  • 输入:所有客户坐标 (xi,yi);

  • 输出:K 个初始超区域 Gk​;

  • 聚类距离为:

    其中:

    • dE​:欧氏距离;

    • dP​:极坐标方向差(角度差);

    • β:权重超参数(人工设定或调优)。

直观解释:既考虑“距离近”,又考虑“方向相似”,因为在 VRP 中车辆通常会在一个扇区内服务客户。


🟩 3 Generating — 局部生成器 (Generator)

(1)任务

在每个小区域(hyper-region)上独立求解 CVRP 的最优或近似最优解。

(2)生成器的实现方式

论文使用了两种类型:

类型方法特点
RL-based GeneratorAttention Model (AM, [20])Encoder–Decoder 结构,能快速生成解,强化学习端到端训练
非 RL-based GeneratorLKH3, HGS经典启发式算法,适用于 CVRP 及其变体

(3)灵活性

RBG 框架不依赖具体的 generator,任何能高效求解小规模 VRP 的方法都能被替换进去。


🟧 4 Rewriting — 区域重写器 (Rewriter)

Rewriter 是 RBG 的核心创新部分,它通过强化学习反复改进区域划分。
这一过程由三步构成:

(1)Partitioning(再划分)

  • 将选中的超区域 Gk 按路线级别划分成两个小区域 Gi′,Gj′​;

  • 划分时保持路线结构不变;

  • 使用路线质心 + PCA 降维分侧;

  • 保证两个子区域客户数相近。

(2)Selecting(区域选择)

  • 使用神经网络(MLP + LSTM + 平均池化 + FC)对每个区域生成向量表示 hih_ihi​;

  • 在邻域集合 Ui中,用 softmax 内积相似度:

    决定要与 Gi′合并的 Gj′;

  • RL 策略网络学习在何种状态下选择哪对区域最优。

(3)Merging(合并与更新)

  • 合并 Gi′与 Gj′ → 新超区域 Gmerge​;

  • 调用 Generator 在该区域重新生成解;

  • 若新解更优,则更新整体方案:

即“旧区域解”被“合并后新解”替换,这就是一次 Rewriting Step
整个过程不断循环,灰色框区域在不同轮次动态变化。


🟥 5 Optimization via REINFORCE — 强化学习优化

(1)奖励函数

Rewriter 的学习目标是:让合并后新解比旧解更好
奖励定义为:

  • C(π):路径总成本(总距离);

  • 若新解更短 → rt>0,反之则为负。

(2)梯度更新(策略梯度法)

采用 REINFORCE 算法更新策略参数:

其中:

  • B:批量大小;

  • bt:基线(baseline,用奖励的移动平均减少方差)。

(3)拒绝机制(Reject Rule)

若新解比旧解差,则:

  • 拒绝此次更新;

  • 直接进入下一轮;

  • 保证训练稳定性与解的单调改进。


🔁 小结:RBG 的五步流程

步骤内容模块是否学习
Step 1区域初始化(K-means)预处理
Step 2区域内生成解Generator否 / 可选学习
Step 3再划分Rewriter
Step 4选择+合并Rewriter (RL)✅ 学习部分
Step 5再生成并更新全局解Generator

http://www.dtcms.com/a/512338.html

相关文章:

  • 慢查询优化
  • 什么大型网站用python做的杭州科技公司排名
  • 四个字网站 域名莱芜金点子信息港最新招聘
  • 【算法笔记】暴力递归尝试
  • 一次学会二分法——力扣278.第一个错误的版本
  • 数据结构——二十七、十字链表与邻接多重链表(王道408)
  • 网站公司做的网站被攻击苏州网络推广
  • 网站权重能带来什么作用灰大设计导航网
  • i.MX6ULL Linux内核启动流程深度解析
  • Browser-Use 打造可操作浏览器的 AI 智能体
  • php网站开发入门到精通教程好玩的游戏网页
  • 代码仓库码云(gitee)配置环境记录
  • 织梦网站模板陶瓷广州建设行业网站
  • 面试(六)——Java IO 流
  • 怎么做视频网站教程php彩票网站建设教程
  • 大模型(Large Language Model, LLM)——什么是大模型,大模型的基本原理、架构、流程
  • 长春网站建设排名怎样用自己电脑做网站
  • 基于 Redis 的基数统计:高效的大规模去重与计数
  • 机械外贸网站站长网站工具
  • 广州企业建站素材安徽禹尧工程建设有限公司网站
  • MySQL if函数
  • Promise.all怎么用
  • 成都网站建设开发价玉环哪里有做网站
  • 01)mysql数据误删恢复相关-mysql5.7 开启 binlog、设置binlog 保留时间
  • 电力电子技术 第五章——非连续导电模式
  • Django 项目 .gitignore 模板
  • MySQL 中文排序(拼音排序)不生效问题全解析
  • 建站网络公司云南网站备案难吗
  • 深度学习(8)- PyTorch 数据处理与加载
  • JAVA:Spring Boot 集成 Jackson 实现高效 JSON 处理