Neural combinatorial optimization with reinforcement learning 翻译

摘要

本文提出了一个使用神经网络和强化学习来解决组合优化问题的框架。 我们专注于旅行商问题(TSP),并训练一个递归神经网络,该神经网络在给定一组城市坐标的情况下,预测了不同城市排列的分布。 使用负游程长度作为奖励信号,我们使用策略梯度方法优化了递归神经网络的参数。 我们将在一组训练图上学习网络参数与在单个测试图上学习网络参数进行比较。 尽管计算量大,但无需进行大量工程设计和启发式设计,神经组合优化在具有多达100个节点的2D欧几里得图上仍能达到接近最佳的结果。 将同样的方法应用于另一个NP难题KnapSack,它可以为多达200个项目的实例获得最佳解决方案。

引言

组合优化是计算机科学中的一个基本问题。 一个典型的例子是旅行推销员问题(TSP),在给定一张图的情况下,需要搜索排列的空间以找到具有最小总边缘权重(行程长度)的最优节点序列。
TSP及其变体在计划,制造,遗传学等方面有无数的应用(有关概述,请参阅(Applegate等,2011))。
即使在二维欧几里德情况下(Papadimitriou,1977),找到最优的TSP解决方案也是NP难的,在这种情况下,节点是二维点,边权重是点对之间的欧几里得距离。 在实践中,TSP求解器依靠手工制作的启发式方法来指导其搜索过程,以高效地找到竞争性游览。 即使这些启发式方法在TSP上运行良好,但一旦问题陈述稍有更改,就需要对其进行修订。 相反,通过基于训练数据自动发现自己的启发式方法,机器学习方法有可能适用于许多优化任务,因此与仅针对一项任务进行了优化的求解器相比,其所需的人工操作更少。
虽然大多数成功的机器学习技术都属于监督学习家族,在该家族中学习了从训练输入到输出的映射,但是监督学习不适用于大多数组合优化问题,因为一个人无法获得最佳标签。 但是,可以使用验证程序比较一组解决方案的质量,并向学习算法提供一些奖励反馈。 因此,我们遵循强化学习(RL)范例来解决组合优化问题。 我们凭经验证明,即使使用最佳解决方案作为标记数据来优化监督映射,与探索不同旅程并观察其相应奖励的RL代理相比,泛化效果也很差。
我们提出了神经组合优化,这是一个使用强化学习和神经网络解决组合优化问题的框架。 我们考虑基于策略梯度的两种方法(Williams,1992)。 第一种方法称为RL预训练,它使用训练集来优化递归神经网络(RNN),该神经网络使用预期的奖励作为目标,对解决方案的随机策略进行参数化。 在测试时,该策略是固定的,并且可以通过贪婪解码或采样来执行推理。 第二种方法称为主动搜索,不涉及预训练它从随机策略开始,并再次使用预期的奖励目标,在单个测试实例上迭代地优化RNN参数,同时跟踪搜索过程中采样的最佳解决方案。 我们发现,将RL预训练和主动搜索结合起来在实践中效果最好。
在具有多达100个节点的2D欧式图上,神经组合优化明显优于TSP的监督学习方法(Vinyals等人,2015b),并且在允许更多计算时间的情况下获得了接近最佳的结果。 我们通过测试KnapSack问题的相同方法来说明其灵活性,对于最多200个项目的实例,我们可以获得最佳结果。 这些结果使我们深入了解了如何将神经网络用作解决组合优化问题的通用工具,尤其是那些难以为其设计启发式算法的问题。

相关工作

