文献阅读(1)——深度强化学习求解车辆路径问题的研究综述

news2024/11/15 14:05:43
doi: 10.3778/j.issn.1002-8331.2210-0153
深度强化学习求解车辆路径问题的研究综述 (ceaj.org)
组合最优化问题( combinatorial optimization problem, COP
日常生活中常见的 COP 问题有旅行商问题(traveling salesman problem TSP )、车辆路径问题
vehicle routing problem VRP )、车间作业调度问题 (job shop scheduling JSP )、最小顶点覆盖问题( minimum vertex cover, MVC )、施泰纳树问题( Steiner tree problem,STP 施泰纳最小树问题_百度百科 (baidu.com) )以及装箱问题(bin packing BP) 装箱问题_百度百科 (baidu.com) 等。

      VRP 在离散决策空间进行决策变量的最优选择与RL 序贯决策的功能具有天然的相似性,且 DRL “离线训练”“在线决策”的特征使VRP在线实时求解成为了可能。
      NN 解决 VRP 问题是 Vinyals 等人 将问题类比为机器翻译过程,提出了指针网络(pointer network PN )模型,使用长短期记忆网络(long-short term memory , LSTM)作为编码器,注意力机制( attention mechanism , AM)作为解码器,从城市坐标中提取特征。但是 PN采用监督学习(supervise learning SL )方式训练网络,需要构造大量高质量的标签,因此大多数研究利用DRL 求解 VRP 问题。除 PN 模型外,随着图神经网络(graph neural network,GNN)技术的兴起,Scarselli等人利用GNN对每个节点特征进行学习,从而进行节点预测,主要求解思路是利用 GNN 对节点特征进行学习,由编码器对问题的输入序列进行编码,再利用解码器结合注意力计算方法,以自回归的方式逐步构造解,根据学习到的特征进行后续的节点预测。
        进一步地,Ma 等人把PN 与 GNN 相结合提出图指针网络(graph pointer network,GPN),利用 GNN 提取计算节点特征,再用 PN 进行解的构造,提升了大规模TSP问题的泛化能力。与大多数经典启发式算法相比,基于 RL 训练的模型对问题变化具有鲁棒性,当问题输入发生变化时,RL可以自动适应问题变化输出较优的解。
       受Transformer架构的启发,Kool 等人借用Transformer提出新框架,其主要求解思路是利用AM 对模型进行改进,提出将输入元素分为静动态两种表示, 利用嵌入的方式替代循环神经网络(recurrent neural network,RNN)的编码过程对静动态元素进行向量表示,解码阶段将静态向量表示输入到解码 RNN 中获得隐含层向量与动态向量结合,通过AM获得下一个决策点的概率分布,超越了先前解决路径问题的优化性能。 后续的研究工作大部分是基于 Kool 等人的AM模型开展的,经过不断调整编码器、解码器的结构以及RL训练方法,进一步提升VRP的优化性能。
下面介绍 RL 相关原理和将 VRP 转化为序列决策问题的马尔可夫决策过程(Markov decision process MDP ),以及经典的RL算法。

RL 是智能体在与环境的交互过程中,通过学习策 略以最大化提高奖励或实现特定目标的模型。RL 可以建模为 MDP MDP 实际就是一个多元组 [ S,A, P ,R,γ ] 其中,初始状态空间 S ( s t S ) 是起点城市或是部分解; A 为动作空间 ( a t A ) ,动作是对部分解的添加或者对完整解进行改变; P 为状态转移概率矩阵; R 是奖励函数,表明在特定状态下选择的动作对解决方案造成的影响。 γ ( 0 , 1 ) 是折扣因子,调控智能体考虑短期回报。
TSP 问题为例,初始环境 s t 为已访问的城市或起始城市节点,新状态 s t + 1 是实时更新的解决
方案,动作 a t 是下一个将要访问的城市,奖励信号 r t 在访问完节点时(以负的路径长度)激励智能体做出下一步决策。

       有模型学习对环境有提前的认知,可以提前感知优化;无模型学习在训练速度上逊于前者,但更易实现,在真实场景下可以快速调整到较优的状态。利用RL 解决 VRP 的方法主要分为:基于值函数的方法和基于策略优化的方法。

1.DRL求解车辆路径问题的思路

1.1车辆路径问题的简单概述

       如何提高解的精度,加快搜索速度,减少时间复杂度、 增强模型泛化能力 等是求解VRP 最关注的问题。在实际场景中, VRP 会超出普通路径问题的限制,例如,带有时间窗口的 旅行商问题(traveling salesman problem with time windowsz,TSPTW) 将时间窗口约束添加到 TSP 中的节点,即节点只能在固定的时间间隔内访问;带容量的车辆路径问题(capacity vehicle routing problem,CVRP),旨在为访问一组客户(即城市)的车队(即多个销售人员)找到最佳路线,每辆车都具有最大承载容量的限制。VRP根据不同的应用场景和现实条件需要考虑更多的约束(车
载容量、配送中心数量、车辆行驶里程、时间限制等),因此衍生出许多变体,例如: 带时间窗的车辆路径问题 (vehicle routing problem with time windows,VRPTW)  、 无人机和卡车协同配送的无人机车辆路径问题(vehicle routing problem with drones, VRPD )、多车型车辆路径问题(heterogeneous fleet vehicle routing problem , HFVRP)等。

