Learning to Search Feasible and Infeasible Regions of Routing Problems with Flexible Neural k-Opt

文章目录


摘要

在这篇论文,我们提出了神经k-Opt(NeuOpt),是一种新颖的learning-to-search(L2S)路由问题的求解器。它学习基于定制的动作因子分解方法和定制的循环双流解码器来执行灵活的k-opt交换。作为规避纯可行性屏蔽方案,并使可行区域和不可行区域都能自主探索的开创性工作,本文提出了Guided Infeasible Region Exploration (GIRE)方案,以可行性相关特征补充NeuOpt策略网络,并利用奖励塑造来更有效地指导强化学习。为NeuOpt配备了动态数据增强(D2A),以在推理过程中进行更多样化的搜索。在旅行商问题(TSP)和带容量约束的车辆路径问题(CVRP)上的广泛实验表明,NeuOpt不仅显著超过现有的(基于掩码的)L2S求解器,而且表现出比构造学习(L2C)和预测学习(L2P)求解器的优越性。值得注意的是,本文为神经求解器如何处理VRP约束提供了新的视角。代码可获得:https://github.com/yining043/NeuOpt.


一、介绍

车辆路径问题(VRPs),在各种现实应用中普遍存在,提出了 NP-hard 的组合挑战,需要有效的搜索算法。近年来,在开发基于深度(强化)学习的求解器(方面取得了重大进展,它以数据驱动的方式,以最小的人工干预,将繁琐的算法设计自动化。令人印象深刻的是,这些在过去五年中发展出来的神经解决器已经缩小了甚至超越了几十年的传统手工解决器的差距。

一般来说,VRPs的神经方法可以分为learning-to-construct(L2C)、learning-to-search(L2S)和learning-to-predict(L2P)求解器,每种方法都有独特的优点,但也有各自的缺点。L2C求解器因其快速的解决方案构建而被认可,但可能难以逃避局部最优。L2P求解器擅长于预测关键信息(例如,边缘热图),因此简化了搜索,特别是对于大规模实例,但可能缺乏有效处理旅行推销员问题(TSP)之外的VRP约束的通用性。L2S求解器被设计用于直接学习在搜索空间中的探索;然而,它们的搜索效率仍然有限,落后于最先进的L2C和L2P求解器。在本文中,我们深入研究了现有的L2S求解器的局限性,并旨在充分释放它们的潜力。

L2S求解器的一个潜在问题在于它们过于简单的动作空间设计。目前学习控制 k k k-opt交换的L2S求解器大多利用较小的k值(2-opt 或3-opt),部分原因是他们的模型难以有效地处理较大的 k k k值。为了解决这个问题,我们引入了神经 k k k-Opt(NeuOpt),这是一种灵活的L2S求解器,能够处理任何 k ≥ 2 k≥2 k2 k k k-Opt。具体来说,它采用了一种定制的动作因子分解方法,将复杂的k-opt交换简化并分解为一系列基移动(S-move、I-move和E-move),其中I-move的数量决定了一个特定执行的k-opt动作的 k k k。这样的设计使得kopt交换可以很容易地逐步构建,更重要的是,这为深度模型提供了显式和自动确定适当的 k k k的灵活性。这进一步允许在不同的搜索步骤中组合不同的 k k k值,从而在粗粒度(较大的 k k k)和细粒度(较小的 k k k)搜索之间取得平衡。相应地,我们设计了一个Recurrent Dual-Stream(RDS)解码器来解码这种动作因子分解,它由递归网络和两个互补的解码流组成,用于上下文建模和注意力计算,从而捕获了删除边和添加边之间的强相关性和依赖性。

此外,现有的L2S求解器基于可行性掩蔽将搜索空间限制在可行区域。相比之下,我们引入了一种新的 Guided Infeasible Region Exploration(GIRE)方案,促进了可行区域和不可行区域的探索。GIRE丰富了策略网络的附加特性,以表明当前解决方案中的约束违反和搜索空间中的探索行为统计数据。它还包括奖励塑造,以规范极端的探索行为,并激励在可行和不可行区域的边界上的探索。我们的女孩提供了四个优势: 1)它绕过了非平凡的计算ground-truth动作掩盖,尤其有利于约束如NeuOpt中所述的受约束的vrp或更广泛的动作空间,2)它促进搜索更有前途的可行性边界,类似于传统的解决方案,3)在(可能孤立的)可行区域建桥,帮助逃离本地最佳和发现更好的解决方案(见图2),和 4)它迫使对VRP约束的明确意识,促进深度模型理解问题景观。在本文中,我们将GIRE应用于有能力的车辆路由问题(CVRP),尽管我们注意到它对大多数VRP约束都是通用的。

此外,我们的NeuOpt在推理过程中利用了Dynamic Data Augmentation(D2A)方法来增强搜索多样性和逃避局部最优。我们的NeuOpt是通过在我们之前的工作中定制的强化学习(RL)算法进行训练的。在经典的VRP变体(TSP和CVRP)上进行的广泛实验验证了我们的设计,并证明了NeuOpt和GIRE比现有方法的优越性。我们的贡献是四方面的: 1)我们提出NeuOpt,第一个L2S求解器,灵活处理 k k k-opt任何 k ≥ 2 k≥2 k2基于定制配方和定制RDS解码器,2)我们引入了GIRE,这是第一个超越可行性掩蔽的方案,能够在搜索空间中探索可行和不可行的区域,从而带来多种好处,并为处理VRP约束提供了新的视角,3)我们提出了一个简单而有效的L2S求解器推理方法,4)我们释放了L2S求解器的潜力,并允许它超越L2C,L2P求解器,以及CVRP上强大的LKH-3求解器。

二、相文献回顾

我们将最近开发的用于解决车辆路由问题(VRPs)的神经方法分为学习到构造(L2C)、学习到搜索(L2S)和学习到预测(L2P)求解器。

(1)L2C求解器

他们学会了通过迭代地向部分解中添加节点来构造解。第一个现代L2C求解器是基于递归神经网络(RNN)和监督学习(扩展到[23]中的RL和扩展到[24]中的CVRP)的Ptr-Net [22]。然后利用图神经网络(GNN)进行图嵌入[25]和更快的编码[26]。后来,Kool等人[3]提出了注意模型(AM),启发了许多后续工作(例如,[4,27-31]),其中我们强调了使用多重优化(POMO)[4]的政策优化,它通过不同的推出和数据增强显著改进了AM。L2C求解器可以使用贪婪的推出在几秒钟内产生高质量的解决方案;然而,即使配备了事后方法(例如,采样[3],波束搜索[28]等),或者高级策略(例如,不变表示[13,32],学习协作策略[33]等),它们也容易陷入局部最优。最近,高效的主动搜索(EAS)[5]通过在每个测试实例上更新一小部分预训练模型参数来解决这些问题,如果与模拟引导波束搜索(SGBS)[34]相结合,则可以进一步提高模型参数,实现当前最先进的L2C求解器性能。

(2)L2S求解器

