一种基于图深度学习的图组合优化问题求解方法

文档序号:26141576发布日期:2021-08-03 14:26阅读:278来源:国知局
一种基于图深度学习的图组合优化问题求解方法

本发明涉及图组合优化问题的技术领域,尤其涉及一种基于图深度学习的图组合优化问题求解方法。



背景技术:

在应用数学和理论计算机领域中,组合优化是指在具有某些特性的有限集合中,按某种目标找出一个最优子集的一类数学规划方法。组合优化问题多种多样,其中np-hard问题为组合优化问题中最难以解决的一部分,如背包问题,售货员问题,最大覆盖集问题,最小steiner树问题等等。发展至今,解决这类问题的算法也层出不穷,大致分为精确算法,近似算法,启发式算法,智能优化算法四个部分。虽然上述的一些算法在求解np-hard问题时具有一定的可行性,但对于每一种算法又有其劣势与不足之处,比如精确算法时间复杂度较高,近似解在大规模问题上误差增大,启发式和智能优化算法设计过程又很复杂。

近些年来由于图神经网络的发展,大部分组合优化问题都可以抽象成图的形式进行求解,图神经网络可以很好的利用图结构特征,顶点特征,在一些实验上取得比传统方法更好的结果,但当前已知图神经网络的图嵌入技术过于原始,无法紧凑的编码节点相关和路径相关的信息。



技术实现要素:

本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。

鉴于上述现有存在的问题,提出了本发明。

因此,本发明解决的技术问题是:现有的求解方式是使用手工构造的启发式算法来逼近最优解,但求解过程复杂,且效果不理想。

为解决上述技术问题,本发明提供如下技术方案:获取输入图信息并进行预处理,得到所述输入图的每一个顶点与权值相关的特征,通过分析关于steiner树的贪心算法得到更新后的矩阵x;基于编码-处理-解码的架构构建图神经网络,将更新后的矩阵x作为所述图神经网络的输入,得到表示顶点信息的隐藏向量并进行深度强化学习训练;利用贪心算法根据强化学习训练后的图神经网络选择当前状态下价值最大的顶点,完成图组合优化问题的求解。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述图神经网络的编码网络包括,整合当前顶点状态和初始权重信息生成一个p维的潜在向量表示,计算公式如下:

μv=relu(θ1[sv,tv]+θ2xv)

其中,表示模型参数,relu表示非线性单元,[,]表示连接操作,xv表示对输入图进行预处理后的初始顶点权值,sv表示顶点是否被选中的状态信息,tv表示是否是终端顶点的状态,μv表示顶点嵌入向量。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述图神经网络的处理网络包括,将获取的所述顶点嵌入向量μv处过网络进行处理,所述处理网络通过来自邻居节点的消息传递策略更新一个隐藏的顶点嵌入向量μ′v,即处理网络捕捉向量之间的变化,然后将它们拼接到p维向量的后面,所述隐藏的顶点嵌入向量μ′v计算公式为:

μ′v=lθrelu[μv,∑u∈n(v)(μv-μu)]

其中,n(v)表示顶点v邻居节点的集合。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述图神经网络的解码网络包括,将图上所有顶点的状态∑u∈vμ′u和要被添加的顶点隐藏嵌入向量μ′v共同定义一个评价函数q,然后将其参数化为q(s,v;θ),即基于整个图的状态和当前顶点生成顶点的价值,所述q(s,v;θ)的计算公式为:

其中,q(s,v;θ)表示顶点潜在的权重。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述深度强化学习包括,采用标准的q学习来更新所述图神经网络参数,每一步都采用sgd优化器去最小化均方误差,所述均方误差计算公式包括,

j(θ)=(y-q(st,vt;θ))2.

其中,y来自于目标网络。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述目标网络的计算公式包括,

其中,γ表示折扣率,设置在0-1之间,表示来自下一状态的衰减程度。

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述目标网络的计算公式进一步包括,在环境网络中找到于最大q值相对应的顶点,计算公式如下:

v′=argmaxv′q(st+1,v′;θ)

将该计算公式代入所述目标网络的计算公式,得到一个新的目标网络估计,计算公式如下:

