旅行商问题的变压器网络

摘要

旅行推销员问题(TSP)是最流行和研究最多的组合问题,始于1951年的冯·诺依曼(von Neumann)。它推动了诸如切平面,分支和边界,局部搜索,拉格朗日松弛和 模拟退火。 在过去的五年中,出现了有前途的技术,其中(图)神经网络已经能够学习新的组合算法。 主要问题是深度学习是否可以从数据中学习更好的启发式方法,即取代人工设计的启发式方法? 之所以具有吸引力,是因为开发有效解决NP难题的算法可能需要多年的研究,而且许多行业问题本质上都是组合的。 在这项工作中,我们建议将最初为自然语言处理而开发的最近成功的Transformer体系结构改编为组合式TSP。 训练是通过强化学习来完成的,因此没有TSP训练解决方案,并且解码使用波束搜索。
我们报告说,与最近学习的启发式算法相比,性能得到了改善,TSP50的最佳差距为0.004%,TSP100的最佳差距为0.39%。

传统的TSP解决方案

TSP最初是由威廉·汉密尔顿(William Hamilton)在19世纪提出的。 问题如下: 给定一个城市列表以及每对城市之间的距离,什么是最短的路径,它可以一次访问每个城市并返回原点城市? TSP属于路由问题的一类,在诸如仓库,运输,供应链,硬件设计,制造等行业中每天都使用。TSP是一个NP难题,需要对复杂性O(n!)进行详尽的搜索。 TSP也是研究最多的组合问题。 它推动了重要优化方法的发展,包括切割平面[10],分支定界[4,16],局部搜索[8],拉格朗日松弛[12]和模拟退火[24]。
存在两种解决组合问题的传统方法: 精确算法和近似/启发式算法。 确切的算法可以保证找到最佳解,但是当n增大时,它们变得很棘手。 近似算法以最优性为代价来提高计算效率。 它们是针对特定问题的,通常是通过迭代应用简单的人为规则(称为启发式)来设计的。 它们的复杂度是多项式,并且其质量取决于表征最坏/平均情况错误而不是最优解决方案的近似比率。
TSP的精确算法由穷举搜索,动态或整数编程给出。
在[16]中提出了一种动态规划算法,用于TSP,复杂度为O(n 22 n),在n> 40时变得棘手。具有切平面(CP)和分支定界的通用整数规划(IP)求解器 (BB)在[15]中被引入。 最后,在[2]中设计了高度专业的线性IP + CP + BB,即Concorde。
对于当前存在的大型实例,Concorde被广泛认为是最快的精确TSP求解器。已经介绍了几种近似/启发式算法。 Christofides算法[7]用最小生成树来近似TSP。 该算法具有O(n 2 log n)的多项式时间复杂度,并且可以保证找到最佳解的3/2范围内的解。 最远/最近/贪婪插入算法[20]的复杂度为O(n 2),最远插入(实践中最佳插入)的近似比为2.43。 Google OR-Tools [14]是一个高度优化的程序,可以解决TSP和更多的车辆路径问题。 该程序采用了不同的启发式方法 模拟退火,贪婪下降,禁忌搜索,以在搜索空间中导航,并通过本地搜索技术完善解决方案。 2-Opt算法[27,21]提出了一种基于移动的启发式算法,该算法替换了两条边以减小游程长度。 复杂度为O(n 2m(n)),其中n 2是节点对的数量,m(n)是必须测试所有对以达到局部最小值的次数(最坏的情况是O(2 n / 2))。 近似比率为4 /√n。 在[6]中提出了扩展到3-Opt移动(替换3个边)的方法。 最后,LKH-3算法[18]引入了求解TSP的最佳启发式算法。 它是基于2-Opt / 3-Opt的原始LKH [28]和LKH-2 [17]的扩展,其中使用最小生成树[17]估计边缘候选者。 LKH-3可以解决各种TSP类型的问题。

神经网络解决方案

