本文主要是介绍Neural Improvement Heuristics for Graph Combinatorial Optimization Problems,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Neural Improvement Heuristics for Graph Combinatorial Optimization Problems
IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS 2023
摘要
图神经网络(GNN)架构的最新进展和增加的计算能力已经彻底改变了组合优化(CO)领域。在所提出的模型CO的问题,神经改进(NI)模型已经特别成功。然而,现有的NI方法是有限的,在其适用性的问题,关键信息被编码的边,因为他们只考虑节点的功能和节点位置编码(PE)。为了克服这一限制,我们引入了一种新的NI模型,能够处理基于图形的问题,其中信息被编码在节点,边,或两者兼而有之。所提出的模型作为一个基本组成部分的基于爬山的算法,指导选择的邻域操作,每次迭代。进行的实验表明,该模型可以推荐邻域操作,优于传统版本的偏好排序问题(PRP)的性能,在第99百分位。我们还将该建议扩展到两个众所周知的问题:旅行商问题和图分割问题(GPP),分别推荐第98和第97百分位的操作。
1.简介
组合优化问题(COP)存在于广泛的现实世界应用中,例如物流,制造或生物学[1],[2]。由于大多数COP的NP-难性质,随着问题的大小增加,使用精确方法找到最优解变得棘手[3]。因此,在过去的几十年中,启发式和元启发式方法已经出现作为替代近似硬COP在合理的时间量。在该领域的初步工作提出了建设性的启发式方法,迭代地建立一个候选的解决方案。一般来说,建设性方法是根据以下标准和规则为手头的问题专门开发的专业知识。后来,这些建设性的建议被引入通用和易于应用的优化范式的元启发式算法所超越。
尽管元启发式已经成为采用的主要工具,与构造性启发式相反,它们是评估密集型算法,即,他们需要在做出决定之前彻底评估数千甚至数百万个候选解决方案,这使得它们对于具有有限预算或在线流媒体优化的场景是不切实际的[4]。
基于神经网络(NN)的算法在这方面起着至关重要的作用。近年来,深度学习(DL)技术在各种机器学习任务中表现出了卓越的性能,引起了包括优化在内的不同领域研究人员的注意。如不同评论[5],[6],[7]所述,基于DL的方法已被提议作为独立求解器,参数和/或操作选择方法,或作为更强大的混合算法的组成部分。我们在这项工作中的重点是独立的(端到端)模型,突出他们的能力和进一步研究的途径,旨在提高其性能。一旦经过训练,这些模型可以快速做出决策,例如确定所需的下一个更改。第一个工作在主题提出的模型中,称为建设性方法,通过迭代地将一个项添加到部分解决方案中,直到完成为止,逐步生成唯一的解决方案[8],[9],[10]。相反,后来的论文引入了改进方法,这些方法采用候选解决方案并提出修改以改进它[11],[12],[13]。事实上,这个改进过程可以迭代地重复,使用修改后的解决方案作为模型的新输入。报告的结果,虽然没有最先进的元启发式方法对最热门问题的竞争力[14],[15],但已经引起了优化研究界的注意,因为它们在几年前是不可想象的。事实上,许多这些建议已经超过了经典的建设性启发式。
然而,从研究进展来看,我们发现大多数工作主要是说明他们对旅行商问题(TSP)[18]和其他类似路由问题的贡献。特别是,大多数模型的工作原理是,当考虑COP的图形表示时,信息被嵌入节点[9],[10]。然而,存在诸如偏好排序问题(PRP)[16]或图划分问题(GPP)[17]之类的问题,其中问题的相关信息是边向的或甚至是节点向和边向的。在这些场景中,节点级建议不会使用所有可用(且有意义)的信息。
根据未来一代算法将来自元启发式算法与机器学习模型[7]的组合的想法,我们提出了一个新的优化框架,可以通过结合神经改进(NI)模型来取代和改进传统的基于局部搜索的方法。具体而言,我们的贡献是双重的:1)我们提出了一个NI模型来解决信息存储在节点中,边缘中或两者中的问题,2)我们表明该模型可以单独使用或可以作为构建块合并,例如,用于基于爬山的算法,以有效地指导邻域操作的选择。
为了证明所提出的框架的通用性和有效性,我们进行了实验,在各种优化问题,包括PRP,TSP和GPP。在节点和边缘特征上训练的NI模型在所有三个问题上都表现出出色的性能,PRP的结果也非常出色。它始终为每个问题推荐最佳或接近最佳的邻居,并且在所有情况下都优于传统方法。
本文的其余部分组织如下。第二节介绍了最突出的作品处理的NN模型CO的发展,无论是在建设性的和改进的方式。出于说明的目的,我们在第三节中介绍了PRP,并在第四节中提出了NI模型。在第五节中进行了一组实验,并在第六节中讨论了该模型对其他问题的推广。最后,第七节对本文进行了总结。
相关工作
虽然自80年代以来,神经网络已被用于以Hopfield网络的形式解决COPs [19],但直到最近[6],[7]计算能力的进步和复杂架构的发展才使应用程序变得更加高效和更具竞争力。如前所述,基于NN的优化方法可以根据其策略分为两大类。
A.神经构造方法
大多数基于DL的作品开发的政策,学习建设性的启发式。这些方法从一个空的解决方案开始,迭代地向解决方案中添加一个项,直到完成为止。在神经组合学最早的著作之一中,优化(CO)范例,Bello等人[8]使用指针网络模型[20]来参数化策略,该策略为TSP逐项构造解决方案。受[8]中的结果的启发,并且主要关注TSP,DL从业者已经成功地实现了不同的架构,例如图NN(GNN)[21],[22]或基于注意力的网络[9],[10]。由于基线模型的性能仍然远远没有达到最优(大多数情况下,节点数超过几百个),因此通常会使用补充算法来增强它们,例如主动搜索[8],采样[9]或波束搜索[20],这些算法以增加计算时间为代价来增加解决方案的多样性。如将在下文中看到的,改进方法提供了更有效的替代方案,直接学习从当前解决方案到更好的解决方案的转变。
B.NI方法
NI方法从给定的解决方案出发,并迭代地提出(一组)修改以改进它,直到解决方案不能进一步改进。NI方法使用学习的策略来智能地跨不同的邻域导航。
为此,以前用于建设性方法的架构已被重新用于实现改进方法。Chen和Tian [11]使用长短期记忆(LSTM)来参数化两个模型:第一模型输出要重写的解的每个区域的得分或概率,而第二模型选择修改该区域的规则。Lu等人。[12]使用基于注意力的模型在运营商池中选择本地运营商来解决容量限制的车辆路径问题(VRP)。使用注意力网络,Hottung和Tierney [23]提出了一种神经大邻域搜索,它建议新的解决方案破坏和修复当前解决方案的一部分。
接近我们的建议,但仅限于路由问题,吴等人。[13]训练选择节点对以应用本地运算符的策略,例如,类似地,da Costa et al.[24]推广了以前的工作,选择k-opt算子。Falkner等人[25]提出了一种改进的作业调度方法,该方法从三个方面学习如何控制局部搜索:解决方案的接受、邻域选择和扰动。我们在表I中总结了最相关的NI作品的特征。
改进方法不仅要考虑静态实例数据,而且还需要考虑当前的解决方案。事实上,对于大多数组合问题来说,将解信息编码到潜在空间中的困难是一个主要挑战。
作为一个例子,有各种方式来表示路由问题的解决方案。每个节点(或城市)可以维护一组指示当前解决方案中的相对位置的特征,例如到先前和随后访问的节点的位置和距离[12]。然而,该技术不将整个解决方案视为一个,因为它仅考虑解决方案中的连续节点对。在这种情况下,一个常见的策略是结合位置编码(PE),它在给定的解决方案中捕获访问城市(节点)的序列[9]。最近,Ma等。[26]提出了一种循环PE,它捕获了路由问题的循环性和对称性,使其比传统PE更适合表示解决方案。
然而,在一些图问题中,基本信息仅编码在边中,因此,专注于节点嵌入的现有方法[12],[26]不能正确编码相关信息。
尽管很少有工作考虑边权重来编码特定于问题的特征[27],[28],但他们专注于为每个边创建属于最优解的概率热图,并使用它来构建(或采样)一组(一组)解决方案。在这项工作中,类似于[27]和[28],我们使用节点和边来表示图形数据。然而,使我们的方法与众不同的是它能够对实例和解决方案信息进行编码,然后使用此编码信息提出局部改进措施。此外,与[13]相比,我们通过考虑节点和边特征,提供了一些推广到不同基于图的问题的指导方针。此外,与[13]不同,我们不依赖于PE来嵌入当前解决方案信息,因为我们自然地将其嵌入边缘特征中。最后,我们提出了一个独立的NI模型,并演示了如何联合收割机其与经典的局部搜索技术,如多起点爬山(HC),禁忌搜索(TS),或迭代局部搜索。
在第三节中,我们将提出一个优化问题,说明需要开发新的NI模型,也考虑边缘功能。
3.偏好排序问题
一般来说,如果要排序的备选方案数量相对较少,则基于偏好或意见对项目进行排序是一项简单的任务。然而,随着备选项/项目数量的增加,获得与成对项目偏好一致的完整排名变得更加困难。想想在一场比赛中使用他们的配对比较对50名球员进行排名,从表现最好的球员到最差的球员。获得与大多数成对比较一致的排名并不是容易的。这个任务被称为PRP [16]。形式上,给定偏好矩阵 B = [ b i j ] N × N B = [b_{ij} ]_{N×N} B=[bij]N×N,其中矩阵 b i j b_{ij} bij的元素表示项目 i i i相对于项目 j j j的偏好,目标是找到 B B B的行和列的同时置换 ω ω ω,使得矩阵的上三角形中的元素的和最大化[参见(1)]。
请注意, B B B中的第 i i i行描述了项目 i i i相对于其余 N − 1 个 N-1个 N−1个项目的偏好向量,而第 i i i列表示其余项目相对于项目i的偏好。因此,为了最大化矩阵的上三角形,优选项目必须在排名中领先[见图2.1(a)]
除了矩阵表示[图.1(a)],该问题可以被公式化为一个完全的双向图,其中节点表示要排序的项目的集合,并且加权边表示项目之间的偏好。一对节点 i i i和 j j j具有两个连接边 ( i , j ) (i,j) (i,j)和 ( j , i ) (j,i) (j,i),权重 b i j b_{ij} bij j和 b j i b_{ji} bji形成前面提到的偏好矩阵 B B B。PRP的解决方案(置换)也可以表示为图上的非循环锦标赛,其中排名第一的节点(项目)只有传出边缘,排名第二的节点有1个传入边缘,其余的都是传出的,依此类推,直到排名最后的节点,它只有传入边缘[见图.1 (b)和(c)]。
成对比较排序是现代机器学习研究中普遍存在的问题。由于其在各种研究领域的适用性,它引起了社会的关注,包括但不限于:机器翻译[29],经济学[30],腐败感知[31]或任何其他需要项目排名的任务,如体育比赛,网络搜索,资源分配和网络安全[32],[33],[34]。
4.方法
方法用NI模型迭代求解图问题的思想可以被公式化为马尔可夫决策过程(MDP),其中策略π负责基于问题的给定状态st在每个步骤t选择动作a。MDP在这项工作中的主要实体可以描述如下。
- 状态:状态 s t s_t st表示步骤t处的环境的信息。在这种情况下,状态从两个信息来源收集数据:1)静态数据,即,要解决的实例和2)动态数据,即步骤t处问题的当前解 ω t ω_t ωt。
- 动作:在每一步,学习的策略选择动作 a t a_t at,其涉及当前解决方案的一对项目,根据策略,需要将该对项目与当前解决方案进行比较。选择后,将应用运算符,修改当前解决方案。请注意,根据操作员的不同,修改中可能会涉及其中一项、两项或多项。
- 奖励:状态 s t s_t st和 s t + 1 s_{t+1} st+1之间的转换是从应用于由at给出的一对项的运算符导出的。奖励函数(RF)表示跨状态的解质量的改进。可以使用不同的函数设计,如将在第IV-B节中解释的。
在以下内容中,将提供NI模型的详细描述。尽管设计对于任何基于图形的问题都是通用的,但为了清楚起见,我们提供了基于PRP的说明性示例。对其他问题的延伸将在第六节后面讨论。
A. NI模型
我们将策略π参数化为具有可训练参数θ的NN模型。考虑到第三节中介绍的案例研究,模型架构需要满足一些要求:
1)需要对图结构数据进行编码;
2)它需要对输入置换是不变的;
3)它需要对输入的大小变化保持不变;
4)需要考虑解的信息。
考虑到我们选择使用GNN编码器,能够收集节点和边缘特征,以及多层感知器(MLP)解码器,这是一种简单而快速的架构,可以解释嵌入的特征并生成一组可能的动作的概率分布。图2呈现了模型的一般架构。除了所提出的模型,我们已经分析了两种不同的编码器和解码器架构,并测试了各种超参数。这些实验的结果见附录A。
1.Encoder
给定一个有N个节点的全连通图,有N×N条边或节点对,每条边 ( i , j ) (i,j) (i,j)有一个权重 b i j b_{ij} bij,表示节点 i i i相对于节点 j j j的相对信息。注意,只有 N × ( N − 1 ) N ×(N − 1) N×(N−1)个边,因为边 ( i , i ) (i,i) (i,i)不提供任何有用的信息。如前所述,该策略考虑实例信息(静态)和时间步 t t t处的候选解(动态)。为此,我们将对每个边 ( i , j ) (i,j) (i,j)使用二维特征向量 x i j ∈ R 2 x_{ij} ∈ R^2 xij∈R2。第一维表示解中节点 i i i是否在节点 j j j之前。如果是这种情况,则将其设置为 b i j b_{ij} bij(边缘权重),否则将其设置为0。类似地,第二维表示相反的情况,即节点 j j j是否在节点 i i i之前。
对于PRP,节点不反映任何特定于问题的信息,因此所有节点都用相同的值初始化。事实上,按照Kwon等人提出的类似策略。[35],我们使用单位向量作为节点特征, n ∈ R N n ∈ R^N n∈RN。即使所有节点都以相同的值初始化,也需要它们的参与,因为它们在编码中将边缘特征分布在整个图中:节点 i i i将从边 ( i , k ) (i,k) (i,k)和 ( k , i ) (k,i) (k,i)收集信息, k = 1 , . . . 、 N . k = 1,...、N. k=1,...、N.节点和边特征将被线性投影以产生 d d d维节点 h i ∈ R 1 × d h_i ∈ R^{1×d} hi∈R1×d和边 e i j ∈ R 1 × d e_{ij} ∈ R^{1×d} eij∈R1×d嵌入。
其中 V e ∈ R 2 × d V_{e} ∈ R^{2×d} Ve∈R2×d, V h 、 U e V_h、U_e Vh、Ue和 U h ∈ R 1 × d U_h ∈ R^{1×d} Uh∈R1×d是可学习的参数。编码过程由 L L L个GNN层(由上标 l l l表示)组成,这些层在节点及其连接边之间执行顺序的消息传递。这使得GNN层能够学习图形结构的丰富表示并捕获复杂关系,例如解决方案中项的优先级(参见图2的左半部分)的情况。等式(4)和(5)定义了每一层中的消息传递,其中 W 1 l 、 W 2 l 、 W 3 l 、 W 4 l W_1^l、W_2^l、W_3^l、W_4^l W1l、W2l、W3l、W4l和 W 5 l W_5^l W5l ∈ R d × d R^{d×d} Rd×d也是可学习的参数, B N BN BN表示批量归一化层, σ σ σ是S激活函数,并且⊙ 是Hadamard product:
输入到编码器中的信息由最后一层的边嵌入 e i j L e_{ij}^L eijL组成。
2. Decoder
边嵌入被馈送到解码器,MLP将边嵌入转换成逻辑 u i j u_{ij} uij,其格式可用于选择下一个运算符。
然后使用Softmax函数对logit进行归一化以产生矩阵 p ∈ R N × N p ∈ R^{N×N} p∈RN×N,该矩阵给出修改候选解中的项目对 ( i , j ) (i,j) (i,j)的概率。
B. Learning
将使用REINFORCE算法学习改进策略[36]。给定状态 s t = ( B , ω t ) s_t =(B,ω_t) st=(B,ωt),其包括实例 B B B和步骤 t t t处的候选解 ω t ω_t ωt,该模型给出概率分布 p θ ( a t ∣ s t ) p_θ(a_t| s_t) pθ(at∣st),用于所有可能的要修改的项对。在执行操作 O ( ω t ∣ a t ) O(ω_t|a_t) O(ωt∣at),得到新的解 ω t + 1 ω_{t+1} ωt+1。执行训练以最小化以下损失函数:
通过梯度下降,其中 R t = ∑ i = 0 T − 1 γ i ( r t + i − r t + i − 1 ) R_{t}=\sum_{i=0}^{T-1}\gamma^{i}(r_{t+i}-r_{t+i-1}) Rt=∑i=0T−1γi(rt+i−rt+i−1)对应于在长度为 T T T的一步中具有衰减因子 γ γ γ的累积奖励 r i r_i ri的和。
此工件是模型的关键部分。已经设想避免近视行为,允许短期和长期策略,因为在评估运动序列的质量之前允许不同数量的操作(T)。此外,衰减因子为练习者提供了一种加权每个动作的方法,例如,更多地关注最早的动作。
1)奖励功能:
在文献中已经提出了不同的 R F s RFs RFs用于获得 r r r。Lu等人[12]使用奖励函数( R F 1 RF1 RF1),该函数将初始解的目标值作为基线,并且对于每个后续动作,步骤 t t t的奖励定义为 f ( ω t ) f(ω_t) f(ωt)和基线之间的差。该函数的缺点是奖励可能会越来越大,并且可以给予恶化序列的移动正奖励(因为它们比基线更好)。
或者,在最近的工作中最常见的方法[13],[26]是将奖励 ( R F 2 ) (RF2) (RF2)定义为 r t = m a x [ f ( ω t + 1 ), f ( ω t ∗ ) ] − f ( ω t ∗ ) r_t = max[ f(ω_{t+1}),f(ω_t^*)] − f(ω_t^*) rt=max[f(ωt+1),f(ωt∗)]−f(ωt∗),其中 f ( ω t ∗ ) f(ω_t^*) f(ωt∗)是直到时间 t t t为止找到的最佳解的目标值。请注意,这个替代方案只产生非负的奖励,所有没有改善解决方案的行动都获得相等的奖励rt = 0。在我们的例子中,我们提出了一个简单但有效的奖励函数 ( R F 3 ) r t = f ( ω t + 1 ) − f ( ω t ) (RF3)r_t = f(ω_{t+1})− f(ω_t) (RF3)rt=f(ωt+1)−f(ωt),它定义了在步骤 t t t和 t + 1 t + 1 t+1之间的目标值的改进,并且还考虑负值。 R F 3 RF3 RF3 产生更快的收敛,具有更小的可变性,如在图3中描绘的所提及的RF的比较中可以看出的。
2) 自动化课程学习:
课程学习是一种训练策略,涉及在整个过程中控制样本的难度,其中手动增加难度水平[37]。在这种情况下,难度是通过计算与所有可能的移动有关的使目标值恶化的移动的百分比来测量的。然而,在我们的方法中,我们不使用手动课程学习策略,如马等人所使用的。[26]第10段。相反,我们使用迭代方法,其中模型接收在前一次迭代中修改过的解决方案。随着模型在训练期间改进并为当前实例建议更好的动作,改进动作的数量减少,自然导致难度水平增加。这种迭代方法实现了自动课程学习,这对于先前的优化问题是有效的,并且既不需要任何问题知识也不需要外部干预。
然而,学习是用一批实例来执行的,并且不是所有实例都在相同数量的步骤中达到局部最优。因此,我们保存模型获得的最佳平均奖励,并且当算法没有改善Kmax迭代的最佳平均奖励时,我们认为算法被卡住。较大的Kmax值应给予模型有更多机会访问更高质量的解决方案,但也可能引入不希望的计算开销。
3) 操作符
该模型是灵活的,允许从业者定义最适合手头问题的操作符。在 P R P PRP PRP的特定情况下,有几个操作符可以用于执行成对修改,例如插入,交换,邻接交换和反向操作符。以前的工作[38]已经证明插入操作符产生PRP的最佳结果。事实上,我们在图中证实了这一点。图4,其中我们示出了针对所提到的成对算子的训练收敛曲线的比较。(给定边 ( i , j ) (i,j) (i,j),表示解中位置 i i i和 j j j中的项:插入操作符包括移除位置 i i i处的项并将其放置在位置 j j j处,交换操作符交换两个位置处的项,相邻交换操作符是仅考虑相邻位置的交换操作符,并且反向操作符反转位置 i i i和 j j j之间的子置换。)
5)训练算法:
在算法1中给出了所实现的训练算法。状态 s t s_t st表示时间步 t t t处的实例和候选解。在每个时期,用随机解生成随机状态(第3行)。然后,模型给出概率向量(第7行),并且动作被采样并应用于当前解决方案(第8行和第9行)。保存找到的最佳奖励(第10行),并重复该过程,直到模型连续指定步骤数(Kmax)无法改进最佳已知解。为了清楚起见,算法1示出了具有一个实例的训练,即使使用了批次。为了使用一批实例,状态 s t s_t st、概率 p θ p_θ pθ、动作 a t a_t at和奖励 r t r_t rt将是向量,并且 r t r_t rt的平均值将用于控制改进条件(第11行)。
C. NI模型的应用
HC启发式算法是一个不断尝试改进给定解决方案的过程,执行局部更改(例如,交换两个项目)并在邻域中寻找更好的候选解决方案。传统HC过程的示例尤其包括最佳第一HC(BFHC),其选择改进本解决方案的第一找到的候选(邻居);最陡上升HC(SAHC),其穷尽地搜索所有邻域并从中选择最佳候选解;或随机HC(SHC),其从邻域中随机挑选一个解。
1.Neural Hill Climber:
为了减少传统HC所需的大量评估,我们提出了神经爬山器(NHC),它试图根据给定的解决方案建议最佳邻居,然后使用这个邻居作为下一次迭代的起点。重复这个循环,直到找到最佳可能的解决方案。通常,HC启发式不允许目标值减小。在我们的方法中,为了确保所选择的动作是改进的动作,我们对由下式给出的概率向量进行排序,并选择改进解决方案的第一个操作。当然,也可以采取其他策略。
2. Advanced Hill Climbers:
最终,正如传统的HC程序,NHC将陷入局部最优,其中无法找到改进的移动。在文献中已经提出了更高级的算法,这些算法试图通过对当前解执行重新启动或扰动来逃避局部最优值[39]。许多示例中的一个是多起始HC(msHC),每当无法找到改进的移动时,该多起始HC(msHC)从另一个随机候选解出发重新开始搜索。
msHC的替代方案是迭代局部搜索(ILS)[41]。一旦搜索陷入局部最优,而不是重新启动算法,ILS扰动到目前为止找到的最佳解,并在这个新的解决方案中恢复搜索。扰动级别根据剩余的总预算(评估数量或时间)动态变化。
本文中考虑的第三个例子是TS [40],它增强了HC方法的性能,允许在达到局部最优值时恶化移动。为了避免陷入循环,TS保持先前访问过的状态的禁忌记忆,以防止在接下来的m次移动中再次访问它们。
我们将使用NI模型来指导多起点神经HC(msNHC)、神经ILS(NILS)和神经TS(NTS)的局部移动,并在第V.2节中与传统版本相比分析它们的性能。(对于TS,使用大小为200的短期存储器。对于ILS,一旦达到局部最优值,就用n个随机交换来扰动解,n是基于执行中的剩余评估(RE)来计算的:n = [ ( N / 2 ) ∗ ( R E / E ) ] [(N/2)*(RE/E)] [(N/2)∗(RE/E)],其中N是问题大小,E表示评估预算。)
5.实验部分
在本节中,我们将对所提出的NI模型进行彻底的实验。首先,我们分析了NI模型在短期(一步)和长期(多步)的基础上的性能。之后,我们测试了作为HC算法的构建块实现的NI模型的效率。
A.设置
对于实验,我们部署三层GNN作为编码器,嵌入维度为128。作为解码器,我们使用具有隐藏维度(128,64,32和1)和ReLU激活的四层MLP。关于训练超参数,学习率被设置为1 e-4,发作长度被设置为T = 20,衰减因子被设置为γ = 0.1,并且连续非改善移动的最大数量被设置为Kmax = 5。关于超参数选择的更多细节可以在附录A中找到。为了训练NI模型,我们采用了使用随机生成的实例的常见做法。每个时期,使用不同批次的64个实例,并且跨该批次对梯度进行平均以更新模型参数。由于有限的计算资源,已经分别使用大小N = 20和N = 40训练了两个不同的模型。这两个模型都已经训练了5000个epoch。
与用于训练基于DL的模型的实例的大小相关,一个常见的缺点是缺乏可扩展性:大多数基于DL的模型需要用与稍后用于推理的那些相同大小的实例来训练。然而,引入的模型可以用计算上可负担得起的实例大小来训练,然后用于求解更大大小的实例(在本节稍后讨论)。如果没有不同的说明,对于大尺寸,将使用用尺寸实例(N = 20)训练的模型。我们使用Python 3.8实现了这些算法。神经模型已经在Nvidia RTX A5000 GPU中进行了训练,而不需要GPU的方法则在具有Intel Xeon X5650 CPU和64 GB内存的计算机上运行。
B. NI模型性能分析
在优化过程中,在每一步获得改进当前的解决方案变得更加困难。为了测试模型的能力,我们提出了两个场景:1)一步,即,从随机解出发,是能够找到最佳邻居的模型,以及2)多步,从随机解出发,是能够重复提出更好的解的模型,在整个优化过程中以一致的方式改进先前找到的解。
1.one-step
我们专注于NI模型提供优于当前解决方案的能力。在邻域方面,我们期望NI模型能够识别最佳或至少一个最佳邻域移动。
我们对2000个大小为N = 20的实例进行一步预测。结果如图1所示。5以直方图的形式。具体来说,我们计算了所有可用动作((N-1)2,361)中预测移动的排名。请注意,模型在超过35%的时间内选择最佳邻居。考虑到所有可能的插入操作,平均而言,模型采取的操作在第99个百分位中,在361个中排名第四。在较大的实例规模下,即使使用N = 20进行训练,NI模型不仅能够保持良好的性能,而且还提高了所选动作的百分位数排名。平均而言,对于N = 50,它从2401中选择第13个最佳动作,对于N = 100,它从9801中选择第32个最佳动作。
2.Multistep:
一旦测试表明NI模型成功地学会了选择最好的可能行动之一(一步),我们仍然需要验证它是否在多步方案中获得越来越好的解决方案。为此,我们让模型进行连续移动,在每次迭代中,使用前一次迭代中获得的解进行馈送。图6示出了连续步骤的模型的行为。该图示出:1)正如预期的那样,最大可获得的奖励随着改进步骤而减少,可能会增加难度,以及2)模型选择的动作比最小奖励更接近最大奖励,这证实了当完成几个步骤时模型的良好性能。
C. Neural HC Performance Analysis
在本节中,我们将NHC的性能与两种传统方法进行比较:最陡爬坡(SAHC)和最佳第一(BFHC)。我们让算法运行,直到它们陷入局部最优,并对2000个不同的实例重复优化。在优化运行期间,我们计算实例的最佳目标值和消耗的评估的差距(%)。
图7 显示了实验的结果。NHC、SAHC和BFHC的平均差距分别为0.28%、0.29%和0.28%,分别关于解决方案评估的数量,NHC是所有三个程序中最便宜的,平均评估355个解决方案。BFHC总共探索了948个解决方案,SAHC探索了6293个解决方案,这是最昂贵的过程,因为它需要在执行移动之前评估所有可能的动作(整个邻域)。帕累托前沿的所有解都属于NHC(见红线)。总之,NHC的性能与SAHC和BFHC一样好,但需要的评价次数明显较少。
D. Advanced Hill Climbers’ Performance Analysis
我们在这里扩展了第IV-C节中解释的高级算法的分析。性能是针对多个实例大小(20、50、100和500)测量的,设置了三个不同的最大评估次数:10、100和1000 N,其中N是实例的大小。我们采用以下算法进行比较:具有常规搜索策略的msHC,诸如最佳优先(msBFHC)、最陡上升(msSAHC)和随机(msSHC);神经版本,使用使用20和40的实例(msNHC-20,msNHC-40)训练的NI模型引导;以及具有基本最佳优先策略的TS算法(BFTS)、NTS算法、具有最佳优先选择的ILS算法(BFILS)及其神经版本(NILS)。作为基线方法,我们还添加了Becker构造性方法[42]。性能通过与最佳已知目标值的平均差距百分比来测量,由最先进的元启发式算法[43]给出。对于每个大小,我们使用512个随机生成的实例。
结果示于表II中。正如我们所看到的,神经变体(msNHC,NTS和NILS)在所有情况下都优于各自的传统变体。虽然传统的方法执行类似的,神经多起点方法显示出最大的改进相比,其传统的变体。
为大规模实例训练这种基于DL的模型在计算上变得苛刻。因此,设计一个可以在小规模上训练并随后应用于更大实例的模型变得可取,或者根据上下文,甚至是强制性的。如表II所示,针对大小20和40训练的模型能够在更大的实例(高达500)上优于传统的对应模型。特别地,即使msNHC-40与msNHC-20相比显示出更好的行为,它们之间的差异相当小,证明了模型在更大尺寸中的适当泛化。我们进一步评估了用随机生成的实例训练的模型对附录B中其他类型实例的泛化。
E. Computational Time
在优化领域中的一个常见的讨论是,在比较不同的算法时,是否应该使用评估的数量或计算时间。然而,重要的是要注意,不同的编程语言和硬件平台可能会产生不同的结果。因此,添加本节是为了补充上一节,提供有关所呈现模型的训练和推理所需计算时间的信息。
1)推理时间:HC算法的性能已被测量使用的最大数量的解决方案评估作为限制。然而,人们可以争辩说,对于相同数量的评估,神经方法与传统方法相比具有更高的时间成本,即,从NN获得下一个运动比随机选择运动或选择贪婪序列的下一个运动的成本更高。然而,NHC的评估量的减少弥补了这一点,获得了更好的性能,特别是对于较大的实例。
事实上,如图所示。8、在时间标准下,基于NI的算法优于传统算法。神经变体在执行开始时获得主要优势,其中最优性差距的减小更陡峭。值得注意的是,为了与传统的搜索策略进行公平的比较,我们没有使用一批实例进行模型推理;相反,我们只同时提供一个唯一实例。否则,NHC将大大受益并行化,可以从使用一批实例中受益,就像在训练中所做的那样。
2)培训时间:在评估学习框架时,除了推理时间外,考虑训练时间也是一个关键因素。虽然在文献中对推理的计算时间进行了充分的研究,但训练时间通常较少受到关注。例如,当模型必须非常频繁地训练时,这可能会带来挑战,并且每次都应用它来解决一些实例。RL框架通常需要大量的计算时间来进行训练,这在资源和时间方面可能是昂贵的。如果预先训练的模型不可用,则常规方法可能更适合于求解单个实例,因为训练时间比常规方法所需的执行时间长得多。然而,如果一个预先训练的模型可以通过开源平台或以前的实践访问,并且可以很好地推广到正在解决的特定实例,那么从业者仍然可以从使用该模型中受益。
为了分析训练和使用神经方法的成本效益,进行了以下实验。我们假设从业者不拥有任何预训练的模型。它要求从业者权衡训练神经模型的成本与使用传统技术的成本(推理时间),同时还考虑为了分析训练和使用神经方法的成本效益,进行了以下实验。我们假设从业者不拥有任何预训练的模型。它要求从业者权衡训练神经模型的成本与使用传统技术的成本(推理时间),同时还考虑神经模型可以提供的预期性能改进。为了说明的目的,在(8)和(9)中定义了完成常规HC和神经HC的执行所需的总时间,其中yconv和yni是总时间,ttrain、tinfer和tneigh分别表示NI模型的训练和推断时间以及常规SAHC评估整个邻域所需的时间:
设T为执行中执行的步骤数,(10)定义需要求解的最小实例数,以补偿NI模型的训练时间:
基于我们的实现和所使用的硬件(RTX A5000 GPU和Intel Xeon X5650 CPU),常规SAHC分别需要平均0.40、2.06和10.41秒来探索大小为50、100和200的PRP的整个邻域。对于大小为50、100和200的PRP实例,NI模型的推理时间分别为4.6、13和48 ms。考虑到这些值,图9描绘对于这三个问题大小和三个训练预算,需要解决的最小实例数的变化以补偿训练时间。红色垂直线表示[44]中使用的传统停止标准(1000个N2评估,T = 1000),红点表示与不同曲线的交点。对于本文中使用的5000个epoch的训练持续时间,对于大小为50、100和200的情况,需要解决的最小实例数分别为183、35和7。值得注意的是,与神经方法相反,传统方法需要在二次邻域中进行搜索,因此,这两种方法之间的执行时间差异随着实例大小的增加而变得更加明显,并且训练时间可以用更少的实例进行补偿。因此,随着实例大小的增加,使用NI模型所提供的优势会显著增加。
6.延申至其它问题
在第五节中,我们将PRP作为一个说明性问题来处理,其中实例信息唯一地存储在问题的图表示的边中。然而,拟议的模式并不是覆检委员会所独有的,可以扩展到属于这一类别的任何问题。事实上,所提出的NI模型也可以用于其他仅做一些微小改变的组合问题。从业者需要执行的主要更改在于边特征选择。NI模型使用边缘作为主要的消息传递元素。对于每个问题,从边提取实例静态信息和动态解信息可能不是微不足道的。除此之外,从业者还需要为手头的问题选择最有效的操作符。为了说明这一过程,我们举例说明了如何调整该模型以解决两个不同的问题:TSP[18]和2-分区平衡GPP[17]。读者将前往相应的报纸,了解有关这些问题的详细信息。
为了说明这个过程,我们给予了如何调整模型来解决两个不同问题的例子:TSP [18]和2-分区平衡GPP [17]。读者可以从相应的论文中获得关于这些问题的详细信息。
A.旅行商问题
给定一组n个城市和它们在二维空间 s = { c i } i = 1 n s = \{c_i\}^n_{i=1} s={ci}i=1n中的坐标,其中每个 c i ∈ R 2 ci ∈ R^2 ci∈R2,TSP由找到一个排列 ω ω ω组成,该排列将每个城市访问一次并且具有最小长度的旅游中的城市排序。形式上,TSP可以被定义为一个完全连接的图,其中节点表示城市,加权边表示城市之间的成对距离或成本。在TSP中,与PRP相反,某些信息包含在节点中,即城市坐标。同时,边缘特征 ( x i j ∈ R 2 ) (x_{ij} ∈ R^2) (xij∈R2)以与PRP类似的方式通过边权重直接获得:如果边是当前解的一部分(城市 i i i和 j j j被连续访问),则 X i j X_{ij} Xij中的第一维表示距离,否则为零。类似地,对于不属于解决方案的边,第二维设置为非零(距离)。
关于运算符,如在最近的作品[13],[26]中所见,2-opt运算符比更插入或交换操作符适合于路由问题。。然而,如图4所示,应考虑一组候选算子并评估几个训练时期,以选择最佳的一个。事实上,在实验中,我们选择使用插入操作,因为它比2-opt执行得更好。
B.2-划分平衡图划分问题
给定图G(N,E,B),其中N表示节点的集合,E表示具有权重b的边的集合,2-分区平衡GPP包括找到N的2-分区,其中节点的数量在集合之间平衡,并且最小化从一个分区的节点到另一个分区中的节点的边的权重的总和。关于特征提取,单位向量被用作节点特征,如在先前的情况下。再次从边缘权重获得边缘特征 x i j ∈ R 2 x_{ij} ∈ R^2 xij∈R2。 x i j = ( b i j , 0 ) x_{ij} =(b_{ij},0) xij=(bij,0),当边缘 ( i , j ) (i,j) (i,j)属于切割,即,则它是簇之间的边,如果不是,则 x i j = ( 0 , b i j ) x_{ij} =(0,b_{ij}) xij=(0,bij)。
关于运算符,在这种情况下,我们建议使用一对项目之间的交换,以保证两个集群之间的平衡。即使模型可以选择同一集群中的一对项目,解决方案也不会改变,因此,改进将为空,迫使模型关注属于不同集群的项目对。
C.TSP和GPP的初步结果
我们使用2000个实例评估了NI模型在所描述问题的一步方案中的应用。对于TSP,我们使用了20个城市的实例,随机均匀地放置在单位正方形中。对于GPP,我们创建了具有20个节点和50%连通性的随机图,其中权重从(0,1)之间的均匀分布中采样。我们按照第V-A节中描述的设置为每个问题训练了NI模型。在TSP中,NI模型平均选择了361个动作中排名第五的动作(见图10)以获得关于所选动作的等级的进一步细节)。在GPP中,NI模型平均选择排名第十的动作;然而,在2000个实例中,该模型在89个案例(4%)中选择了无效交换(同一簇中的两个项目之间的交换),因此,一些动作似乎被比平常更糟(见图11段)。如果我们屏蔽了无效的移动,NI平均选择排名第三的动作。
七 结论
本文提出了一个基于图的问题,给定一个候选解决方案,是能够提出一个成对的修改,(几乎)总是产生一个新的更好的解决方案的NI模型。我们已经通过实验证明,NI模块可以取代传统的局部搜索策略,因为它需要更少的计算量来获得类似的结果,它是更灵活的,它可以有效地指导各种爬山算法。这项工作有重大影响,大多数国家的最先进的元启发式用于解决CO问题,因为它们通常包括传统的本地搜索程序。
在这篇文章中提出的研究代表了一个有前途的途径,为未来的调查。特别是,我们强调调查不同的训练策略的重要性,因为模型的性能受到训练中使用的实例的严重影响。为此,我们建议探索先进的课程学习策略,智能地选择训练实例,以及现实世界的实例生成器,这将允许生成更广泛的实例更接近目标分布。
虽然该模型表现出良好的性能,但局部搜索容易陷入局部最优,就像传统方法一样。我们认为,应该开发一种更先进的模式,以克服这一限制。特别是,我们建议结合好奇心驱动学习[45]和基于记忆的学习[46]等策略,以改善NI模型的探索,并防止模型重新访问先前探索的状态。通过采取这些步骤,我们相信NI模型的潜力可以充分实现,为该领域的未来研究开辟了令人兴奋的机会。
这篇关于Neural Improvement Heuristics for Graph Combinatorial Optimization Problems的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!