[发明专利]一种基于预过滤的大规模图中三角形计算方法有效
申请号: | 201710023351.8 | 申请日: | 2017-01-12 |
公开(公告)号: | CN106776045B | 公开(公告)日: | 2020-03-10 |
发明(设计)人: | 祝园园;张颢 | 申请(专利权)人: | 武汉大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/901 |
代理公司: | 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 | 代理人: | 鲁力 |
地址: | 430072 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种有效的通过布隆过滤器来过滤三角形生过程中的无效楔形结构的基于预过滤的大规模图中三角形计算方法,本发明是为了解决现有的三角形计算方法在大规模图中因中间结果过大而无法应用的问题,通过布隆过滤器进行预过滤,可以有效降低中间数据量,进而提高计算效率。在该方法中优化了传统的布隆滤波器使之能够有效的适应分布式环境且能够被快速计算,并进一步加快的三角形的计算过程。 | ||
搜索关键词: | 一种 基于 过滤 大规模 三角形 计算方法 | ||
【主权项】:
一种基于预过滤的大规模图中三角形计算方法,其特征在于,包含以下步骤:步骤1、生成一个空间有效的用来存储图中所有的边的布隆过滤器,能够过滤掉不能组成三角形的楔形结构,减少中间结果的输出,具体是:首先获得图G=(V,E)中边的总个数|E|;定义将布隆过滤器B划分为P片,标记为B1,B2,…,BP,根据已知的边数来计算每个布隆过滤器分片中应该包含的边数目数Ci;然后依据Ci,在每一台机器上,输入相应数量的边,并生成布隆过滤器的分片Bi;最后获取所有机器上的布隆滤波器,合并其为完整的布隆过滤器B;步骤2、生成所有的楔形结构W,并且载入布隆过滤器B,用来对生成的楔形结构W进行预过滤;具体是:首先将整个图G载入,以获取G中由有序边组成的集合E’;针对每个顶点u,将它具有较大顶点ID的邻居顶点加入到集合N+(u)中;同时将布隆过滤器的每个分片B[i]依次载入分布式缓存中;最后,对于每个顶点u,取出其中的任意两个邻居顶点v,w∈N+(u),利用布隆过滤器B检查顶点v和w之间是否存在一条边;如果存在,将楔形结构∨(v,u,w)输出到集合W’中,完成预过滤;步骤3、对于W’中的所有楔形结构∨(v,u,w),做进一步的检查,判断边(v,w)是否在图的边集E中真实存在,然后输出所有的三角形;具体是:首先读入步骤2中输出的楔形结构∨(v,u,w)∈W’以及图G的边集E,将二者进行统一形式的输出;即对于任意的楔形结构∨(v,u,w),将其输出为三元组((v,w),u),对于任意的边(v,w)∈E,加入空顶点$,将输出为三元组((v,w),$);最后,将所有由(v,w)引导的三元组合并成统一的列表((v,w),x),其中x∈S∪{$}且S={u|∨(v,u,w)∈W’};最后,基于输出结果,对于任意顶点对(v,w),先检查((v,w),$)是否存在,若存在,则遍历所有的顶点u∈S,输出三角形△(v,u,w);否则,放弃所有由(v,w)引导的楔形结构∨(v,u,w)(其中u∈S)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710023351.8/,转载请声明来源钻瓜专利网。
- 上一篇:基于数据流的硬件加速方法及系统
- 下一篇:一种SCST读写优化方法及系统