旅行商问题是一个经过充分研究的组合优化问题,对于欧几里德图和非欧几里德图都提出了许多精确或近似的算法。
Christofides(1976)提出了一种启发式算法,该算法涉及计算最小生成树和最小权重完美匹配。 该算法具有多项式运行时间,并且返回的解决方案在TSP的度量实例中被保证在最优值的1.5倍之内。
用于TSP的最著名的精确动态编程算法的复杂度为Θ(2nn 2),使其无法按比例扩展到大型实例(例如40个点)。 尽管如此,最先进的TSP求解器,得益于精心设计的启发式方法,描述了如何以有效方式导航可行解决方案的空间,可以解决具有数千个节点的对称TSP实例。
协和飞机(Applegate等人,2006)被广泛认为是最精确的TSP求解器之一,它利用切割平面算法(Dantzig等人,1954; Padberg&Rinaldi,1990; Applegate等人,2003)进行迭代。 解决TSP的线性规划松弛问题,并结合使用分支定界方法来修剪搜索空间的某些部分(可能不会包含最佳解决方案)。 同样,Lin-Kernighan-Helsgaun启发式算法(Helsgaun,2000年)受到LinKernighan启发式算法(Lin&Kernighan,1973年)的启发,是对称TSP的最新近似搜索启发式方法,已证明可以解决数百个实例 节点达到最佳状态。
更多通用的求解器,例如用于解决TSP超集的Google的车辆路线问题求解器(Google,2016年),通常依赖于本地搜索算法和元启发式算法的组合。 本地搜索算法基于手工设计的启发式方法(例如2-opt(Johnson,1990年)),在候选解决方案上应用了一组指定的本地移动运算符,以在搜索空间中从一个解决方案导航到另一个解决方案。 然后,将元启发法应用于提出上坡移动并逃脱局部最优的情况。 对于TSP及其变体,一种流行的元启发式选择是引导式局部搜索(Voudouris&Tsang,1999),它通过惩罚特定的解决方案特征(认为不应在好的解决方案中使用)来摆脱局部最小值。
将现有搜索试探法应用于新遇到的问题(甚至是类似问题的新实例)的困难是众所周知的挑战,源于无免费午餐定理(Wolpert&Macready,1997)。 由于所有搜索算法在对所有问题求平均时都具有相同的性能,因此在选择搜索算法以保证性能时,必须适当地依赖先于问题。 这一挑战引起了人们对提高优化系统运行的普遍性的兴趣(Burke等人,2003年),并且是超启发式背后的潜在动机,超启发式被定义为“用于选择的搜索方法或学习机制”。 或生成启发式方法来解决计算搜索问题”。 超启发式技术旨在通过部分抽象掉给定组合问题的启发式方法的知识密集型过程来比问题特定的方法更易于使用,并且已被证明可以在许多任务中以优越的方式成功地结合了人类定义的启发式方法(请参阅(Burke et al。 等人,2013年)进行调查)。
但是,超启发式算法在启发式算法的搜索空间而不是解决方案的搜索空间上运行,因此最初仍然依赖于人类创造的启发式算法。
神经网络在组合优化中的应用有着杰出的历史,其中大部分研究集中在旅行商问题(Smith,1999)。 最早的建议之一是在TSP中使用Hopfield网络(Hopfield和Tank,1985年)。 作者修改了网络的能量函数,使其等效于TSP目标,并使用Lagrange mul惩罚违反问题约束条件的人。 这种方法的局限性在于它对超参数和参数初始化很敏感,如(Wilson&Pawley,1988)所分析的。 克服这一局限性是该领域后续工作的关键,尤其是(Aiyer等,1990; Gee,1993)。 与Hopfield网络的发展并行的是使用可变形模板模型求解TSP的工作。 也许最著名的是发明了弹性网作为解决TSP的手段(Durbin,1987),以及将自组织映射应用于TSP(Fort,1988; Angeniol等,1988; Kohonen,1990)。 解决可变形模板模型的局限性是该领域后续工作的核心(Burke,1994; Favata和Walker,1991; Vakhutinsky和Golden,1995)。 尽管这些神经网络具有许多吸引人的特性,但它们的研究工作仍然受到限制。 当仔细地进行基准测试时,与算法方法相比,它们没有得到令人满意的结果(Sarwar和Bhatti,2012年; La Maire和Mladenov,2012年)。 也许由于负面结果,自世纪之交以来,这一研究方向已被大大忽略。
受序列到序列学习的最新进展的推动(Sutskever等,2014),神经网络再次成为各个领域(Yutian等,2016)的优化研究主题,包括离散领域(Zoph和Le ,2016)。 尤其是在引入Pointer Networks(Vinyals等人,2015b)时重新审视了TSP,其中以监督的方式训练了具有非参数softmax的循环网络,以预测访问城市的顺序。 尽管改进了原型库,但仍使用近似求解器提供的监督信号对模型进行了训练。