1.2 基于深度强化学习求解路径问题的步骤

       利用 DRL 求解 VRP 的思路是将城市的原始坐标作为输入,利用 PN GNN Transformer 结合经典图搜索算法建设性地构建近似解

步骤 1 将问题转化为图结构信息, VRP 问题是一 个全连接图,图的节点对应于城市节点,边对应两城市 之间的道路,如图5 所示。图通过启发式算法进行稀疏化,使模型能够扩展到所有节点的成对计算来解决难以处理的大型实例,或者通过减少搜索空间来更快地学习策略。
步骤 2 获取图中节点和边的初始嵌入,如图 6 所示。嵌入是GNN Transformer 编码器将 TSP图中的每个节点或边作为输入,来计算高维空间表示或嵌入特征。在编码的每一层,节点从其邻居节点收集特征,通过递归传递表示局部图结构。堆叠 L 层后,网络能够从每个节点的 L 层邻域中构建节点的特征。Transformer中基于 AM 的 GNN 已成为编码路径问题的默认选择,AM 作用在于根据对现在节点的相对重要性来权衡邻居节点。

步骤 3 图的节点或边被编码为高维空间表示,解码为离散的TSP ,如图 7 所示。首先,将概率分配给每个节点或每条边,通过分配的概率将节点或边添加到解集中;然后通过经典图搜索技术(例如由概率预测引导的 贪心搜索或波束搜索 )将预测概率转换为离散决策。
步骤 4 模型训练。整个编码器 -解码器模型以端到端的方式进行训练,一般情况下,通过模仿最优求解器来训练模型以产生接近最优的解。由于 TSP 问题通常需要顺序决策以最小化特定于问题的成本函数,可以天然地利用 RL 框架训练智能体最大化奖励函数。对于未充分研究的问题以及缺乏标准解决方案的情况下,RL是一种最优的替代方案。

2.基于DRL求解VRP的方法

       近年来出现的大量研究,旨在使用 DRL 方法开发新的学习算法来自动解决路径问题,以实现动态高效的求解。 DRL求解VRP的方法主要分为PN、GNN、Transformer 以及混合模型四类模型。 以上通用的路径问题求解框架,可以适用于求解 VRP 的变体问题,运行速度和精度相比传统算法有较大优势。表1 和表 2 对近几年求解 TSP 及其变体问题和 VRP 及其变体问题的模型进行分析与总结。下面对以上四类模型方法进行介绍,对各类方法的代表性模型、优化性能进行对比和分析。

2.1 基于PN求解VRP

2.1.1 求解模型

2015 Vinyals 等人 首次提出将 PN VRP 结合, 使得模型架构不受输入输出维度的限制,采用 SL 方式进行离线训练,以预测访问城市的序列,解决了小规模的TSP问题,为PN求解VRP开辟了新的道路。PN模型原理是将 VRP问题编码成向量,使其在隐层输出、解码时通过激活函数对向量进行处理,输出问题实例中较大的概率向量。例如 PN 求解 TSP 的步骤为:首先将每个城市的坐标转化为高维节点特征向量,由编码器读入城市坐标,编码为对应的存储输入序列信息的向量,然后
解码器对向量进行解码,在解码过程中,利用 AM 和隐层状态计算选择各个城市的概率
在解码时使用 u^{i}_{t} 作为指向向量选择输入序列中的元素。
        Vinyals 等人 SL 方式训练模型,需要大量 TSP 示例及其最优解作为训练集,标签不易获得。为了摆脱对高质量标签的依赖,Bello 等人 [25] 采用了 RL 中的行动者- 评论家( actor-critic AC )算法训练网络参数,提出神经组合优化(neural combinatorial optimization NCO ) 模型,以PN 为基础构建策略网络,训练过程中模型输出的序列值可以通过深度神经网络(deep neural network, DNN)训练估值网络参数,再通过奖励机制微调,不断改进策略网络,扩大了 TSP 的求解规模,但该框架不适用于随时间变化的更复杂的 VRP 问题。在此基础上,Nazari等人 [40] 提出了一种可以系统处理静态和动态元素的训练方法,模型对输入序列保持不变,因此改变任何两个输入的顺序不会影响模型状态。在 VRP 问题中输入是无序的客户位置及客户需求,输入顺序对问题求解影响较小,因此模型未采用RNN 编码器,而通过简单的节点嵌入替换了 PN LSTM 编码器,进而缩短了训练时间,且不会降低模型的训练效率。
        面对多目标优化问题( multi-objective optimization problems, MOPs )时, Li 等人 [26] 提出了一种使用 DRL 解决 MOP 的端到端框架,模型将多目标问题分解为一系列子问题,再通过 PN 来解决多目标旅行商问题( multi-objective traveling salesman problem, MOTSP )。该模型探索了使用 DRL 以端到端的方式求解 MOTSP 的可能性,即给定 n 个城市作为输入,可以通过训练网络的前向传播直接获得最优解。

2.1.2 模型总结

以上模型依赖梯度信息指导搜索,基于搜索的求解VRP方法通常由启发式方法指导,在各种条件和情况下调整启发式方法通常非常耗时。为此 Chen 等人 [41] 使用双向 LSTM 嵌入路径,提出 NeuRewriter 模型,模型学习一种策略来选择启发式方法并重写当前解决方案的局部组件,以迭代方式改进直到收敛。实验果表明模型可求出CVRP20 的最优解, CVRP100 的优化性能优于求解
OR-Tools

