[发明专利]一种分布式的子图枚举方法有效
申请号: | 201710295982.5 | 申请日: | 2017-04-28 |
公开(公告)号: | CN106991195B | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 顾荣;黄宜华;王肇康;冯轩 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/27 |
代理公司: | 苏州威世朋知识产权代理事务所(普通合伙) 32235 | 代理人: | 杨林洁 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 枚举 方法 | ||
1.一种基于Pregel编程框架的分布式的子图枚举方法,包括以下步骤:
(1)用户输入查询图和数据图;
(2)以查询图上的每个顶点的度数作为权重信息;
(3)根据查询图每个顶点的权重信息,选择权重最高的点插入到查询树中,并从查询图中删除这个点及其相关的边,并更新各个顶点的度数信息作为新的权重,重复这个过程,直到查询图的所有边都已经被全部删除;
(4)将数据图以邻接表的格式存储到分布式数据库中;
(5)在第一轮迭代开始之前,将数据图中的每个顶点设为活跃状态;
(6)对于数据图的各个活跃顶点,根据该活跃顶点接收到的邻居顶点发送过来的部分匹配结果,先从分布式数据库中获取数据图中当前顶点的邻接点列表,然后再遍历收到的部分匹配结果,对收到的部分匹配结果和当前顶点的邻接点列表,按照查询图对应点相同的原则,做基于笛卡尔积的连接操作,获得本轮当前查询子树的匹配结果,匹配结果只保存本轮查询子树中非叶节点的匹配信息;
(7)每个活跃的数据图顶点向该顶点的邻接点发送本轮生成的部分匹配结果;如果本轮生成的部分匹配结果为空,则该顶点将自己设置为不活跃的状态,否则该顶点继续保持活跃;
(8)对于查询树和数据图,多次迭代执行所述步骤(6)到步骤(7),直到查询树自身已经匹配完成,匹配出来的部分匹配结果保存在数据图的各个顶点上;
(9)使用Pregel编程框架完成步骤(8)所述的迭代过程;
(10)对于每个部分匹配结果,从分布式数据库中查询部分匹配结果中出现的数据图顶点的邻接表,然后根据查询树的拓扑信息,将出现在查询树中但未出现在部分匹配结果中的查询图顶点,根据数据库查出的邻接表信息填充完整,判断是否符合子图同构的匹配条件,符合子图同构条件的匹配结果进行输出,否则抛弃。
2.根据权利要求1所述一种基于Pregel编程框架的分布式的子图枚举方法,其特征在于:所述步骤(6)中,数据图顶点的本轮迭代的部分匹配结果是由查询树的某一棵查询子树的部分匹配结果组成,一棵查询子树的部分匹配结果是由这棵查询子树的子树的部分匹配结果组合生成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710295982.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:智能风格推荐系统
- 下一篇:一种通用的数据追溯方法及系统