The invention discloses a distributed subgraph enumeration method, which comprises the following steps: the first step, according to the query tree generation input query graph, and the query tree is distributed to each computing node; the second step, according to the query tree part matching results in the input data on the map; the third step, according to the part the matching results and query tree, complete subgraph matching task to generate matching results. The second step portion of the query matching results in a distributed computing framework of complete graph, this step is divided into the following two steps: the first step, the matching result is received and sent by the neighbor vertex part generates a new part of the matching results of connection operation; the second step, the new part of the matching result is sent to the neighbor node. The present invention in a distributed environment and efficient completion of the subgraph enumeration calculation task, improve the current distribution of sub graph enumeration calculation method of network overhead is too large, low performance.
【技术实现步骤摘要】
一种分布式的子图枚举方法
本专利技术涉及子图枚举问题与并行计算
,尤其涉及基于Pregel编程框架的分布式子图枚举方法。
技术介绍
子图枚举问题是计算机图数据结构上的一类基本问题。子图枚举为以子图为处理单元的图分析算法提供了分析基础,在生物信息学、社交网络分析以及描述社会网络演变等诸多领域都有着广泛的应用。子图枚举问题在计算机领域是一个困难的问题,计算的复杂度非常高。一方面,前人从单机时代已经对这个问题进行了大量的研究,单机子图枚举算法大部分是基于深度优先搜索的方法来实现。但是由于子图枚举问题的复杂度过高,单机的方法经常使用剪枝以及索引等方法来降低计算的复杂度。但是,这些方法并没有从根本上解决子图枚举算法复杂度过高的问题。另一方面,通用集群蓬勃发展。它们有着搭建成本低,易于使用和维护等优点,并且随着以ApacheSpark为代表的数据并行计算框架和以HDFS为代表的分布式存储系统的发展,通用集群具有了更加良好的容错性,计算和存储能力也可以方便地水平扩展。因此,基于各种分布式计算框架的分布式子图枚举计算方法应运而生。这些方法利用集群这种分布式的计算平台来解决大 ...
【技术保护点】
一种分布式的子图枚举方法,包括以下步骤:(1)由用户输入两个输入数据:查询图和数据图;(2)根据输入的查询图确定查询图上的每个顶点的权重;(3)根据查询图和每个顶点的权重信息,生成一棵查询树;(4)先将数据图以邻接表的格式存储到分布式数据库中,然后以查询树中高度为2的顶点作为初始查询点;(5)在第一轮迭代开始之前,将数据图中的每个顶点设为活跃状态;(6)对于数据图的各个活跃顶点,按照如下的计算方法,计算部分匹配结果:根据该活跃顶点接收到的邻居顶点发送过来的部分匹配结果,生成该活跃顶点本轮迭代的部分匹配结果,如果本轮的结果为空,则将该活跃顶点的自身状态设置为不活跃;(7)数据 ...
【技术特征摘要】
1.一种分布式的子图枚举方法,包括以下步骤:(1)由用户输入两个输入数据:查询图和数据图;(2)根据输入的查询图确定查询图上的每个顶点的权重;(3)根据查询图和每个顶点的权重信息,生成一棵查询树;(4)先将数据图以邻接表的格式存储到分布式数据库中,然后以查询树中高度为2的顶点作为初始查询点;(5)在第一轮迭代开始之前,将数据图中的每个顶点设为活跃状态;(6)对于数据图的各个活跃顶点,按照如下的计算方法,计算部分匹配结果:根据该活跃顶点接收到的邻居顶点发送过来的部分匹配结果,生成该活跃顶点本轮迭代的部分匹配结果,如果本轮的结果为空,则将该活跃顶点的自身状态设置为不活跃;(7)数据图的每个活跃顶点按照发送函数向该活跃顶点的邻居顶点发送消息;(8)对于查询树和数据图,多次迭代执行所述步骤(6)到步骤(7),直到查询树自身已经匹配完成,匹配出来的部分匹配结果保存在数据图的各个顶点上;(9)依据查询树和步骤(8)中得到的部分匹配结果,生成最终的子图枚举匹配结果。2.根据权利要求1所述一种分布式的子图枚举方法,其特征在于:所述步骤(1...
【专利技术属性】
技术研发人员:顾荣,黄宜华,王肇康,冯轩,
申请(专利权)人:南京大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。