2.2 基于Transformer求解VRP

2.2.1 求解模型

       RNN 参数在序列的所有元素之间共享,当模型获取最后一个时间步的输出时,它可能会“忘记”序列中先前元素的信息。而 AM 通过保留编码器对输入序列的隐层向量序列,在解码阶段对获得的向量序列加权求和得到上下文向量 c t ,由于在输出过程中注意力的权重不同,因此权重参数 α i t 越大,在 t 时刻输出第 i 个向量的概率越大。进一步,Google 团队 [16] 提出了由 AM 和多层感知机组成的网络结构“Transformer ”, Transformer 的MHA可以注意到子空间的信息,从不同角度、不同维度提取到问题的深层特征,允许节点通过不同的通道传递相关信息,实现并行计算。因此来自编码的节点嵌入可以学习图的上下文中关于节点的信息。Kool等人 提出了一种有效的模型和训练方法,以改进上述基于学习的启发式求解路径问题。通过用AM层代替递归网络来减少节点输入顺序的影响,应用RL算法训练模型。与 Bello 等人 不同,此模型引入贪婪策略得到的解作为基线,提高了模型的收敛速度。 Joshi等人 基于 Kool 等人 的实验设置,结合 SL RL训练100 个节点的 TSP ,提升了模型的准确率。
       在 Kool 等模型中,节点特征通过嵌入方式进行编码,该嵌入随时间推移而固定。而问题实例的状态应根据模型在不同的构造步骤所做的决定而改变,节点特征应该相应地更新。因此,Peng等人提出了一种具有动态编码器-解码器结构的动态注意力模型,该模型能够动态地探索节点特征,并在不同的构造步骤中有效利用隐藏的结构信息。与Kool等人相比,该模型在图的上下文中动态地刻画每个节点,这可以在不同的构造步骤中有效地探索和利用隐藏的结构信息。
        受 Transformer NLP 中的启发, Bresson 等人 将 Transformer 用 于 求 解 TSP ,编 码 器 与 Kool 等 人 [17] 和 Deudon 等人 [28] 相同,通过 RL 训练模型,使用带有 MHA 模块的部分解来构建查询,添加一个不存在的城市,该城市通过自注意力模块查询所有城市,并在最佳位置使
用波束搜索解码。结果表明, TSP50 的最优间隙为0.004%, TSP100 的最优间隙为 0.39%
        虽然 DRL 方法可以直接输出问题的解,但是其优化效果与专业求解器相比仍有一定差距。由于局部搜索是求解组合优化问题的经典方法,学者们开始研究利用 DRL 方法来自动学习局部搜索算法的启发式规则,从而比人工设计的搜索规则具有更好的搜索能力。相比之下,Wu等人[29] 利用 DRL来自动发现更好的改进策略,提出了一个 DRL 框架来改进启发式算法解决路径问题。模型首先提出一种用于改进启发式算法的RL公式,其中策略网络由两部分组成,分别学习节点嵌入和节点对选择,用来指导下一个解决方案的选择;并利用AC 算法训练策略网络,然后通过邻域搜索来改进初始解,不断地提高解的质量,最后利用基于自注意力的框架参数化策略。将模型应用于求解 TSP 和 CVRP 的实验结果表明,模型明显优于现有的基于线性规划的求解TSP 和 CVRP 方法,在改进启发式算法过程中,学习到的策略确实比传统的手工规则更有效,并且可以通过简单的集成策略进一步增强。
       基于 Transformer 还有更多的改进, Falkner 采用修复和破坏算子,通过局部搜索过程和维护少量候选 解 来 进 一 步 扩 展 大 邻 域 搜 索(large neighborhood search, LNS )。 LNS 是神经修复算子与局部搜索过程、启发式破坏算子和部分解的选择过程相结合,以获得高效的求解方法,LNS 主要思想是利用学习的模型来重构部分被破坏的解,并通过破坏启发式(或随机策略本身)引入随机性来有效地探索大邻域。文献[49] 启发式方法针对解决方案的不同部分,将销毁分为两种不同的操作:创建部分路线、删除完整的路线。与文献[49] 每次考虑一个节点的构造启发式相反,Hottung Tierney 直接学习神经修复算子,以重新组合由CVRP 的随机分裂产生的路径片段。
       基于 Falkner Ma 等人   提出双方面协作Transformer( dual-aspect collaborative transformer DACT)神经领域搜索模型,使用双向编码器分别学习节点和位置特征的嵌入,利用循环格雷码邻接相似、首尾相似的特性设计高维空间连续的循环位置编码(cyclic positional encoding,CPE),训练过程中使用课程学习获得更高效的采样速率,以及更快的收敛速度和更小的方差,提高求解VRP的泛化性能。应用DACT求解TSP和CVRP的结果表明,DACT优于现有的邻域搜索求解器,并且具有更优的泛化性能。

2.2.2 模型总结

现实生活中 VRP 问题涉及车辆容量、时间窗口等约束,虽然近年来已经开发了 RL 模型来比优化启发式更快地解决基本的 VRP 问题,但很少考虑复杂的约束。启发式算法高效的邻域搜索功能是求解 VRP 问题的关键组成部分,Ma 等人 [52] 针对取货和送货问题( pickup and delivery problem, PDP )问题设计基于并改进 DACT 的神经邻域搜索方法 N2S N2S DACT-Attention 改进为高效的 Synth-Attention ,允许最基本的自我注意机制合成关于解决方案的各种特征,同时利用两个自定义解码器自动学习执行取货和送货节点对的移除和重新插入,以解决优先级约束。模型甚至在更多约束的PDP 变体上超过了人工设计的LKH3 求解器。

