[发明专利]一种基于位运算的图三角形计数方法在审
申请号: | 202010423051.0 | 申请日: | 2020-05-19 |
公开(公告)号: | CN111708981A | 公开(公告)日: | 2020-09-25 |
发明(设计)人: | 王雪岩;杨建磊;赵巍胜 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06Q50/00 |
代理公司: | 北京航智知识产权代理事务所(普通合伙) 11668 | 代理人: | 陈磊;张桢 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 运算 三角形 计数 方法 | ||
本发明属于图分析领域,涉及一种基于位运算的图三角形计数方法。针对传统的图三角形计数方法往往涉及大量的矩阵乘法运算以及复杂的控制逻辑,无法满足在超大规模社交网络图中进行快速的社区发现等需求的问题,本发明提出一种基于位运算的图三角形计数方法,将图三角形计数问题转化为一系列简单的位运算,例如包括布尔“与”运算和位计数,大幅简化了计算类型和控制逻辑从而高效快速计算图中三角形数目。同时,本发明提出的三角形计数方法的计算特点适合应用于新型的存内计算架构。
技术领域
本发明属于图分析领域,涉及一种在超大规模社交网络图中进行快速的社区发现方法,其包括基于位运算的图三角形计数方法。
背景技术
三角形是图的基本子结构,统计图中的三角形数量的三角形计数问题对于分析网络的特性至关重要,它通常是计算诸如聚类系数和传递率等指标的第一步,在以三角形计数为基础的社区发现、链接预测和垃圾邮件过滤等方面具有广泛的应用。
大数据时代下,社交网络图等图数据的规模呈现指数级增长,对快速识别社交网络中用户联系紧密度提出更高的要求。目前识别社交网络中用户联系紧密度的三角形计数方法分为基于矩阵乘法和基于集合交集两大类,在此基础上许多加速策略被提出,从顺序到并行,从单机到分布式,再到精确到近似。然而,如同大多数图处理算法,三角形计数具有较低的计算访存比率和较高的随机数据访问模式,因此在计算单元和内存组件之间存在频繁的数据传输,尤其是矩阵乘法中乘法运算非常复杂耗时,面临时间和功耗方面的瓶颈。当前三角形计数方法对图中的三角形进行计数的速度无法满足在超大规模社交网络图中进行快速的社区发现等需求。
发明内容
为此,本发明提出了一种在超大规模社交网络图中进行快速的社区发现方法,其包括基于位运算的三角形计数方法,本发明将三角形计数问题转化为一系列简单的位运算,例如包括布尔“与(AND)”运算和位计数,通过简化计算和控制逻辑加速三角形计数过程,避免了传统方法中耗时的乘法运算以及复杂的控制逻辑,从而实现在超大规模社交网络图中进行快速的社区发现等应用。
本发明提供了一种基于位运算的三角形计数方法,包括如下步骤:
S1:给定用于存储无向图中的节点和边信息的图的邻接矩阵,在社交网络图应用中,图中的节点表示用户,边表示用户之间的关联关系,将邻接矩阵中的非零元素所在的行和列进行位运算;
S2:统计步骤S1中的位运算结果的向量中非零元素的个数;
S3:按照步骤S1所述方法,依次处理邻接矩阵中的每个非零元素,并将步骤S2中统计的非零元素的个数累加;
S4:求得步骤S3中的累加和,获得图三角形的数量。
进一步,步骤S1中的所述位运算可以包括布尔“AND”运算。
进一步,步骤S2中,可以利用位计数器实现步骤S1中的位运算结果的向量中非零元素的个数的统计。
进一步,所述方法依据如下:
定义A为无向图G的邻接矩阵,其中A[i][j]∈{0,1}表示无向图G中节点i和j之间是否存在边:若存在边,则A[i][j]=1,否则,A[i][j]=0;令A2=A*A,则A2[i][j]的值表示节点i和j之间长度为2的不同路径的数量;如果节点i和j之间存在边,同时节点i可以通过长度为2的路径到达节点j,假设途径的中间节点是k,则节点i、j和k形成一个三角形,
令TC(G)表示无向图G中的三角形数量,符号“∩”定义按位相乘运算,nnz表示非零元素的数量,则式(1)成立:
TC(G)=nnz(A∩A2) (1)
由于A[i][j]为0或1,则式(2)成立:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010423051.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种双极板电池切割机构
- 下一篇:一种图三角形计数算法的自旋存内计算架构