摘要
学习如何自动解决优化问题有可能为优化技术提供下一个重大飞跃。 近年来,自动学习启发式算法在路由问题上的性能一直在稳步提高,但纯粹基于机器学习的方法仍然优于最先进的优化方法。 为了缩小这一性能差距,我们提出了一种新颖的大型邻域搜索 (LNS) 框架,用于车辆路线规划,该框架集成了用于生成新解决方案的启发式方法。 学习机制基于具有注意力机制的深度神经网络,并且专门设计用于集成到 LNS 搜索设置中。 我们评估了我们在有能力的车辆路由问题(CVRP)和拆分交付车辆路由问题(SDVRP)上的方法。 在拥有多达 297 个客户的 CVRP 实例上,我们的方法明显优于仅使用手工启发式方法和文献中众所周知的启发式方法的 LNS。 此外,我们针对 CVRP 和 SDVRP 表明,我们的方法超越了现有机器学习方法的性能,并接近最先进优化方法的性能。
引言
机器学习领域的最新进展使神经网络能够学习如何执行各种任务。 在优化领域,人们对使用深度强化学习自动学习优化问题的启发式方法越来越感兴趣。 特别是对于实际应用,自动生成足够好的启发式算法非常有趣,因为与开发手工启发式算法相关的成本(就劳动力而言)并不总是值得性能提升。 虽然在自动学习启发式算法方面取得了成功,在某些问题上优于最先进的技术,例如容器预编组 [11],但许多问题已证明对于学习启发式算法来说极其困难。
路径问题,例如旅行商问题(TSP)和车辆路径问题(VRP),是实践中最广泛解决的优化问题之一。 然而,问题表示的高度可变的大小长期以来使得基于机器学习的方法的应用变得困难。 先进的深度学习模型架构的引入,例如指针网络 [31],现在可以处理输入数据的可变长度序列,使得机器学习方法在路由问题中的应用变得可行。
已经提出了几种学习如何解决路由问题的方法,但即使是最新的方法也无法胜过最先进的优化技术。 这种性能差距可以部分通过基于机器学习的方法的简单搜索策略来解释,例如,采样 [17] 或波束搜索 (BS) [19]。 为了解决这个问题,我们建议将学到的启发式方法整合到更高级别的元启发式方法中。 我们为 VRP 开发了一个大型邻域搜索 (LNS) 元启发式算法,该算法学习启发式算法以修复不完整的解决方案,并利用它们来指导解决方案空间中的搜索。 请注意,开发的元启发式不包含任何专门为某个路由问题开发的组件。 与以前的方法一样,我们的方法自己学习解决一类问题实例所需的复杂启发式方法。
在这项工作中,我们专注于有能力的车辆路由问题(CVRP)和相关的拆分交付车辆路由问题(SDVRP)。 CVRP 是由 [7] 引入的,是优化文献中研究最多的问题之一。 问题实例由完全无向图 G = (V, E) 描述,其中 V = {v0, …, vk}。 节点 v0 代表仓库,所有其他节点代表客户。 每个客户都有一个需求 di 并且从节点 vi 到 vj 的旅行成本由 c¯ij 给出。 有一个车队可用,每个车辆的容量为 Q。 任务是以最小的成本找到一组路线(都在车站开始和结束),以便满足所有客户的需求,并且每个客户都只有一个人访问 车辆。 SDVRP 与 CVRP 的不同之处仅在于客户可以被多辆车访问(即,一次交付可以拆分为多次交付)。 我们考虑距离矩阵服从三角不等式的 CVRP 和 SDVRP 版本。
我们提出了一种称为神经大型邻域搜索 (NLNS) 的新方法,它将学习到的启发式方法集成到复杂的高级搜索过程中。 NLNS 基于大型邻域搜索 (LNS),这是一种元启发式方法,通过迭代地将破坏和修复运算符应用于起始解决方案来探索所有可能解决方案的空间。 我们实现了两个简单的销毁程序,可以应用于任何路由问题。 修复被破坏的(即不完整的)解决方案的复杂得多的任务留给了通过策略梯度强化学习训练的深度神经网络。 出于多种原因,我们选择 LNS 作为我们方法的基础。 首先,LNS 提供了一个简单的框架来通过其破坏和修复范式来学习邻域函数。 其次,修复问题的复杂性主要与实例大小无关,这使我们能够处理比以前的方法大得多的问题实例。 最后,LNS 已成功应用于大量优化问题,包括许多路由问题(例如,[21])。 我们在一组不同的 CVRP 上评估 NLNS和 SDVRP 实例。 我们表明,NLNS 使用文献中的手工修复算子提供了对 LNS 的显着改进。 此外,NLNS 显着优于现有的机器学习方法,并且接近或匹配最先进的优化方法的性能。
这项工作的贡献如下: 1. 我们开发了一个 LNS,它依赖于学习的启发式来探索解决方案的邻域。 我们的方法经过专门调整,可以从 GPU 的并行计算能力中受益。
2. 我们为 VRP 提出了一种新的神经网络模型,该模型具有用于完成不完整解决方案的注意力机制。
本文组织如下。 首先,我们讨论使用基于机器学习的方法来解决路由问题的相关工作。
然后我们介绍了 NLNS 方法以及新的神经网络模型。 最后,我们在 CVRP 和 SDVRP 实例上评估 NLNS,并将其与最先进的优化和机器学习方法进行比较。
2相关工作
[10] 描述了神经网络在组合优化问题中的第一个应用,其中使用 Hopfield 网络计算 TSP 的解决方案。 尽管这一早期应用前景广阔,但由于引入了新的神经网络架构,基于学习的方法直到最近才成为传统优化方法的有力竞争者。 [31] 中引入的指针网络使用注意机制来学习给定输入序列排列的条件概率(例如,TSP 实例的客户排列)。 作者使用监督学习训练他们的模型来解决多达 50 个客户的 TSP 实例。 在推理过程中,使用了波束搜索,他们报告了具有多达 30 个客户的 TSP 实例的有希望的结果。 该想法由 [3] 扩展,其中使用 actor-critic 强化学习训练指针网络。 作者报告说,与基于监督学习的方法相比,具有 50 和 100 个客户的 TSP 实例的性能有所提高。
已经为 TSP 提出了许多其他方法。 在 [14] 中