LEARN TO DESIGN THE HEURISTICS FOR VEHICLE ROUTING PROBLEM翻译

摘要

本文提出了一种学习局部搜索启发式方法的方法,该方法可迭代改进车辆路由问题 (VRP) 的解决方案。 局部搜索启发式算法由破坏候选解的破坏算子和将被破坏的解重建为新解的后续修复算子组成。 所提出的神经网络通过 actor-critic 框架进行训练,包括一个编码器,该编码器是一个改进版的图注意力网络,其中集成了节点嵌入和边缘嵌入,以及一个基于 GRU 的解码器呈现一对破坏和修复算子 . 实验结果表明,它在中等规模的数据集上优于传统的启发式算法和现有的 VRP 神经组合优化,并且能够处理大规模数据集(例如超过 400 个节点),这是一个相当大的挑战。 这片区域。
此外,由于所提出的网络学习设计具有更好性能的启发式,因此消除了对专业知识和手工启发式设计的需求。 我们的实施可在线获得。

引言

组合优化是应用数学和运筹学中一个活跃的研究领域,在供应链管理、航空规划、城市交通、电力工业等领域有着广泛的应用。 具有一定约束条件的目标函数”。 车辆路径问题(VRP)是组合优化中最重要和最具挑战性的主题之一。 它旨在为车队找到一组最佳路线,将货物从仓库运送到客户(节点)。 VRP 的目标函数是在总里程和/或车队规模方面最小化总路线成本。 在实践中,基本 VRP 扩展了约束,例如,在时间窗口、车辆容量或提货和交付对的时间窗口。 寻找 VRP 的最优解是 NP 难的,即使节点数量适中(例如 100),穷举搜索也难以处理。 引入了分支定界和列生成等复杂的精确算法来寻找最佳解决方案,但仍然具有繁重的计算负载,这对大规模问题和响应时间至关重要的问题构成了巨大挑战。 或者,商业求解器倾向于使用启发式方法在相对较短的计算时间内为中到大规模问题找到接近最优的解决方案。 超大规模邻域搜索 (VLNS) 是主要的启发式框架,它通过迭代地将当前解决方案转换为邻域中另一个可行的解决方案以进行探索,从而摆脱局部最小值,其中邻域被定义为一组与当前解决方案相似的解决方案,只有有限的修改。
近几十年来,人们对手工启发式设计进行了深入研究 [1, 2, 3, 4, 5]。
启发式设计特别利用了专家的直觉,使其成为一个有前途的领域,可以通过机器学习进行集成,从而实现自动化和增强。 [6] 对集成机器学习和组合优化的通用方法进行了调查。 [7] 使用 Seq2Seq 框架 [8] 来预测旅行商问题(TSP)要访问的节点排列的分布,通过策略梯度方法 [9] 进行训练。 [10] 使用图嵌入和注意力机制作为编码器,RNN 作为解码器为 VRP 生成一系列连续动作。 [11, 12] 提出了一种多头注意力模型来解决 TSP 和 VRP 等路由问题。 尽管这三种方法的模型设计不同,但它们共享一些通用的方法,例如:1) 应用带有注意力的编码器 - 解码器架构来生成构建路由的顺序决策,2) 嵌入对于编码器端来说是必不可少的,以合并有关节点的信息 和需求,以及 3) 网络由 Policy Gradient 训练。 [13] 应用指针网络 [14] 和分层强化学习 [15] 来解决具有约束的 VRP,遵循上述类似的方法,此外还有分层强化学习的思想,以将约束与目标函数解耦。 如本文 (13) 所述,奖励是总成本加上惩罚,该奖励产生拉格朗日松弛,这只是原始 VRP 的下限。 [16] 不是直接生成路由作为解码器的顺序输出,而是提出了一种强化学习方法,通过在 VLNS 框架中迭代应用单个删除然后插入(即 1-交换)启发式来改进现有解决方案。 这种方法将深度学习与启发式算法相结合,以提高解决方案的有效性和质量,但神经网络仅将 1-exchange 策略作为一种具体的启发式方法来帮助。
在本文中,我们提出了一种新的方法来学习如何设计通用启发式而不是具体的启发式(例如,[16] 中的 1-exchange),它迭代地改进 VRP 的初始解,直到它收敛到可行解 接近最优。 我们的方法受到我们上面简要介绍的研究工作的启发,例如,由 actor-critic 训练的嵌入和编码器-解码器架构的想法,但具有新颖的设计。 所提出的方法的贡献有三方面:
• 所提出的方法在没有专家监督训练集的情况下学习设计通用启发式方法,并且学习到的启发式方法优于传统的手工方法和其他神经组合优化算法。 据我们所知,我们的方法是第一个通过机器学习设计通用启发式方法的方法,这意味着消除了手工启发式设计的需要。
• 在我们的方法中,嵌入由节点嵌入和边嵌入组成,两者都由图注意力网络 (GAT) [17] 的修改版本集成,作为需求和拓扑的联合表示。 因此它适用于非欧空间,其中行进距离不等于任意两个节点之间的欧几里得距离。
• 所提出的方法能够在相对较短的时间内解决大规模的 VRP,例如 400 多个节点。 据我们所知,对于这种规模的 VRP,其他神经组合优化算法无法在可接受的时间内获得接近最优的解决方案。
本文组织如下。 首先我们在第 2 节讨论 VRP 和 VLNS 的背景,然后在第 3 节介绍我们的方法以及神经网络的新设计。第 4 节介绍实验设置、训练细节和实验结果。最终结论和未来 工作在第 5 节中讨论。

