POPULATION-BASED REINFORCEMENT LEARNING FOR COMBINATORIAL OPTIMIZATION PROBLEMS 学习笔记


摘要

使用强化学习来解决组合优化问题很具有吸引力,因为它去除了专家知识或预解决实例的需求。然而,期待一个智能体(agent)在一次推断中来解决这些困难问题(常常为NP-hard)是不现实的,因为问题内在的复杂性。因此,领先方法通常实现额外的搜索策略,从随机抽样和波束搜索到显式微调。本文中,本文主张学习大量补充政策的好处,它可以在推理时同时推演(rollout)。为此,本文介绍Poppy,一个简单的有理论基础的群(population)训练程序。Poppy没有依赖于预先定义的或手工制作的多样性概念,而是归纳出了一种无监督的专业化(specialization),其目标仅仅是使群的表现最大化。本文展示了Poppy产生了一个补充策略集合,同时获得了一个最先进的RL结果,在三个热门的NP-hard问题:旅行商问题(TSP)、有能力的载具路径规划(CVRP)和0-1背包(KP)问题。特别是在TSP问题,Poppy比先前最先进的方法表现得还好,将最优差距(gap)除以5,同时将推理时间减少了一个数量级以上。


零、一些基础

一、介绍

机器学习(ML)方法已经超过了在各种具有挑战性的任务中使用手工制作的特征和策略的算法。特别地,解决组合优化问题(CO)——最大化或最小化目标函数在一个有限的离散变量集合已经被找到——引来了很大的关注,因为它们(通常是NP)困难的性质,以及从物流到基础科学等领域的大量实际应用。

由于可行解的搜索空间随着问题规模的增加而指数增长,精确求解器面对规模大小将会是一个挑战,因此CO问题经常用带有专家知识的手动操作的启发式算法来处理。然而多种多样的基于机器学习的启发式算法已经被起初,强化学习(RL)是一个有前途的范式,因为它不需要这些困难问题的预处理案例。的确,基于强化学习CO解决器的算法改进,再加上低推理成本,并且它们的设计是针对特定的问题分布的,与传统解决器相比拥有着日益狭窄的差距(gap)。

为了提升提出的解决方案的质量,机器学习算法典型性地依靠额外的搜索程序,生成了多个候选解,可以分为两种方案。第一,改良方法从一个可行解开始,并且经过一个小的规范化逐步地提升。然而,这样逐步的搜索不能很快的获得差距很大解决方案,并且需要手动制作程序来定义可行动作空间。第二,构造方法通过一次选择一个元素逐步建造一个解决方案。可以使用采样策略建立多个解决方案,如随机采样策略或波束搜索。然而,正如改进方法有初始初始解决方案的偏差一样,构造方法也有单一的底层策略的偏差。因此,必须在利用已学习的策略(这可能不适合给定的问题实例)和探索不同的解决方案(其中纯随机策略的极端情况可能非常低效)之间取得平衡。

在本工作中,文章提出Poppy,是一种构建方法,利用具有适当不同政策的智能体群来改善困难CO问题解决空间的探索。然而一个单独的智能体的目标是在全部问题分布里表现得好,并且因此不得不作出妥协,一个群可以学习一套启发式方法,以便在任何给定的问题实例上只执行其中的一个。然而实现这样的直觉感知代表着几个挑战:(1)训练群智能体是非常昂贵的,并且在大规模上很有挑战,(2)训练好的群应该有强制策略提出不同的解决方案,(3)由于缺乏与典型CO问题的表现相一致的明确行为标记,训练方法不应在一系列政策中强加任何手工制作的多样性概念。

Poppy处理(1)通过在群中共享大部分计算,只专业化轻量级的策略头来实现智能体的多样性。挑战(2)和(3)都通过引入一个强化学习目标,旨在专业研究问题分布的不同子集来共同实现的。具体地说,本文推导了真正的群水平目标的一个下界,它对应于只训练在每个问题上表现最好的智能体。这是可以直观证明的,在给定的问题上,当其他智能体已经有了更好的表现时,群的表现没有通过在一个实例上训练一个智能体而改善。引人注目的是,本文发现,明智地应用这一概念上简单的目标,会产生一个群,在没有明确的监督下获得政策的多样性(因此适用于一系列问题,无需修改),并且对强大的表现至关重要。

本文的贡献总结如下:

