社区划分算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


但是,在大多数的实际网络中,每个源节点与其它 节点之间并不只是存在一条最短路径, 一些节点对 之间存在若干条长度相等的最短路径。
(0,1)
(1,1)
(1,1)
(2,1) (2,2)
(2,1)
(3,1) (3,2) (3,3)
从源节点 S 出发,为每个节点 i赋值,该值为从一 个源节点 S 出发到达其它节点 i 的最路径的数目用 wi表示。具体步骤如下: 1. 定义源节点 S 的距离为 ds= 0,并赋予一个权值 为 ws= 1。 2. 对于每一个与源节点 S 相邻的节点 i,定义它到 源节点的距离为di=ds+1 ,以及该节点的权值为 wi= ws= 1。 3. 对于每一个与任意节点 i 相邻的节点 j,我们根 据具体情况,采取以下三个步骤之一: 如果节点 j 没有被指定距离,那么,指定其距离 为 dj= di+1,权值为 wj= wi; 如果已经指定了节点 j的距离,并且节点 j 的距离 值为 dj= di+1,那么就要在原来的基础上将节点 j 的权值再增加 wi,使其权值为wj,即 wj← wj+wi; 如果已经指定了节点 j 的距离,并且距离为 dj< di+1,那么,直接执行步骤 4。 4. 重复执行第 3 个步骤,一直到网络中不存在满 足以下条件的节点,即其本身已经被指定了距离, 但是其邻接点却没有被指定距离。
移除具有最高边界数的边
GN算法的缺点
计算速度慢,边介数计算的开销过大,时间复杂性高,只适合 处理中小规模的网络(包含几百个节点的网络)。二、G-N 算法的思想
流程如下:
1、计算网络中所有边的边介数。 2、找到边介数最高的边并将它从网络中移除。 3、重复步骤1,2,直到每个节点就是一个退化的社 区为止。
边介数定义和计算
最短路径边介数方法是一种最简单的边介数度量方法, 一条边的边介数(betweenness)是指从某个源节点 S 出发通过该边的最短路径的数目,对所有可能的源节 点,重复做同样的计算,并将得到的相对于各个不同 的源节点的边介数(betweenness)相加,所得的累加 和为该边相对于所有源节点的边介数。
社区划分算法—GN算法
什么是社区划分

现实生活中存在着各种各样的网络系统,如人际关系网、合作网、交 通运输网、计算机网等。由于这种网络是真实复杂系统的拓扑抽象, 因此它被称为复杂网络。 通常整个网络是由若干个“群(group)”或“团(cluster)”构成 的。每个群内部的节点之间的连接相对非常紧密,但是各个群之间的 连接相对来说却比较稀疏。如下图所示。图中的网络包含三个社团, 分别对应图中三个圆圈包围的部分。在这些社团内部,节点之间的联 系非常紧密,而社团之间的联系就稀疏的多。
(0,1) 25/6 (1,1)
(1+1/3+1)*1
11/6 (1,1)
(1+2/3)*1/2 (1+2/3)*1/2
(2,1)
(2,2) 2/3 1/3
1
(3,3)
(3,1)
从节点 j 经过节点 i 到达源节点的最短 路径的数目与节点 j 到达源节点的最短 路径的数目之比为 wi/wj,对于源节点 S,应该采取以下步骤计算边界数: 1. 找到所有的叶子节点 f,该叶子节点 f 不被任何从源节点出发到达其它任何节 点的最短路径所经过。 2. 假设叶子节点 f 与节点 i 相邻,那么 就将权值 wi/wf赋给从节点 f 到节点 i 的 的边。 3. 从距离源节点 S 最远的边开始,从 下至上直到源节点 S为从节点 i 到节点 j 的边赋值为位于该边之下的所有邻边的 权值之和再加上 1,然后,再将其和乘 以 wi/wj,最后的结果就是该边的边介 数。 4. 重复步骤 3,直到遍历图中的所有节 点。
假设有一个具有 m 条边和 n 个节点的图,考虑一 种比较简单的情况,假设从任何一个源节点出发, 对该图进行搜索,该源节点与其它节点之间都只存 在一条最短路径,图中的所有最短路径构成一个最 短路径树。利用这颗最短路径树来计算每条边的边 介数。
2
4
1
1
2
1
1,找到这棵树的叶子节点,并为每条 与叶子节点相连的边赋值为 1 ; 2,按照自下而上的方向为该搜索树中 的每条边赋值,从与源节点 S 之间距 离最远的边开始,其值等于位于该边 之下的所有邻边的值之和再加上 1; 3,按照这种赋值方式,对搜索树中的 所有边进行遍历,那么每条边的相对 于某个源节点 S的边介数就是该边的 值,对于所有可能的源节点,我们都 重复上述过程; 4,将每条边的相对于各个源节点的边 介数相加 , 最终结果就是每条边的相 对于各个源节点的边介数,即所有节 点对间的最短路径的边介数。


社区划分就是在大型复杂网络中进行社区搜寻或发现社区。
GN算法介绍
GN算法是一个经典的社区发现算法,它属于分裂的层次聚类算 法。其基本思想是不断的删除网络中具有相对于所有源节点的最大的 边介数(ege betweenness)的边,然后,再重新计算网络中剩余的边 的相对于所有源节点的边介数,重复这个过程,直到网络中,所有边 都被删除。
相关文档
最新文档