他们学会了迭代地改进一个解决方案到一个新的解决方案,以一个搜索过程为特色。早期的尝试,如NeuRewriter[35]和L2I [36],严重依赖于传统的本地搜索算法和长期运行时间。NLNS求解器[8]通过控制破坏和修复过程进行了改进,该过程使用手工制作的操作符破坏部分解决方案,然后使用学习到的深度模型修复它们。此外,在[37]中还学习了解决方案之间的交叉交换。最近,一些L2S求解器专注于控制更适合于VRPs [20,38]的k-opt启发式。Wu等人[39]早期尝试指导2-opt,显示出比L2C求解器AM [3]更好的性能。Ma等人的[9]改进了Wu等人的[39],用双方面协同注意(DAC-Att)和循环位置编码方法取代了普通的注意力。DAC-Att随后升级为合成注意力(Synth-Att)[12],以降低计算成本。此外,Costa等[16]提出了一种基于RNN的政策来管理2-opt,并将[17]扩展到3-opt,效率更高。然而,这些神经k-opt求解器受到一个小且固定的k的限制。此外,Costa等[16]提出了一种基于RNN的政策来管理2-opt,并将[17]扩展到3-opt,效率更高。然而,这些神经k-opt求解器受到一个小且固定的k的限制。此外,尽管L2S求解器通过直接学习搜索来努力超越L2C求解器,但即使给定较长时间的运行时间,它们仍然不如那些最先进的L2C求解器(如POMO [4]和EAS [5])。

(3)L2P求解器

他们学会了通过预测关键信息来指导搜索。Joshi等人[14]提出使用GNN模型来预测最优解中存在边缘的概率,然后使用波束搜索来求解TSP。它被用于基于分角法、热图合并和蒙特卡罗树搜索的[6]中的更大规模的TSP实例。在GLS求解器[40]中,使用了一个类似的GNN来指导传统的局部搜索启发式方法。最近,模糊求解器[15]提出用扩散模型[41]取代这些GNN模型。与L2C或L2S求解器相比,L2P求解器在大型实例中表现出更好的可伸缩性;然而,由于准备训练数据的挑战和热图处理VRP约束的无效,它们大多局限于监督学习和TSP。虽然L2P求解器DPDP [42]成功地用动态规划解决了CVRP,但它被L2C求解器EAS[5]超越。最近,L2P求解器也探索了预测潜在离散解空间的潜在连续空间,然后在[43]中使用微分演化或在[7]中使用梯度优化器来搜索潜在空间。尽管如此,它们在解决VRP约束方面可能会耗时或无效。

(4)可行性满意度

大多数神经求解器使用过滤出无效动作(如[12,44])的掩蔽方案来处理VRP约束。然而,很少有工作考虑了更好的约束处理方法。虽然[45,46]的工作试图使用掩模预测损失来增强约束意识,但他们忽略了在许多传统求解器[18–21]中应用的临时约束违反的好处。最后,我们注意到VRPs中的约束处理与安全RL任务有很大的不同,而安全RL任务专注于完全避免不确定环境中的风险操作[47,48]。

三、初步准备和符号

(1)VRP符号

VRP的目的是最小化整体的旅途消耗(路径长度)同时为受一定约束的客户提供服务。他被定义在一个完整的有向图 G = { V , E } \mathcal{G=\{ V, E \}} G={V,E}中,其中 x i ∈ V x_i \in \mathcal{V} xiV为节点(客户), e ( x i → x j ) ∈ E e(x_i → x_j) \in \mathcal{E} e(xixj)E x i x_i xi x j x_j xj之间的欧氏距离的加权。在旅行推销员问题(TSP)中,解决方案是一个哈密顿循环,它只访问每个节点一次,然后返回到起始节点。在有能力车辆路由问题(CVRP)中,向 V \mathcal{V} V添加一个仓库 x 0 x_0 x0,并为每个客户节点 x i ( i ≥ 1 ) x_i(i≥1) xi(i1)分配一个需求 δ i δ_i δi。CVRP解决方案包括多个子行程,每个子行程代表车辆离开仓库,服务一个客户子集,返回仓库,每个 x i ( i ≥ 1 ) x_i(i≥1) xi(i1)只访问一次,子行程的总需求不得超过车辆容量 ∆ ∆ 。例如, τ = { x 0 → x 2 → x 1 → x 0 → x 3 → x 0 } τ=\{x0→x2→x1→x0→x3→x0\} τ={x0x2x1x0x3x0}是一个包含 δ = [ 5 , 5 , 9 ] δ=[5,5,9] δ=[5,5,9] ∆ = 10 ∆=10 =10的CVRP-3解决方案。

(2)传统k-opt启发式算法

k k k-opt启发式通过将k个现有的边与 k k k个(完全)新的边交换,迭代地改进给定的解决方案。Lin-Kernighan(LK)算法[49]用几个准则缩小了搜索范围,其中我们强调了顺序交换准则。它要求:对于每个 i = 1 , … , k i = 1,…,k i=1k ,删除的边 e i o u t e_i^{out} eiout和添加的边 e i i n e_i^{in} eiin必须共享一个端点,因此必须在 e i i n e_i^{in} eiin e i + 1 o u t e_{i+1}^{out} ei+1out。这允许一个简化的顺序搜索过程,交替地删除和添加边。此外,LK算法考虑以重复升序调度变化的 k k k值,从而通过改变搜索邻域来逃避局部最优。受他们的启发,本文提出了一个强大的L2S求解器,可以根据我们的动作因子分解方法和定制的解码器自动选择 k k k,执行灵活的 k k k-opt交换。最近,由Helsgaun [50]在开源的LKH求解器中实现了LK算法,并增加了额外的非顺序交换和一个边缘候选集。然后它被升级为LKH-2 [51],利用了更一般的 k k k-opt交换、分治策略等。最新版本的LKH-3 [20]通过惩罚违反约束,进一步解决了受约束的vrp,使其成为一个通用和强大的求解器,作为神经方法的基准。最后,我们注意到 k k k-opt已经是各种求解器的基础,包括最先进的CVRP的杂交遗传搜索(HGS)求解器[21]。

四、神经k-opt (NeuOpt)

设计一个有效的神经k-opt求解器需要解决在以前的工作中可能被忽视的挑战。首先,求解器应该对任何给定的k≥2是通用的,使用统一的公式和架构。其次,它应该连贯地参数化复杂的动作空间,同时考虑到移除边和附加边之间的强相关性和依赖性。最后,它应该动态地调整k,以平衡粗粒度(较大的k)和细粒度(较小的k)搜索步骤。

有鉴于此,我们将在本节中引入神经k-Opt(NeuOpt)。我们首先提出了我们的灵活的k-opt交换的动作因子分解方法,然后演示了我们的解码器来参数化这些动作,然后是动态数据增强方法进行推理。请注意,本节只关注TSP,我们在第5节中扩展了NeuOpt来处理其他VRP约束。

1.公式

我们引入了一种新的因子分解方法,它使用三个基本移动的组合,即开始移动starting move、中间移动intermediate move和结束移动ending move。具体地说,顺序k-opt可以简化为执行一个S-move,几个(可能没有)I-move,最后执行一个E-move,其中k的选择对应于决定I-移动的数量。

(1)S-move

starting move移除一个边 e o u t ( x a → x b ) e^{out}(x_a → x_b) eout(xaxb),转换一个TSP解 τ \tau τ(一个哈哈密顿回路)为有着两个端点点 x a x_a xa x b x_b xb的一个开哈密顿路径。它只在动作建设的开始时执行。我们将S-move表示为 S ( x a ) S(x_a) S(xa),因为如果 x a x_a xa被指定, x b x_b xb可以被唯一地确定。我们将源节点 x a x_a xa作为锚定节点来计算节点的秩

(2)Definition 1 (Node rank w.r.t. anchor node)

给一个实例 G = ( V , E ) \mathcal{G}=(\mathcal{V},\mathcal{E}) G=(V,E)和一个解决方案 τ \tau τ,使得 x a x_a xa为如S-move中指定的锚定节点。节点 x u ( x u ∈ V ) x_u(x_u \in \mathcal{V}) xu(xuV)的秩涉及到 x a x_a xa,表示为 Γ [ x a , x u ] \Gamma[x_a,x_u] Γ[xa,xu] Γ [ a , u ] \Gamma[a,u] Γ[a,u],被定义为 τ \tau τ中从 x a x_a xa x u x_u xu的边数的最小值。

