复杂网络的社区发现算法研究

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

* 基金项目:江西省科技厅工业攻关项目(赣财教[2005]132 号);江西省教育厅科技计划项目(GJJ08283)
· 58 ·
Zachary 网络, 所得到的结果与原网络的情况完全一致。但是, Kerighan-Lin 算法必须预先指定 2 个社区的大小, 否则会得到 错误的结果。这使得 Kerighan-Lin 算法无法应用于大多数真 实网络。即使 Kerighan-Lin 算法的这一缺点得以克服, 作为图 分割方法, 其先天性不足仍然难以解决。 1.2 基于图的 Laplace 矩阵的特征向量的谱二分法 一个包含 n 个节点的网络的 Laplace 矩阵是一个 n×n 维的 对称矩阵 M。M 对角线上的元素 mii 是节点 i 的度 ki, 而非对角 线元素 mij 的构成如下: 如果节点 i 与 j 有边相连, 则 mij 为-1, 否 则为 0。显然, 网络的 Laplace 矩阵 L 与网络的连接矩阵 A 的关 系如下: L=K-A 其中, K=(kij)是一个对角矩阵, kij=ki, i=1,…,N。 M 矩阵的所有的行与列的元素之和为 0, 因此, 该矩阵必有 一个特征值为 0, 且对应的特征向量为 1=(1,1,…,1)T。而不为零 的特征值所对应的特征向量的各元素中, 同一个社区内的节点 对应的元素是近似相等的。可以证明, 除零特征值外, 其它特 征值均大于零。谱二分法即是根据 M 的第二个小特征值λ2 将 网络分为两个社区。λ 2 被称为图的代数连接度, 如果其值越 小, 谱二分法的效果就越好 。虽然计算一个 n×n 矩阵的全部
2 基于社会学的方法
该方法用来分析社会网络之间相似性或边之间连接的强 度。根据在网络中增加边还是去除边, 有两类算法: 凝聚算法 和划分算法。 2.1 凝聚算法 基本思想是用某种方法计算出各节点对之间的相似性, 然 后从相似性最高的节点对开始, 往一个节点数为 n 而边的数目 为 0 的原始空网络中添加边。这个过程可以中止于任何一点, 而最终形成的网络就认为是社区的集合。从空图到最终图的 整个算法的流程也可以用谱系图或树状图来表示, 如图 2 所 示。底部的各个圆代表了网络中的各个节点。当水平虚线从 树的底端逐步上移, 各节点也逐步聚合成为更大的社区。当虚 线移到顶部, 表示所有节点组成为一个社区。在谱系图的任何 一个位置断开, 就对应一种社区结构。此算法可分为单连接法 与完全连接法等。凝聚算法对很多不同的现实网络有广泛的 应用价值。 但是凝聚算法也有缺陷。在某些应用中, 当社区数目已经 知道时, 未必能得到正确的社区结构。另外, 凝聚算法倾向于 发现社区的核心, 而忽略社区的外围。社区的核心部分往往与 它周围点联系密切, 因而易于发现, 而社区的周边部分由于相 对来说联系较少, 所以很难划分。在一些情况下, 某个点仅仅
计算机时代 2009 年 第 3 期
· 59 ·
基于 SkyEye 对 UART 模拟的实现
周雪梅 1,郭 兵 1,沈 艳 2 (1. 四川大学计算机学院,四川 成都 610065;2. 电子科技大学机械电子工程学院)
摘 要:利用仿真技术模拟嵌入式硬件系统的真实运行情况, 有助于提高嵌入式系统的教学效果。文章采用开放源码
首先定义一个效益函数 Q: 位于子图内部的边数之和减去 子图之间的边数。该算法要求必须预先指定 2 个子图的大小。 算法分成以下 2 步。 ⑴ 考察所有的节点对 (节点对中的 2 个节点分别取自 2 个子图) , 交换节点对中 2 个节点的位置, 计算效益函数 Q,所 产生的变化 ⊿ Q。选择使所产生的变化 ⊿ Q 最大的那对节点 进行实际交换。如此重复下去, 并且不允许已经交换过的节 点再交换。当一个子图中的所有节点均已交换过 1 次时, 第一 步完成。 ⑵ 检查第一步中所进行的每一次交换, 寻找使得效益函 数 Q 最大的那一次交换, 此即为所求得的图的分割。 此算法应用于对 Zachary 网络的研究, 取得了较好的效 果。20 世纪 70 年代初期, Zachary 用了两年的时间来观察美国 一所大学中的空手道俱乐部成员间的相互社会关系。基于这 些成员在俱乐部内部及外部的社会关系, 他构造了成员们之间 的关系网, 如图 1 所示。
关键词:复杂网络;社区发现;边介数;模块度;层次聚类
0 引言
复杂网络是复杂系统的抽象, 网络中的节点是复杂系统中 的个体, 节点之间的边则是系统中个体之间按照某种规则而自 然形成或人为构造的一种关系。现实世界中包含着各种类型的 复杂网络, 如社会网络 (朋友关系网络及合作网络等) 、 技术网络 (万维网以及电力网等) 、 生物网络 (神经网络、 食物链网络以及 新陈代谢网络等) 。经过近几年的努力, 复杂网络的研究取得了 许多重要进展, 发现了复杂网络的若干统计特征, 其中包括小世 界性质 (即网络中节点之间的平均距离很短, 对数依赖于网络中 的节点数) 、 无标度性质 (即网络中节点的度分布右偏斜, 具备幂 函数或指数函数的形式) 以及聚集性或网络传递性。 复杂网络的另一个重要特征就是网络中所呈现出的社区 结构。大量实证研究表明, 许多网络是异构的, 即复杂网络不 是大批性质相同节点的随机连接, 而是许多类型的节点的组 合, 其中相同类型的节点存在较多的连接, 而不同类型节点的 连接则相对较少。我们把同一类型节点以及这些节点之间的 边所构成的子图称为网络中的社区。 实际网络的社区代表着特定对象的集合, 如, 社会网络中 的社区代表根据兴趣或背景而形成的真实的社会团体; 引文网 络中的社区代表针对同一主题的相关论文; 万维网中的社区就 是讨论相关主题的若干网站; 而生物化学网络或者电子电路网 络中的社区可以是某一类功能单元。发现这些网络中的社区 有助于我们更加有效地理解和开发这些网络。
特征向量的时间复杂度为 O(n ), 但是, 由于实际网络的 Laplace
3
3 其他经典算法
3.1 GN(Girvan-Newman)算法 GN 算法[4]是一种分裂方法, 它通过迭代从网络中移除介数 (Betweenness)最大的边将整个网络分解为各个社区。边的介 数定义为网络中经过该边的最短路径的数目。它为区分一个 社区内部边和外部边连接提供了一个度量准则。 GN 算法的基本流程如下: (i) 计算网络中的所有边的介数; (ii) 找到介数最高的边并将它从网络中移除; (iii) 重复步骤(ii), 直到每个节点就是一个退化社区为止。 缺点: 在不知道社区数目的情况下, 此算法也不能确定迭 代的合适步数。 3.2 Newman 快速算法 由于 GN 算法的时间复杂度较大, 所以对大规模的复杂网 络的分析效果并不理想。Newman 网在 GN 算法的基础上提出 了一种快速算法, 它是基于贪婪算法思想的一种凝聚算法。此 算法总的时间复杂度为 O(m(m+n))。整个算法完成后可得到一 个社区结构分解的树状图, 再通过选择在不同位置断开可得到 不同的网络社区结构, 在这些社区结构中, 选择一个对应着局 部最大的 Q 值, 就得到最好的网络社区结构。 3.3 Radicchi 算法 该算法与 GN 算法相同, 都是基于去边, 但不是根据边介数 选择要去除的边, 而是引进了边聚集系数的新指标。整个算法 的运行时间为 O(m4/n2)。显然, 对于稀疏图, 其计算速度要比 GN 算法快一个数量级。 Radicchi 等 考 虑 网 络 中 的 三 角 环 ( 即 边 数 为 3 的 闭 合 路 径)。若一个三角环包含一条连接不同社区的边, 则该三角环 中的另两条边中的某一条仍然连接这两个社区的可能性将很
口模块, 符号处理模块, 目标控制模块, 目标模拟模块四个层次。 UART 是计算机硬件中重要的外部设备, 本文主要阐述 SkyEye 对 UART 的模拟与测试。
1 SkyEye 目标模拟模块的总体设计
1.1 SkyEye 配置选项 SkyEye 模 拟 的 硬 件 配 置 和 模 拟 执 行 行 为 由 配 置 文 件 skyeye.conf 中 的 选 项 确 定 。 根 据 功 能 , SkyEye.conf 的 选 项 分为硬件配置选项和模拟执行选项。目前有以下几种配置 选项: ①基本 CPU 核配置选项; ②具体的开发板配置选项; ③内 存组配置选项; ④网络芯片 8019AS 的配置; ⑤LCD 的配置; ⑥ UART 控制选项, UART 选项可以控制 SkyEye 在另一个与某 个 UART 连 接 的 终 端 上 输 入/输 出 字 符 , 格 式 为 uart:fd_in= indevname, fd_out=outdevname, indevname 表示用于输入的设 备文件名, outdevname 表示用于输出的设备文件名; ⑦log 控 制选项[1]。
计算机时代 2009 年 第 3 期
· 57 ·
复杂网络的社区发现算法研究*
王 丹,刘发升 (江西理工大学信息工程学院,江西 赣州 341000)
摘 要:复杂网络是对于复杂系统的高度抽象, 其中许多性质如小世界性质、 无标度性质以及聚集性质等等已经得到了充
分的研究。大量文献表明, 复杂网络呈现出的社区结构特性。如何在大型网络中高效地发现社区问题是近年来复杂网络 的研究热点。文章讨论了一些关于社区发现方面的概念、 理论、 算法及应用等, 并简述了其发展趋势。
矩阵是一个稀疏矩阵, 因此可用 LanczoS 方法 [3] 快速计算主要 的特征向量。该方法的时间复杂度为 m/(λ 3 -λ 2), 其中 m 表 示网络中边的边数。 谱二分法的主要缺点是只能将图分成 2 个子图, 或者说偶 数个子图。这使得人们在使用这种方法时, 预先不能确定究竟 将图分成多少个子图才合适。
1 基于图分解的方法
计算机科学中的一个典型问题, 是将一个网络分解成若干 节点数基本相等的子网, 使得不同子网中的节点之间的连接数 最少, 称为图分割 (Graph Partitioning) 。图分割问题(GPP)可应 用于对并行计算机处理器作进程的合理分配。 1.1 Kerighan-Lin 算法 Kerighan-Lin 算法[1]在稀疏图中的时间复杂度是 O(n3)。它 是基于贪婪算法原理, 将网络划分为两个大小已知的社区的二 分法。
的嵌入式硬件仿真环境 SkyEye 实现对 UART 的仿真, 论述了 SkyEye 的总体结构, 详细阐述了 SkyEye 模拟器的 UART 模 拟模块的设计与实现方法。嵌入式操作系统μC/OS-II 在 SkyEye 上的成功移植与 UART 的测试, 验证了 SkyEye 模拟器 的 UART 模拟模块的设计是正确的。
图1 Karate Club 网络结构
在调查过程中, 该俱乐部的主管与校长之间因是否抬高俱 乐部收费的问题产生了争执。结果, 该俱乐部分裂成了两个分 别以主管和校长为核心的小俱乐部。图中的节点 1 和节点 33 分别代表了俱乐部主管和校长, 而圆形和方形的节点分别代表 了分裂后俱乐部的社区成员。利用 Kernighan-Lin 算法分析
[2]
和特定的社区有一条边, 凝聚算法很难正确划分该点。
(1-1) 2.2 划分算法
图2
Karate Club 网络结构
在划分算法中, 一般是从所关注的网络着手, 试图找到己 连接的相似性最低的节点对, 然后移除连接它们的边。重复这 一过程, 就逐步把整个网络分成越来越小的各个部分。同样 地, 可以在任何情况下终止, 并且把此状态下的网络看作若干 网络社区。与凝聚算法类似, 利用树状图来表示分类方法的流 程可以更好地描述整个网络逐步分解为若干个越来越小的子 图这一过程。
关键词:SkyEye;嵌入式系统;指令级模Байду номын сангаас器;UART;仿真
0 引言
嵌入式系统是以应用为中心, 计算机技术为基础, 软硬件 可裁剪, 适应应用系统对功能、 可靠性、 成本、 体积功耗严格要 求的专用计算机系统。嵌入式系统的硬件和软件都必须高效 率地设计, 量体裁衣、 去除冗余, 并和具体应用有机地结合在一 起。嵌入式系统的特点之一是必须有很低的功耗。但在嵌入 式系统的开发过程中, 软件和硬件开发相互牵制, 硬件干扰引 起的异常行为严重影响软件的调试和测试, 并且对系统的功耗 也难以预测。仿真开发是摆脱困境的一条有效途径, 它使软件 开发和系统集成在虚拟平台上进行, 避免软硬件开发相互等 待, 从而提高开发效率, 降低风险和成本。本文将介绍一个嵌 入式软件仿真开发平台——SkyEye。 SkyEye 是一个指令级模拟器, 可模拟多种嵌入式开发板, 支持多种 CPU 指令集。SkyEye 模仿了一个完整的嵌入式系统, 目 前 包 括 CPU、 内存、 I/O 寄 存 器 、 时钟、 UART、 网络芯片、 MMU、 Cache、 LCD 等各种硬件[1]。SkyEye 从总体上分为用户接
相关文档
最新文档