2背景

2.1vrp
VRP 定义在有向图 G = (N , A) 上,其中 i ∈ N = {0, 1, …, N} 表示如果 i > 0 的客户或仓库的第 i 个节点,如果 i = 0,并且 ai,j ∈ A, i, j ∈ N , i 6= j 表示节点 i 到 j 的弧。 待交付到节点 i 的货物需求为 qi ,节点 i 上的服务时间窗口从 si 开始到 ei 结束。 VRP 的目标是找到一个或几个哈密顿循环(每个顶点只访问一次的循环),1)满足需求 qi,i∈N,2)由部分或全部 K 个车辆提供服务,以及 3) 服务时间窗口、车辆容量等的约束。哈密顿循环集将在下文中称为解决方案。
3提出的模型
3.1编码
节点信息和拓扑分别包含在节点和边的原始嵌入中。 第 i 个节点的原始节点嵌入是一个 8 维向量 ni,每个元素为:1)服务开始时间 si,2)服务结束时间 ei,3)需求 qi,4)相应路线的总需求,5 ) 到该节点的相应路线的需求的总和,6) 沿该路线到该节点的总行驶距离,7) 沿该路线行驶到该节点的时间,以及 8) 在 [19] 中定义的可能的前移。 同时,连接节点 ni 和 nj 的弧 ai,j 的原始边嵌入是一个二维向量 ei,j ,由沿 ai,j 的行进距离和关于该弧是否为解的一部分的二进制指示符组成 .
两个嵌入的元素都被归一化。 归一化的原始嵌入通过修改版本的图注意力网络(EGATE,或带边缘嵌入的元素方式 GAT)进一步集成,将在下一节介绍。
3.2解码器
图注意力网络 (GAT) [17] 是一种神经网络架构,通过注意力机制传播节点信息,对图拓扑具有强大的表示能力。 对于有向图 G = (N , A) 形式的 VRP,弧 ai,j ∈ A 携带每次旅行的成本和行驶距离等信息,而 GAT 仅集成节点 i ∈ N 携带的信息。 这一事实促使我们引入 EGATE 作为 GAT 的修改版本,其中节点嵌入不仅通过原始 GAT 提出的注意力权重与其他节点一起更新,而且还使用边嵌入 ei 表示的弧信息进行更新 ,j。 因此,节点集 N 和弧集 A 都有助于每个节点的注意力权重,如下面的数学描述。
4实验
4.1 设置
我们已经对两种 VRP 设置进行了实验:基本 CVRP(限制车辆容量的 VRP)和广泛采用的 CVRPTW(限制车辆容量和服务时间窗口的 VRP)。
4.1.1 CVRP
在每个实例中,在 100*100 的地图上随机生成 100 个节点,其中第一个节点为 depot,其余为客户节点。 每个节点的需求是 [1, 9] 内均匀分布的随机变量。 车辆的容量为 100。 由于 CVRP 没有服务时间窗口约束,因此通过消除第 3.1 节中的元素(1)、(2)和(8),这种情况下的原始节点嵌入仅包含 5 个维度。
4.2 训练细节
我们应用上述设置来生成训练和测试集。 我们总共训练了 1000 个 epoch 的模型,每个训练 epoch 包含 128 个随机生成的实例。 (请注意,训练数据是与训练过程并行且独立生成的。每个实例包含 Nrollout roll-outs,对于每个 rollout,生成 m 个训练样本作为 k 步 TD 误差,k = 1,… …, m 分别表示,每个 epoch 有 128 ∗ m ∗ Nrollout 训练样本。)测试集包含 100 个实例,用于比较基线和我们模型的性能。
编码器由隐藏大小为 NE 的 EGATE LE 层组成,将 8 维原始节点嵌入映射到 NE 维扩展节点嵌入,并将 2 维原始边缘嵌入映射到 NI,边缘维扩展边缘嵌入。 每个 EGATE 层的输出也是一个 NE 维的向量。
在解码器端,单元的隐藏大小为 ND。 Critic 是一个全连接的神经网络,包含一个大小为 NC 的隐藏层。 Critic 的输出是一个标量变量,表示当前状态的值。
对于这两个任务,训练批次大小 BS = 64、m = 10、Nrollout = 20、LE = 2、NE = ND = NC = 64 和 NI,edge = 16。选择这些超参数是为了训练 模型在 100 小时内。 这些算法在具有 2 个 Nvidia 2080Ti GPU 和 40 个 CPU 内核的服务器上运行。 评估神经网络时仅使用一个 GPU。 我们评估中的所有神经网络都在 PyTorch [21] 中实现。 该模型使用 Adam 优化器进行训练,学习率为 3e - 4,CVRP 任务的评估批大小为 100,CVRPTW 任务的评估批大小为 256,如下一节所述。
4.3 实验结果
我们将我们的算法与手工启发式设计和神经组合优化算法进行比较。
手工启发式设计包括三种方法:随机,其中启发式算子是一个随机函数,自适应大型邻域搜索 (ALNS) [22] 在运行时以自适应方式选择最佳启发式方法,以及通过字符串去除的松弛归纳 (SISR) [ 23] 其中根据当前路线和节点之间的距离的组合删除节点。 对于神经组合优化算法,我们设法重现了注意力模型 (AM) [11]。 我们尝试了两种类型的设置,要么使用贪婪搜索进行解码,要么将一批采样结果中的最佳结果应用为 softmax 结果。
我们已经对所有模型运​​行了 1000 次迭代,但 SISR 逐渐进行了 1,000、200,000 和 100 万次迭代。 SISR 100 万次迭代的运行结果可以作为足够接近全局最优的基准。 CVRP的实验结果见表1,CVRPTW的实验结果见表2。 表中的模型名称为{model name}[evaluation batch size]-{iteration number}的形式,例如AM1280代表Attention Model,评估batch size为1280,EGATE100-1K代表我们提出的评估batch模型 总共大小为 100 和 1000 次迭代。 这些表中的成本是超过 100 个实例的平均成本。 如果批量测试,即批量大小 > 1,则选择每个实例批次的最低成本作为每个实例的结果。 结果表明,对于 CVRP,我们 1000 次迭代的方法非常接近基准,只有 0.58% 的差距,并且优于所有 1000 次迭代的算法; 对于 CVRPTW,out 方法在 1000 次迭代时获得最佳结果,并且在 100 万次迭代时优于 SISR 生成的基准。
4.4 解决大规模问题
VRP,尤其是 CVRPTW,具有大规模数据集,例如超过 400 个节点,是组合优化中已知且相当大的挑战。 已知的超过 400 个节点的神经组合优化算法没有报告实验结果,因此我们仅将我们的方法与手工启发式算法进行比较。 每个实例包含 400 个随机生成的节点(包括一个仓库作为第 0 个节点),其方式与设置部分中描述的类似。 除了测试批次大小为 192 和 LE = 3 外,超参数保持不变,即堆叠 3 个 EGATE 层以随着拓扑的扩大来改善感受野。 为了简化计算,在每个 EGATE 层和每个节点 i 中,除最靠近节点 i 的前 10% 内的节点和相关边之外的所有节点和相关边,为EGATE 层中屏蔽了当前路线中的现有节点和站点本身。 通过这种方式,整个拓扑变得稀疏,但更多的 EGATE 层保证了空间探索。 在此设置中使用了 32 个 CPU 内核。 实验结果如下表3和图(4)所示。 从表和图中我们可以看到,我们提出的方法在相同的迭代中优于 ALNS 和 SISR,并且以 4.4% 的差距接近基准。

