社交网络图挖掘4--三角形计数问题
2017-10-25 18:59
309 查看
计算一个随机图中的三角形数目期望值
由n个节点和m条边随机构成的图的中:图中总共有(n3)=n3/6个三节点集合;
在任意给定的两个节点之间加入边的概率为m/(n2)=2m/n2;
如果每条边的选择独立,那么任意三节点中包含三条边的概率为(2m/n2)3=8m3/n6;
则该图的三角形期望数目为:(8m3/n6)(n3/6)=43(m/n)3
一个寻找三角形的算法
相关概念假设一个图有n个节点m条边,其中m>n:
1.
重节点(heavy hitter):如果一个节点的度不小于m−−√,则该节点为重节点,重节点的数目不可能超过2m−−√。
重节点三角形(heavy hitter triangle):如果某个三角形的三个顶点都是重节点,则该三角形为重节点三角形。
对图进行预处理:
计算每个节点的度,时间为O(m);
以边的两个端点作为键对边建立索引,即给定两个节点,通过索引就可以确定这两个节点之间是否有边。时间为O(m);
以边的单个端点作为键对边建立另一个索引,即给定节点v,返回该节点的邻接节点。
对节点进行排序:
首先按照节点的度排序,如果节点v的度小于节点u的度,则u<v;
如果节点v的度等于节点u的度,则按照节点的编号谱排序,如果节点v的编号小于节点u的编号,则u<v;
寻找重节点三角形:
考虑所有重节点中所有三节点集合,重节点三角形可能有O(m3/2)个,时间为O(m3/2)。
寻找其他三角形:
考虑每条边(v1,v2),如果v1和v2都为重节点则忽略这条边;但如果假定v1不是重节点并且有v1<v2,令u1,u2,...,uk为与v1相邻的节点,其中k<m−−√,利用节点索引在O(1)时间内找到这些节点;
对于每个节点ui,利用边索引在O(1)时间内判断边(ui,v2)是否存在;
当且仅当边(ui,v2)存在,并且v1<ui 时,对三角形(ui,v2,ui)计数,时间为O(m3/2)。
算法总时间为时间为O(m3/2)。
相关文章推荐
- 基于hadoop的社交网络三角形计数
- 探索大数据之如何挖掘社交网络
- LOUVAIN——社交网络挖掘之大规模网络的社区发现算法
- 社交网络数据挖掘
- 社交网络图挖掘3--重叠社区的发现及Simrank
- 机器学习: 专家系统、认知模拟、规划和问题求解、数据挖掘、网络信息服务、图象识别、故障诊断、自然语言理解、机器人和博弈等领域。
- LOUVAIN——社交网络挖掘之大规模网络的社区发现算法
- 面向社交网络用户的多维关联信息挖掘技术
- 机器学习: 专家系统、认知模拟、规划和问题求解、数据挖掘、网络信息服务、图象识别、故障诊断、自然语言理解、机器人和博弈等领域。
- 社交网络图挖掘5--图的邻居性质
- sns 基于校园的社交网络服务(三版-1期)小结部分问题
- 社交圈子挖掘的问题
- 社交网络数据挖掘
- 数据挖掘之社交网络 DFS和BFS算法
- 社交网络挖掘的另一个工具-igraph
- 【社交圈子挖掘】用边介数GN算法研究交通网络聚类性质
- ADL:社交网络分析与数据挖掘(DAY1)
- 社交网络数据挖掘公司乐荐推出“我好想网”:动真格的社交
- 数据流挖掘——窗口内的计数问题
- 【复杂网络系列】HipHop算法:利用微博互动关系挖掘社交圈