TSP神经网络架构

在本文中,我们将重点放在2D欧几里得TSP上。 给定一个输入图,该图表示为二维空间s = {xi} ni = 1中的n个城市的序列,其中每个xi∈R 2,我们关心的是寻找到点π的排列,称为巡回 每个城市一次,并且总长度最小。 我们将由置换π定义的游览的长度定义为
公式(1)
其中k·k2表示denotes2范数。
我们旨在学习随机策略p(π| s)的参数,该参数给定输入点s的集合,为短期旅行分配高概率,为长期旅行分配低概率。 我们的神经网络架构使用链式规则将旅行的概率分解为
公式(2)
然后使用各个softmax模块代表(2)的RHS中的每个术语。
我们受到以前工作的启发(Sutskever等,2014),该工作基于链规则使用相同的因式分解来解决序列到序列的问题,例如机器翻译。 可以使用香草序列对模型进行排序,以解决TSP的输出词汇量为{1、2,…, 。 。 ,n}。 但是,这种方法存在两个主要问题:(1)以这种方式训练的网络无法推广到n个以上城市的投入。 (2)需要利用地面对数输出排列以条件对数似然来优化参数。 我们将解决本文中的两个问题。
对于超出预先指定的图形大小的泛化,我们采用(Vinyals等,2015b)的方法,该方法使用一组非参数的softmax模块,类似于(Bahdanau等,2015)的注意力机制。 。 这种称为指针网络的方法使模型可以有效地指向输入序列中的特定位置,而不用根据固定大小的词汇量来预测索引值。 我们采用图1所示的指针网络体系结构作为我们的策略模型来参数化p(π| s)。
公式(3)
3.1架构细节
我们的指针网络包括两个递归神经网络(RNN)模块,编码器和解码器,两者均由长短期记忆(LSTM)单元组成(Hochreiter和Schmidhuber,1997)。 编码器网络一次读取一个城市的输入序列s,并将其转换为一系列潜在的存储状态{enci} n i = 1,其中enci∈R d。 在时间步长i到编码器网络的输入是2D点xi的d维嵌入,这是通过在所有输入步长之间共享的xi的线性变换而获得的。 解码器网络还保持其潜在存储状态{deci} n i = 1,其中deci∈R d,并且在每个步骤i中,使用指向机制在游览中要访问的下一个城市上产生分布。 一旦选择了下一个城市,它将作为输入传递到下一个解码器步骤。 第一个解码器步骤的输入(在图1中用hgi表示)是一个d维向量,被视为我们神经网络的可训练参数。
我们的注意力函数(在附录A.1中正式定义)将查询向量q = deci∈R d和一组参考向量ref = {enc1,,作为输入。 。 。 ,其中enci∈R d,并预测在k个参考集合上的分布A(ref,q)。 该概率分布表示模型在看到查询q时指向参考ri的程度。
Vinyals等。 (2015a)还建议包括一些额外的计算步骤,即瞥见,以汇总输入序列不同部分的贡献,非常类似于(Bahdanau等人,2015)。 我们将在附录A.1中详细讨论此方法。 在我们的实验中,我们发现在指向机制中使用一瞥即可以不明显的成本延迟获得性能提升

4策略梯度优化

Vinyals等。 (2015b)建议使用包括条件对数似然的监督损失函数训练指针网络,该函数将网络输出概率与TSP求解器提供的目标之间的交叉熵目标纳入考虑。 对于NP难题,以这种方式从示例中学习是不希望的,因为(1)模型的性能与受监管标签的质量有关;(2)获得高质量的标签数据是昂贵的,并且对于新标签不可行。 问题陈述,(3)与复制另一个算法的结果相比,人们更关心寻找竞争解决方案。
相比之下,我们认为强化学习(RL)为训练组合优化的神经网络提供了合适的范例,特别是因为这些问题具有相对简单的奖励机制,甚至可以在测试时使用。 因此,我们建议使用基于模型的无模型强化学习来优化表示为θ的指针网络的参数。
我们的训练目标是预期的旅行时长,在输入图s的情况下,其定义为
公式(3)
公式(4)
其中b(s)表示不依赖π的基线函数,并估计期望的行程长度以减小梯度的方差。
通过绘制B i.i.d. 样本图s1,s2,… 。 。 ,sB〜S并在每个图形上采样一个游历,即πi〜pθ(。| si),(4)中的梯度通过蒙特卡洛采样近似如下:
公式(5)
基线b(s)的一种简单而流行的选择是网络随时间推移而获得的奖励的指数移动平均值,以说明该政策随培训而改善的事实。
尽管选择了这种基线足以改善Christofides算法,但它仍无法区分不同的输入图。 特别是,如果L(π∗ | ​​s)> b,则对于困难图形s的最优巡回π∗仍然不被鼓励,因为b在批处理中的所有实例之间都是共享的。
使用参数基线估计预期巡回长度Eπ〜pθ(。| s)L(π| s)通常可以改善学习。 因此,我们引入一个辅助网络,称为批判者,并用θv参数化,以学习在给定输入序列s的情况下由我们当前策略pθ得出的预期行程长度。
评论家接受了随机梯度下降训练,其均方误差目标介于其预测值bθv(s)与最新策略采样的实际游程长度之间。 附加目标表述为
公式(6)
评论家的TSP体系结构。 现在,我们说明批评者如何将输入序列s映射到基线预测bθv(s)中。 我们的批评者包括三个神经网络模块:1)LSTM编码器,2)LSTM处理模块和3)2层ReLU神经网络解码器。 它的编码器与指针网络的编码器具有相同的架构,并且将输入序列s编码为潜在存储状态和隐藏状态h的序列。 然后,类似于(Vinyals等,2015a),处理块对隐藏状态h执行P个计算步骤。 每个处理步骤都通过瞥见附录A.1中所述的内存状态来更新此隐藏状态,并将瞥见功能的输出作为输入提供给下一个处理步骤。 在处理块的末尾,然后通过分别具有d和1个单位的两个完全连接的层,将获得的隐藏状态解码为基线预测(即单个标量)。
我们的训练算法如算法1中所述,与(Mnih et al。,2016)中提出的异步优势参与者批评者(A3C)密切相关,因为采样游程长度与评论家的预测之间的差异是对 优势功能。 我们在多个工作线程之间异步执行更新,但每个工作线程也会处理一小段图,以实现更好的梯度估计。
4.1搜索策略
由于评估游程的成本不高,我们的TSP代理可以通过在每个图上考虑多个候选解并选择最佳来轻松地在推理时模拟搜索过程。 该推论过程类似于求解器如何搜索大量可行解的过程。 在本文中,我们考虑下面详细介绍的两种搜索策略,我们将它们称为抽样搜索和主动搜索。
采样。 我们的第一种方法只是从随机策略pθ(。| s)中抽样多个候选巡回路线,然后选择最短的巡回路线。 与启发式求解器相反,在此过程中,我们不执行模型来对不同的行程进行采样。 但是,从非参数softmax采样时,我们可以使用温度超参数来控制采样巡回的多样性(请参阅附录A.2)。 该采样过程比贪婪解码产生了显着改进,贪婪解码始终选择概率最大的索引。 与(Cho,2016)类似,我们还考虑了使用随机噪声干扰指向机制并从获得的修改后的策略中贪婪地进行解码,但是事实证明,这比我们的实验有效。
主动搜索。 无需使用固定模型进行采样并忽略从采样解中获得的奖励信息,而是可以在推理过程中优化随机策略pθ的参数,以在一次测试中将Eπ〜pθ(。| s)L(π| s)最小化。 输入s。 当从训练有素的模型开始时,这种方法被证明特别具有竞争力。 值得注意的是,当从未经训练的模型开始时,它也会产生令人满意的解决方案。 我们将这两种方法称为RL预训练-主动搜索和主动搜索,因为模型在单个测试实例上搜索候选解决方案时会主动更新其参数。
主动搜索类似于算法1应用策略梯度,但是在候选解π1上绘制蒙特卡洛样本。 。 。 对于单个测试输入,πB〜pθ(·| s)。 由于无需区分输入,因此它求助于指数移动平均基线,而不是批评家。 算法2中介绍了我们的主动搜索训练算法。我们注意到,尽管RL训练不需要监督,但仍然需要训练数据,因此泛化取决于训练数据的分布。 相反,主动搜索是独立于分发的。 最后,由于我们将一组城市编码为一个序列,因此在将输入序列提供给我们的指针网络之前,我们会随机对其进行随机混洗。 这增加了采样过程的随机性,并导致Active Search中的重大改进。