5 结论

在本文中,我们提出了一种新颖的神经网络,可以学习设计车辆路径问题(VRP)的大邻域搜索启发式算法。 大邻域搜索启发式包括销毁算子和修复算子,其中销毁算子从当前路由中移除一组选定节点,修复算子将这些节点重新插入其他路由以生成更新的解决方案。 我们将销毁运算符抽象为定义节点的子集,以及修复算子将这个子集重塑为所选节点的有序列表,每个节点都有一个概率。 通过这种方式,大邻域搜索启发式将产生一个随机策略 π([η1, η2, …, ηM]),其中 ηi 是一个选定节点,[.] 表示一个有序列表。 通过将此策略分解为序列形式,如 π(η1) QM m=2 π(ηm|[η1, …, ηm−1]),设计和训练神经网络模型以产生序列 具有概率的节点,并使用诸如 actor-critic 之类的梯度策略架构来训练这个网络。 我们提出的网络由编码器和解码器组成。 编码器基于我们表示为 EGATE 的图注意力网络 (GAT) 的修改版本,将需求等节点信息和行程成本等弧形信息集成在一起。 EGATE 考虑如何将图拓扑中弧所携带的信息(以边嵌入的形式)与 GAT 提出的节点所携带的信息一起传播到注意力权重中。 EGATE 可以堆叠成多个层,以扩展图拓扑上的感受野,从而促进节点和弧跨相对较长距离的信息传播。 编码器的输出被馈送到解码器以生成顺序输出 π(ηm|[η1, …, ηm−1])。 我们的解码器设计基于 GRU 并遵循指针网络的设计。 具有中等规模数据集的 CVRP 和 CVRPTW 的实验结果表明,我们提出的网络优于其他手工启发式求解器和我们可以在相同迭代中重现的其他神经组合优化方法。 此外,我们提出的网络可以解决由包含 400 个节点的数据集测试的大规模问题。 据我们所知,我们提出的网络是唯一报道的神经组合优化方法,可以解决这个规模的 VRP,并且优于其他手工启发式求解器。 因此,我们提出的网络能够学习如何设计大邻域搜索启发式算法,并且具有更好的性能。 由于这一事实,消除了对专业知识和手工启发式设计的需求。
进一步的研究课题包括但不限于以下建议: 遵循该范式的其他组合优化问题的网络设计,特别是要做出顺序决策的问题; EGATE 注意力权重的可见性以及与图拓扑相关的解释; EGATE 在其他需要结合节点和弧线信息的图神经网络研究中的应用,以及堆叠 EGATE 不同层的掩蔽策略。

你可能感兴趣的:(RL&OR)