1.本文引入并激励使用群的组合问题
2.本文展示了一个编码器-译码器结构,可以被用来高效的训练群。
3.本文提出了一个新的训练目标,并提出了一个实用的培训程序,以鼓励绩效驱动的多样性(即不使用明确的行为标记或其他外部监督的有效多样性)。
4.本文在三个CO问题上评估Poppy: TSP, CVRP和0-1背包(KP)。
在TSP和KP, Poppy显著优于其他基于RL的方法。在CVRP上,它始终优于其他仅推理的方法,并接近积极微调问题特定政策的性能。

二、相关工作

(1)组合优化的机器学习方法

第一次尝试用神经网络解决TSP问题归功于Hopfield & Tank,只将规模提升到30个城市。最近定制神经架构的发展(Vinyals et al.,2015;Vaswani et al.,2017),以及性能良好的硬件已经使得机器学习方法越来越高效。的确,几个框架已经被用于处理CO问题,比如图神经网络 (Dai et al., 2017),循环神经网络 (Nazari et al.,2018),和注意力机制(Deudon et al., 2018)。在本文中,本文使用编码器-译码器架构,有Kool et al.,2019提出。消耗高的编码器在每个问题实例下只运行一次,使得嵌入被反馈到一个小的译码器中,迭代的推演出全部轨迹,这使得高效推演变得可能。这一方法被Kwon et al.,2020进一步发展,他充分利用典型CO问题的潜在对称性(如起始位置和旋转)使用实例增强来实现训练和推理变现的改善。

值得注意的是,机器学习方法经常依赖于机制,来生成多个候选解决方案(Mazyavkina et al., 2021)。其中一种机制包括在初始解决方案上使用改进方法de O. da Costa et al. (2020):使用策略梯度来学习在TSP中给定当前解决方案时选择本地操作符(2-opt)的策略,而Lu et al.(2020)和Wu et al.(2021)将此方法扩展到CVRP。这一想法已被扩展到能够搜索习得的解决方案潜在空间(Hottung et al.,2021年)。然而,这些方法有两个局限性:它们是特定于环境的,并且搜索过程固有地受初始解的影响。

依靠替代的探索机制是通过随机采样一个已经学习了的策略生成一个多样性轨迹集合,潜在的带上额外的波束搜索 (Joshi et al., 2019),蒙特卡洛数搜索(Fu et al., 2021),动态规划(Kool et al., 2021)或动态搜索(Hottung et al., 2022)。然而,直观地说,生成的解决方案倾向于接近潜在的确定性策略,这意味着额外抽样候选的好处迅速减少。

(2)基于群体的强化学习方法

群已经被用于强化学习来学习多样性的行为。在另一篇文章,, Gupta et al. (2018), Eysenbach et al. (2019), Hartikainen et al. (2020) 和 Pong et al. (2020)使用以一组目标为条件的单一策略作为无监督技能发现的隐性群体。更接近本文的方法,另一行工作围绕着显式地存储一组不同的策略参数 Doan et al. (2020), Hong et al. (2018), Jung et al. (2020) 和Parker-Holder et al. (2020)利用一个群来实现更好的策略空间覆盖。这在稀疏奖励环境或避免欺骗性的局部最优环境中特别有用。然而,它们强制执行基于策略距离的显式吸引-排斥机制,这被添加到损失函数中。因此,它们依赖于性能-多样性的权衡,这是与本文的方法相比的一个主要区别,本文的多样性纯粹是性能优化的副产品。

本文的方法是结合了强化学习与进化算法的 (EA; Khadka & Tumer, 2018; Khadka et al., 2019; Pourchot & Sigaud, 2019),它们受益于同样有效的强学学习策略更新,同时享受进化群水平的探索。然而,群是学习一种独特的强策略的手段,而Poppy学习的是一套互补的策略。更密切相关的是,Quality-Diversity (QD; Pugh et al., 2016; Cully & Demiris, 2018)是一个流行的EA框架,它维护多样化策略的选集。Pierrot et al.(2022)最近将强化学习与QD算法结合起来,既Map - Elite (Mouret & Clune, 2015);与Poppy不同的是,这些方法依赖于专家知识来定义行为标记,这并不容易适应CO上下文。

基于群的强化学习的缺点之一是其高昂的成本。然而,最近的方法表明,现代硬件和目标框架能够实现有效的向量化群训练 (Flajolet et al., 2022),为更广泛的应用打开了大门。

三、方法

1.背景和激励

(1)强化学习公式