5 实验

我们进行实验以研究所提出的神经组合优化方法的行为。 我们考虑了三个基准任务,Euclidean TSP20、50和100,为此我们生成了包含1,000张图的测试集。 在单位正方形[0,1] 2中随机均匀地绘制点。
5.1实验细节
在所有实验中,我们使用128个序列的微型批处理,具有128个隐藏单元的LSTM单元,并将每个点的两个坐标嵌入到128维空间中。 我们使用Adam优化器训练模型(Kingma和Ba,2014年),TSP20和TSP50的初始学习率为10−3,TSP100的初始学习率为10−4,这使我们每5000步衰减0.96倍。 我们在[-0.08,0.08]内随机地均匀初始化参数,并将梯度的L2范数裁剪为1.0。 我们最多可以使用一眼的注意。 搜索时,迷你批由测试序列的复制或其排列组成。 在主动搜索中,基线衰减设置为α= 0.99。 我们在Tensorflow中的模型和培训代码(Abadi et al。,2016)将很快可用。
表1总结了实验中使用的配置和不同的搜索策略。 我们的方法,实验步骤和结果的变化如下。
监督学习。 除了所描述的基准,我们还通过监督学习来实现和训练指针网络,类似于(Vinyals等人,2015b)。 虽然我们的监督数据包括一百万次最佳旅行,但我们发现,监督学习的结果并不如(Vinyals等人,2015b)所报道的那样。 我们怀疑,对于有监督的指针网络来说,从最佳行程中学习会比较困难,因为其细微的特征使模型仅通过查看给定的有监督的目标就无法弄清楚。 因此,我们参考(Vinyals等人,2015b)中的TSP20和TSP50的结果,并报告了我们在TSP100上的结果,与其他方法相比,所有这些结果都不理想。
RL预训练。 对于RL实验,我们会即时生成训练输入的小批处理,并使用Actor Critic算法1更新模型参数。我们使用10,000个随机生成实例的验证集进行超参数调整。 我们的批评者由一个编码器网络组成,该编码器网络与策略网络具有相同的体系结构,但随后是3个处理步骤和2个完全连接的层。 我们发现,如附录A.2所述,使用tanh(·)激活函数将logit剪切为[-10,10],有助于探索并获得少量的性能提升。 使用RL预训练模型的最简单搜索策略是贪婪解码,即在每个解码步骤中选择概率最大的城市。 我们还尝试在推断时从一组16个预训练模型中贪婪地解码。 对于每个图形,将收集每个单独模型找到的行程,并选择最短的行程。 我们将这些方法称为RL pretraining-greedy和RL pretraining-greedy @ 16。
RL预训练采样。 对于每个测试实例,我们从预先训练的模型中抽样1,280,000个候选解决方案,并跟踪最短的旅程。 在温度超参数上的网格搜索发现,温度分别为2.0、2.2和1.5,从而为TSP20,TSP50和TSP100产生了最佳结果。 我们将调整后的温度超参数称为T ∗。 由于采样不需要参数udpates,并且可以完全并行化,因此出于速度目的,我们使用较大的批量。
RL预训练-主动搜索。 对于每个测试实例,我们从预训练的RL模型初始化模型参数,并运行Active Search多达10,000个训练步骤,批处理大小为128,总共采样1,280,000个候选解决方案。 我们将学习率设置为百分之一训练TSP代理的初始学习率(即TSP20 / TSP50为10-5,TSP100为10-6)。
主动搜索。 我们允许模型训练更长的时间,以说明它是从头开始的事实。 对于每个测试图,我们在TSP20 / TSP50上针对100,000个训练步骤运行Active Search,在TSP100上针对200,000个训练步骤运行Active Search。
5.2结果和分析
我们将我们的方法与提高性能和复杂性的3种不同基准进行了比较:1)Christofides,2)OR-Tools的车辆路径求解器(Google,2016年)和3)最优性。 Christofides解决方案是在多项式时间内获得的,并保证在1.5的最佳比率之内。 OR-Tools通过简单的本地搜索运算符改进了Christofides的解决方案,包括2-opt(Johnson,1990)和Lin-Kernighan启发式(Lin&Kernighan,1973)版本,当达到本地最小值时便停止运行。 为了逃避较差的局部最优,ORTools的局部搜索也可以与不同的元启发法结合使用,例如模拟退火(Kirkpatrick等人,1983),禁忌搜索(Glover和Laguna,2013)或指导性局部搜索(Voudouris) (Tsang和Tsang,1999年)。 OR-Tools的车辆路径求解器可以解决TSP的超集,并且比针对TSP的高度专用的求解器具有更高的通用性。 尽管不是TSP的最新技术,它还是一般路由问题的常见选择,并且在最基本的本地搜索运算符的简单性与最强大的求解器的复杂性之间提供了合理的基准。 最佳解决方案是通过Concorde(Applegate等,2006)和LK-H的本地搜索(Helsgaun,2012; 2000)获得的。 尽管只有协和飞机可证明地将实例求解为最优,但我们凭经验发现LK-H还在所有测试集上均实现了最优解决方案。
我们在表2中报告了我们在TSP20,TSP50和TSP100上采用该方法的平均行程长度。
值得注意的是,结果表明,相对于有监督的学习,使用RL进行训练显着改善了(Vinyals et al。,2015b)。 我们所有的方法都轻松地超越了Christofides的启发式方法,包括RL预训练-Greedy,该方法也不依赖于搜索。 表3将我们的贪婪方法的运行时间与上述基准进行了比较,我们的方法在单个Nvidia Tesla K80 GPU上运行,Concorde和LK-H在Intel Xeon CPU E5-1650 v3 3.50GHz CPU和Intel上的ORTool上运行 Haswell CPU。 我们发现,这两种贪婪方法都是省时的,仅比最佳方法差几个百分点。
证明在推理时间进行搜索对于获得最佳效果至关重要,但是却以更长的运行时间为代价。 幸运的是,从RL预训练-采样和RL预训练主动搜索开始的搜索可以在最终目标方面进行较小的性能折衷,从而尽早停止。
这可以在表4中看到,我们在其中显示了它们的性能和相应的运行时间,这取决于它们考虑的解决方案数量。
我们还发现,我们的许多RL预培训方法都优于OR-Tools的本地搜索,包括运行速度相似的RL pretraining-Greedy @ 16。 附录A.3中的表6列出了元启发法的性能,因为它们考虑了更多的解决方案和相应的运行时间。
最优率之比在我们的实验中,神经组合被证明比模拟退火更好,但与禁忌搜索相比竞争性稍差,而与指导局部搜索相比则弱得多。
我们在图2中对我们的方法进行了更详细的比较,在其中我们对不同学习配置的最优性比率进行了排序。 RL预训练采样和RL预训练主动搜索是最具竞争力的神经组合优化方法,可以在我们大量的测试案例中恢复最佳解决方案。 我们发现,对于较小的解空间,具有预先调整的softmax温度的RL预训练采样优于RL预训练主动搜索,后者有时使搜索指向解空间的次优区域(请参阅表4和图2中的TSP50结果) 。 此外,RL预训练-采样受益于完全可并行化,并且比RL预训练-主动搜索运行得更快。 但是,对于较大的解决方案空间,在控制采样解决方案的数量或运行时间时,RL预先训练的Active Search证明是优越的。 有趣的是,主动搜索(从未经训练的模型开始)也可以产生竞争性旅行,但是需要相当长的时间(每个TSP50 / TSP100实例分别需要7到25个小时)。 最后,我们显示了通过图2中的方法找到的随机选择的示例旅行
6.其他方法的对比
关于其他问题在本节中,我们讨论如何将神经组合优化应用于除TSP之外的其他问题。 在神经组合优化中,模型体系结构与给定的组合优化问题联系在一起。 有用网络的示例包括指针网络(当输出是置换或截断置换或输入的子集时),以及用于其他类型结构化输出的经典seq2seq模型。 对于需要为输入元素分配标签的组合问题,例如图形着色,也可以将指针模块和softmax模块组合在一起,以在解码时同时指向和分配。 给定一个模型,该模型对给定组合优化任务的一个实例进行编码并重复分支如果要构建解决方案,则可以根据要考虑的优化问题,通过调整奖励函数来应用第4节中描述的训练过程。
另外,还需要确保所获得解决方案的可行性。 对于某些组合问题,很容易直接知道在解码时哪些分支不会导致任何可行的解决方案。 然后,我们可以在解码时简单地手动为它们分配零概率,这与我们强制模型在指向机制中两次指向同一座城市不同的方式类似(请参阅附录A.1)。 但是,对于许多组合问题,想出一个可行的解决方案本身就是一个挑战。 例如,考虑带时间窗口的旅行推销员问题,其中旅行推销员还有在特定时间段内访问每个城市的额外约束。 可能是巡回赛初期考虑的大多数分支机构都不会导致任何尊重所有时间范围的解决方案。 在这种情况下,要准确知道哪些分支是可行的,就需要搜索其子树,这是一个耗时的过程,除非直接使用特定问题的启发式方法,否则比直接搜索最佳解决方案要容易得多。
除了明确限制模型仅对可行解决方案进行抽样之外,还可以使模型学会尊重问题的约束。 一种简单的方法,可以在以后的工作中进行实验验证,包括用一个术语来扩大目标函数,该术语惩罚违反问题约束的解决方案,类似于约束优化中的惩罚方法。 虽然这不能保证模型在推理时始终对可行的解决方案进行采样,但这并不一定会带来问题,因为我们可以简单地忽略不可行的解决方案并从模型中重新采样(用于RL预训练采样和RL预训练主动搜索)。 还可以考虑通过将零概率分配给容易识别为不可行的分支,同时对不可行的解决方案一经构建就处以惩罚,从而将这两种方法结合起来。
6.1KANPSACK算例
作为神经组合优化的灵活性示例,我们考虑了KnapSack问题,这是计算机科学中另一个经过深入研究的问题。 给定一组n个物品i = 1 … n,每个物品的权重为wi,值为vi,最大重量为W,则0-1背包问题包括最大化背包中存在的物品的值之和。 权重之和小于或等于背包容量:
公式(7)
在wi,vi和W取实值的情况下,问题是NP难的(Kellerer等,2004)。 一种简单而强大的启发式方法是按重量与价值之比排序的商品,直到它们填满重量为止。 我们应用指针网络并将每个背包实例编码为2D向量(wi,vi)序列。 在解码时,指针网络指向要包括在背包中的物品,并在到目前为止收集的物品的总重量超过重量能力时停止。
我们生成了千个实例的三个数据集,即KNAP50,KNAP100和KNAP200,其中项目的权重和值在[0,1]中随机绘制。 在不失一般性的前提下(因为我们可以缩放商品的重量),我们将KNAP50的容量设置为12.5,将KNAP100和KNAP200的容量设置为25。 我们在表5中介绍了RL预训练-贪婪和主动搜索(我们进行了5,000个训练步骤)的性能,并将它们与两个简单的基线进行比较:第一个基线是贪婪的权重比启发式算法;第二个是贪婪的权重比启发式算法。 第二个基准是随机搜索,我们在其中采样与Active Search一样多的可行解决方案。 RL pretraining-Greedy产生的解决方案平均比最佳解决方案少1%,而Active Search可以将所有实例均解决为最佳状态。
7结论
本文介绍了神经组合优化,这是一个通过强化学习和神经网络解决组合优化的框架。 我们专注于旅行商问题(TSP),并针对框架的每个变体提供了一组结果。 实验表明,在多达100个节点的2D欧几里得图上,神经组合优化获得了接近最佳结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值