(3)I-move

中间的移动增加了一条新的边缘,删除了一条现有的边缘,并确定了边缘的方向,将开放的哈密顿路径转换为一条新的路径。使得 x i , x j x_i,x_j xi,xj成为I-move( Γ [ a , i ] < Γ [ a , j ] \Gamma[a,i]<\Gamma[a,j] Γ[a,i]<Γ[a,j])之前的端点,并且让 e i n ( x u → x v ) e^{in}(x_u → x_v) ein(xuxv)成为被引入的新的边。为了避免连续不断的I-move间的冲突,我们在 e i n e^{in} ein上施加顺序条件:(1) 其源节点 x u x_u xu必须是当前的哈密顿路径的端点,即 x u = x i x_u=x_i xu=xi,(2) 目标节点的节点排名,即 Γ [ a , v ] Γ[a,v] Γ[a,v],必须高于两个当前端点的节点排名 x i , x j x_i,x_j xi,xj,即 Γ [ a , i ] < Γ [ a , j ] < Γ [ a , v ] \Gamma[a,i]<\Gamma[a,j]<\Gamma[a,v] Γ[a,i]<Γ[a,j]<Γ[a,v]。当选择 x v x_v xv时,去掉边 e o u t ( x v → x w ) e^{out}(x_v → x_w) eout(xvxw),并将 x j x_j xj x v x_v xv之间的边的方向反转,得到一个有效的哈密顿路径。由于一个I-move可以由 x v x_v xv唯一决定,所以我们将它表示为 I ( x v ) I(x_v) I(xv)

(4)E-move

结束移动增加了一条新的边,连接当前哈密顿路径的两个端点,将其转换为一个哈密顿循环,即一个新的TSP解 τ ‘ τ‘ τ。它只在动作建设结束时执行。由于它是唯一确定的,而不指定任何节点,所以我们将它表示为 E ( x n u l l ) E(x_{null}) E(xnull)。注意,如果我们放宽I-move 实现 Γ [ a , j ] ≤ Γ [ a , v ] Γ[a,j]≤Γ[a,v] Γ[a,j]Γ[a,v]的条件(2),一个E-move可以被视为选择一般I-move x v = x j x_v=x_j xv=xj,表示为 I ′ ( x j ) I'(x_j) I(xj) E ( x j ) E(x_j) E(xj)

(5)MDP公式

附录A描述了使用1-opt(无效动作)、2-opt、3-opt和4-opt的例子。接下来,我们提出我们的NeuOpt的马尔可夫决策过程(MDP)公式 M = ( S , A , T , R , γ < 1 ) \mathcal{M}=(\mathcal{S},\mathcal{A},\mathcal{T},\mathcal{R},\mathcal{γ} < 1) M=(S,A,T,R,γ<1)。在步骤 t t t中,状态 s t = { G , τ t , τ t b s f } s_t =\{\mathcal{G},τ_t,τ_t^{bsf}\} st={G,τt,τtbsf}描述了当前的实例 G \mathcal{G} G,当前的解决方案 τ t τ_t τt,以及在步骤 t t t之前找到的迄今为止的最佳解决方案 τ t b s f τ_t^{bsf} τtbsf。给定允许的最大基移动数 K ( K ≥ 2 ) K(K≥2) K(K2),一个动作由 K K K基础移动 Φ κ ( x κ ) Φ_κ(x_κ) Φκ(xκ)组成,即 a t = { Φ κ ( x κ ) , κ = 1 , … , K } a_t = \{\Phi_κ(x_κ),κ= 1,…,K\} at={Φκ(xκ),κ=1,,K},其中第一个移动 Φ 1 ( x 1 ) = S ( x 1 ) Φ_1(x_1)= S(x_1) Φ1(x1)=S(x1)是S-move,其余的是I-move或E-move(以一般I-move的形式)。注意,1)我们允许I-move作为最后一个移动,如果是这样,则在状态转换期间添加一个E-move;2)为了确保动作长度总是 K K K,如果E-move提前终止该动作,则我们包含空动作。我们的状态转移规则T是确定性的,它基于上述动作分解方法将 s t s_t st更新到 s t + 1 s_{t+1} st+1。我们使用奖励 r t = f ( τ t b s f ) − min ⁡ [ f ( τ t + 1 ) , f ( τ t b s f ) ] r_t = f(τ_t^{bsf})−\min [f(τ_{t+1}),f(τ_t^{bsf})] rt=f(τtbsf)min[f(τt+1),f(τtbsf)]后的[9,12]。

2.循环双流(RDS)解码器

在这里插入图片描述

我们的NeuOpt采用了一种编码器-解码器风格的策略网络。我们使用了我们之前工作中的编码器[12],但将线性投影升级为一个MLP进行嵌入生成(细节见附录B)。在这里,我们引入了所提出的循环双流(RDS)解码器来有效地参数化上述的k-opt动作因子分解(具体的例子见图1)。

(1)用于动作分解的GRUs

一个动作 a = { Φ κ ( x κ ) , κ = 1 , … , K } a=\{Φ_κ(x_κ),κ= 1,…,K\} a={Φκ(xκ),κ=1,,K} K K K步顺序构造,其中每个解码步骤 κ κ κ指定一个基移动类型 Φ κ Φ_κ Φκ和一个节点 x κ x_κ xκ来实例化移动。这种解码可以进一步简化为一个节点选择过程,与移动类型推断基于: (1)对于 κ = 1 κ= 1 κ=1,它是一个S-move;(2)对于 κ > 1 κ >1 κ>1,,如果 Γ [ a , j κ ] < Γ [ a , κ ] Γ[a,j_κ]<Γ[a,κ] Γ[a,jκ]<Γ[a,κ](假设 x i κ x_{i_κ} xiκ x j κ x_{j_κ} xjκ Γ [ a , i κ ] < Γ [ a , j κ ] Γ[a,i_κ]<Γ[a,j_κ] Γ[aiκ]<Γ[ajκ]之前的哈密顿路径端点,它是一个I-move),否则,如果 x κ = x j κ x_κ =x_{j_κ} xκ=xjκ,是一个E-move,早早地停止解码。在形式上,我们使用因子分解:
π θ ( a ∣ s ) = P θ ( Φ 1 ( x 1 ) , Φ 2 ( x 2 ) , … , Φ K ( x K ) ∣ s ) = ∏ κ = 1 K P θ κ ( Φ κ ∣ Φ 1 , … , Φ κ − 1 , s ) \pi_\theta(a \mid s)=P_\theta\left(\Phi_1\left(x_1\right), \Phi_2\left(x_2\right), \ldots, \Phi_K\left(x_K\right) \mid s\right)=\prod_{\kappa=1}^K P_\theta^\kappa\left(\Phi_\kappa \mid \Phi_1, \ldots, \Phi_{\kappa-1}, s\right) πθ(as)=Pθ(Φ1(x1),Φ2(x2),,ΦK(xK)s)=κ=1KPθκ(ΦκΦ1,,Φκ1,s)