一个问题实例 ρ \rho ρ,采样自由 N N N个变量(如TSP问题里的城市位置)组成的离散集合分布 D \mathcal{D} D。本文建立了一个组合优化问题模型,作为马尔科夫决策过程(MDP),定义一个状态空间 S \mathcal{S} S,一个动作空间 A \mathcal{A} A,一个转换函数 T T T,一个奖励函数 R R R,和一个折扣因子 γ \gamma γ
一个状态是一个通过问题实例 τ t = ( x 1 , . . . . . . , x t ) ∈ S \tau_t=(x_1,......,x_t) \in \mathcal{S} τt=(x1,......,xt)S(其中 x i ∈ ρ x_i \in \rho xiρ)的轨迹,并且因此由一个有序的变量列表组成(长度不一定为 N N N)。
一个动作, a ∈ A ⊆ ρ a \in \mathcal{A} \subseteq \rho aAρ包括选择下一个要添加的变量;因此,给定状态 τ t = ( x 1 , . . . . . . , x t ) \tau_t=(x_1,......,x_t) τt=(x1,......,xt)和动作 a a a,下一个状态是 τ t + 1 = T ( τ t , a ) = ( x 1 , . . . . . . , x t , a ) \tau_{t+1}=T(\tau_t,a)=(x_1,......,x_t,a) τt+1=T(τt,a)=(x1,......,xt,a)
使得 S ∗ ⊆ S \mathcal{S}^* \subseteq \mathcal{S} SS成为解决方案的集合;也就是说,符合问题约束的状态(例如,一系列城市,即每个城市被访问一次,并以TSP中的起始城市结束)。
奖励函数 R R R S ∗ → R \mathcal{S}^* → \mathbb{R} SR将解决方案映射到标量。本文假设奖励是被最优解决方案最大化的(如 R但会负的旅程长度在TSP中)。

一个策略 π θ \pi_\theta πθ θ \theta θ进行参数化,用于对实例 ρ ∼ D \rho \sim \mathcal{D} ρD生成生成解决方案,根据概率分布 π θ ( ⋅ ∣ ρ , τ t ) \pi_\theta (·|\rho,\tau_t) πθ(ρ,τt)迭代采样下一个动作 a ∈ A a \in \mathcal{A} aA。本文用REINFORCE学习 π θ \pi_\theta πθ。该方法意在通过调整 θ \theta θ最大化强化学习目标 J ( θ ) ≐ E ρ ∼ D E τ ∼ π θ , ρ R ( τ ) J(\theta) \doteq \mathbb{E}_{\rho \sim \mathcal{D}} \mathbb{E}_{\tau \sim \pi_\theta, \rho} R(\tau) J(θ)EρDEτπθ,ρR(τ),这样,良好的轨迹就更有可能在未来被采样。正式地,策略参数 θ \theta θ由梯度上升更新 ∇ θ J ( θ ) = E τ ∼ D E τ ∼ π θ , ρ ( R ( τ ) − b ρ ) ∇ θ log ⁡ ( p θ ( τ ) ) \nabla_\theta J(\theta)=\mathbb{E}_{\tau \sim \mathcal{D}} \mathbb{E}_{\tau \sim \pi_\theta, \rho}\left(R(\tau)-b_\rho\right) \nabla_\theta \log \left(p_\theta(\tau)\right) θJ(θ)=EτDEτπθ,ρ(R(τ)bρ)θlog(pθ(τ)) 其中 p θ ( τ ) = ∏ t π θ ( a t + 1 ∣ ρ , τ t ) p_\theta(\tau)=\prod_t \pi_\theta\left(a_{t+1} \mid \rho, \tau_t\right) pθ(τ)=tπθ(at+1ρ,τt) b ρ b_\rho bρ 是基线(baseline)。

(2)激励案例

本文主张用图一中的实例训练一个群的收益。
图一
在这个环境中,有三个动作:左、右和上。上获得中等奖励,而左/右获得低/高或者高/低奖励(该配置是在每一回合(episode)开始时以相等的概率确定的)。至关重要的是,左右路径都是复杂的,所以主体不能轻易地从观察中推断出哪一个能带来更高的回报。那么,对于单个智能体来说,最好的策略是总是向上的,因为保证的中等奖励(2scoops)高于左右猜测的预期奖励(1.5scoops)。相比之下,群中的两个智能体可以朝相反的方向前进,但总能找到最大的奖励。有两个惊人的观察结果:(1)智能体不需要为了群性能最优,而最优执行(一个智能体获得最大奖励),(2)平均性能比单智能体情况下更差。