2.3 基于GNN模型求解VRP

2.3.1 求解模型

        近年来,研究人员设计了用于处理图数据的神经网络结构 GNN ,其核心思想是根据每个节点的原始信息(如城市坐标) 和各个节点之间的关系(城市之间的距离),计算得到各个节点的特征向量,依据节点特征向量进行节点预测、边预测等任务。GNN 与图嵌入密切相关,图嵌入旨在通过保留图的拓扑结构和节点内容信息,将图中顶点表示为低维向量,以便使用RL 算法进行处理。Scarselli 等人[14] 利用GNN模型处理图上的数据表示问题,实现了函数 将图中的节点映射到多维欧几里德空间,适用于以图及其节点为中心的应用。
       
       GNN 通过低维的向量信息来表征图的节点及拓扑结构,有效的提取图中关键节点信息。Nowak 等人 [53] 以SL的方式训练 GNN ,直接输出一个环游作为邻接矩阵, 结合波束搜索将其转换为可行的路径方案。该方法被提出之后,structure2vec S2V )、GCN[54] 、图注意力网络
graph attention network GAT )等模型相继被提出, 用于解决VRP
        在许多实例中,相似的路径问题通常保持相似的问题结构,但数据不同,这为学习启发式算法提供了契机。 Khalil等人 [30] 指出上述网络架构不能有效反映 TSP 的图结构,并提出了一种将 RL 与图嵌入神经网络相结合的框架,以增量方式构造 TSP 和其他 VRP 问题的解决方案,引入基于 S2V 的图嵌入网络,以捕获解决方案的当前状态和图的结构,然后使用 Q-learning 来学习贪婪策略,该策略决定将哪个顶点插入部分游览,可求解大范围的TSP问题。
       GPN扩展了传统的PN,增加了一层图嵌入,这种转换实现了对大规模问题的更好推广。Kool 等人[17] 将GNN 和 PN 进行结合求解 CVRP,加入 MHA 以及自注意力机制,AM能有效地捕捉深层节点信息,采用AM计算每一步的节点选择概率,以自回归的方式逐步构造得到完整解,且模型通过设计超参数展示了在合理大小的多个 VRP问题上的灵活性。为学习更好的启发式方法解决广泛的VRP问题提供思路。
       Joshi 等人 [31] 基于 Kool 等人 [17] 的实验设置,在 PN 基础上用图卷积神经网络(graph convolutional networks ,GCN)编码代替 Transformer 架构编码,结合 SL RL 训练100 个节点的 TSP ,提升了模型的准确率,利用 SL 训练 GNN ,以预测边出现在 TSP 中的概率,通过波束搜索 生成可行的回路。为 TSP20/50/100 训练基于自回归的GAT模型,并评估从 TSP20 TSP500 的实例,通过 REINFORCE训练 RL 模型和贪婪算法推出基线,以最大限度地减少模型在每一步的预测和最优目标。
       GCN [54] 是许多复杂 GNN 模型的基础,其核心思想是学习一个函数映射,通过映射图中的节点,聚合节点与其邻居节点的特征来生成节点的新表示。Groshev 等人[55] Joshi 等人 [56] 通过 SL 训练 GCN 来解决 TSP Joshi等人[56] TSP20/50/100 的优化效果略微超越了 Kool 等人[17] 的方法,接近 LKH3 Concorde 等求解器得到的最优解,但是该方法的求解时间慢于 LKH3 Concorde 等方法,在泛化能力上该方法也不及 Kool 等人 [17] 的方法。Groshev 等人 [55] 使用经过训练的 GCN 来指导启发式算法输出解决方案,利用这些解决方案作为标签重新训练大规模 TSP GCN ,进一步, Prates 等人 [57] 使用 SL来训练GNN ,将边缘权重视为每个实例的特征,模型输出的解决方案与最优解的偏差可以小于2%
       以上工作都是利用人工智能的泛化能力来探索满足问题的车辆路径,仍受到城市规模、大型交通网络带来的计算复杂度的困扰。James 等人 [58] 提出一种基于DRL的 NCO 策略,将在线 VRP 问题转换为车辆游览生成问题,并提出一种图嵌入式 PN 结构来迭代开发游览。由于构造NN 所需的 SL 数据具有高计算复杂度,利用具有无监督辅助网络的 DRL 机制来训练模型参数,同时设计多采样方案,以进一步提高模型性能。

2.3.2 模型总结

       GNN GCN 用来提取图的特征并部署记忆增强NN 和 RNN 传递顺序信息, GAT 是一种基于空间的GCN 网络。 GAT 是通过 AM 传播节点信息,对图拓扑具有强大的表示能力。因此,Gao 等人 [42] GAT 基础上改进提出 EGATE 模型(element-wise GAT with edge-embedding,EGATE),模型的编码器是将节点嵌入和边嵌入集成修改的GAT,以及一个基于GRU的解码器,模型通过 AC 训练,实验结果表明,在中等规模的数据集上,该模型优于传统启发式算法和NCO模型,能够处理大规模数据集。由于 VRP 问题的高复杂性,难以扩展且大多受到问题模型容量的限制。因此,学者提出利用混合方法来求解VRP及其变体问题。