其中, P θ κ P_θ^κ Pθκ是在 N N N个节点上进行节点选择的分类分布。我们的解码器利用门控循环单位(GRUs)[52]来帮助参数化条件概率 P θ κ P_θ^κ Pθκ。给定来自编码器的节点嵌入 h ∈ R N × d h∈\mathbb{R}^{N×d} hRN×d(hi是一个d维向量),解码器首先计算隐藏表示 q κ q_κ qκ来建模历史移动决策 { Φ 1 , … , Φ k − 1 } \{Φ_1,…,Φ_{k−1}\} {Φ1,,Φk1} P θ κ P_{θ_κ} Pθκ的条件)使用等式(2),其中 q κ q_κ qκ(GRU的隐藏状态)是基于一个输入的 q κ − 1 q_{κ−1} qκ1导出的。为了更好地进行上下文建模,我们考虑了两个流, µ µ µ λ λ λ,它们通过学习独立的参数和在每个 κ κ κ上接受不同的输入而彼此不同。 q µ 0 = q λ 0 = 1 N ∑ i = 1 N h i q^0_µ= q^0_λ = \frac{1}{N} \sum^N _{i=1} h_i qµ0=qλ0=N1i=1Nhi通过节点嵌入的平均池(即图嵌入)进行初始化。

q μ κ = GRU ⁡ ( o μ κ , q μ κ − 1 ) , q λ κ = GRU ⁡ ( o λ κ , q λ κ − 1 ) q_\mu^\kappa=\operatorname{GRU}\left(o_\mu^\kappa, q_\mu^{\kappa-1}\right), q_\lambda^\kappa=\operatorname{GRU}\left(o_\lambda^\kappa, q_\lambda^{\kappa-1}\right) qμκ=GRU(oμκ,qμκ1),qλκ=GRU(oλκ,qλκ1)

(2)双流语境模型

我们在上下文建模和随后的注意力计算过程中使用了移动流 µ µ µ边缘流 λ λ λ。一方面,为了提供一个相对整体的视图,移动流 µ µ µ考虑通过将最后选择的节点 x κ − 1 x_{κ−1} xκ1的节点嵌入来表示过去选择的移动 Φ κ − 1 ( x κ − 1 ) Φ_{κ−1}(x_{κ−1}) Φκ1(xκ1),作为其GRU输入,即 o µ κ = h κ − 1 o^κ_µ=h_{κ−1} oµκ=hκ1。另一方面,为了提供一个相对详细的视图,边缘流 λ λ λ在每个步骤 κ κ κ中,将 x i κ x_{i_κ} xiκ的节点嵌入,作为步骤 κ κ κ中引入的边的源节点,作为其GRU输入,即 o λ κ = h i κ o^κ_λ=h_{i_κ} oλκ=hiκ。我们打算让这两个流相互补充,连贯地捕捉历史决策之间复杂的相关性和依赖关系。对于初始化,我们使用可学习的参数 o µ 1 = o ^ o^1_µ=\hat{o} oµ1=o^ o λ 1 = o ~ o^1_λ=\tilde{o} oλ1=o~。根据 q µ q_µ qµ q λ q_λ qλ和节点嵌入 h h h之间的关注程度,可以计算出这两个流所建议的节点选择分数:

μ κ = Tanh ⁡ ( ( q μ κ W μ Query  + h W μ Key  ) + ( q μ κ W μ Query  ′ ) ⊙ ( h W μ Key  ′ ) ) W μ O , λ κ = Tanh ⁡ ( ( q λ κ W λ Query  + h W λ Key  ) + ( q λ κ W λ Query’  ) ⊙ ( h W λ Key’ ) ) W λ O , \begin{aligned} & \mu_\kappa=\operatorname{Tanh}\left(\left(q_\mu^\kappa W_\mu^{\text {Query }}+h W_\mu^{\text {Key }}\right)+\left(q_\mu^\kappa W_\mu^{\text {Query }^{\prime}}\right) \odot\left(h W_\mu^{\text {Key }^{\prime}}\right)\right) W_\mu^O, \\ & \lambda_\kappa=\operatorname{Tanh}\left(\left(q_\lambda^\kappa W_\lambda^{\text {Query }}+h W_\lambda^{\text {Key }}\right)+\left(q_\lambda^\kappa W_\lambda^{\text {Query' }}\right) \odot\left(h W_\lambda^{\text {Key'}}\right)\right) W_\lambda^O, \end{aligned} μκ=Tanh((qμκWμQuery +hWμKey )+(qμκWμQuery )(hWμKey ))WμO,λκ=Tanh((qλκWλQuery +hWλKey )+(qλκWλQuery’ )(hWλKey’))WλO,

