一种查询图分解方法、装置、电子设备及存储介质制造方法及图纸

技术编号:20160540 阅读:19 留言:0更新日期:2019-01-19 00:13
本发明专利技术实施例提供了查询图分解方法、装置、电子设备、存储介质,方法包括:从查询图中各个待分配节点中确定多个第一节点,第一节点的离心率最大;选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的多个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,在分解查询图时,是从离心率较大的节点周围开始分解的,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得分解得到的查询子图的数目较少,提高了子图同构查询技术的整体性能。

【技术实现步骤摘要】
一种查询图分解方法、装置、电子设备及存储介质
本专利技术涉及图信息查询
,特别是涉及一种查询图分解方法、装置、电子设备及存储介质。
技术介绍
子图同构查询技术是在给定一个查询图和一个目标图的前提下,从目标图中找到与查询图的点、边属性完全匹配的子图。而由于查询图规模较大,因此很难实现直接在目标图中查找与查询图完全匹配的子图。为了实现在目标图中查找与查询图完全匹配的子图,采取的方法主要是查询图分解方法。具体的,对查询图进行分解,得到多个查询子图,在目标图中查找与分解后的查询子图相匹配的子图,得到查询的中间结果。最后,将查询的中间结果进行归并得到最终完整结果。分解查询图的方法为限定分解半径的分解查询图的方法。目前的限定分解半径的查询图分解方法主要分为两种:一种是随机分解方法,另一种是贪心分解方法。随机分解方法为:首先在查询图中随机的选取一个节点u,为节点u和节点u的邻居节点分配一个查询子图,对于任意连接到这个查询子图中节点的边,如果纳入到这个查询子图中不会使查询子图的半径超过预设限定半径的值,那就也分配给这个查询子图,否则不分配。接着再随机选取另一个点,迭代上述步骤,直到原查询图全部分解完毕。贪心分解方法为:对于查询图内的每个节点,以该节点为中心,在预设分解半径的限制下,中心节点将和距离该中心节点小于分解半径的节点,以及这些节点之间的边一起构成子图。然后在这些子图中,选择覆盖节点最多的子图,作为查询图分解的第一个查询子图。接着迭代进行上述操作,直到原查询图全部分解完毕。而在限定分解半径的条件下,根据上述两种方法对查询图进行分解,得到的查询子图的过程中,查询图的结构会被严重破坏,导致出现一些规模较小的查询子图,进而导致查询子图的数目较多,由于查询子图数目较多,则在对中间结果进行归并得到最终结果的复杂度会较高,使得子图同构查询技术的整体性能不高。
技术实现思路
本专利技术实施例的目的在于提供一种查询图分解方法、装置、电子设备及存储介质,以减少分解查询图后得到的查询子图的数目,从而提高子图同构查询技术的整体性能。具体技术方案如下:为实现上述目的,本专利技术实施例提供了一种查询图分解方法,所述方法包括:确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。可选的,在从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图之后,还包括:将所述查询图中位于查询子图中的节点确定为已分配节点,返回执行所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,直至所述查询图不包含待分配节点。可选的,所述查询图还包括连接节点的边;所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,包括:若所述查询图包含未分配至查询子图中的节点,从所述查询图中的已分配节点中确定第三节点;所述第三节点为连接的至少一条边未位于查询子图中的节点;将所述第三节点以及未分配至查询子图的节点,确定为待分配的节点;确定每个待分配节点分别至其他待分配的节点的跳数。可选的,所述方法还包括:输出所述查询图的最终分解结果,所述最终分解结果中包含所述查询图的多个查询子图。为实现上述目的,本专利技术实施例还提供了一种查询图分解装置,所述装置包括:第一确定模块,用于确定所述查询图中每个待分配节点分别至其他待分配节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;第一选择模块,用于对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;第二选择模块,用于从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;第二确定模块,用于确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;第三确定模块,用于对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;第三选择模块,用于从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。可选的,所述装置还包括:第四确定模块,用于在从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图之后,将所述查询图中位于查询子图中的节点确定为已分配节点,并触发第一确定模块。可选的,所述查询图还包括连接节点的边;所述第一确定模块,具体用于:若所述查询图包含未分配至查询子图中的节点,从所述查询图中的已分配节点中确定第三节点;所述第三节点为连接的至少一条边未位于查询子图中的节点;将所述第三节点以及未分配至查询子图的节点,确定为待分配的节点;确定每个待分配节点分别至其他待分配的节点的跳数。可选的,所述装置还包括:输出模块,用于输出所述查询图的最终分解结果,所述最终分解结果中包含所述查询图的多个查询子图。为实现上述目的,本专利技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的方法步骤。为实现上述目的,本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。本专利技术实施例提供的查询图分解方法、装置、电子设备及存储介质,首先从查询图中各个待分配节点中确定多个第一节点,其中,第一节点为离心率最大的待分配节点,再从多个第一节点中选择一个第一节点作为第二节点,确定到第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点,对于每个目标节点,从查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图,从得到的多个分解子图中,选择包含第一节点数目最多的分解子图,作为查询图的查询子图。可见,本专利技术实施例中在分解查询图时,是从离心率最大的节点周围开始分解的,节点的离心率大说明节点靠近查询图的边缘,从而在分解过程中,减少对查询图结构的破坏,能够较好的保持查询图内部的连通性,使得最终分解得到的查询子图的数目相对较少,从而提高了子图同构查询技术的整体性能。当然,实施本专利技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本本文档来自技高网
...

【技术保护点】
1.一种查询图分解方法,其特征在于,所述方法包括:确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。

【技术特征摘要】
1.一种查询图分解方法,其特征在于,所述方法包括:确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;对于每个待分配节点,从该待分配节点对应的所确定的跳数中选择最大的跳数,作为该待分配节点的离心率;从多个第一节点中选择一个节点,作为第二节点;所述第一节点为离心率最大的待分配节点;确定到所述第二节点的跳数不超过预设跳数的至少一个节点,作为目标节点;对于每个目标节点,从所述查询图中,确定以该目标节点为中心节点且半径为预设分解半径的分解子图;所述预设分解半径为分解子图中节点到中心节点的最大跳数;从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图。2.根据权利要求1所述的方法,其特征在于,在从得到的多个分解子图中,选择包含所述第一节点数目最多的分解子图,作为所述查询图的查询子图之后,还包括:将所述查询图中位于查询子图中的节点确定为已分配节点,返回执行所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,直至所述查询图不包含待分配节点。3.根据权利要求2所述的方法,其特征在于,所述查询图还包括连接节点的边;所述确定所述查询图中每个待分配节点分别至其他待分配的节点的跳数的步骤,包括:若所述查询图包含未分配至查询子图中的节点,从所述查询图中的已分配节点中确定第三节点;所述第三节点为连接的至少一条边未位于查询子图中的节点;将所述第三节点以及未分配至查询子图的节点,确定为待分配的节点;确定每个待分配节点分别至其他待分配的节点的跳数。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:输出所述查询图的最终分解结果,所述最终分解结果中包含所述查询图的多个查询子图。5.一种查询图分解装置,其特征在于,所述装置包括:第一确定模块,用于确定所述查询图中每个待分配节点分别至其他待分配节点的跳数;所述待分配节点包括所述查询图中未分配至查询子图中的节点;第一选择模块,...

【专利技术属性】
技术研发人员:张熙刘杨
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1