2.4 混合模型求解VRP

2.4.1 RL结合传统算法求解VRP

        在求解 CVRP 问题时, LKH3 等经典算法求解效率低,难以扩展到更大的问题。基于 DRL 的方法求解效率高,但是 DRL 解的质量与传统经典方法求得解的质量仍存在相当大的差距,为此 Lu 等人 [59] 提出一种在解决方案中迭代搜索,通过不断地改善解,直到满足某个终止条件的框架。模型将启发式算子分为改进算子和扰动算子,即给定一个问题实例,算法首先生成一个可行解,然后用改进算子或扰动算子迭代地更新解,在一定次数的步骤之后,模型将在所有访问的解决方案中选
择最好的一个。
       经典算法除了求解效率不高,求解 VRP 问题还面临着状态 空间爆炸问题,可行解的数量随着问题规模的大小呈指数级增长,使得解决大规模 VRP 变得棘手。 Cappart 等人[32] 提出一种基于 DRL 和约束规划(constraint programming,CP)混合模型求解TSPTW,模型核心是将TSPTW通过动态规划(dynamic programing,DP)建模,模型架构分为三个部分:学习阶段、求解阶段和统一表示,其中智能体的动作衔接学习和求解两个阶段,学习阶段是通过 RL 训练问题实例,求解阶段利用 CP评估问题实例。通过实验证明,该模型的性能优于独立的RL和CP解决方案,与求解器OR-Tools效果担当。
       为进一步提高模型的泛化能力, Fu 等人 [33] 提出一个在固定大小的图上预训练的网络,通过对子图进行采样,推断和合并结果以解决更大规模的问题。在此基础上,Xin 等人 [60] 提出将 DL 与传统启发式 LKH 相结合的算法NeuroLKH 解决 TSP 。该模型训练了一个稀疏图网络(sparse graph network SGN ),分别通过 SL 和无监督学习训练边缘分数、节点惩罚,以此提高 LKH 的性能,
基于 SGN 的输出, NeuroLKH 创建边缘候选集并转换边缘距离以指导 LKH 的搜索过程。文献 [60] 实验结果显示,NeuroLKH 显著优于 LKH ,并且模型可以很好地推广到CVRP PDP
       DRL 方法通常缺少在解空间内搜索的能力。为克服以上问题,王原等人[61] 提出了深度智慧型蚁群优化算法(deep intelligent ant colony optimization DIACO ),采用 DRL 方法提取问题特征,并形成对应的特征矩阵,蚁群算法基于特征矩阵进行搜索求解,蚁群算法的加入提高了 DRL 解空间搜索性能,同时 DRL 提升了蚁群算法的计算能力,该方法能够有效求解不同规模的 TSP。
       一些求解 VRP 的模型可以通过 Q-learning 很好地训练,但不能通过Sarsa 训练,降低了模型的性能。因此,Zheng等人 [62] 提出一种基于 RL 的启发式算法 VSR-LKH ,该算法显著提升了著名的 LKH 算法,它将 Q-learning 、Sarsa 和 MCT 三种算法相结合,取代 LKH 的遍历操作, 是一种可变策略。可变策略的思想是受可变邻域搜索的启发,定义一个 Q 值来代替 α 值,通过结合城市距离和 α 值来进行候选城市的选择和排序,并且通过迭代搜索过程中产生的可行解的信息自适应地调整Q 值,以进一步提高模型泛化性能。

2.4.2 RL与神经网络相结合的混合模型

        由于 RL 学习方法大多直接学习端到端的解决方案,以及 VRP 问题的高复杂性,难以扩展且受到 RL 模型容量的限制,为克服上述问题,Wang 等人 [63] 设计了一 个双层框架求解器,上层学习框架来优化图(例如,添加、删除或修改图中的边),下层启发式算法在优化的图上求解,这样的双层网络简化了对原始问题的学习,并且可以有效地减轻对模型容量的需求。
       面对更复杂或者大范围的路径问题时,经典的DRL算法仍然得不到好的优化效果,训练好的模型泛化到大范围时解的质量会下降。于是研究者提出了分层强化学习(hierarchical reinforcement learning HRL )模型,HRL在面对高维度问题时不会出现维度灾难,将一个复杂的问题分解为简单的子问题,从而来解决大规模的TSP。 Ma 等人 [15] 使用 RL 训练分层 GPN ,在约束条件下学习分层策略寻找最优解,该模型在小范围TSP 训练且泛化到大范围TSP 也具有更快的计算速度和最短距离。
       而对于问题 TSP-D Bogyrbayeva 等人 [34] 提出了一种AM-LSTM 混合模型,用于考虑车辆和无人机之间交互作用的高效路径,该模型由一个基于AM 的编码器和一个基于 LSTM 的解码器组成, AM 对高度连通的图形进行编码,LSTM 存储所有车辆的历史路径。数值结果所示,这种混合模型在解决方案质量和计算效率方面都优于基于 AM 机制的模型,以及模型泛化到对最小 - 最大容量约束车辆路径问题的实验也证实了混合模型比基于注意的模型更适合于多车辆协调的路径问题。
        与启发式方法相比,经典的 DP 算法保证了最优解, 但随着问题规模的增大使得泛化性很差。为此 Kool 等人[64] 提出深度策略动态规划( deep policy dynamic programming, DPDP ),将神经启发式的优势与 DP 算法的优势相结合。DPDP 使用来自 DNN 的策略对 DP 状态空间进行优先级排序和限制,以及使用 GNN 对部分解进行评估,对DP 算法进行“神经增强”。实验结果表明,神经策略有效地提高了 DP 算法的性能,对于具有 TSP100 ,该方法产生与高度优化的 LKH 求解器相接近的结果,在TSPTW100上,DPDP的求解速度显著快于LKH。
        面对 CVRP ,王扬等人 [43] 提出动态图 Transformer (dynamic graph transformer model DGTM )混合模型, 使用动态位置编码技术,用于循环编码动态序列,使得节点坐标在嵌入过程满足平移不变性,其次将 GNN 的聚合操作处理应用于 Transformer 解码架构中,最后通过双重损失的 REINFORECE 算法训练 DGTM ,有效调节不同节点间的差异分布程度,防止过早收敛。DGTM在处理 CVRP 问题上优化结果得到显著提高且具有较好的泛化性能。