作为本发明所述的基于图深度学习的图组合优化问题求解方法的一种优选方案,其中:所述矩阵x包括,通过对所述输入图预处理获得图上每一个顶点与权值相关的特征;当每次添加一个邻接顶点vi时,计算所述顶点vi与其他终端顶点的距离,采用一个矩阵来表示最短的距离:

其中,第i行和第j列的元素xij表示顶点vi到终端顶点vj的最短距离,i∈|v|表示顶点的个数v,j∈|t|表示终端顶点的个数|t|。

本发明的有益效果:本发明使用图神经网络对原始图结构进行了紧凑的编码,改善了强化学习容易造成选择动作值过估计的问题,优化了模型训练的过程,以减少动作值的过估计,从而能够快速,准确的寻找最佳路径,简化求解过程,达到理想效果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:

图1为本发明一个实施例提供的基于图深度学习的图组合优化问题求解方法的基本流程示意图;

图2为本发明一个实施例提供的基于图深度学习的图组合优化问题求解方法的另一基本流程示意图;

图3为本发明一个实施例提供的基于图深度学习的图组合优化问题求解方法的模型bordeaux流程示意图;

图4为本发明一个实施例提供的基于图深度学习的图组合优化问题求解方法的强化学习改进示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。

其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。

本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1

本发明首先聚焦于一个经典的np-hard图组合优化问题steiner树(stp),其变体在现实中有着广泛的应用,如网络通信里的多播问题,芯片设计,社交网络等等。然后实现了将布尔可满足性问题(sat),最小顶点覆盖集(mvc),三集合精确覆盖(x3c)三个广泛运用的np-hard问题转成steiner树,一个np-hard问题被证明可以通过求证算法结果的正确性能不能在多项式时间内验证,但通常这样的验证方式过于复杂。通常采用一个叫转化的技巧,也就是说,一个np-hard问题x如果可以在多项式时间内转化为y问题,那么y问题也是np-hard问题。

本发明在求解steiner树上将专注于设计近似启发式算法的一种流行模式,名叫贪心算法,它是基于评价函数q,通过逐步的添加顶点,构造一个部分解s,将这一过程称为图上贪心算法。对于steiner树问题,从一个终端顶点开始,寻找下一个价值最大的顶点进行连接,直到连接了所有的终端顶点,这里受到强化学习的启发,通过不断的探索和反馈,去学习选择最佳路径。

参照图1~4,为本发明的一个实施例,提供了一种基于图深度学习的图组合优化问题求解方法,包括:

s1:获取输入图信息并进行预处理,得到输入图的每一个顶点与权值相关的特征,通过分析关于steiner树的贪心算法得到更新后的矩阵x;需要说明的是,

本实例数据分为steiner树生成实例数据集和转化数据集,数据集的具体特征描述如下:

表1:数据集特征表。

数据集转化步骤:如图2所示,本实施例注重的是具体的每一个实例,将三个np-hard问题sat、mvc、x3c转化为stp实例,对应的每一个具体实例都会转化为一个相应stp实例,输入到模型中。当用户使用本产品时,想要求解sat、x3c问题,以标准的布尔表达式输入即可,想要求解mvc、stp问题,以图的稀疏矩阵输入即可,stp的实例不需要进行转化可直接求解,但需要指出终端顶点。

进一步的,矩阵x包括,

通过对输入图预处理获得图上每一个顶点与权值相关的特征;

当每次添加一个邻接顶点vi时,计算顶点vi与其他终端顶点的距离,采用一个矩阵来表示最短的距离:

其中,第i行和第j列的元素xij表示顶点vi到终端顶点vj的最短距离,i∈|v|表示顶点的个数v,j∈|t|表示终端顶点的个数|t|。

具体的,给定一个输入图,如果是其他np-hard问题,则转化,如果是steiner树,则直接求解。因为steiner树问题是一个np-hard问题,不可能发现每一个顶点确切的权值,所以本实施例通过简单的预处理获得图上每一个顶点与权值相关的特征,通过分析关于steiner树的贪心算法,当每次添加一个邻接顶点vi的时候,首先会注意到的是该顶点vi与其他终端顶点的距离;采用一个矩阵x∈来表示最短的距离,其中第i行和第j列的元素xij表示顶点vi到终端顶点vj的最短距离,i∈|v|表示顶点的个数v,j∈|t|表示终端顶点的个数|t|。但不是所有的终端顶点的信息都是有用的,这会导致存储空间的浪费,通过分析发现,与该顶点距离越近的终端顶点,则终端对该顶点的影响也就越大,相反,更远距离的终端顶点将不会再考虑;因此设置一个常数参数k来表示与顶点最近的k个终端顶点个数,然后更新矩阵为需要考虑的是,当一个终端顶点被添加到部分解里,那么这个终端顶点就会失去其价值。