具体来说,当(1)一些最优行动难以从观察中推断出来,(2)选择是不可逆的(即不可能从次优决策中恢复过来)时,就会发生上述讨论过的现象。这些条件通常在解决困难的CO问题时成立。如上所示,在这些情况下,要使群的性能最大化,将需要智能体专业化(specialize),并且可能产生比单一智能体情况下更好的结果。

2.Poppy

本文提出了Poppy的三个不同的组成部分:实现有效群推广的架构,鼓励智能体专业化的强化学习目标,以及整体训练过程。

(1)建构

本文使用注意力模型Kool et al. (2019),该文章将策略模型分为两个部分。首先,一个大的编码器 h ψ h_\psi hψ,使得一个实例 ρ \rho ρ作为输入,对于每个实例中的变量输出嵌入 w w w。其次,一个小的译码器 q Φ q_\Phi qΦ将输出嵌入 w w w和一个轨迹 τ t \tau_t τt作为输入,并且输出每一个下个动作的概率。至关重要的是,嵌入的昂贵计算可以对事件开始时的每个实例进行一次,因为它独立于任何轨迹;因此,在每个时间步长只执行轻量级解码操作。

本文利用这个框架来构建一个 K K K个智能体的群。编码器 h ψ h_\psi hψ作为整个群的共同主干(backbone)被共享,而解码器 q ϕ 1 , q ϕ 2 , … , q ϕ K q_{\phi_1}, q_{\phi_2}, \ldots, q_{\phi_K} qϕ1,qϕ2,,qϕK对每个智能体都是唯一的。这是由于(1)编码器学习的通用表示对所有智能体都有用,以及(2)减少训练群的开销,并保持参数的总数较低。关于模型尺寸的讨论在附录A.1中提供。

(2)基于群体的训练目标

通常情况下的强化学习目标 J ( θ ) = E ρ ∼ D E τ ∼ π θ , ρ R ( τ ) J(\theta)=\mathbb{E}_{\rho \sim \mathcal{D}} \mathbb{E}_{\tau \sim \pi_\theta, \rho} R(\tau) J(θ)=EρDEτπθ,ρR(τ),已经在上文提到过。直观地说,群目标对应于群中为每个问题推演的每个智能体,并使用最佳解决方案。对于有着 K K K个智能体的一个群,每个参数 θ ˉ = { θ 1 , θ 2 , … , θ K } \bar{\theta}=\left\{\theta_1, \theta_2, \ldots, \theta_K\right\} θˉ={θ1,θ2,,θK},群目标可以定义如下:
J pop  ( θ ˉ ) ≐ E ρ ∼ D E τ 1 ∼ π θ 1 , τ 2 ∼ π θ 2 … , τ K ∼ π θ K max ⁡ [ R ( τ 1 ) , R ( τ 2 ) , … , R ( τ K ) ] J_{\text {pop }}(\bar{\theta}) \doteq \mathbb{E}_{\rho \sim \mathcal{D}} \mathbb{E}_{\tau_1 \sim \pi_{\theta_1}, \tau_2 \sim \pi_{\theta_2} \ldots, \tau_K \sim \pi_{\theta_K}} \max \left[R\left(\tau_1\right), R\left(\tau_2\right), \ldots, R\left(\tau_K\right)\right] Jpop (θˉ)EρDEτ1πθ1,τ2πθ2,τKπθKmax[R(τ1),R(τ2),,R(τK)]
为了更新 θ ˉ \bar{\theta} θˉ本文推导了一个简单的下界,设计在诱导智能体专业化:
J p o p ( θ ˉ ) = E ρ ∼ D E τ 1 ∼ π θ 1 , τ 2 ∼ π θ 2 , … , τ K ∼ π θ K max ⁡ [ R ( τ 1 ) , R ( τ 2 ) , … , R ( τ K ) ] J p o p ( θ ˉ ) ≥ E ρ ∼ D max ⁡ [ E τ 1 ∼ π θ 1 R ( τ 1 ) , E τ 2 ∼ π θ 2 R ( τ 2 ) , … , E τ K ∼ π θ K R ( τ K ) ] J p o p ( θ ˉ ) ≥ E ρ ∼ D [ E τ ∼ π θ ρ ∗ R ( τ ) ]  with  θ ρ ∗ = arg ⁡ max ⁡ θ i ∈ θ ˉ E τ ∼ π θ i , ρ R ( τ ) \begin{aligned} J_{\mathrm{pop}}(\bar{\theta}) & =\mathbb{E}_{\rho \sim \mathcal{D}} \mathbb{E}_{\tau_1 \sim \pi_{\theta_1}, \tau_2 \sim \pi_{\theta_2}, \ldots, \tau_K \sim \pi_{\theta_K}} \max \left[R\left(\tau_1\right), R\left(\tau_2\right), \ldots, R\left(\tau_K\right)\right] \\ J_{\mathrm{pop}}(\bar{\theta}) & \geq \mathbb{E}_{\rho \sim \mathcal{D}} \max \left[\mathbb{E}_{\tau_1 \sim \pi_{\theta_1}} R\left(\tau_1\right), \mathbb{E}_{\tau_2 \sim \pi_{\theta_2}} R\left(\tau_2\right), \ldots, \mathbb{E}_{\tau_K \sim \pi_{\theta_K}} R\left(\tau_K\right)\right] \\ J_{\mathrm{pop}}(\bar{\theta}) & \geq \mathbb{E}_{\rho \sim \mathcal{D}}\left[\mathbb{E}_{\tau \sim \pi_{\theta_\rho^*}} R(\tau)\right] \text { with } \theta_\rho^*=\underset{\theta_i \in \bar{\theta}}{\arg \max } \mathbb{E}_{\tau \sim \pi_{\theta_i}, \rho} R(\tau) \end{aligned} Jpop(θˉ)Jpop(θˉ)Jpop(θˉ)=EρDEτ1πθ1,τ2πθ2,,τKπθKmax[R(τ1),R(τ2),,R(τK)]EρDmax[Eτ1πθ1R(τ1),Eτ2πθ2R(τ2),,EτKπθKR(τK)]EρD[EτπθρR(τ)] with θρ=θiθˉargmaxEτπθi,ρR(τ)