其中所有矩阵 W ∈ R d × d W∈\mathbb{R}^{d×d} WRd×d都是可训练参数,我们考虑求和和阿达马积。之后,最终的分类分布 P θ κ P_θ^κ Pθκ由: Softmax ( C ⋅ tanh ⁡ ( ( µ κ + λ κ ) ) , C = 6 \text{Softmax}(C·\tanh((µ_κ+λ_κ)),C=6 Softmax(Ctanh((µκ+λκ)),C=6和无效的选择不满足 Γ [ j κ ] ≤ Γ [ κ ] Γ[j_κ]≤Γ[κ] Γ[jκ]Γ[κ] − ∞ −∞ 掩盖(强制执行如果所有节点蒙面,这发生在排名最高的节点选择在前面的I-move)。然后从 P θ κ P_θ^κ Pθκ中采样一个节点 x κ x_κ xκ,然后可以推断出它的基移动类型 Φ κ Φ_κ Φκ。解码过程继续持续到提前终止或达到最大极限 K K K

3.Inference with the dynamic data augmentation (D2A)

我们的NeuOpt是使用我们之前的工作[12]中定制的RL算法进行训练的。在推理过程中,我们之前的工作[12]采用了一种数据增强方法,该方法对一个实例 G \mathcal{G} G应用最优解不变变换(例如,翻转坐标),从而生成一组实例 { G 1 , G 2 , . . . , } \{\mathcal{G}_1,\mathcal{G}_2,...,\} {G1,G2,...,}供训练的模型求解。然而,它只在推理开始时执行了一次。在本文中,我们提出了动态数据增强(D2A),这是一种增强方法,每当求解器未能在TD2A步骤的连续最大值内找到更好的解决方案(即陷入局部最优)时,就会生成新的增强实例。这允许更多样化的搜索。关于训练和推理算法的进一步细节在附录C中提供。

五、Guided infeasible region exploration (GIRE)

如图2所示,可行的区域通常是孤立的岛屿。神经求解器中的掩蔽通常将搜索限制在可行的区域,这可能导致低效的搜索轨迹或无法找到全局最优值。我们的GIRE探索了可行的区域和不可行的区域,促进了捷径发现,更有前途的边界搜索,以及识别可能的孤立区域。我们现在通过处理CVRP中的容量约束来说明我们的GIRE。

(1)Definition 2 (Search space of CVRP)

在这里插入图片描述
我们将可行搜索空间 F \mathcal{F} F定义为同时满足TSP和(CVRP特定)容量约束的解集;不可行搜索空间 U \mathcal{U} U为满足TSP约束而不满足容量约束的解集; ϵ ϵ ϵ-可行搜索空间 ϵ ϵ ϵ- F ⊆ U \mathcal{F}⊆\mathcal{U} FU作为容量违反百分比不超过 ϵ ϵ ϵ的解集。

(2)Feature supplement

GIRE建议将违反指标 Violation Indicator(VI)特征和探索统计数据 Exploration Statistics(ES)特征添加到策略网络中,以识别特定的约束违反行为,并了解其正在进行的探索行为。VI特性标志着当前解决方案的特定不可行部分。对于CVRP,我们使用两个二进制变量,分别表示累积需求在访问特定节点之前或之后超过容量,它们在节点嵌入生成过程中被视为节点特征。这种想法可以适用于大多数VRP约束,例如,指示违反了CVRP-TW的时间窗口(TW)的节点。ES特性为网络提供了持续的探索行为统计数据,以指导未来的探索行为。我们定义 H t : = { ( τ t ′ → τ t ′ + 1 ) } ∣ t ′ = t − T h i s t − 1 \mathcal{H}_t:=\left.\left\{\left(\tau_{t^{\prime}} \rightarrow \tau_{t^{\prime}+1}\right)\right\}\right|_{t^{\prime}=t-T_{\mathrm{his}}} ^{t-1} Ht:={(τtτt+1)}t=tThist1作为解决方案转换记录的最近 T h i s T_{\mathrm{his}} This步骤(如果存在)。ES特征 J t \mathcal{J}_t Jt H t \mathcal{H}_t Ht估计的可行性转移概率组成,包括 P ( τ ∈ F , τ ′ ∈ U ) , P ( τ ∈ U , τ ′ ∈ F ) , P ( τ ∈ F , τ ′ ∈ F ) P\left(\tau \in \mathcal{F}, \tau^{\prime} \in \mathcal{U}\right), P\left(\tau \in \mathcal{U}, \tau^{\prime} \in \mathcal{F}\right), P\left(\tau \in \mathcal{F}, \tau^{\prime} \in \mathcal{F}\right) P(τF,τU),P(τU,τF),P(τF,τF), P ( τ ∈ U , τ ′ ∈ U ) , P ( τ ′ ∈ F ∣ τ ∈ U ) , P ( τ ′ ∈ U ∣ τ ∈ F ) , P ( τ ′ ∈ F ∣ τ ∈ F ) P\left(\tau \in \mathcal{U}, \tau^{\prime} \in \mathcal{U}\right), P\left(\tau^{\prime} \in \mathcal{F} \mid \tau \in \mathcal{U}\right), P\left(\tau^{\prime} \in \mathcal{U} \mid \tau \in \mathcal{F}\right), P\left(\tau^{\prime} \in \mathcal{F} \mid \tau \in \mathcal{F}\right) P(τU,τU),P(τFτU),P(τUτF),P(τFτF), 和 P ( τ ′ ∈ U ∣ τ ∈ U ) P\left(\tau^{\prime} \in \mathcal{U} \mid \tau \in \mathcal{U}\right) P(τUτU)随着一个二进制指标即当前解决方案 τ t τ_t τt的可行性。为了使策略网络决策依赖于这些ES特征,我们引入了两个超网络[53],即 M L P µ \mathrm{MLP}_µ MLPµ M L P λ \mathrm{MLP}_λ MLPλ,它们以ES特征 J t \mathcal{J}_t Jt作为输入,分别生成最后一个解码器层的参数,即等式(3)的 W µ O W_µ^O WµO W λ O W_λ^O WλO。我们采用该结构( 9 × 8 × d 9×8×d 9×8×d),并在 W µ O W_µ^O WµO W λ O W_λ^O WλO之间共享第一个隐藏层,以降低计算成本。

(3)Reward shaping

在这里插入图片描述

此外,GIRE还采用了奖励塑造的方法:
r t G I R E = r t + α ⋅ r t r e g + β ⋅ r t b o n u s r_t^{\mathrm{GIRE}}=r_t+\alpha \cdot r_t^{\mathrm{reg}}+\beta \cdot r_t^{\mathrm{bonus}} rtGIRE=rt+αrtreg+βrtbonus
为了指导强化学习,其中 r t r_t rt是原始奖励, r t r e g r_t^{\mathrm{reg}} rtreg调节极端探索行为; r t b o n u s r_t^{\mathrm{bonus}} rtbonus鼓励在 ϵ ϵ ϵ可行区域进行探索; α α α β β β是奖励塑造权重(两者都使用0.05)。在这里,调节 r t r e g r_t^{\mathrm{reg}} rtreg是由估计的条件变换概率 P t ( U ∣ U ) = P_t(\mathcal{U} \mid \mathcal{U})= Pt(UU)= P ( τ ′ ∈ U ∣ τ ∈ U ) P\left(\tau^{\prime} \in \mathcal{U} \mid \tau \in \mathcal{U}\right) P(τUτU) P t ( F ∣ F ) = P ( τ ′ ∈ F ∣ τ ∈ F ) P_t(\mathcal{F} \mid \mathcal{F})=P\left(\tau^{\prime} \in \mathcal{F} \mid \tau \in \mathcal{F}\right) Pt(FF)=P(τFτF) :的熵测度 H [ P ] \mathbb{H}[P] H[P]决定的:
r t r e g = − E [ r t ] × [ H [ P t ( U ∣ U ] ) + H [ P t ( F ∣ F ) ] ] H [ P ] = Clip ⁡ { 1 − c 1 log ⁡ 2 [ c 2 π e P ( 1 − P ) ] , 0 , 1 } , c 1 = 0.5 , c 2 = 2.5 \begin{gathered} r_t^{\mathrm{reg}}=-\mathbb{E}\left[r_t\right] \times\left[\mathbb{H}\left[P_t(\mathcal{U} \mid \mathcal{U}]\right)+\mathbb{H}\left[P_t(\mathcal{F} \mid \mathcal{F})\right]\right] \\ \mathbb{H}[P]=\operatorname{Clip}\left\{1-c_1 \log _2\left[c_2 \pi e P(1-P)\right], 0,1\right\}, c_1=0.5, c_2=2.5 \end{gathered} rtreg=E[rt]×[H[Pt(UU])+H[Pt(FF)]]H[P]=Clip{1c1log2[c2πeP(1P)],0,1},c1=0.5,c2=2.5
其中期望 E [ r t ] E[r_t] E[rt],即 r t r e g r_t^{reg} rtreg的大小,在训练过程中估计;熵度量 H [ P ] \mathbb{H}[P] H[P],如图3所示,当 P P P过高或过低时,会施加更大的惩罚(表明极端的探索行为)。奖金 r t r_t rt奖金利用了与常规奖励 r t r_t rt类似的奖励功能;然而,它只考虑一个不可行但 ϵ ϵ ϵ可行的解决方案作为一个潜在的新的最佳解决方案。更多关于GIRE设计的插图和讨论详见附录D。

六、结论

我们在TSP和CVRP上进行了实验,尺寸为 N = 20 , 50 , 100 N =20,50,100 N=20,50,100,遵循约定[9,13,37]。训练和测试实例是在[3]之后统一生成的。对于NeuOpt,我们使用 K = 4 K = 4 K=4;初始解以随机的方式顺序构造,用于训练和推理。结果收集使用的机器配备了NVIDIA 2080TI GPU卡和一个Intel E5-2680 CPU在2.40 GHz。更多的超参数细节、讨论和附加结果可在附录e中找到。我们的PyTorch代码和预训练的模型都是公开的

1.对比学习

(1)安装

在这里插入图片描述

在表1中,我们以我们的NeuOpt(TSP)和NeuOpt-GIRE(CVRP)为基准,对比多种神经求解器,即1) L2P solvers: GCN+BS [14] (TSP only), Att-GCN+MCTS [6] (TSP only), GNN+GLS [40] (TSP only), CVAE-Opt-DE [43], DPDP [42] (state-of-the-art), DIMES [7] (TSP only), DIFUSCO [15] (TSP only, state-of-the-art); 2) L2C solvers: AM+LCP [33], POMO [4], Pointerformer [32] (TSP only), Sym-NCO [13], POMO+EAS [5], POMO+EAS+SGBS [34] (state-of the-art); and 3) L2S solvers: Costa et al. [16] (TSP only), Sui et al. [17] (TSP only), Wu et al. [39], NLNS [8] (CVRP only), NCE [37] (CVRP only), DACT [9] (最先进的)。为了确保公平性,我们在我们的硬件和测试数据集上测试了它们公开可用的预训练模型。由于复制困难,那些被标记为 # 的论文来源于他们的原始论文,其中我们发现了被标记为#的潜在问题。更多的实现细节列在附录e.约定[5,9,34]之后,我们报告的指标目标值和最优差距平均测试数据集10k实例,总运行时间的前提下使用一个GPU神经方法和一个CPU。间隙的计算结果为w.r.t.协和式飞机的精确求解器的TSP的[54]和最先进的传统求解器HGS [21]的CVRP。我们还将LKH [20,51]作为基线。然而,我们注意到,在比较那些基于cpu的传统求解器和基于gpu的神经求解器之间的运行时间时,很难绝对公平。基线是分组的,其中最后一组包括我们的NeuOpt的变化,通过增强的数量(标记为“D2A=”)和推理步骤的数量(标记为“T=”)来区分。