s2:将通过步骤s1中获取初始的权值特征矩阵作为顶点的初始特征,设计了一个编码-处理-解码的架构,基于编码-处理-解码的架构构建图神经网络,将更新后的矩阵x作为图神经网络的输入,得到表示顶点信息的隐藏向量并进行深度强化学习训练;需要说明的是,

图神经网络的编码网络包括,

整合当前顶点状态和初始权重信息生成一个p维的潜在向量表示,计算公式如下:

μv=relu(θ1[sv,tv]+θ2xv)

其中,表示模型参数,relu表示非线性单元,[,]表示连接操作,xv表示对输入图进行预处理后的初始顶点权值,sv表示顶点是否被选中的状态信息,tv表示是否是终端顶点的状态,μv表示顶点嵌入向量。这一部分是为了得到全局的路径信息和所有顶点的状态信息。

图神经网络的处理网络包括,

将获取的顶点嵌入向量μv处过网络进行处理,处理网络通过来自邻居节点的消息传递策略更新一个隐藏的顶点嵌入向量μ′v,即处理网络捕捉向量之间的变化,然后将它们拼接到p维向量的后面,隐藏的顶点嵌入向量μ′v计算公式为:

μ′v=lθrelu[μv,∑u∈n(v)(μv-μu)]

其中,n(v)表示顶点v邻居节点的集合。求和操作是聚合邻接顶点信息的一种方式,减法操作是在一对顶点嵌入向量之间捕捉路径信息,在结合操作之后加入一些全连接层lθ。这一部分是为了捕捉局部的路径变化信息。

图神经网络的解码网络包括,

将图上所有顶点的状态∑u∈vμ′u和要被添加的顶点隐藏嵌入向量μ′v共同定义一个评价函数q,然后将其参数化为q(s,v;θ),即基于整个图的状态和当前顶点生成顶点的价值,q(s,v;θ)的计算公式为:

其中,q(s,v;θ)表示顶点潜在的权重。本实施例设计的图嵌入可以适用于各种类型和不同尺寸大小的图,并且所有的参数都是可学习的。

进一步的,在经过上述步骤的图嵌入之后,每个顶点都是包含图结构信息和顶点状态信息的隐藏向量表示。深度强化学习的过程如图4所示,具体包括,

采用标准的q学习来更新图神经网络参数,每一步都采用sgd优化器去最小化均方误差,均方误差计算公式包括,

j(θ)=(y-q(st,vt;θ))2.

其中,y来自于目标网络。

目标网络与环境网络保持相同的网络结构,但参数不同,目标网络的本来是由如下的公式进行估计的:

目标网络的计算公式包括,

其中,γ表示折扣率,一般设置在0-1之间,表示来自下一状态的衰减程度。

可以看到这里的公式y是来自于目标网络的估计,它会考虑到后续状态的价值,但是准确性无法得以保证。尽管基于价值的强化学习(dqn)本身会有经验池机制和延迟更新机制来消除连续状态的相关性,以减少目标函数的过高估计,但无法根本上解决dqn的缺陷。ddqn通过解耦顶点选择和目标网络的计算,消除过高估计。具体措施是针对目标网络的公式,并没有直接找到目标网络中每个顶点的最大q值,而是先在环境网络中找到于最大q值相对应的顶点,计算公式如下:

v′=argmaxv′q(st+1,v′;θ)

将该计算公式代入目标网络的计算公式,得到一个新的目标网络估计,计算公式如下:

s3:利用贪心算法根据强化学习训练后的图神经网络选择当前状态下价值最大的顶点,完成图组合优化问题的求解。