这个下界,本文称之为 J p o p p y J_{poppy} Jpoppy,并作为本文的强化学习目标来处理,只对应于在每个实例上评估表现最好的智能体。参数 θ ρ ∗ θ^*_\rho θρ可以被估计为在 ρ \rho ρ上奖励最高的智能体(任意打破联系)。更重要的是, J p o p p y J_{poppy} Jpoppy可以使用标准的策略梯度进行优化(Sutton et al., 1999),不同之处在于,对于每个问题,只训练了最好的智能体。该公式适用于各种问题,并直接优化群水平的表现,而无需明确的监督或手工制作的行为标记。

(3)训练步骤

在这里插入图片描述
1.
单解码器架构(即单智能体)从头开始训练。此步骤与Kwon et al. (2020)的训练过程相同。

2.
丢弃训练后的解码器,随机初始化一群解码器头(heads)。在共享编码器的参数被冻结的情况下,解码器使用相同的训练实例进行并行训练,如图2(左)所示。

3.
使用 J p o p p y J_{poppy} Jpoppy目标将编码器与种群解码器联合训练,如算法1所述,如图2(右)所示。智能体在此阶段隐式地专业化不同类型的问题实例。
在这里插入图片描述
阶段1允许在不需要群的计算开销的情况下训练大型编码器。虽然从性能的角度来看,这并不是严格必要的,但本文观察到,从头开始联合训练一个共享的编码器(即结合前两个阶段)效率较低,而不是性能更好。第二阶段,即群在专业化之前接受预先训练,也是至关重要的。随机初始化的解码器通常是不分布的,例如一个单一(或少数)智能体(s)在所有实例中主导性能;因此,如果没有事先对解码器进行预先训练,只有最初的主导智能体才会接收到训练信号,进一步扩大了性能差距。本文发现,在专业化之前,对整个群进行合理策略训练是避免这个问题的简单可靠的方法。最后,阶段3也适用于编码器冻结;然而,本文选择解冻它以使性能最大化。

(4)起始点

