复杂网络的一种快速局部社团划分算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
83பைடு நூலகம்
此 , 不必考虑它们 , 只 需要考 虑节点 6 和节点 7 。 显然 , 它们 都是节点 17 的最大 邻居 , 因此 , 它 们说 服了 节点 17, 如图 3 ( c) 。
1 引言
近几年来 , 复杂网 络研究 受到 越来 越多的 关注 , 并 渗透 到从自然科学到工程 科学甚至社会科学的多个领域
[ 1, 2]
物学、 物理 学、 计 算 机 图形 学 和 社 会学 中 都 有 广 泛 的应 用
[ 10- 17]
。
。复
近年来 , 人们提出了许多算法来寻 找复杂网络 中的社团 结构 [ 18- 23] 。然而 , 当网 络的规模过于庞大时 , 寻找 整个网络 的全局社团结 构的 计算 量是极 大的。另 外 , 在很多 情况 下 , 关心的并不是整个网络 的社团结构 , 而 是网络中某 一部分的 社团结构。比如 , 通常只关心社会网络 中某个人所 在的社团 的结构 , 或者是 万 维网 中某 个 网站 所在 社 团的 局 部拓 扑结 构。在这种情况下 , 就不希望消耗过多 的时间来寻 找全部的 社团结构。近期 , 寻找网络中某个节点 所在的局部 社团结构 也开始受到关 注 [ 24- 27] 。 本文提出 的就是一 种分 析局 部社团 结构 的新 算法。从 本质上来说 , 它是一种以某个节点为 核心 出发的多方向有 选择性的广度 搜索算 法。与目 前提 出的其 它划 分网 络局部 社团结构的算 法相比 , 该算法主要具 有以下两个 优点 : 第一 , 其它算法是从某个节点 出发进行等距离的逐 层扩散搜 索 , 因 此 , 这些算法的准确与否绝大程度上取 决于所选的 初始节点
杂网络可以用来描述 人与人之间的社会关系 [ 3] , 物 种之间的 捕食关系 [ 4] , 计算机之间的 网络联 接 [ 5] , 词 与词 之间的 语义 联系 [ 6] , 科学 家 之间 的 合 作 关系 [ 7] , 蛋 白 质 之 间 的相 互 作 用 [ 8] , 科研文章之 间的 引用 关系 [ 9] 以及 网页 的 链接 结构 [ 9] 等等。随着对网络性质的物理意 义和数学 特性的深入 研究 , 人们发现许多实际网 络都具有一个共 同性质 社团 结构。 也就是说 , 整个网络是由 若干个 群 构成 的 , 每个群内 部的 节点之间的连接非常 紧密 , 但是各个群 之间的连接 却相对来 说比较稀疏
[ 4]
。揭示网络中的社团结构 , 对于了解 网络结构
与分析网络特性 具有 极为 重要的 意义。社 团结 构分析 在生
基金项目 : 国家杰出青年基金 ( 60225013 ); 国家自然科学基金 ( 70431002 ) 收稿日期 : 2006 - 09- 28 修回日期 : 2006- 10- 11
图 1 算法的流程图
到整个网络的社团结 构。 在 这种情 况下 , 寻 找网 络的 社团结 构相当于对整个网络进 行一次广度优先搜索 , 该步 的时间复 杂度 为 O( m)。 此时总的算法时间复杂度为 O( m) + O( m) = O (m ) 。 对于稀疏网络而言 , 即有 O (m ) 3) 算法的应用 下面以 Z achary网络为例来看该算法在实际网 络中的应 用。这是出自社会网络分析的一 个经典问题。 20 世纪 70 年 代初期 , W ayne Zachary 用了 两年 的时 间观 察美 国 一所 大学 空手道俱乐部 成员间 的相 互社会 关系。基 于这 些成 员在俱 乐部内部及 外部 的社 会关 系 , W ayne Z achary 构 造 了它 们之 间的关系 网 [ 28] , 如图 2 所 示。事 有凑 巧 , 在他 调查 过程 中 , 该俱乐部的主 管与校长 之间因 是否 抬高俱 乐部 收费 的问题 产生了争执。结果 , 这个俱乐部分裂成 了两个分别 以校长和 主管为核心的 小俱乐部。 Z achary网 络在复杂 网络的 社团结 构分析中已经成为一个 经典的问题 , 成 为了衡量网 络社团结 构划分算法准 确性的标准。 下面利用 该算法来 分析 这个 网络。假设 需要 知道 节点 13 所在的社团结 构。首 先 , 由图 中可 知 , 节点 13 的度 为 2, 它 有两个邻居节点 : 1 和 4。其中 , 节 点 1 的度为 16, 而节点 4 的度为 6。因此 , 节点 13 被 节点 1 成 功说 服 , 成 为节 点 1 所 在社团的一员 , 如图 3( a) 所示。 接着 , 考虑 节点 1 。 它一共 有十六个邻居 节点 , 除 了节 点 9、14、20 和 32 这四 个邻 居节 点与节点 34( 度为 17) 这个更 有说服 力的节 点相 邻以外 , 其 它的 12 个节点都以 它为 最大 度的邻 居。因 此 , 节点 1 成功 地说服了它周 围包括节点 13 在内的 的另外 12 个邻居 , 如图 3( b) 。接下来 , 再考虑被 节点 1 说服的那些 邻居节点。在这 些节点 中 , 除了节 点 6 和节 点 7 以 外 , 其它的 节点都 没有能 力再说服其它的节点 , 同时也不能再 被其它的 节点说服。因 O ( n ), 其中 n 表示 节点的个数。这是一个 线性的时间复杂度。
A Fast A lgorithm for D etecting Local Co mmunity Structure in Complex N etw orks
X IE Zhou , W ANG X iao- fan
( D epartment o fA utom ation, Shangha i Jiao tong U niversity , Shanghai 200240, China) ABSTRACT: In o rder to detect community structure in large- scale co m plex netwo rks fast and correctly , a new heu r istic algorithm based on the idea o f degree preference is propo sed in this work . Started fro m the node under consider ation, this ne w algor ithm introduces a degree - based a lterna tive breadth - first search to ge t the local co mmun ity structure of a node . S ince th is a lgor ithm only requires lo ca l infor m ation of the node , its ti m e co m plex ity is linear and thus is very lo w. T his a lgor ithm is applied to a c lassica l so cial netw ork, the Zachary ne t w ork, w ith satisfac tory result . F inally , an i m proved algorithm for further enhanc ing the accuracy is d iscussed. KEYW ORDS : Comp lex ne t w ork ; D eg ree ; Community structure
第 24 卷
第 11 期
计
算
机
仿
真
2007 年 11 月
文章编号 : 1006 - 9348( 2007) 011 - 0082- 04
复杂网络的一种快速局部社团划分算法
解, 汪小帆
( 上海交通大学自动化系 , 上海 200240) 摘要 : 为了快速准确地寻找大规模复杂网络的社团结构 , 文中基于节点度优先的思想 , 提出了一种新的寻找复杂网 络中的局 部社团结构的启发式算法。该算法的基本思想是从待求节点出发 , 基于节点 的度有选择性 的进行广度优 先搜索 , 从而 得到 该节点所在的局部社团结构。由于该算法仅需要利用到节点的局部信息 , 因此时间复杂度很低 , 达到了线性的时 间复杂度。 将该算法应用于社会学中经典的 Zachary网络 , 获得了满意的结果。最后 , 还分析了如何对该算法加以改进以进一 步提高准 确度。 关键词 : 复杂网络 ; 度 ; 社团结构 中图分类号 : N 94; TP393 文献标识码 : A
82
在社团中所处的 位置。 只有当 这个 节点处 在它 所在社 团的 中心位置时 , 利 用 这些 算法 得 到的 局部 社 团结 构才 是 准确 的。而本文提出 的算法 是一 种有选 择性 的搜 索算法 , 因 此 , 对于待求节点在网络 中的初始位置没有任 何要求。第 二 , 目 前存在的大多数算法 的复杂度都比较高 , 大部分在 O ( n 2 ) 甚 至 O ( n 3 ) 的数量级 , 其中 , n 表示网络的节点数。 因此 , 它们很 难用于分析大 规模 复 杂网 络。 而该 算法 的 时间 复杂 度 非常 低 , 只有线性的时间复杂度。 因 此 , 它可 以适用于分 析大规模 的复杂网络的社团结 构。
2
算法介绍及其复杂度分析
将网络中的每个 节点看作具有游说能力 的个体 , 它们不
断地试图说服 周围 的 节点 成为 自 己所 在 社团 的一 员。 直观 的 , 网络中节点的游说能力的强弱与节 点的度的大 小直接相 关。 一个节点的度越大 , 它的游 说能力就越强。 如果 一个节点 的度比它周围的所有邻居的度 都要大 , 那么它很容 易说服它 周围的节点 , 加入它 所在的社 团。 相反 , 一 个节点 的度越 小 , 它就越容易被周围的 节点说服 , 而且趋 向于被它的 邻居中度 最大的那个节点所说 服 , 成为那个邻居所在社团的一员。 在这个思 想上 , 从 某个节点 出发 , 寻 找它所 在的社 团的 基本算法流程如下 : 1 ) 初始化。 读入网络 , 对 网络中每 个节点 都保存 一个线 性动态链表。 其中 , 链表的头结点 记录下该 节点的相关 信息 , 包括节点的度 , 具有最大度的邻居节点 的序号和该 邻居节点 的度。 而链表中 的 其他 各个 结 点就 分别 对 应了 它的 邻 居节 点。 这一步骤的时间复杂度为 O (m ) , 其中 m 为网络中边的条 数。 2 ) 对于某个指定的待求 节点 s , 对它的各个邻居 节点 t : 如果 t的度小于 s的度 , 而且 t的其他邻居节点的度都 小于 s , 就认为 s是对 t而言游说能力最强的节 点 , t被 s成功说 服 , 成为 s所在社团 的一员 ; 如果 t的度大于 s的度 , 而且 s的其它邻居节点的度都 小 于 t, 就认为 t是对 s而言游说能力最强的节点 , s被 t成功说 服 , 成为 t 所在社团的一员 ; 如果不满足 上面两个条件 , 则认为 s 和 t 谁也不能说 服谁 , 因此分别属于两个不同的社团。 而且 , 它们分 别是这两 个社团的 边缘节点 。 3 ) 将那些被 s说 服或者是将 s说服的节点作为新的初始 节点 , 对它重复步骤 2 ), 直到 所有社团 内的点 再也无 法说服 它的邻居 , 同时也不能被 它的邻 居所说 服为 止 ( 即找到 社团 的所有 边缘节点 )。 这 样 , 最 终就 可以 找到 待求 节点 所在 的整个社团的结构。 以上第 2 ) 和第 3 ) 个步骤相当 于对网络 进行局部的广度优先 搜索 , 所以时间复杂度为 < O (m )。 该算法的流程图 如图 1 所示。 特别的 , 如果要得到整个网络 的社团 结构 , 只需 从任意 一个节点出发 , 寻找它所在的社团 ; 然后 , 再从该社 团外的任 意一个节点出发 , 寻找另一个社团 , 如此反复 , 最终 就可以找