2.4.3 模型总结

       之前关于求解车辆路径的工作主要集中在自回归模型,但当与任何形式的搜索方法相结合时,需要为每个部分解来评估模型,导致模型的计算成本很高。而Kool等人 [64] 提出的模型每个实例只需要对 NN 进行一次评估,因此可以进行更大范围的搜索。

3 DRL求解VRP的分析

3.1 求解方法局限性

        利用 RL 求解 VRP 需要不断调整参数,改进策略网络,在训练过程中难免会出现模型不稳定、泛化能力差或过于依赖标签等情况,都会对模型的最终性能造成影响。下面分别对基于 PN 、基于 GNN 、基于 Transformer和混合模型求解VRP 的相关模型进行局限性分析。
       基于 PN 模型局限性分析: PN 结构简单,无法处理动态信息;网络层数少,不利于充分提取问题的特征信息;在处理动态信息过程中,信息本身的不稳定性、节点信息稀疏性都会限制模型的优化效果影响解的输出。
       基于 Transformer 模型局限性分析:网络层数多、结构复杂,模型参数变多且不易训练。
       基于 GNN 模型局限性分析:模型需借助验证集早停提升模型性能;训练是整个批次进行的,难以扩展到大规模网络,且收敛较慢;网络层数太深时,模型参数不能得到有效的训练;图的拓扑性质会导致巨大的解空间在搜索过程也是困难的,从而限制模型的优化效果。
       混合模型求解 VRP 局限性分析:使用传统算法搜索导致训练时间较长,优化性能无法保证,可能出现解码错误等情况。 因此无论是基于图结构模型、还是基于 DRL 结合传统算法模型求解 VRP ,都有一定的局限性,表 3 对求解VRP 的经典模型进行局限性分析。

3.2 RL求解VRP问题的优势及实验对比

       VRP 有很多变体涉及动态不确定因素,利用传统方法求解问题难度很大,且不会有很大的突破 RL 与传统算法的结合求得的结果优于只使用传统算法的结果,例如 Alipour 等人 [69] 面对多约束条件的路径问题,使用 RL 算法使问题描述更加全面,解的质量也很高。VRP变体都是在经典的TSP上衍生的,具有相似的优化结构,传统算法在问题描述发生轻微变化时,就要重新设计算法,面对 VRP众多变体,设计很多算法将消耗大量人力,因此,单独地使用传统算法是不可行的。
       在面对具有多个约束条件的问题时,输入输出是随机的、动态的,且前一步的结果可能会对下一步求解有影响。一些传统算法难以考虑随机和动态因素,导致模型泛化能力弱,不能在各个变体中通用或者得到解的质量很差。而 NN 中的嵌入方式可以根据问题的情况做静态嵌入和动态嵌入,充分保证了原始问题的真实性。Li等人 [36] 提出 DRL 方法求解覆盖旅行商问题( covering salesman problem, CSP ),模型基于 PN 加入动态嵌入模型处理动态信息,计算速度比传统启发式快近 20 倍。利用RL 求解 VRP 与传统方法相比, RL 有优质的表现和泛化能力,加入动态嵌入可以更好地处理动态信息,深层次的网络更有利于提取深层次潜在的隐含信息。
       总的来说, RL 求解 VRP 相比传统算法的优势如下:(1 )求解速度快。 DNN 模型对问题特征进行全方位的表示,减少了解空间的搜索宽度和深度;硬件设施 CPU 更高、更快、更强和GPU ML 领域的优异表现,使得 VRP问题在最短的计算时间内得到显著的优化效果;模型一旦训练完成,以 O ( n ) 的复杂度输出解。( 2 )泛化能力的提高。面对具有相似结构的问题,只需调用参数通过迁移学习传递给相应的策略函数,就能输出合适的解,减少对数据标签的依赖性,节省大量资源和计算时间。通过 DRL 学出来的策略有希望比人工设计出来的更高效,不需要重新设计算法。(3 )解决了多维度问题。面对多维度问题,可以使用不同嵌入方式结合AM使问题的描述更加详细,挖掘更深层次的关系,从而输出高质量的解。DRL有望能够求解一些复杂约束条件下的NP难问题。
        本文对端到端的 DRL 方法作了详细的介绍,为保持实验数据公平性,所有实验均基于 Pytorch-1.9.0 深度学习平台,在 Windows11 操作系统环境下使用单张Nvidia RTX 3050 GPU 和 i5-11300H CPU 运行 VRP模型,这里总结了常用的基于 DRL 的方法和启发式算法的最新实验结果,表 4 是针对 CVRPlib 数据集实例上具有代表性模型的优化效果的对比。实验结果显示, DACT 模型的优化性能超越了目前基于 DRL 的模型和专业求解器。