参考Kwon et al. (2020),本文对于每个实例 ρ \rho ρ生成了多个解决方案,通过考虑一个起始点集合 P ∈ [ 1 , N ] P \in [1,N] P[1,N],其中 N N N是实例变量的个数。例如,一个TSP实例中的一个起点可以是它的任何一个城市。因此,在不同的训练阶段中,智能体成对(例如,起点)生成轨迹。平均奖励被用作REINFORCE基线。一个关键的考虑因素是在什么级别上应用Poppy目标(即在第三阶段中智能体如何专业化)。由于智能体对于每个实例经过一些起始点训练,本文区分了两种专业化。首先,当最优解依赖于起点时,本文考虑每个(实例,起点)对作为一个单独的问题;因此,本文为每个起始点训练最佳智能体。其次,当最优解不依赖于起点时,本文将专业化进一步推到起点上:对于每个实例,只有单个最佳的(智能体、起点)对用于训练。前一种情况更为普遍,而后一种情况则适用于TSP,因为任何起始位置都可以得到相同的解。在附录A.2中有一个扩展的讨论。

四、实验

0.基础

本文评估了Poppy的三个CO问题: TSP、CVRP和KP。为了强调它的通用性,本文对每个问题使用相同的超参数,这些数据取自Kwon等人(2020年)。本文对4、8、16或32个智能体的群运行Poppy,这些智能体表现出不同的时间-性能权衡。

(1)训练

一个训练步骤对应于计算群中每个智能体的同一批64个实例上的策略梯度。训练时间随问题的复杂性和训练阶段的不同而变化。例如,在有100个城市的TSP中,第一阶段和第2阶段分别需要4.5M(5天)和25k(10H)步。第三阶段需要800k的训练步骤,根据人口规模持续1-4天。本文基于JAX的实现使用Jumanji
suite的环境(Bonnet et al., 2022),以及重现这项工作的问题实例。所有实验均在v3-8 TPU上进行。

(2)推理

本文贪婪地在群中推演每一种智能体,并使用Kwon等人(2020年)提出的对TSP和CVRP的改进。此外,为了在更大的时间预算下了解Poppy的性能,本文实现了一个简单的采样策略。给定 K K K个智能体的总体,本文首先贪婪地在每个起点上推演每个智能体,并将任何剩余的抽样预算均匀地分配到每个实例中最有希望的 K K K个(智能体,起点)对儿上。

(3)基线(Baseline)

本文将Poppy与精确求解器、启发式方法和最先进的ML方法进行了比较。Hottung等人(2022)的一些基线性能通过不同的硬件和框架(Nvidia Tesla V100 GPU)获得;因此,为了公平起见,本文在表格中用 ∗ ∗ 标记这些时间。作为比较的指导原则,本文非正式地注意到这些GPU推理时间应该近似除以2来得到转换后的TPU时间。

1.旅行商问题(TSP)

给定一组 n n n个城市,TSP的目标是访问每个城市,并回到起始城市,同时最小化总旅行距离。

(1)设置

本文使用了Kool等人(2019)和Kwon等人(2020)使用的架构,并进行了轻微的修改(见附录B)。测试实例取自Kool等人(2019)的 n = 100 n = 100 n=100和Hottung等人(2022)的 n ∈ { 125 , 150 } n \in \{ 125,150 \} n{125,150}。训练时在 n = 100 n = 100 n=100个实例上完成的。
本文将Poppy与以下进行比较:
(1)专业监督学习(SL)方法GCN-BS(Joshi等,2019),CVAE-Opt(Hottung等,2021),DPDP(Kool等,2021);
(2)有限采样预算POMO贪婪推出,POMO16随机推出POMO(匹配Poppy16运行时);
(3)慢RL方法(特点是包含广泛的搜索策略)2-opt-DL(deO.daCosta等,2020),LIH(Wu等,2021),200个推出的POMO和微调方法EAS(Hottung等,2022)。
除了这些基于ML的方法,本文还将精确求解器协和式飞机(Applegate等人,2006)和启发式求解器LKH3(Helsgaun,2017)进行了比较。由于起点的专门化,Poppy 1在这里并不等同于POMO。

(2)结果

在这里插入图片描述
表1显示了每个测试集的平均行程长度、最优性间隙和总运行时间。最好的算法仍然是 Concorde,因为它是一个高度专业化的TSP求解器。值得注意的是,贪婪推演的Poppy 16在几分钟内在每个类别中达到了最好的性能,除了DPDP表现更好;然而,DPDP专门处理路由问题并利用专家知识。通过额外的采样,Poppy达到了0.001%的性能差距,这为一般的基于ML的方法建立了一个最先进的技术。与DPDP相比,Poppy提高了0-shot的性能,这表明它对发行变化更稳健。

(3)分析

