复杂网络中社团结构算法的综述
- 格式:doc
- 大小:17.00 KB
- 文档页数:4
复杂网络中的社团发现算法对比和性能评估在复杂网络的研究中,社团发现算法对于揭示网络中隐含的组织结构和功能模块具有重要意义。
社团发现算法目的是将网络的节点划分为不同的社团或群集,使得同一个社团内的节点之间具有紧密的连接,而不同社团之间的连接则相对较弱。
本文将对几种常见的复杂网络社团发现算法进行对比和性能评估。
1. 强连通性算法强连通性算法主要关注网络中的强连通分量,即其中的节点之间互相可达。
常见的强连通性算法有Tarjan算法和Kosaraju算法。
这些算法适用于有向图和无向图,并且能够有效地识别网络中的全部强连通分量。
2. 谱聚类算法谱聚类算法是一种基于图谱理论的社团发现算法,通过将网络表示为拉普拉斯矩阵,使用特征值分解或近似方法提取主要特征向量,从而实现节点的划分。
常见的谱聚类算法包括拉普拉斯特征映射(LE)和归一化谱聚类(Ncut)。
谱聚类算法在复杂网络中表现出色,尤其在分割不规则形状的社团时效果较好。
3. 模块度优化算法模块度优化算法通过最大化网络的模块度指标,寻找网络中最优的社团划分。
常见的模块度优化算法有GN算法(Girvan-Newman)和Louvain算法。
这些算法通过迭代删除网络中的边或合并社团,以最大化模块度指标。
模块度优化算法具有较高的计算效率和准确性,广泛应用于实际网络的社团发现中。
4. 层次聚类算法层次聚类算法通过基于节点之间的相似度或距离构建层次化的社团结构。
常见的层次聚类算法有分裂和合并(Spectral Clustering,SC)和非重叠连通(Non-overlapping Connector,NC)算法。
这些算法通过自顶向下或自底向上的方式逐步划分或合并社团。
层次聚类算法能够全面地刻画网络中的社团结构,但在大规模网络上的计算复杂度较高。
5. 基于物理模型的算法基于物理模型的算法通过模拟物理过程来发现网络中的社团结构。
常见的基于物理模型的社团发现算法有模拟退火算法(Simulated Annealing,SA)和蚁群算法(Ant Colony Algorithm,ACA)。
复杂网络中的社团发现算法研究与评估随着互联网的发展,网络已经成为人们交流与信息传播的重要平台之一。
复杂网络的研究正成为网络科学领域的一个热点问题。
在复杂网络中,社团结构的发现是一项重要的任务,其涉及到网络结构的分析和理解。
社团是指一群有相似特征或相互关联的节点的集合,在网络中具有较大的内部联系强度和较小的外部联系强度。
社团发现算法的目标是通过网络图的分析,将网络中的节点划分为不同的社团,以揭示网络结构的内在组织和功能。
在复杂网络中,社团结构的发现是一项具有挑战性的任务。
这是因为复杂网络往往具有大规模、高密度以及随机性等特点,使得社团划分变得复杂和困难。
在过去的几十年中,学术界提出了许多社团发现算法,包括基于图变换的方法、基于谱聚类的方法、基于模块度的方法等。
这些方法各有优劣,需要根据实际问题的特点选择合适的方法。
其中,基于图变换的方法是最常见的社团发现方法之一。
图变换是指将网络图转化为其他数学对象以便进行分析的过程。
常用的图变换方法有K-Means、谱聚类和层次聚类等。
这些方法通过将网络转化为矩阵或向量形式,并利用聚类算法将节点划分为不同的社团。
例如,K-Means算法适用于将节点基于相似度划分为不同的簇。
谱聚类则是通过图拉普拉斯矩阵的特征向量来实现社团发现。
除了基于图变换的方法,还有基于模块度的社团发现方法。
模块度是一种衡量网络社团性质的指标,用于评估社团划分的好坏。
基于模块度的方法通过优化模块度指标来实现社团发现。
例如,Louvain算法就是一种常用的基于模块度的社团发现算法。
该方法通过迭代优化社团的分布,使得社团之间的联系更强、社团内部的联系更弱,从而达到最大化模块度的目标。
评估社团发现算法的性能也是一项重要的任务。
常用的评估指标有模块度、归一化互信息、覆盖率等。
模块度用于评估社团内连接的强度与社团间连接的弱度,值越大表示社团结构划分得越好。
归一化互信息用于评估算法对真实社团结构的一致性,值越大表示算法发现的社团结构越接近真实结构。
复杂网络节点中心性度量及社团结构检测算法研究复杂网络是一种节点和连接形态复杂的网络结构,具有广泛的应用背景。
而节点中心性度量和社团结构检测算法是复杂网络研究中的关键问题之一。
本文将探讨复杂网络节点中心性度量及社团结构检测算法的研究。
一、复杂网络节点中心性度量节点中心性是衡量节点在网络中的重要程度的指标。
常见的节点中心性度量方法包括度中心性、接近度中心性和介数中心性。
1. 度中心性:度中心性是指一个节点在网络中的连接数,即与其他节点的直接连接数。
度中心性越高,表示该节点在网络中的重要性越大。
在复杂网络中,度中心性可以帮助我们识别网络中的重要节点。
2. 接近度中心性:接近度中心性是指一个节点与其他节点的距离之和,即节点到其他节点的平均距离的倒数。
接近度中心性越高,表示该节点在网络中的重要性越大。
通过计算接近度中心性可以确定网络中的重要枢纽节点。
3. 介数中心性:介数中心性是指一个节点在网络中的信息传播过程中的接触次数。
介数中心性高的节点意味着其在网络中信息传播过程中扮演着重要的角色,是连接不同社团结构的关键节点。
二、社团结构检测算法社团结构是指网络中紧密连接的节点集合,节点在同一个社团内具有相似的特性,而社团之间则相对疏离。
社团结构检测算法的目标是将网络节点划分为不同的社团。
1. 模块度算法:模块度算法是一种常用的社团结构检测方法,通过计算网络内节点之间的连接密度和社团内部的连接密度之间的差异来划分社团结构。
模块度算法将网络中的节点按照不同的社团进行划分,使得网络内部的连接紧密度最大化,社团间的连接稀疏度最大化。
2. 谱聚类算法:谱聚类算法是一种基于图谱理论的社团结构检测方法,通过将网络的拉普拉斯矩阵进行特征分解,得到特征向量,并利用特征向量进行聚类。
谱聚类算法能够将网络的节点按照相似性进行划分,对于发现隐藏的社团结构具有较好的效果。
三、综合应用与展望复杂网络节点中心性度量和社团结构检测算法在现实应用中具有广泛的应用场景。
复杂⽹络中聚类算法总结⽹络,数学上称为图,最早研究始于1736年欧拉的哥尼斯堡七桥问题,但是之后关于图的研究发展缓慢,直到1936年,才有了第⼀本关于图论研究的著作。
20世纪60年代,两位匈⽛利数学家Erdos和Renyi建⽴了随机图理论,被公认为是在数学上开创了复杂⽹络理论的系统性研究。
之后的40年⾥,⼈们⼀直讲随机图理论作为复杂⽹络研究的基本理论。
然⽽,绝⼤多数的实际⽹络并不是完全随机的。
1998年,Watts及其导师Strogatz在Nature上的⽂章《Collective Dynamics of Small-world Networks》揭⽰了复杂⽹络的⼩世界性质。
随后,1999年,Barabasi及其博⼠⽣Albert在Science上的⽂章《Emergence of Scaling in Random Networks》⼜揭⽰了复杂⽹络的⽆标度性质(度分布为幂律分布),从此开启了复杂⽹络研究的新纪元。
随着研究的深⼊,越来越多关于复杂⽹络的性质被发掘出来,其中很重要的⼀项研究是2002年Girvan和Newman在PNAS上的⼀篇⽂章《Community structure in social and biological networks》,指出复杂⽹络中普遍存在着聚类特性,每⼀个类称之为⼀个社团(community),并提出了⼀个发现这些社团的算法。
从此,热门对复杂⽹络中的社团发现问题进⾏了⼤量研究,产⽣了⼤量的算法,本⽂试图简单整理⼀下复杂⽹络中聚类算法,希望对希望快速了解这⼀部分的⼈有所帮助。
本⽂中所谓的社团跟通常我们将的聚类算法中类(cluster)的概念是⼀致的。
0. 预备知识为了本⽂的完整性,我们⾸先给出⼀些基本概念。
⼀个图通常表⽰为G=(V,E),其中V表⽰点集合,E表⽰边集合,通常我们⽤n表⽰图的节点数,m表⽰边数。
⼀个图中,与⼀个点的相关联的边的数量称为该点的度。
复杂网络社区结构发现算法概述作者:杨泽俊何柳来源:《数字技术与应用》2013年第03期摘要:分析了一些经典的复杂网络社区结构的发现算法,希望对社区发现问题的进一步研究及若干问题的早日解决起到一定的作业。
关键词:复杂网络社区结构中图分类号:TP3 文献标识码:A 文章编号:1007-9416(2013)03-0145-011 引言复杂网络[1]是现实世界中复杂系统的一种抽象表现形式,网络中的节点是复杂系统中的个体,节点之间的边则是系统中个体之间按照某种规则而自然形成或人为构造的一种关系。
网络节点被划分成若干组,使得组内节点之间的连接比较稠密,而不同组节点之间的连接则比较稀少,这样的划分结果被定义为复杂网络的社区结构[2]。
通过对复杂网络社区结构的研究,可以将复杂网络社区结构的研究理论成果应用到具体问题当中去,如可以通过社区结构发现资源分布、病毒的传播等。
2 基于Laplace图特征值的谱二分法[3]令G是一个具有n个节点的无向图,G的Laplace矩阵L是一个n×n的对称矩阵,它的对角线元素Lij是节点i的度,表示节点i和节点j的连接情况,当i和j之间有边相连时,则Lij=-1,否则Lij=0。
显然,L每一行的和以及每一列的和均为0,因而,向量l=(1,1,1,1)是L的相应于特征值0的特征向量。
可以知道,此时L存在g个与特征值0对应的特征向量v(k),k=l,2,L,g,其中,v(k)的对应于分支Gk的分量为1,而其余分量为0。
因为对称矩阵的任意2个特征值所对应的特征向量相互正交,所以Laplace矩阵L的任意对应于非零特征值的特征向量均正交于向量L=(1,1,1,1),以此所有非零特征值的特征向量必须具有正分量和负分量。
如果2个子图间连接很少,则将存在一个特征向量,它的特征值近似于0;它的特征向量的正分量对应一个子图,负分量对应另一个子图。
所以我们可以通过观察第二最小的特征值所对应的特征向量,依据特征值元素的正负将一个网络分解成2个社区,这就是谱二分法。
复杂网络中的社团结构探测和应用研究随着人类社会的发展和科技的进步,人类之间的联系变得越来越复杂,网络的出现更是让人类社会变得紧密而复杂。
在网络中,每个节点代表着一个实体,节点之间的联系则代表着这些实体的关系。
如何解析这些关系并揭示网络中的规律,就成为了网络科学的一个重要研究课题。
社团结构探测是网络科学中的一个重要研究方向,它研究的是如何将一个大的网络划分为若干个较小的群体(即社团),每个社团内部的节点之间联系紧密,而不同社团之间节点之间联系相对松散。
社团结构探测在生物学、社交网络、传播学及其他领域都有重要应用。
一、社团结构探测算法在网络中,一个节点的度数代表着与该节点直接相连的节点数。
一个社团则可以定义为一个节点集合,该集合中的节点之间具有密集的联系,而这种联系则表现为社团内部节点的度数较大。
社团结构探测算法的目的就是找到这些社团,并将它们划分出来。
社团结构探测算法可以分为基于聚类的算法、基于模型的算法和基于优化的算法等几类。
1. 基于聚类的算法基于聚类的算法通常采用类似于K-Means的方法来划分社团。
最简单的算法是一种贪心算法,即从一个起始点出发,沿着连接的边逐步地把最邻近的节点加入社团中,直到一个社团被完全发现。
然后,在不同的起始点上重复这一过程,以便找到尽可能多的不同社团。
这种方法的缺陷在于其聚类的结果往往非常依赖于起始节点的选择,可能存在很大的随机性。
2. 基于模型的算法基于模型的算法则采用概率模型来对节点之间的联系进行描述,并根据模型来划分社团。
一个经典的基于模型的算法是层次化贝叶斯方法。
该方法首先假设网络中所有节点都分属于若干个社团之中,然后结合模型选择算法,寻找最优划分,将各个节点排成一颗树状结构。
最终,可以通过剪枝来决定社团的数量。
3. 基于优化的算法基于优化的算法则将社团划分问题转化为一个优化问题,并将寻找最优解的过程表示为一个涉及分割的图形优化问题。
经典的基于优化的算法包括模拟退火算法、遗传算法、贪心算法等。
复杂网络中的社团发现算法研究与应用复杂网络是由大量相互连接的节点组成的网络结构,它在许多领域中都有广泛的应用,如社交网络、生物网络和互联网等。
复杂网络中的社团发现算法是一种能够在网络中自动发现具有相似性和内部紧密连接的节点集合的方法。
本文将对复杂网络中的社团发现算法进行研究,并探讨其应用。
首先,我们来了解一下复杂网络中的社团是什么。
社团是由具有密切联系和相似功能的节点组成的集合,它们在网络中形成一个紧密连接的子图。
社团结构有助于我们理解网络中的组织结构、信息传播和功能模块等重要特征。
在复杂网络中,社团发现算法的目标是识别出具有明显结构和内部相似性的社团。
这些算法可以根据节点之间的连接模式、相似性指标和组合优化等方法来划分社团。
下面我们将介绍几种常见的社团发现算法和它们的应用。
第一种算法是基于模块度的社团发现算法。
模块度是一种衡量节点社团划分质量的指标,它计算了网络中实际连接与随机连接之间的差异。
基于模块度的算法可以将网络划分为多个社团,并最大化网络的模块度值。
这种算法在社交网络中的推荐系统、社团结构分析和信息传播研究中得到了广泛的应用。
第二种算法是基于谱聚类的社团发现算法。
谱聚类是一种基于图论和线性代数的聚类方法,它通过计算网络的特征值和特征向量来划分社团。
这种算法可以克服一些传统算法在处理大规模网络时的计算困难,被广泛应用于社交网络、生物网络和人工智能领域。
第三种算法是基于随机游走的社团发现算法。
这种算法利用节点之间的随机游走路径来发现社团结构。
它通过随机游走过程中的节点转移概率来判断节点之间的相似性和内部紧密连接程度。
基于随机游走的算法在生物学中的蛋白质相互作用网络分析和社交网络中的用户社区发现上具有重要的应用。
以上介绍的算法只是复杂网络中社团发现算法的一部分,每种算法都有其特点和适用场景。
在应用社团发现算法时,我们需要根据具体的研究目标和数据特征选择最合适的算法。
同时,我们还可以将不同的算法进行组合和改进,以提高社团发现的准确性和效果。
复杂网络中的社团发现算法研究社群是指一个网络系统中相互有联系并有共同特征的节点集合。
在复杂网络中,社群发现算法是一种有助于理解和分析网络结构、挖掘隐藏关系的重要工具。
本文将探讨当前在复杂网络中的社群发现算法研究的最新进展和应用。
社群发现算法是通过识别节点之间的紧密关系和相似性,将网络分为若干相互连接紧密且内部联系紧密的社群。
这些社群可以代表特定的兴趣群体、组织结构或功能模块。
在真实世界的复杂网络中,如社交网络、生物网络、互联网等,社群发现对于发现隐含的社交圈、发现基因调控网络中的功能模块、发现互联网中的关键网页等具有重要意义。
最近,关于复杂网络中的社群发现算法的研究已经取得了重大进展。
不同的算法被开发出来,以应对不同类型的网络和不同的社群结构。
下面将介绍一些常见的社群发现算法。
1. 基于模块度的算法模块度是用来评估社群结构优劣的指标。
基于模块度的算法通过最大化网络内部联系的权重和最小化网络之间联系的权重,从而划分网络中的社群。
其中最著名的算法是Newman-Girvan算法,该算法通过逐步删除网络中的边缘连接来划分社群。
2. 谱聚类算法谱聚类算法是一种基于图论的聚类方法,通过将网络转化为图拉普拉斯矩阵,并应用特征值分解来划分社群。
谱聚类算法具有较强的鲁棒性和可扩展性,适用于大规模网络。
3. 层次聚类算法层次聚类是一种自底向上或自顶向下的聚类方法,通过合并或分割社群来构建层次关系。
层次聚类算法可以视网络为多个细分的子图,在每个层次上划分社群。
这些子图可以按照不同的社群结构进行划分,并且可以通过层次聚类的方法逐步合并。
除了以上列举的算法外,还有很多其他的社群发现算法,如基于密度的算法、基于标签传播的算法等。
这些算法各有特点,适用于不同类型的网络和不同的分析需求。
社群发现算法在许多领域具有广泛的应用。
在社交网络分析中,社群发现算法可以用于识别用户群体和社交圈子,推荐朋友、商品等。
在生物网络中,社群发现算法可以用于发现在基因调控中具有相似功能的基因模块,推动生物学研究。
面向复杂网络的社团结构检测算法研究随着信息技术的不断发展,人们逐渐将注意力转向了复杂网络研究。
复杂网络是指由大量节点及其之间的连边所构成的网络,具有复杂性、动态性、多样性等特点,广泛应用于社会、生物、信息等领域。
而社团结构检测算法是对网络中的结构进行发现和分析的一种方法,对于研究和应用复杂网络具有重要意义。
一、社团结构检测算法的发展历程随着复杂网络的快速发展,社团结构检测算法也在不断地改进和完善。
早期的社团检测算法主要采用基于聚类的方法,如分裂合并法和K-Means算法等。
但这些算法并不能很好地解决社团检测问题,因为它们太过于依赖于节点之间的距离或相似度,无法充分利用网络的拓扑结构信息。
在此基础上,后来的社团检测算法主要采用基于图划分的方法,如Louvain算法、GN算法等。
这些算法相对更加高效和准确,但仍然存在一定的缺陷,比如无法检测到重叠社团等问题。
二、面向复杂网络的社团结构检测算法研究进展针对上述问题,近年来,研究人员提出了很多面向复杂网络的社团结构检测算法,主要包括模块度最大化算法、基于链接预测的社团检测算法、基于聚类的社团检测算法、基于特征质量的社团检测算法等。
1. 模块度最大化算法模块度最大化算法是目前最为常用的社团检测算法,其优势在于可以同时考虑到节点之间的联系以及节点的度数信息,从而更加全面地描述网络的拓扑结构。
常见的模块度最大化算法包括Newman-Girvan算法、模拟退火算法和粒子群优化算法等。
2. 基于链接预测的社团检测算法链接预测是指通过预测节点间的链接关系,从而发现社团结构。
基于链接预测的社团检测算法主要包括基于相似度距离的算法、基于密度聚类的算法和基于图变换的算法等。
这些算法通过预测节点之间的连边信息,从而利用网络的拓扑结构寻找社团结构。
3. 基于聚类的社团检测算法基于聚类的社团检测算法主要采用概率模型,通过节点之间的相似度和距离信息进行聚类,从而找到社团结构。
该算法具有高效、稳定等优点,常见的算法有基于高斯混合模型的聚类算法、谱聚类算法等。
复杂网络中社团结构算法的综述作者:吴悠来源:《科技视界》2014年第14期【摘要】社团结构是复杂网络重要特征之一。
本文综述了三种比较有代表性的算法,Kernighan-Lin算法,谱平分法和GN算法;比较了他们的优缺点。
【关键词】复杂网络;社团结构;Kernighan-Lin算法;谱平分法;GN算法0 引言随着对网络性质的物理意义和数学特性的深入研究,人们发现许多实际网络都具有一个共同性质,即社团结构。
近年来,社团结构分析在生物学、计算机图形学和社会学中都有广泛的应用[2]。
目前关于复杂网络中社团结构算法的研究有很多,本文将介绍几种有代表性的方法。
1 Kernighan-Lin 算法1.1 方法概述Kernighan-Lin算法是一种试探优化法。
它是一种基于贪婪算法原理将网络划分为两个大小已知的社团的二分法。
1.2 实现过程及应用[3]K-L算法可以描述为:首先,将网络的节点随机地划分为已知大小的两个社团。
在此基础上,考虑所有可能的节点对,其中每个节点对的节点分别来自两个社团。
对每个节点对,如果交换这两个节点的话,计算可能得到Q的增益Q=Q交换前-Q交换后,然后交换最大的△Q对应的节点对,同时记录交换后的Q值。
规定每个节点只能交换一次。
重复这个交换过程,直到某个社团内所有的节点都被交换一次为止。
需要注意的是,在节点对交换的过程中,Q值并不一定是单调增加的。
不过,即使某一步的交换会使Q值有所下降,也仍然可能在其后的步骤中出现一个更大的Q值。
当交换完毕后,便找到上述交换过程中所记录的最大Q值。
这时对应的社团结构就认为是该网络实际的社团结构。
1.3 评价该方法存在一个严重的缺陷,即必须事先知道该网络的两个社团大小分别是多少,否则就很可能不会得到正确的答案。
K-L算法的这个缺陷使得它在实际网络分析中难以应用。
而且,即使解决了这个问题,它仍然面临着如何事先知道网络社团数目,以确定二分法要重复到哪一步停止的问题。
复杂网络中社团结构算法的综述
作者:吴悠
来源:《科技视界》2014年第14期
【摘要】社团结构是复杂网络重要特征之一。
本文综述了三种比较有代表性的算法,Kernighan-Lin算法,谱平分法和GN算法;比较了他们的优缺点。
【关键词】复杂网络;社团结构;Kernighan-Lin算法;谱平分法;GN算法
0 引言
随着对网络性质的物理意义和数学特性的深入研究,人们发现许多实际网络都具有一个共同性质,即社团结构。
近年来,社团结构分析在生物学、计算机图形学和社会学中都有广泛的应用[2]。
目前关于复杂网络中社团结构算法的研究有很多,本文将介绍几种有代表性的方法。
1 Kernighan-Lin 算法
1.1 方法概述
Kernighan-Lin算法是一种试探优化法。
它是一种基于贪婪算法原理将网络划分为两个大小已知的社团的二分法。
1.2 实现过程及应用[3]
K-L算法可以描述为:首先,将网络的节点随机地划分为已知大小的两个社团。
在此基础上,考虑所有可能的节点对,其中每个节点对的节点分别来自两个社团。
对每个节点对,如果交换这两个节点的话,计算可能得到Q的增益Q=Q交换前-Q交换后,然后交换最大的△Q对应的节点对,同时记录交换后的Q值。
规定每个节点只能交换一次。
重复这个交换过程,直到某个社团内所有的节点都被交换一次为止。
需要注意的是,在节点对交换的过程中,Q值并不一定是单调增加的。
不过,即使某一步的交换会使Q值有所下降,也仍然可能在其后的步骤中出现一个更大的Q值。
当交换完毕后,便找到上述交换过程中所记录的最大Q值。
这时对应的社团结构就认为是该网络实际的社团结构。
1.3 评价
该方法存在一个严重的缺陷,即必须事先知道该网络的两个社团大小分别是多少,否则就很可能不会得到正确的答案。
K-L算法的这个缺陷使得它在实际网络分析中难以应用。
而且,即使解决了这个问题,它仍然面临着如何事先知道网络社团数目,以确定二分法要重复到哪一步停止的问题。
2 谱平分法
2.1 方法概述
该算法利用网络结构的Laplace矩阵中不为0的特征值所对应的特征向量和同一个社区内的节点对应的元素近似值相等的原理对网络社区进行划分。
谱平分法本质上是一种二分法,在每次二分的过程中,网络被分割成两个近似平衡的子网络。
当网络中含有多个社团时,谱平分法递归地分割现存的子网络,直到满足预先定义的停止条件为止。
2.2 实现过程
该算法可以描述为:一个有n个节点的无向图G的Laplace矩阵是一个n×n维的对称矩阵L。
如果节点i和节点j有边相连,则lij=-1,否则lij=0.对角线上的元素lij表示节点i的度。
由于Laplace矩阵所有的行或列的和都为0,因此,该矩阵总有一个特征值为0,且其对应的特征向量为I=(1,1,1,···,1)。
我们也可以将矩阵L表示成L=K-A,其中K是一个对角矩阵,其对角线上的元素对应各个节点的度,而A则为该网络的连接矩阵。
可以从理论上证明,不为零的特征值所对应的特征向量的各元素中,同一个社团内的节点对应的元素是近似相等的。
因此,可以根据复杂网络的Laplace矩阵次小特征值λ2对应的特征向量,所有正元素对应的那些节点都属于同一社团,而所有的负元素对应的那些节点都属于另一个社团,这样就将其分为两个社团。
2.3 评价及改进方法
谱平分法主要缺陷是只能将图分成2个子图,若要分成多个子图,则只能多次应用该方法。
即使这样可行,我们预先也无法确定究竟将图分割成多少个子图才合适。
为了克服这一缺陷,Capocci等人在传统谱分析法的基础上提出另一种算法。
传统谱平分法是基于Laplace矩阵L=K-A。
Capocci算法[4]则是基于标准矩阵N=K-1A。
利用行标准化的转换可得,矩阵N的最大特征值总是等于1,相应的特征向量称为平凡特征向量。
在对社团化明显的网络的分析中发现,如果网络自然呈现g个社团,则标准矩阵就有g-1个十分接近1的第一非平凡特征值,而其余的特征值都与1有较大的距离。
这g-1个特征值所对应的特征向量(称为第一非平凡特征向量或者第二特征向量)有一个特性:在同一个社团中的顶点所对应的值较为接近。
因此,特征向量中元素的值呈现阶梯状分布,并且阶梯的级数与社团的个数相匹配。
3 GN算法
3.1 方法概述
Girvan和Newman提出了一种基于边介数的分裂算法,即G-N算法。
不断地从网络中移除介数最大的边。
边介数定义为网络中经过每条边的最短路径数目。
3.2 实现过程
首先,计算网络中各条边的边介数,找出边介数最大的边,并将它移除(如果最大边介数的边不唯一,那么既可以随机挑选一条边断开也可以将这些边同时断开);然后,重新计算网络中剩余各条边的边介数;接着重复上面的步骤,直到网络中所有的边都被移除。
3.3 评价及改进方法
GN算法弥补了一些传统算法的不足,但是也存在一个缺陷,即它对于网络的社团结构并没有一个量的定义。
因此不能直接从网络的拓扑结构判断它所求得的社团结构是否是实际网络中的社团结构,从而需要一些附加的关于网络意义的信息来判断所得到的社团结构是否具有实际意义。
为了得到具有实际意义的社团结构,Newman等人引进了一个衡量网络划分质量的标准——模块度。
考虑某种划分形式,它将网络划分为k个社团。
定义一个k×k维的对称矩阵E=(eij),其中元素eij表示网络中连接两个不同社团的节点的边在所有边中所占的比例,这两个节点分别位于第i个社团和第j个社团。
设矩阵中对角线上各元素之和为Tre=■e■。
它给出网络中连接某一个社团内部各节点的边在所有边的数目中所占比例。
定义每行(或者列)中各元素之和为ai=■e■。
它表示与第i个社团中的节点相连的边在所有边中所占的比例。
在此基础上,用下式来定义模块度的衡量标准:Q=■(e■-a■■)=Tre-e■,其中x表示矩阵x中所有的元素之和。
上式的物理意义是:网络中连接两个同种类型的节点的边(即社团内部边)的比例,减去在同样的社团结构下任意连接这两个节点的边的比例的期望值。
如果社团内部边的比例不大于任意连接时的期望值,则有
Q=0。
Q的上限为Q=1,而Q越接近这个值,就说明社团结构越明显。
实际网络中,该值通常位于0.3-0.7之间。
4 结束语
复杂网络中社区的划分具有重要的使用价值。
本文给出了三种经典的复杂网络社团划分算法,较为详细的描述了各种算法的核心思想和基本过程,并对各算法进行了适当的分析和比较,为影虎针对不同的复杂网络选择适合的社区划分算法提供了一定的借鉴作用。
【参考文献】
[1]韩瑞凯,孟嗣仪.基于兴趣相似度的社区结构发现算法研究[J].铁路计算机应用,2010,19(10):10-14.
[2]张聪,沈惠璋.复杂网络中社团发现的快速划分算法[J].系统工程,2011,29(208):93-98.
[3]汪小帆,刘亚冰.复杂网络中的社团结构算法综述[J].电子科技大学学报,2009,38(5):537-543.
[4]谢福鼎,张磊.一种基于谱平分法的社团划分算法[J].计算机科学,2009,36(11):186-188.
[5]安娜,谢福鼎.一种基于GN算法的文本概念聚类新方法[J].计算机工程与应用,2008,44(14):142-144.
[责任编辑:刘帅]。