在过去的十年中,深度学习(DL)通过用从数据中学到的特征代替手工制作的视觉/文本/语音功能,极大地改善了计算机视觉,自然语言处理和语音识别[26]。 对于组合问题,主要问题是DL是否可以从数据中学习比手工制作的启发式方法更好的启发式方法? 这很有吸引力,因为开发有效解决NP难题的算法需要多年的研究(TSP已被积极研究了70年)。 此外,许多行业问题是组合的。 在过去的五年中,出现了有前途的技术,其中(图形)神经网络已经能够通过监督学习或强化学习来学习新的组合算法。 我们在下面简要总结了这一工作线。
•HopfieldNets [19]:设计用于解决(小型)TSP的第一个神经网络。
•PointerNets [39]:使用现代DL解决TSP和组合优化问题的先驱。 这项工作结合了递归网络,使用注意力机制对城市进行编码,并对游览中的节点顺序进行解码。 网络结构类似于[3],已成功应用于NLP。 解码是自动回归的,网络参数是通过监督学习与近似TSP解决方案一起学习的。
•PointerNets + RL [5]:作者使用强化学习(RL)进行了改进[39],该学习消除了生成TSP解决方案作为监督培训数据的需求。 游览时间用作奖励。 研究了两种RL方法: 标准的无偏强化算法[40],以及可以探索更多候选者的主动搜索算法。
•顺序不变的PointerNets + RL [33]:原始网络[39]不会因输入城市顺序的排列而不变(这对NLP很重要,但对TSP却不重要)。 这需要[39]随机排列输入顺序,以使网络学习这种不变性。 著作[33]通过使编码器排列不变来解决这个问题。
•S2V-DQN [9]:此模型是一个图形网络,该图形网络将图形和部分巡视作为输入,并输出状态值函数Q来估计巡视中的下一个节点。 训练是通过RL和内存重播完成的[31],它可以鼓励中间的奖励,从而鼓励最远的节点插入启发式
•二次分配问题[34]:TSP可以被公式化为QAP,这对NP来说很困难,而且也很难近似。 以监督方式训练基于节点距离邻接矩阵幂的图网络。 损失是地面真值循环的邻接矩阵与其网络预测之间的KL距离。 用波束搜索计算可行的行程。
•不变排列池网络[23]:这项工作解决了具有多个推销员的TSP变体。 该网络通过监督学习进行训练,并输出分数解,该分数解通过波束搜索转换为可行的整数解。 该方法是非自回归的,即 单通。
•Tranformer-encoder + 2-Opt启发式[11]:作者使用标准变压器对城市进行编码,并使用由部分游览中的最后三个城市组成的查询对这些城市进行顺序解码。 该网络使用Actor-Critic RL进行了培训,并通过标准的2-Opt启发式算法完善了该解决方案。
•变压器编码器+注意力解码器[25]:这项工作还使用标准变压器进行编码城市和解码是连续的,查询由第一个城市,部分游览中的最后一个城市以及所有城市的全局表示组成。 进行培训时要加强和确定性基准。
•GraphConvNet [22]:这项工作通过监督学习了一个深层的图网络,以预测边沿在TSP巡回中的概率。 通过波束搜索生成可行的巡回路线。 该方法使用一次通过。
•2-Opt学习[41]:作者设计了一个基于变压器的网络,以学习为2-Opt启发式算法选择节点(原始2-Opt可能需要O(2 n / 2)步才能停止)。 学习是由RL和行为评论家执行的。
•带有蒙特卡洛树搜索[42]的GNN:基于AlphaGo [35]的最新工作,它通过使用MCTS扩展了图网络,从而通过评估游览中的多个下一个节点候选者来改善游览的搜索探索。 这改进了对自回归方法的搜索探索,一旦选择了节点,自回归方法将无法返回。

拟议的体系结构