为了更好地理解Poppy如何影响训练过程,本文在图3的顶部图中显示了16个智能体群的阶段2和阶段3。当切换到 J p o p p y J_{poppy} Jpoppy时,群水平的性能急剧提高,而智能体的平均性能下降(左上角),达到相同的最佳分数的智能体数量突然减少(右上角)。这证实了智能体专门化的直觉。此外,右下图显示,平均智能体性能随着群规模的增加而降低,而群水平的性能则增加。这表明对更大的群具有更强的专业化, J p o p p y J_{poppy} Jpoppy似乎平衡了这一点。由于Poppy产生了一种有利于最佳智能体的无监督专门化,因此预测性能将如何在总体中分布并不简单。在左下角的图中,本文可以看到性能均匀地分布在Poppy 16的群中;因此,这表明群并没有崩溃为一些高性能的智能体,而Poppy完全受益于群规模。其他分析详见附录B.1.4。
在这里插入图片描述

2.容量有限的载具路径规划问题(CVRP)

给定一辆容量有限的车辆和一组 n n n个有不同需求的节点,目标是找到一组最优的路线,以便每个节点(除了仓库)被精确地访问一次,并满足其需求。车辆的容量因被访问节点的需求而减少(必须完全覆盖),并在被访问仓库时恢复。

(1)设置

本文使用Kwon等人(2020)对n = 100使用的测试实例,以及Hottung等人(2022)的集合来评估对更大问题的泛化。本文用4和8个智能体的群评估Poppy,其中包括一个32的群,因为表现正在改善。本文将Poppy与启发式求解器LKH3(Helsgaun,2017)进行了比较,作为计算间隙的参考,尽管它的性能不是最优的。本文还报告的结果监督毫升方法CVAE-Opt(Hottung等,2021),DPDP(Kool 等,2021),和RL方法中性(Chen & Tian,2019),NLNS(Hottung & Tierney,2020),POMO(Kwon等,2020),LIH(Wu等,2021),和EAS(Hottung等,2022)。对于TSP,本文评估了具有贪婪推出的POMO,以及32个随机样本来匹配本文最大总体的运行时间,和200个样本。

(2)结果

表2显示了Poppy在快速方法中具有最佳的时间-性能权衡,例如,Poppy 32具有与POMO相同的运行时间,有32个随机推出,同时除以1.5的最佳间隙。随机抽样的POMO和Poppy的细粒度比较见附录7。在慢的RL方法中,在Poppy中添加采样使其与基于问题大小的DPDP相当,并且只优于主动搜索方法EAS,这对CVRP有很大的改进。然而,主动搜索(1)阻止了并行化(因为它与样本数量呈线性关系)和(2)可以添加到Poppy之上,而不是随机抽样,以进一步提高性能,我们将其留给未来的工作。
在这里插入图片描述

3.0-1背包问题(KP)

我们在KP上评估了Poppy,以证明其在路径问题之外的适用性。给定一组具有 n n n个特定权重和值的项目,以及一袋有限的容量,目标是确定要添加哪些项目,以使总重量不超过容量,并且该值是最大的。

(1)设置

我们使用Kwon等人(2020年)所使用的设置:一个动作对应于将一件物品放入袋子里,然后重复填充,直到不能添加剩余的物品。我们根据基于动态规划、贪婪启发式和有采样和无采样的POMO的最优解对3个群规模的评估。

(2)结果

表3显示,Poppy可以提高了16个代理的性能,对POMO在KP100和KP200上分别占KP200的45和12,对16个随机样本的POMO占12和2。在这里插入图片描述

五、结论

Poppy是一种基于群的处理CO问题的RL方法。它使用一个RL目标,导致智能体专业化,目的是最大化群等级的性能。至关重要的是,Poppy并不依赖于手工制作的多样性概念来强制实现专业化。我们证明了Poppy在三个流行的np-hard问题上取得了最先进的性能: TSP、CVRP和KP。这项工作提出了几个问题。首先,我们对最多32名智能体的群进行了实验;因此,目前尚不清楚训练更大群的结果是什么。我们假设群性能最终会崩溃,留下具有零贡献的智能体。探索这一方向,包括防止这种崩溃的可能策略,是未来工作的一个有趣的方向。其次,我们记得,Poppy背后的动机是处理的问题是,从观察中预测最优行动太困难,无法由单一智能体可靠地解决。我们认为,这种设置可能不会严格局限于典型的CO问题,而基于群的方法为许多具有挑战性的RL提供了一个有前途的方向。

六、附录

A 关于Poppy的一些额外细节