(2)TSP结果

L2P求解器相比,NeuOpt(D2A=1,T=1k)在所有问题规模上都超过了GCN+BS、CVAE-OptDE和GNN+GLS。随着T的增加,NeuOpt继续减少差距,并在T=10k步长中以更少的时间超过了最先进的模糊求解器。NeuOpt(D2A=5,T=1k),在相同的溶液搜索计数中显示出比NeuOpt(D2A=1,T=5k)更低的间隙,在所有尺寸的(D2A=5,T=5k)上达到了最低的0.00%。尽管与DPDP和Att-GCN+MCTS相比,它们的运行时间更长,但它们的高效率仅限于TSP,而我们的NeuOpt可以通过利用他们类似的热图来提高。至于L2C求解器,NeuOpt(D2A=5,T=3k)以更短的时间击败了TSP-100上的所有基线,包括最先进的POMO+EAS+SGBS求解器。当与我们也属于的L2S求解器竞争时,NeuOpt能够用更短的运行时间至少缩小差距,这显示了实质性的改进。最后,我们的NeuOpt(D2A=5,T=5k)是一种神经求解器(包括DPDP),可以在合理的时间内解决TSP-100到接近最优(即0.00%)。

(3)CVRP结果

大多数L2P求解器都无法处理CVRP。其余的那些,CVAE-Opt-DE和DPDP,明显被我们的求解器(D2A=5,T=6k)所超越,而且运行时间更短。对于L2C求解器,我们的NeuOpt-GIRE(D2A=1,T=10k)可能会超过之前最先进的POMO求解器。此外,使用(D2A=5,T=6k)和(D2A=5,T=40k),我们的方法分别以更少的运行时间超过了POMO+EAS和POMO+EAS+SGBS(长),尽管它们配备了额外的后每实例处理增强器。我们注意到,这种后处理策略(例如,每个实例的主动搜索)可能会集成到我们的策略中,以进一步提高性能。与L2S求解器相比,由于我们的GIRE的进步,即使NeuOpt-GIRE(D2A=1,T=5k)也可以在CVRP-100上将那些(基于屏蔽的)L2S求解器的差距减少一个数量级。值得注意的是,我们是第一个在CVRP上超过强LKH-3求解器的L2S求解器。

(4)效率分析

为了进一步揭示我们的RDS解码器和GIRE的有效性,我们与最先进的L2S求解器DACT [9]进行了比较。为了公平起见,我们将其升级为DACT-U,它使用了与我们的NeuOpt相同的嵌入和编码器。评估标准包括模型大小、最佳目标值(在1k个验证实例上使用T=1k推理步骤进行四次训练时的平均值)、间隙w.r.t.最好的求解器,和运行时间。如表2所示,我们的GIRE方案在CVRP-20上持续提高了NeuOpt和DACT-U,减少了掩模计算时间,同时略微增加了模型大小,这揭示了我们的GIRE的通用性。此外,当所有这些方法都用于2-opt时,NeuOpt(K=2,TSP)和NeuOpt-GIRE(K = 2,CVRP)分别超过DACT-U(TSP)和DACT-U-GIRE(CVRP),运行时间更短。NeuOpt将K增加到4,但需要略微增加运行时间,这进一步放大了这一点。

2.消融研究

在这里插入图片描述

(1)RDS译码器消融

在表3中,我们分别删除了RDS解码器的关键组件,包括gru、移动流µ和边缘流λ,并报告了四次训练运行后的模型大小和最佳目标值的平均值。如前所述,所有组件在很大程度上都有助于有效的上下文建模,以便在TSP-100和CVRP-20上参数化k-opt解码器。

(2)D2A推理消融

在表4中,我们在使用T=5K和T=10K进行推理时使用单一数据增强时,收集了有和没有D2A设计的间隙(类似于表1)。结果证实,我们的D2A持续增强了对TSP-100和CVRP-100的推断。

(3)GIRE设计消融

在这里插入图片描述

在CVRP-20上的NeuOpt训练中,我们考虑了违反指标(VI)、探索统计(ES)和奖励塑造(RS),使用了8种组合。在图4中,我们绘制了每个场景在8次训练运行中获得的最佳目标值的方框图。我们可以得出这样的结论: 1)无论VI是否存在,训练效果不断提高;2)只有存在RS时,ES的补充才能带来改善;3)我们的完整GIRE设计(VI+ES+RS)产生最低的目标值,并显示出优越的稳定性。

(4)偏置消融

在图5 (a)中,我们描述了NeuOpt在TSP-100上有无可学习的S-移动的训练曲线。当去除可学习的S-move并选择随机选择锚节点xa时,可以观察到最终性能的显著下降,这强调了可学习的S-move设计的必要性。同时,图5(b)点图的置信区间显示我们的性能NeuOptTSP-100在不同预设k没有移动(蓝色虚线),模型,降级为执行固定K-opt,展品减少性能大k相反,我们的NeuOpt(纯橙色线)可以进一步受益于更大的K,由于它的灵活性在确定和组合不同的K搜索步骤。

3.泛化性和伸缩性研究

在这里插入图片描述

4.超参数研究

(1)预设K值的影响

在表8中,我们显示了NeuOpt在TSP-100上的性能,以及相应的不同K值的推理时间(T=1k)和训练时间(每个epoch)。该结果突出了更好的性能和增加的计算成本之间的权衡

(2)GIRE超参数的影响

图6描述了α和β在等式中的影响(4)在CVRP-20上,我们修复了其中一个,同时改变了另一个,研究了极小的(0.01)和更大的(0.1)值。研究结果表明,当权重适中时,更有效的奖励形成就会发生。关于更多GIRE超参数的讨论,请参阅附录D。

七、结论和限制

在本文中,我们介绍了NeuOpt,一种新的VRPsL2S求解器,它通过定制的RDS解码器进行灵活的k-opt交换。我们还提出了GIRE,第一个超越基于特征补充和奖励塑造的约束处理掩蔽的方案,能够在可行和不可行的区域实现自主探索。此外,我们还设计了一种D2A增强方法来提高推理多样性。尽管提供了最先进的结果,但我们的工作仍然有局限性。虽然NeuOpt比现有的L2S求解器表现出更好的可伸缩性,但对于更大规模的TSPs,它还远远低于一些L2P求解器(如[6,7])。未来工作中可能的解决方案包括: 1)按照[6,57-60]整合分治策略,2)如[6,15]中预测的那样通过热图减少搜索空间,3)采用更可伸缩的编码器[61,62],4)像[7,15]中那样使用高度优化的CUDA库重构我们的代码。除了增强可伸缩性,未来的工作也可以关注: 1)应用我们的女孩更多VRP约束,甚至超越L2S求解器,2)集成我们的方法与事后每个实例处理助推器(例如,EAS [5])更好的性能,和3)提高我们NeuOpt的泛化能力实例不同大小/分布(例如,通过利用[11,63]中的框架)。

