社交网络图挖掘4--三角形计数问题
来源:互联网 发布:java项目开发文档模板 编辑:程序博客网 时间:2024/06/01 22:43
计算一个随机图中的三角形数目期望值
由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 ;
寻找重节点三角形:
考虑所有重节点中所有三节点集合,重节点三角形可能有
寻找其他三角形:
- 考虑每条边
(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) 。
算法总时间为时间为
阅读全文
0 0
- 社交网络图挖掘4--三角形计数问题
- 社交网络图挖掘3--重叠社区的发现及Simrank
- 社交网络图挖掘5--图的邻居性质
- 基于hadoop的社交网络三角形计数
- 社交网络图挖掘1--将社交网络看作图及其聚类
- 社交网络图挖掘2--社区的直接发现和图划分
- 三角形计数
- 三角形计数
- [BZOJ 1491][NOI 2007]社交网络(Floyd+计数问题)
- 社交网络数据挖掘
- 社交网络数据挖掘
- 利用python、Gephi绘制人人的社交网络图
- PAT6-09. 社交网络图中结点的“重要性”计算
- hadoop编程----寻找社交网络图中的三角关系
- PTA 社交网络图中结点的“重要性”计算
- PTA 7-12 社交网络图中结点的“重要性”计算
- 社交网络图中结点的“重要性”计算(30 分)
- PAT OJ.社交网络图中结点的“重要性”计算
- 折半查找
- 圆形图片
- 考虑到适配的动态摇杆(本人资料备份)
- TCP/IP<2>
- 洛谷P2656 采蘑菇
- 社交网络图挖掘4--三角形计数问题
- viewpager无限轮播加小圆点
- Java基础知识--变量
- 多线程同步与线程通信
- Linux挂载与卸载操作(mount,umount)
- HDU
- 阅读HashMap——jdk7时遇到的问题记录
- 数据库索引
- java ImageIO处理