我们将TSP视为“翻译”问题,其中源“语言”是一组2D点,目标“语言”是具有最小长度的导览(索引序列),并采用原始的变形金刚[37] 解决这个问题。 我们通过与[25]相同的设置通过强化学习进行训练。 奖励是行程长度,如果火车网络在一组随机TSP上提高了基线,则只需更新基线即可。 有关所建议的体系结构的说明,请参见图1。
编码器。 它是标准的变压器编码器,具有多头注意和残余连接。 唯一的区别是使用批处理规范化,而不是层规范化。 存储器/速度复杂度为O(n 2)。 正式地,编码器方程为
公式(1234567)
解码器。 解码是自动回归的,一次是一个城市。 假设我们已经解码了游览中的前t个城市,并且我们想预测下一个城市。 解码过程由以下四个详细步骤组成,并在图3中进行了说明。

架构对比

比较用于NLP(翻译)和TSP(组合优化)的变压器,输入序列的顺序与TSP不相关,但是对于TSP和NLP,输出序列的顺序均由PE编码。 由于我们在编码阶段考虑了所有城市,因此TSP-Encoder受益于批量归一化。 由于一次解码一个向量(如NLP中的自动回归解码),因此TSP解码器与“层归一化”一起使用时效果更好。 TSP变压器是通过强化学习来学习的,因此不需要TSP解决方案/近似值。 用于NLP和TSP的两个变压器都具有二次复杂度O(n 2L)。
与[25]和[11]的封闭神经网络模型相比,我们使用相同的变压器编码器(带有BN),但是我们的解码架构不同。 我们使用全部构造查询带有自我注意模块的部分游览城市。 [25]使用具有所有城市全局代表的第一个和最后一个城市作为下一个城市的查询。 [11]使用部分游览中的最后三个城市定义查询。 此外,我们的解码过程以不同的方式开始。 我们添加一个令牌城市z∈R 2。 该城市不存在,其目标是通过使用自我关注模块查询所有城市,在可能的最佳位置开始解码。 [25]以编码城市的均值表示以及第一个和当前城市的随机令牌开始解码。 [11]使用最近三个城市的随机令牌开始解码。

讨论

在这项工作中,我们基本上专注于体系结构。 我们观察到,Transformer体系结构可以成功解决TSP组合优化问题,从而扩大了NLP和CV的Transformer的成功范围。 它还可以改善最近学到的启发式方法,TSP50的最佳差距为0.004%,TSP100的最佳差距为0.39%。
可以考虑采用更好的采样技术,例如已知可以改善结果的群波束搜索[38,30]或MCTS [42],来进一步发展。 此外,使用2-Opt这样的启发式方法来获得中间奖励也已显示出改进[41](作为整体奖励的旅行时长要求等待旅行建设的结束)。
然而,尽管神经网络求解器提供了更快的推理时间,即O(n 2L)vs.O(n 2.5 b(n)),但传统的求解器(例如Concorde / LKH-3)在性能和泛化方面仍优于学习求解器。 b(n))是BB中要探索的分支数量。
下一步是什么? 自然而然的下一步是将n> 100扩展到更大的TSP大小,但这是具有挑战性的,因为GPU内存有限,并且Transformer架构和自回归解码位于O(n 2)中。我们可以考虑“更难”的TSP /路由问题,其中传统的求解器(如Gurobi / LKH-3)只能提供较弱的解决方案,或者需要很长时间才能解决。 我们还可以处理传统求解器等“较难”的组合问题。 不能使用Gurobi。
另一个有吸引力的研究方向是利用学习技术来改进传统的求解器。
例如,传统的求解器利用分支定界技术[4,16]。 选择要分支的变量对于搜索效率至关重要,并依赖于人为设计的启发式方法。 强分支[1]是高质量但昂贵的分支规则。 最近的工作[13,32]表明,神经网络可以成功地用于模仿专家启发式算法并加快BB的计算时间。 未来的工作可能会集中在超越基于人类的启发式方法上,以及学习新颖的启发式方法以实现更快的分支定界技术。

结论

结论组合优化领域正在推动深度学习的极限。 传统的求解器仍比学习模型提供更好的解决方案。 但是,自1950年代以来,就对传统的求解器进行了研究,而将深度学习应用于组合优化的兴趣才刚刚开始。
随着组合问题问题的出现,这一研究主题自然会在未来几年扩展。 公司每天都使用分配,路由,计划和安排。 还可以开发结合连续,离散优化和学习技术的新型软件。

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