本发明设计了一个全新的模型bordeaux,第一次将图深度学习运用到steiner树问题上,提出一个新颖的图嵌入模型作为bordeaux的核心,它通过编码网络-处理网络-解码网络的结构捕捉steiner树节点状态和路径信息,将高维的图结构数据转化为低维的向量表示;为了训练模型,将steiner树问题重新定义为一个顺序决策过程,并设计了一个基于ddqn的深度强化学习模块来训练优化模型;最后将三个生活中广泛运用的np-hard问题转化维steiner树问题,实现了将每一个实例都对应转化为一个steiner实例,首次提供了转化的代码,并以符合深度学习的形式输入到模型,改善了强化学习容易造成选择动作值过估计的问题,优化了模型训练的过程,以减少动作值的过估计。

实施例2

为了检验本发明在解决图组合优化问题的效果,设计了以下实验,为了评估生成实例的解决方案质量,使用bordeaux和经典方法之间的近似比率。计算方法如下:

其中,c(s,g)表示bordeaux或者其他图神经网络在图g上的求解价值,classic(g)是经典方法的求解价值,其值越低得到近似比表示效果越好。为了减少由于生成图的随机性引起的误差,对于每一种生成图的每一个尺寸,都选择200个图的平均结果进行展示,然后取5个平均结果的最优值作为最终结果进行比较,gcn,gat,gcn是之前经典的具有代表性的图神经网络,统称为gnns。实验结果见下表:

表2:生成实例上的对比结果表。

从表2可以看出,在rr图上,mlp的三个比率都是最低,bordeaux几乎与最佳结果相同;gat和gcn的结果很差,是因为它们不仅未能捕获有用的局部信息,而且忽略了初始顶点权重;对于er图和ws图,bordeaux的结果明显优于其他的方法;在大多数情况下,bordeaux将比率控制在1.04以下。此外实验中还发现gnns的性能并不像rr图上那样不如人意,特别是gat,在一些图上的效果优于mlp。综合分析发现,不同结果的原因可能与图的生成规则有关,rr图的生成规则,每一个顶点都会保持相同的度,所以图的结构相对来说少了一个影响因素,会稍微简单些,因此,gnns无法捕捉有效的局部信息,mlp的效果会比较好;er图和ws图的生成规则足够复杂,足以对许多现实世界的网络进行模拟,但相对于mlp的方法,gnns的性能没有显著的提高,即所捕捉的局部信息不适合steiner树,而bordeaux的表现较好,不仅可以很好的保留顶点的初始信息,还能考虑到顶点分布情况选择更优的路径。最后,实验进行了一项额外的研究,即固定所有图的边权值1,这样会减少边的权值这一影响元素,从而让模型更加注重图的结构信息。注意到bordeaux在三种类型的图上的比例小于1,并且mlp方法和s2v方法的性能也令人满意,这表明本发明所提出的编码网络和解码网络起着重要的作用。

为了评估模型在转化数据集上的表现,将三个广泛使用的np-hard问题(sat,mvc和x3c)转化为stp实例。每个其他问题实例转化为stp实例,都会绑定一个相应的边界。如果在steiner树上寻找路径的成本小于边界的成本,那么该解对应原始的问题也有相应的解决方案。本发明重点探究对于mvc问题转化成steiner树,由于稠密图的性质造成模型过估计的问题改进,故设置了dqn和ddqn的对比。本发明在stp的解决成本和边界之间设置一个近似比率,计算方法如下:

其中c(s,g)表示bordeaux方法或者对比方法的找到的最优解,bound(g)表示边界。本实验以200个实例的平均比率作为结果,并取5次中的最佳结果作为最终结果。对比实验结果如下表:

表3:转化实例对比结果表。

从表3可以发现,在sat数据集上,大多数方法可以获得极其接近于边界的近似解,但却很难达到转化的边界值,bordeaux方法和最好的方法相差无几。除此之外,对于mvc实例,结果并不让人满意,通过分析,发现将mvc问题简化为stp实例会导致大量边连接,导致图的稠密性;例如,将30个顶点和60条边的mvc问题转换为stp会产生90个节点以及超过4000条边。这样密集的连接图对于深度学习的模型来说,是个不小的挑战,对比mvc(dqn),改进后的效果实现了8%的提升。总的来说,bordeaux在mvc和x3c数据集上依然都能够取得最好的结果。

应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1