4.总结及未来发展方向

        最近,许多研究人员回顾了基于 RL 求解 VRP ,每篇综述都有各自的优点和不足,本文对最近发表的综述进行整理分析:Mazyavkina 等人 [70] 总结了一些常用的基于策略和基于价值的强化学习算法,没有比较模型间的差距,没有数据对比;Kotary 等人 [71] ML 学习方法进行分类,侧重于端到端的学习范式,笼统地介绍了 GNN ;Cappart等人 [72] GNN 在各种推理任务中的应用进行了高级概述没有描述学习在 CO 推理中的具体作用和过程;Bengio 等人 [73] COP ML 算法进行概述,为 ML 应用到COP 提供理论基础,但未对 ML 求解 COP 的建模过程进行详细介绍。
       DRL VRP 问题与 DNN 结合起来,将 VRP 的特殊 性和 DRL 的优势结合起来,克服了单独使用传统算法求解效果不理想的局限性,是目前解决 VRP 及其变体最流行的方法。本文对 RL 的相关算法以及 DRL 模型的构建过程进行了详细的介绍,并梳理了先前模型的创新点和不足之处,重点分析了 DRL 模型架构的主要作用和特性。VRP是多变体多维度的,且现实数据与训练数据会有差距,导致模型在应用到实例会出现效果不好、最优间隙差等情况,由这些模型的不足可以看到,将
来使用 DRL 解决 VRP 及其变体问题仍存在挑战性。
1 )现有基于学习的方法仅仅训练特定的路径问题,对特定路径问题的范围进行泛化求解。未来可以考虑将训练完成的路径策略通过迁移学习技术,在不同实例上进行泛化求解,会节省大量的计算资源,提高模型的利用率。进一步深入探求不同参数之间的内在联系, 建立 VRP 问题变体之间的源域到目标域的映射关系是未来值得研究的问题。
2 )现有 RL 模型求解 VRP 属于端到端的方法,求解过程类似于黑箱优化,缺乏相应的理论保证。未来工作中,寻找一种通用的体系结构,有效地保证 DRL 求解方法的可行性,还需要进一步评估和检验。未来工作中可以考虑将 DRL 及其网络架构迁移至运筹优化算法中,以增强求解的可靠性。因此继续深入探求 DRL的求解过程和增强模型的可解释性是未来值得研究的问题。
3 )大多数网络使用均匀分布或者随机生成数据来训练策略网络,训练好的模型可以泛化到不同的问题上,但是模型泛化能力的好坏或许与训练数据有关,若节点位置分布不知或不遵循任何分布,此时构建一个稳定的模型具有很大挑战。如何为 VRP及其变体问题构建鲁棒性的训练模型是未来工作中的关键研究点。未来考虑通过 知识蒸馏的方法提升 DRL模型在不同数据分布下的泛化能力。
4 RL 含有大量手工设计的超参数,不同的参数往往对模型的性能影响较大。为减少超参数对实验结果的影响,考虑将自动 RL 参数调整技术引入到模型训练中。自动调整学习率和衰减率对模型收敛性的控制是未来一个重要的研究方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1915226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

碾压SOTA!最新视觉SLAM:渲染速度提升176倍,内存占用减少150%

视觉SLAM,一种结合了CV与机器人技术的先进方法。与激光SLAM相比,它成本低廉且信息量大,易于安装,拥有更优秀的场景识别能力,因此在自动驾驶等许多场景上都非常适用,是学术界与工业界共同关注的热门研究方向…

【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】

目录 PID控制滤波单独位置控制单独速度控制单独电流控制位置-速度-电流串级控制 上一节,通过对SVPWM的推导,我们获得了控制电机转子任意受力的能力。本节,我们选用上节得到的转子dq轴解耦的SVPWM形式,对转子受力进行合理控制&…

C++——map和set类用法指南

一、前言 1.1 关联式容器 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是<key,value>结构的键值对&#xff0c;在数据检索时比序列式容器效率更高。 1.2 键值对 用来表示具有一一对应关系的一种结构&#xff0c;该结构中一般…

ARM功耗管理标准接口之PSCI

安全之安全(security)博客目录导读 思考&#xff1a;功耗管理有哪些标准接口&#xff1f;ACPI&PSCI&SCMI&#xff1f; Advanced Configuration and Power Interface Power State Coordination Interface System Control and Management Interface ARM V8架构的软件分…

组件设计原则和度量方法

在日常开发过程中&#xff0c;Spring、Dubbo、Mybatis等都是我们常用的开源框架。当你在使用这些框架时&#xff0c;不可避免需要通过分析源码来理解内部的实现原理。那么&#xff0c;你在翻阅源代码时&#xff0c;有没有想过这些框架的代码结构为什么要这样进行设计和实现呢&a…

自学鸿蒙HarmonyOS的ArkTS语言<五>attributeModifier动态属性和用attributeModifier封装公共组件

