Learning Collaborative Policies to Solve NP-hard Routing Problems 学习笔记
Posted 好奇小圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Learning Collaborative Policies to Solve NP-hard Routing Problems 学习笔记相关的知识,希望对你有一定的参考价值。
文章目录
摘要
最近,深度强化学习(DRL)框架显示出了解决NP-hard路由问题的潜力,如没有特定问题的专家知识的旅行商问题(TSP)。尽管DRL可以用于解决复杂的问题,但DRL框架仍然难以与展示出巨大性能优势的最先进的启发式方法竞争。本文提出了一种新的层次问题解决策略,即学习协作策略(LCP),该策略可以利用播种器(seeder)和修正器(reviser)两种迭代DRL策略有效地找到接近最优的解。播种者生成尽可能多样化的候选解决方案(种子),同时致力于探索完整的组合动作空间(即分配动作的序列)。播种器生成尽可能多样化的候选解决方案(seeds),同时致力于探索完整的组合动作空间(即分配动作的序列)。为此,本文使用一个简单而有效的熵正则化奖励来训练播种者的策略,以鼓励播种器找到不同的解决方案。另一方面,修正器修改由播种器生成的每个候选解决方案;它将整个轨迹划分为子行程,并同时修改每个子行程,以最小化其旅行距离。因此,训练修正器以提高候选解决方案的质量,重点关注减少的解决方案空间(这有利于开发)。大量的实验表明,所提出的双策略协作方案改进了单策略DRL框架,包括TSP、奖收集TSP(PCTSP)和有容量的车辆路由问题(CVRP)。
一、介绍
(0)基础
路由是一个组合优化问题,是离散数学和计算理论的突出领域之一。在路由问题中,旅行商问题(TSP)是一个典型的例子。TSP可以应用于各种工程领域的现实问题,如机器人路由、生物学和电气设计自动化(EDA),通过将约束和目标扩展到现实世界的设置:创造的TSP变体是TSP的扩展版本。然而,TSP及其变体是NP-hard的,这使得设计一个精确的求解器具有挑战性。
由于NP-hard,类似TSP的问题的求解器依赖于混合整数线性规划(MILP)求解器和手工制作的启发式。虽然它们通常在目标问题上提供显著的性能,但传统的方法有一些局限性。首先,在MILP求解器的情况下,目标函数和约束必须表述成线性形式,但许多现实世界的路由应用,包括生物学和EDA,都有一个非线性的目标。其次,手工制作的启发式方法依赖于对目标问题的专家知识,因此很难解决其他问题。也就是说,每当目标问题改变时,算法也必须重新设计。
针对传统方法的局限性,提出了深度强化学习(DRL)路由框架。DRL的一个好处是,DRL的奖励可以是任何值,甚至来自黑盒模拟器;因此,DRL可以克服MILP在实际应用中的局限性。此外,DRL框架可以自动设计较少依赖手工方式的求解器。
值得注意的是,本文研究的主要目标并不是优于特定问题解决器,如Concorde——一个TSP问题求解器。然而,本文基于DRL的问题解决策略最终侧重于实际应用,包括智能运输、生物序列设计、电气设备上的路由和设备放置。因此,本文评估了DRL框架在类似TSP问题上的性能,作为实际应用的潜在适用性基准,包括速度、最优性、可伸缩性和对其他问题的扩展能力。类似TSP的问题是很好的基准,因为它们有各种基线可以进行比较,并且可以很容易地建模和评估。
(1)贡献
本文提出了一种新的DRL方案,提出了学习协作策略(LCP),一种具有播种器和修正器两种策略的分层求解协议。播种器生成各种候选解决方案(种子),每个解决方案将由修正器迭代修改,以生成微调的解决方案。
拥有多样化的候选解决方案是很重要的,因为它提供了一个更好的机会,在其中找到最好的解决方案。因此,播种者致力于探索完整的组合动作空间(即分配动作的序列),从而提供尽可能多样化的候选解决方案。探索整个组合动作空间是很重要的,因为解决方案的质量随着其组成的不同而高度波动;然而,探索组合动作空间本质上是困难的,因为它不可避免地有许多可能的解决方案。因此,本研究提出了一种应用熵最大化方案的有效探索策略。
修正器修改由播种器生成的每个候选解决方案。修正器致力于利用策略(即关于问题的派生知识)来提高候选解决方案的质量。修正器将整个轨迹划分为子行程,并对每个子行程进行修正,以平行的方式尽量减少其旅行距离。这个方案提供了两个优点: (a)搜索限制解决方案空间可以更高效,因为与完整轨迹当使用强化学习得出政策相比,奖励信号对应的子路径的变量更少,和(b)搜索的种子可以并行加快修改过程。
本文的方法最显著的优势是,修正器可以重新评估从播种器中获得的、多元化但被低估的候选方案,而不会过早地放弃它。由于播种器探索了整个轨迹,因此在局部子轨迹中可能存在错误。因此,必须在本地纠正这些错误,以提高解决方案的质量。所提出的修改方案通过对全解进行分解和局部更新,使修改过程并行化。因此,它允许修正器在比传统局部搜索相比的单一推理中搜索更大的解决方案空间(即修正器的迭代次数小于传统的局部搜索2-opt ,或基于DRL的2-opt ),从而降低了计算成本。因此,可以保留候选方案,而不因为计算成本而提前排除它们。
该方法是一种与神经结构无关的方法,可应用于各种神经结构。播种器和修正器可以用任何神经结构参数化;本研究利用组合优化的代表性DRL模型AM对播种器和修正器进行参数化。实验结果表明,LCP改进了目标神经结构AM,在TSP、PCTSP和CVRP( N = 20 、 50 、 100 、 500 N = 20、50、100、500 N=20、50、100、500, N N N:节点数)和实际问题上优于竞争的DRL框架。此外,通过进行广泛的消融研究,我们展示了所提出的技术,包括熵正则化方案和修正方案,明显有助于性能的提高。
二、相关工作
0.基础
DRL框架在解决各种路由问题方面不断取得进展。DRL框架可以生成不依赖于目标问题的基本事实标签的求解器:它可以应用于未探索的问题。基于DRL的方法可以分为两部分:建设性启发式和改进启发式。作者调查了这两个类别以及当前新兴的机器学习(ML)与传统求解器的混合方法。
1.基于深度强化学习的建设型启发式
(0)基础
Bello等人引入了一种由指针网络组成的策略参数化的 actor-critic算法。他们提出了一个建设性的马尔可夫决策过程(MDP),其中的动作被定义为选择一个未服务的节点来访问,给出一个部分的解决方案;该策略被训练为添加一个节点,以按顺序提供一个完整的解决方案。后来,基于DRL的构造启发式来设计神经网络的体系结构被开发,同时保留构造的MDP。Khalil等人提出了一个具有图嵌入结构的DRL框架。Nazari等人,Duedon等人和Kool等人使用transformer重新设计了指针网络,并使用策略梯度方法对其进行训练。Kool等人的AM报告了各种NP-hard路由问题的大量结果,包括高速计算中的TSP、PCTSP、CVRP和定向问题(OP)。
(1)AM-变体
在AM取得有意义的成功后,许多研究从AM扩展出来。许多工程领域和行业都将AM应用到他们的领域中。例如,Liao等人提出了一种基于AM的电路路由算法。
一些研究集中在通过简单的技术来提高AM对TSP等经典路由问题的性能。Kwon等人提出了高效的的AM POMO强化学习方法。他们提出了一种新的RL基线,可以利用TSP和CVRP的特定问题的特性来减少AM的训练方差。此外,他们还提出了一种有效的TSP和CVRP后处理算法。然而,他们提出的方法有一个局限性,因为它是针对问题的,因为它使用了TSP和CVRP的域特性(例如,他们的方法仅限于应用于PCTSP.)。
Xin等人提出了AM型DRL模型——MDAM,用于NP-hard路由问题。他们的方法学习多个调幅解码器,并通过多个解码器推导出各种解决方案。增加解决方案多样性的目标与我们的研究类似。然而,本文的研究是不同的,本文增加了单个解码器的熵,并通过一个修正器改进了各种解决方案的错误。
2.基于深度强化学习的改进型启发式
与构造MDP不同,基于DRL的改进启发式被设计用来迭代改进完成的解决方案。大多数关于基于DRL的改进启发式的研究都是受到经典的局部搜索算法的启发,如2-opt 和大邻域搜索(LNS)。
Chen等人提出了一个基于DRL的本地搜索框架,称为NeuRewriter,该框架在CVRP和作业调度问题上显示出很好的性能。Wu等人和Costa等人通过学习2个选项,提出了一个基于DRL的TSP求解器。他们的方法改进了随机生成的解,与Chen等人的方法不同,重写了由传统的启发式求解器给出的解。Hottung & Tierney 提出了一种新的VRP搜索方法,它破坏和修复一个重复启发LNS的解决方案。他们的方法在CVRP上具有良好的性能。
改进启发式方法通常比建设性启发式方法表现出更好的性能,但通常比建设性启发式方法表现得更慢。在TSP的情况下,神经网络的建设性启发式推断的数量与要访问的城市的数量相同。然而,改进启发式的推断的数量通常要大得多。
3.带有传统求解器的混合方法
最近有一些关于使用传统求解器的混合方法有很好的研究。Lu等人提出了一种混合方法,其中学习策略来控制改进操作符(手工启发式)。值得注意的是,它们的性能优于LKH3,LKH3在机器学习(ML)社区中被广泛认为是值得挑战的方法。Joshi等人,将图神经网络(GNN)模型与波束搜索算法相结合。他们用监督学习训练GNN,以生成候选节点的命中图。然后经过训练的GNN减少了一个改进启发式的搜索空间。类似地,Fu等将监督GNN模型与蒙特卡罗树搜索(MCTS)结合,Kool等将监督GNN模型与动态规划结合。他们的方法取得了显著的性能,表明ML方法可以有效地与传统运筹学(OR)方法协作。
混合方法和基于DRL的方法的研究范围是不同的。混合方法可以通过与经典求解器的协作来克服目标任务中的经典求解器。然而,混合方法继承了经典求解器的局限性,即对其他任务的可扩展性较差。基于DRL的方法可以应用于各种现实世界的任务,而没有一个经典的求解器;我们也可以利用基于DRL的任务来完成未被探索的任务。本文研究了基于DRL的无经典求解器的np硬路由方法。
三、路由问题的表述
(0)基础
本节以给定二维欧几里得TSP的马尔可夫决策过程(MDP)公式。针对其他问题的MDP的公式见附录A.1。
TSP的主要目标是发现最短的哈密顿回路(Hamiltonian cycle)。TSP图课题被表示为N个节点序列的2D欧几里得空间,
s
=
x
i
i
=
1
N
\\boldsymbols=\\left\\x_i\\right\\_i=1^N
s=xii=1N其中
x
i
∈
R
2
x_i \\in \\mathbbR^2
xi∈R2。接着,TSP解决方案可以被表示为输入序列的
π
\\pi
π排列:
π
=
⋃
t
=
1
t
=
N
π
t
,
π
t
∈
1
,
…
,
N
,
π
t
1
≠
π
t
2
if
t
1
≠
t
2
\\pi=\\bigcup_t=1^t=N\\left\\\\pi_t\\right\\, \\quad \\pi_t \\in\\1, \\ldots, N\\, \\quad \\pi_t_1 \\neq \\pi_t_2 \\quad \\text if \\quad t_1 \\neq t_2
π=t=1⋃t=Nπt,πt∈1,…,N,πt1=πt2 if t1=t2
目标是最小化路程长度
L
(
π
∣
s
)
=
∑
t
=
1
N
−
1
∥
x
π
t
+
1
−
x
π
t
∥
2
+
∥
x
π
N
−
x
π
1
∥
2
L(\\boldsymbol\\pi \\mid \\boldsymbols)=\\sum_t=1^N-1\\left\\|x_\\pi_t+1-x_\\pi_t\\right\\|_2+\\left\\|x_\\pi_N-x_\\pi_1\\right\\|_2
L(π∣s)=∑t=1N−1∥xπt+1−xπt∥2+∥xπN−xπ1∥2 。
接着,作者制定了TSP的建设性马尔可夫决策过程(MDP)。
(1)状态
MDP的状态表示为TSP的部分解或一系列先前选择的动作: π 1 : t − 1 \\pi_1: t-1 π1:t−1
(2)动作
操作被定义为选择一个未提供服务的任务。因此任务可以被标识为 π t \\pi_t πt其中 π t ∈ 1 , … , N \\ π 1 : t − 1 \\pi_t \\in\\left\\\\1, \\ldots, N\\ \\backslash\\left\\\\boldsymbol\\pi_1: t-1\\right\\\\right\\ πt∈1,…,N\\π1:t−1
(3)累计奖励
本文将问题实例中解决方案的累积奖励(一个分配序列)定义为比赛时间的负值: − L ( π ∣ s ) -L(\\pi \\mid s) −L(π∣s)
(4)构建策略
最后坐着定义构建策略
p
(
π
∣
s
)
p(\\pi|s)
p(π∣s),这可以从TSP图
s
s
s中生成解决方案
π
\\pi
π。构建策略
p
(
π
∣
s
)
p(\\pi|s)
p(π∣s)可以被分解为: 以上是关于Learning Collaborative Policies to Solve NP-hard Routing Problems 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章 Collaborative Translational Metric Learning论文小结(附核心pytorch代码) Collaborative Translational Metric Learning论文小结(附核心pytorch代码) Collaborative Translational Metric Learning论文小结(附核心pytorch代码) Collaborative Translational Metric Learning论文小结(附核心pytorch代码) Collaborative Translational Metric Learning论文小结(附核心pytorch代码) 9Collaborative Metric Learning Recommendation System: Application to Theatrical Movie Releases----
p
(
π
∣
s
)
=
∏
t
=
1
t
=
N
p
θ
(
π
t
∣
π
1
:
t
−
1
,
s
)
p(\\boldsymbol\\pi \\mid \\boldsymbols)=\\prod_t=1^t=N p_\\theta\\left(\\pi_t \\mid \\boldsymbol\\pi_1: t-1, \\boldsymbols\\right)
p(π∣s)=t=1∏t=Npθ(πt∣π1:t−1,s)
其中
p
θ
(
π
t
∣
π
1
:
t
−
1
,
s
)
p_\\theta\\left(\\pi_t \\mid \\boldsymbol\\pi_1: t-1, \\boldsymbols\\right)
pθ(πt∣π1:t−1,s)是一个由参数
θ
\\theta
θ