八、附录

A 动作分解示例

图7描述了我们使用基本移动的组合来分解方法(S-move,E-move和E-mote)来表示不同的k-opt交换。从一个TSP-9实例(最左边)开始,我们列出了从1-opt到4-opt的例子,其中I-move的数量对应于不同的k值,导致不同的新解决方案(最右边)。这证明了我们的因式分解的灵活性。
在这里插入图片描述

B NeuOpt 编码器

给定一个状态 s t = { G , τ t , τ t b s f } s_t=\{ \mathcal{G},\tau_t,\tau_t^{\mathrm{bsf}} \} st={G,τt,τtbsf},其中 G \mathcal{G} G为当前的实例, τ t \tau_t τt是当前的解决方案,和 τ t b s f \tau_t^{\mathrm{bsf}} τtbsf是在步骤 t t t前最好的解决方案。编码过程首先将状态的原始特征转换为节点嵌入。这些嵌入随后通过L = 3堆叠编码器进行细化。

B.1 特征嵌入

基于[12]双重表示设计,我们嵌入状态特性3,表示为 ψ [ G , τ t ] = { { φ i t } x i ∈ V , { p i t } x i ∈ V } ψ[\mathcal{G},τ_t]=\{\{φ^t_i\}_{x_i∈\mathcal{V}},\{ p^t_i\}_{x_i∈\mathcal{V}} \} ψ[G,τt]={{φit}xiV,{pit}xiV}两个单独的节点嵌入:节点特征嵌入Node Feature Embeddings(NFEs)编码 ψ ( G ) = { φ i t } ψ(\mathcal{G})=\{φ^t_i \} ψ(G)={φit}Positional Feature Embeddings (PFEs)编码 ψ ( τ t ) = { p i t } ψ(τ_t)=\{p^t_i \} ψ(τt)={pit}NFEs,记为 { h i i n i t } x i ∈ V \{h^{\mathrm{init}}_i\}_{x_i∈\mathcal{V}} {hiinit}xiV,是一组d维向量,每个向量嵌入了步骤 t t t时节点 x i x_i xi d h d_h dh维问题特定的原始特征 φ i t φ^t_i φit。为了获得 h i i n i t h^{\mathrm{init}}_i hiinit,我们将[12]中使用的线性投影升级到结构为( d h × d 2 × d d_h×\frac{d}{2}×d dh×2d×d)的MLP中,以增强表示。PFEs,表示为 { g i i n i t } x i ∈ V \{g_i^{\mathrm{init}}\}_{x_i∈\mathcal{V}} {giinit}xiV,是一组 d d d维向量,每个向量嵌入了步骤 t t t x i x_i xi的位置特征 p i t p^t_i pit,由当前解 τ t τ_t τt中的 x i x_i xi的位置得到。在[9]之后,我们使用循环位置编码(CPE)在 d d d维空间中生成一系列的循环嵌入。然后使用这些CPE嵌入相应地初始化 g i i n i t g_i^{\mathrm{init}} giinit,以捕获当前解 τ t τ_t τt中节点的拓扑结构。

B.2 针对问题的原始节点特性 φ i t \varphi_i^t φit

对于TSP, x i x_i xi的节点特征 φ i t φ^t_i φit包含其二维坐标(即 d h = 2 d_h = 2 dh=2);对于CVRP, φ i t φ^t_i φit包含6个特征(即 d h = 6 d_h = 6 dh=6),包括1-2)其二维坐标,3)节点 x i x_i xi的需求,4)节点 x i x_i xi前对应子行程的需求总和,5) x i x_i xi后对应子行程的需求总和,以及 6)指示节点 x i x_i xi是否为客户节点的指标函数。当应用GIRE时,我们用两个违反指标(VI)特征来丰富 φ i t φ^t_i φit,即 d h = 8 d_h = 8 dh=8

B.3 堆叠编码器

根据[9,12]中的编码器,我们使用带有合成注意力(Synth-Att)的变压器样式的编码器来细化嵌入的 { h i n i t t } x i ∈ V \{h^t_{\mathrm{init}}\}_{x_i∈\mathcal{V}} {hinitt}xiV { g i n i t t } x i ∈ V \{g^t_{\mathrm{init}}\}_{x_i∈\mathcal{V}} {ginitt}xiV,其中PFEs作为辅助嵌入,支持NFEs的表示学习。编码完成后,得到一组统一的嵌入 { h i } x i ∈ V \{h_i\}_{x_i∈\mathcal{V}} {hi}xiV,然后将其输入到我们的循环双流(RDS)解码器中,用于k-opt动作解码(见第4节)。

C 训练和推理算法

C.1 训练算法

在这里插入图片描述
如算法1中详细介绍的,我们采用[9,12]中使用的n步近端策略优化(PPO)的课程学习(CL)策略来训练我们的NeuOpt。对于我们的GIRE计划,我们考虑学习单独的批评者 v ϕ o r i g i n v_ϕ^\mathrm{origin} vϕorigin v ϕ r e g v_ϕ^\mathrm{reg} vϕreg,和 v ϕ b o n u s v_ϕ^\mathrm{bonus} vϕbonus,以适应等式中各自的奖励塑造术语(4),以便更好地估计状态值。鉴于此,当应用GIRE时,我们更新算法1:1)同时复制第11行、13-14行来计算 R ^ t ′ o r i g i n \hat{R}_{t'}^\mathrm{origin} R^torigin R ^ t ′ r e g \hat{R}_{t'}^\mathrm{reg} R^treg,和 R ^ t ′ b o n u s \hat{R}_{t'}^\mathrm{bonus} R^tbonus以及 A ^ t ′ o r i g i n \hat{A}_{t'}^\mathrm{origin} A^torigin A ^ t ′ r e g \hat{A}_{t'}^\mathrm{reg} A^treg,和 A ^ t ′ b o n u s \hat{A}_{t'}^\mathrm{bonus} A^tbonus;2)更新第16行替换等式(6)和等式(7)进入等式(8)和等式(9),分别;并相应地更新第17行,其中所有的批评者共享相同的学习率 η ϕ η_ϕ ηϕ