【官方文档传送门】 一、抽取组件样式 class MyModifier implements AttributeModifier<ButtonAttribute> {applyNormalAttribute(instance: ButtonAttribute): void {instance.backgroundColor(Color.Black)instance.width(200)instance.height(50)instance.margin(10…

2008年上半年软件设计师【下午题】真题及答案

文章目录 2008年上半年软件设计师下午题--真题2008年上半年软件设计师下午题--答案 2008年上半年软件设计师下午题–真题 2008年上半年软件设计师下午题–答案

数字滚动动画~

前言 数字从0.00滚动到某个数值的动画 实现&#xff08;React版本&#xff09; Dom <div className"number" ref{numberRef}>0.00</div> JS const _initNumber () > {const targetNumber 15454547.69;const duration 1500;const numberElement…

[leetcode]subarray-product-less-than-k 乘积小于K的子数组

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {if (k 0) {return 0;}int n nums.size();vector<double> logPrefix(n 1);for (int i 0; i < n; i) {logPrefix[i 1] …

E. Beautiful Array(cf954div3)

题意&#xff1a;给定一个数组&#xff0c;可以先对数组进行任意排序&#xff0c;每次操作可以选择一个ai&#xff0c;将它变成aik&#xff0c; 想让这个数组变成一个美丽数组&#xff08;回文数组&#xff09;&#xff0c;求最少操作次数 分析&#xff1a; 先找出相同的数字…

Android liveData 监听异常,fragment可见时才收到回调记录

背景&#xff1a;在app的fragment不可见的情况下使用&#xff0c;发现注册了&#xff0c;但是没有回调导致数据一直未更新&#xff0c;只有在fragment可见的时候才收到回调 // 观察通用信息mLightNaviTopViewModel.getUpdateCommonInfo().observe(this, new Observer<Common…

常用的JVM启动参数

JVM的启动参数有很多&#xff0c;但是我们平常能用上的并不是特别多&#xff0c;这里介绍几个我们常用的&#xff1a; 1. 堆设置&#xff1a; 。 -Xms&#xff1a;设置堆的初始大小。 。.-Xmx&#xff1a;设置堆的最大大小。 2. 栈设置&#xff1a; 。 -XsS&#xff1a;设置每个…

国产大模型第一梯队玩家,为什么pick了CPU?

AI一天&#xff0c;人间一年。 现在不论是大模型本身&#xff0c;亦或是AI应用的更新速度简直令人直呼跟不上—— Sora、Suno、Udio、Luma……重磅应用一个接一个问世。 也正如来自InfoQ的调查数据显示的那般&#xff0c;虽然AIGC目前还处于起步阶段&#xff0c;但市场规模已…

没想到吧,Python print函数也能玩出花!

目录 1、基础打印技巧&#x1f680; 1.1 print()函数入门 1.2 格式化字符串输出 使用f-string 使用str.format() 2、高级格式化选项&#x1f3a8; 2.1 f-string动态插入变量 2.2 使用format方法 3、控制台颜色输出&#x1f308; 3.1 利用ANSI转义码 3.2 使用第三方库…

结束休刊博客真·vlog | 顺便说一下500粉的事

啊&#xff0c;首先是信 ♥亲爱的读者们&#xff0c; 在这个充满数字韵律与代码奇迹的时空里&#xff0c;我满怀激动与感激的心情&#xff0c;提笔写下这封信&#xff0c;宣布一个令人振奋的消息——经过一段时间的休整与充电&#xff0c;我终于要结束这段宝贵的休刊时光&…

Errno2:No such file or directory,在当前文件确实没有该图片,怎么解决?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

测试和使用Pogo-DroneCAN CANUART串口扩展模块

关键词&#xff1a;Ardupilot&#xff0c;Pixhawk&#xff0c;DroneCAN&#xff0c;CANUART&#xff0c;Serial over DroneCAN&#xff0c;DroneCANUART&#xff0c;UAVCAN&#xff0c;MAVlink&#xff0c;Px4 Keywords&#xff1a;Ardupilot&#xff0c;Pixhawk&#xff0c;D…

c语言数据结构--图综合应用实验——校院导航

实验内容&#xff1a; 面向学校&#xff0c;构建一个校院导游软件。用无向图表示所在学校的校院景点平面图&#xff0c;图中顶点表示主要景点&#xff0c;存放景点的编号、名称、简介等信息&#xff0c;图中边表示景点之间的道路&#xff0c;存放路径距离等信息。该软件具有以…

dledger原理源码分析(四)-日志

简介 dledger是openmessaging的一个组件&#xff0c; raft算法实现&#xff0c;用于分布式日志&#xff0c;本系列分析dledger如何实现raft概念&#xff0c;以及dledger在rocketmq的应用 本系列使用dledger v0.40 本文分析dledger的日志&#xff0c;包括写入&#xff0c;复制…

软件架构之架构风格

软件架构之架构风格 9.3 软件架构风格9.3.1 软件架构风格分类9.3.2 数据流风格9.3.3 调用/返回风格9.3.4 独立构件风格9.3.5 虚拟机风格9.3.6 仓库风格 9.4 层次系统架构风格9.4.1 二层及三层 C/S 架构风格9.4.2 B/S 架构风格9.4.3 MVC 架构风格9.4.4 MVP 架构风格 9.5 面向服务…