A.1 参数数量

表4显示了本文的模型的参数总数作为群大小的函数。由于解码器所代表的参数小于10%,因此可以有效地缩放群规模。例如,16个智能体的数量大约是模型大小的两倍。
在这里插入图片描述

A.2 可能的特点1

本文提出了在本文的实验中使用的两种Poppy变体的详细算法。算法2是最一般的版本,它包括对每个(实例,起点)对只训练最好的智能体。使用 K K K个代理和 P P P个不同的起点意味着对于任何给定的实例推出 P × K P×K P×K轨迹,其中只有 P P P个有效地用于训练。我们在CVRP和KP中应用了这个版本。算法3增加了一层专门化:对于每个实例,最佳智能体仅从其最佳起点进行训练。与之前一样, P × K P×K P×K轨迹被采样,但损失是从单个轨迹计算出来的。
在这里插入图片描述

B 问题

本文在这里描述了我们用于评估Poppy的CO问题的细节,包括实例生成和训练细节(例如,体系结构、超参数)。在TSP和CVRP的情况下,本文展示了一些由智能体群得到的例子解。此外,本文还对TSP中群的表现进行了全面的分析。

B.1 旅行商问题(TSP)

实例生成

构成每个问题实例的 n n n个城市是从 [ 0 , 1 ] 2 [0,1]^2 [0,1]2中统一采样的。
在这里插入图片描述

训练细节

架构
本文使用与Kool等人(2019)和Kwon等人(2020)相同的模型,除了批处理归一化层,它们被层归一化所取代,以简化并行批处理。在实验观察到更快的收敛速度后,本文将解码器计算中使用的掩模(即,掩蔽可用的城市而不是不可用的城市)进行反转。
超参数
为了匹配Kwon等人(2020年)使用的设置,我们使用了Adam优化器(Kingma & Ba,2015),学习速率为 µ = 1 0 − 4 µ=10^{−4} µ=104 L 2 L_2 L2惩罚为 1 0 − 6 10^{−6} 106。该编码器由6个多头注意层组成,每个注意层有8个头。键、查询和值的维度为16。每个注意层由大小为512的前馈层组成,最终的节点嵌入具有128个维度。解码器由1个多头注意层、8个头和16维 k e y key key q u e r y query query v a l u e value value组成。

每个实例的起始点数 P P P为20个。我们在使用 P ∈ { 20 , 50 , 100 } P∈\{20,50,100\} P{20,50,100}的第一个训练步骤进行网格搜索后确定了这个值。

解决方案案例

图5显示了从TSP100上的16个智能体群中获得的一些轨迹。尽管它们看起来相似,但不同代理之间的小决策是不同的,因此经常导致不同的解决方案。有趣的是,一些药剂(特别是1和5)给出了非常差的轨迹。本文假设这是专门化的结果,因为如果其他智能体在这个实例上已经更好,或者其他起点产生更好的性能,智能体没有动机提供一个好的解决方案。

群体分析

图4显示了关于单个智能体性能的一些附加信息。在左图中,本文观察到每个智能体平均为25%的实例给出了最佳解决方案,而对于2.5%的实例,它在整个总体中给出了唯一的最佳解决方案。这些数字是均匀分布的,这表明每个智能体对整个群的性能都有贡献。此外,在近40%的情况下,单一智能体达到最佳性能,如图所示。右边显示了Poppy 4、8和16的几个智能体子群的性能。不出所料,任何固定大小的子群在从较小的群中采样时都更好: Poppy 16需要6个代理来恢复Poppy 4的性能,例如需要11个智能体来恢复Poppy 8的性能。这突出了这样一个事实,即主体已经学会了互补行为,如果缺少群总数的一部分,这可能是次优的。
在这里插入图片描述
在这里插入图片描述

B.2 有能力的载具路径规划问题(CVRP)

实例生成
训练细节

架构
超参数

解决方案案例

B.3 0-1背包问题

实例生成
训练细节

架构
超参数

C 时间性能的权衡

本文在图7中比较了Poppy和POMO之间的时间-性能Pareto前沿,因为本文分别改变了群大小和随机抽样量。Poppy始终为固定数量的轨迹提供更好的性能。引人注目的是,在一些环境中,如TSP100、TSP125、TSP150、CVRP150和KP100,通过增加随机样本的数量来匹配Poppy的性能似乎难以处理。
在这里插入图片描述

七、主要参考文献

八、代码解析

【待补充】


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值