L θ P P O = 1 n ∣ D ∣ ∑ D ∑ t ′ = t − n t − 1 min ⁡ ( π θ ( a t ′ ∣ s t ′ ) π old  ( a t ′ ∣ s t ′ ) A ^ t ′ , Clip ⁡ [ π θ ( a t ′ ∣ s t ′ ) π old  ( a t ′ ∣ s t ′ ) , 1 − ϑ , 1 + ϑ ] A ^ t ′ ) , L ϕ Critic  = 1 n ∣ D ∣ ∑ D ∑ t ′ = t − n t − 1 max ⁡ ( ∣ v ϕ ( s t ′ ) − R ^ t ′ ∣ 2 , ∣ v ϕ Clip  ( s t ′ ) − R ^ t ′ ∣ 2 ) . L θ GIRE  = 1 n ∣ D ∣ ∑ D ∑ t ′ = t − n t − 1 min ⁡ ( π θ ( a t ′ ∣ s t ′ ) π old  ( a t ′ ∣ s t ′ ) ( A ^ t ′ origin  + A ^ t ′ red  + A ^ t ′ bonus  ) , Clip ⁡ [ π θ ( a t ′ ∣ s t ′ ) π old  ( a t ′ ∣ s t ′ ) , 1 − ϑ , 1 + ϑ ] ( A ^ t ′ origin  + A ^ t ′ red  + A ^ t ′ bonus  ) ) , \begin{gathered} \mathcal{L}_\theta^{\mathrm{PPO}}=\frac{1}{n|\mathcal{D}|} \sum_{\mathcal{D}} \sum_{t^{\prime}=t-n}^{t-1} \min \left(\frac{\pi_\theta\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}{\pi_{\text {old }}\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)} \hat{A}_{t^{\prime}}, \operatorname{Clip}\left[\frac{\pi_\theta\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}{\pi_{\text {old }}\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}, 1-\vartheta, 1+\vartheta\right] \hat{A}_{t^{\prime}}\right), \\ \mathcal{L}_\phi^{\text {Critic }}=\frac{1}{n|\mathcal{D}|} \sum_{\mathcal{D}} \sum_{t^{\prime}=t-n}^{t-1} \max \left(\left|v_\phi\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}\right|^2,\left|v_\phi^{\text {Clip }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}\right|^2\right) . \\ \mathcal{L}_\theta^{\text {GIRE }}=\frac{1}{n|\mathcal{D}|} \sum_{\mathcal{D}} \sum_{t^{\prime}=t-n}^{t-1} \min \left(\frac{\pi_\theta\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}{\pi_{\text {old }}\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}\left(\hat{A}_{t^{\prime}}^{\text {origin }}+\hat{A}_{t^{\prime}}^{\text {red }}+\hat{A}_{t^{\prime}}^{\text {bonus }}\right),\right. \\ \left.\quad \operatorname{Clip}\left[\frac{\pi_\theta\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}{\pi_{\text {old }}\left(a_{t^{\prime}} \mid s_{t^{\prime}}\right)}, 1-\vartheta, 1+\vartheta\right]\left(\hat{A}_{t^{\prime}}^{\text {origin }}+\hat{A}_{t^{\prime}}^{\text {red }}+\hat{A}_{t^{\prime}}^{\text {bonus }}\right)\right), \end{gathered} LθPPO=nD1Dt=tnt1min(πold (atst)πθ(atst)A^t,Clip[πold (atst)πθ(atst),1ϑ,1+ϑ]A^t),LϕCritic =nD1Dt=tnt1max( vϕ(st)R^t 2, vϕClip (st)R^t 2).LθGIRE =nD1Dt=tnt1min(πold (atst)πθ(atst)(A^torigin +A^tred +A^tbonus ),Clip[πold (atst)πθ(atst),1ϑ,1+ϑ](A^torigin +A^tred +A^tbonus )),

L ϕ G I R E = 1 n ∣ D ∣ ∑ D ∑ t ′ = t − n t − 1 max ⁡ ( ∣ v ϕ origin  ( s t ′ ) − R ^ t ′ origin  ∣ 2 + ∣ v ϕ reg  ( s t ′ ) − R ^ t ′ reg  ∣ 2 + ∣ v ϕ bonus  ( s t ′ ) − R ^ t ′ bonus  ∣ 2 , ∣ v ϕ origin,clip  ( s t ′ ) − R ^ t ′ origin  ∣ 2 + ∣ v ϕ reg,clip  ( s t ′ ) − R ^ t ′ reg  ∣ 2 + ∣ v ϕ bonus,clip  ( s t ′ ) − R ^ t ′ bonus  ∣ 2 ) . \begin{aligned} \mathcal{L}_\phi^{\mathrm{GIRE}} & =\frac{1}{n|\mathcal{D}|} \sum_{\mathcal{D}} \sum_{t^{\prime}=t-n}^{t-1} \max ( \\ & \left|v_\phi^{\text {origin }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {origin }}\right|^2+\left|v_\phi^{\text {reg }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {reg }}\right|^2+\left|v_\phi^{\text {bonus }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {bonus }}\right|^2, \\ & \left.\left|v_\phi^{\text {origin,clip }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {origin }}\right|^2+\left|v_\phi^{\text {reg,clip }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {reg }}\right|^2+\left|v_\phi^{\text {bonus,clip }}\left(s_{t^{\prime}}\right)-\hat{R}_{t^{\prime}}^{\text {bonus }}\right|^2\right) . \end{aligned} LϕGIRE=nD1Dt=tnt1max( vϕorigin (st)R^torigin  2+ vϕreg (st)R^treg  2+ vϕbonus (st)R^tbonus  2, vϕorigin,clip (st)R^torigin  2+ vϕreg,clip (st)R^treg  2+ vϕbonus,clip (st)R^tbonus  2).

C.2 推理算法

在我们之前的工作[12]中,在推理过程中加入了数据增强,以提高搜索多样性。其基本原理是,一个特定的实例 G \mathcal{G} G可以转换为不同的实例,但仍然保留相同的最优解。这些增强实例可以通过训练后的模型并行进行不同的解决,从而增强搜索的多样性以获得更好的性能。具体来说,每个增强实例都是通过连续执行表9所示的四个预定的不变增强转换来生成的,其中用于每个转换的执行顺序和配置是根据算法2动态随机确定的。
在这里插入图片描述

在这里插入图片描述
然而,这种增强只在推理开始时执行一次,使增强在整个搜索过程中固定。因此,我们提出了动态数据增强(D2A)。它建议,每次当求解器不能在TD2A步骤的连续最大范围内(即,我们认为搜索被困在局部最优)中找到更好的解决方案时,都会使用不同的增强配置生成新的增强的增强实例。这允许模型在陷入局部最优状态时,显式地以不同的方式解决实例,从而促进了更多样化的搜索过程。请注意,建议的D2A可以提高大多数L2S求解器,当配备了像EAS [5]这样的事后每实例处理支持器时,甚至有可能提高L2C求解器。在Algorothm 3中,我们总结了D2A过程,其中我们注意到,在实际实现过程中,第1行和第7行中的循环可以并行运行。例如,当我们使用表1中所述的“D2A=5”时,这意味着对于每个实例 G \mathcal{G} G,有5个增强实例 { G 1 , G 2 , G 3 , G 4 , G 5 } \{\mathcal{G}_1,\mathcal{G}_2,\mathcal{G}_3,\mathcal{G}_4,\mathcal{G}_5\} {G1,G2,G3,G4,G5}同时被求解。每个实例都有自己的计数器 T i s t a l l T_i^{\mathrm{stall}} Tistall和迄今为止最好的解决方案 τ i b s f τ_i^{\mathrm{bsf}} τibsf来跟踪搜索(对于特定的实例 G i \mathcal{G}_i Gi)是否已经进入了局部最优。

D 关于GIRE方案的进一步讨论

(1)独立的批评者网络

根据附录C,我们在GIRE中使用了单独的批评者。现在我们将介绍它们的详细架构。在评论家值估计过程中,我们首先升级嵌入 { h i } \{h_i\} {hi}(从 π θ π_θ πθ的编码器)到 { h i ^ } x i ∈ V \{\hat{h_i}\}_{x_i∈\mathcal{V}} {hi^}xiV使用一个香草多头注意层。然后将{ˆhi}输入平均池化层[39],生成如下压缩表示,

(2)极端搜索行为和我们的GIRE效用
(3) ϵ ϵ ϵ的影响
(4) c 1 c_1 c1 c 2 c_2 c2的影响
(5)将GIRE应用于其他约束条件

E 附加的实验结果

E.1 部署的详情

E.2 对真实世界的数据集的泛化

E.3 TSP-200 和 CVRP-200 上的结果

E.4 多GPUs 的影响

E.5 探索行为的可视化

E.6 使用过的资产和许可证

在这里插入图片描述

八、主要参考文献


相关领域

【待补充】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值