复杂网络社区结构发现算法概述
复杂网络中的社区发现与挖掘算法研究

复杂网络中的社区发现与挖掘算法研究社区发现是在复杂网络中识别出密切相关的节点集合,这些节点之间存在着明显的紧密联系,而与其他节点相对疏远。
社区发现在许多领域具有广泛的应用,如社交网络分析、生物信息学、推荐系统等。
然而,由于复杂网络的规模庞大、结构复杂多样,社区发现成为一个具有挑战性的问题。
为了解决这一问题,学者们不断提出和改进各种社区发现与挖掘算法。
一种常见的社区发现算法是基于模块度(modularity)的方法。
这种方法通过计算网络中节点间的连接强度和预期连接强度的差值来评估社区结构的优劣程度。
其中,预期连接强度是通过随机图模型生成的网络来进行估计的。
通过最大化模块度函数,这种算法可以将网络划分为若干个社区。
然而,基于模块度的方法在处理大规模网络时,会面临计算时间复杂度高和结果稳定性差的问题。
为了克服这些问题,研究者们提出了一系列其他的社区发现算法。
例如,基于谱聚类的方法可以将网络转化为特征向量,然后通过聚类技术将节点划分为不同的社区。
这种方法能够有效克服基于模块度的方法的缺点,并且适用于大规模网络。
另外,还有基于聚类系数的方法、基于图表达的方法、基于双层重叠社区的方法等。
这些算法不仅提高了社区发现的效果,还拓宽了社区发现的研究领域。
除了社区发现算法,研究者们还提出了一些用于社区挖掘的工具和技术。
社区挖掘旨在从挖掘过程中发现新的模式和知识。
其中,一种常见的工具是关联规则挖掘。
关联规则挖掘通过挖掘出不同节点之间的关联关系,可以发现隐藏在复杂网络中的有意义的模式。
另外,社区挖掘还可以借助数据可视化技术,将复杂的网络结构以图形化的方式展示出来,增加了对社区结构的理解和挖掘。
随着社交媒体的普及和大数据技术的不断发展,社区发现与挖掘在社交网络分析中具有重要的应用。
通过社交网络分析,可以揭示出用户之间的相互关系、信息传播路径、社区结构等信息,为社交媒体平台的运营提供指导。
此外,社区发现与挖掘还可以应用于生物信息学领域,发现蛋白质相互作用网络中的功能模块,辅助研究者了解蛋白质的功能和相互关系。
大规模社交网络中的社区发现算法研究

大规模社交网络中的社区发现算法研究现在,社交网络已经成为人们生活中必不可少的一部分,在这样的背景下,对社交网络中的社区发现算法进行研究,对于实现信息的高效传递和社交网络的有效管理具有重要的意义。
本文将介绍关于大规模社交网络中的社区发现算法的研究现状、基本原理以及存在的问题与挑战。
一、社区发现算法的研究现状社区发现算法是一种通过图论分析方法,将一个庞大的网络划分为若干个相对独立的社区的方法。
社区发现算法最早源于图像分割领域,并逐渐发展成适用于各种领域的算法。
目前,已经有了许多社区发现算法,如Louvain算法、CNM算法、谱聚类算法等。
此外,Facebook、Twitter、Google+等互联网公司也研究了适用于大规模社交网络中社区的发现算法。
二、社区发现算法的基本原理社区发现算法的基本原理是通过对网络的拓扑结构进行分析,找出其中形态相似、内部连接紧密的群体,并将这些群体划分为若干个不同的社区。
社区发现算法的基本流程可以描述为:初始时,将节点随机划分到不同的社区中;然后根据某种度量方法,计算每个节点在各个社区中的影响力;接着,将节点逐一考虑加入到其他社区中,并计算该节点的影响力变化;如果这种变化会造成更好的社区划分,则将节点加入到该社区中;最后一直迭代直到得到最优的社区划分。
三、社区发现算法存在的问题与挑战尽管社区发现算法已经取得了许多进展,但是在大规模社交网络中仍然存在着许多问题和挑战。
首先,社交网络的数据量巨大,算法的复杂度也随之增加,因而计算速度会受到很大的制约。
其次,社交网络是动态变化的,很多节点的连接、断开和新增都会对算法的结果产生影响。
再者,社交网络中存在着一些节点的权重非常大,这些节点对于社区的形成会产生极大的影响,因此算法需要考虑节点的权重问题。
此外,算法的初始随机划分也可能会对最终结果产生较大的影响。
结语总之,社交网络中的社区发现是一项十分重要的研究领域。
通过对社交网络数据进行分析和处理,发现社区内的影响力核心和关系紧密的节点,有助于提高信息传递的效率、促进社交网络的管理以及推动社会的发展。
复杂网络中社区发现算法的研究

复杂网络中社区发现算法的研究随着互联网的发展,人们对于网络的依赖越来越高,网络已经成为人们生活中不可或缺的一部分。
大量的信息被不断地产生和分享,网络中的各种社交网络也得以形成。
但是,随着网络的扩张,网络结构的复杂性也不断增加,这给社区发现带来了不小的挑战。
社区发现,即在网络中寻找具有相似特征的节点组成的集合,是研究网络结构的热门领域之一。
它广泛应用于社交网络、生物网络、互联网等各种领域。
社区发现的算法种类繁多,每种算法都有其独特的优点和不足。
目前,主流的社区发现算法主要分为以下几类:1. 基于连边的社区发现算法这种算法的基本思想是将网络中的边分成不同的子群,然后将同一子群中的节点分为同一社区。
以Girvan-Newman算法为例,其首先计算网络中所有边的介数(Betweenness)值,将介数值最大的边删除,再重新计算介数值,重复操作直到所有边都被删除,最终得到多个社区。
2. 基于聚类的社区发现算法这种算法将网络中的节点聚类成不同的组,要求同一组节点的相似度高于不同组节点的相似度。
常用方法有K-Means、DBSCAN、OPTICS等。
3. 基于模块度的社区发现算法这种算法的基本思想是通过计算网络中节点的聚集程度,将节点划分为不同的社区。
模块度算法是目前最为流行的基于模块度的社区发现算法。
虽然目前已有很多社区发现算法被广泛应用于各个领域,但是社区发现仍然存在很多挑战。
首先,网络结构的复杂性增加了社区发现算法的难度,使得一些算法只适用于特定类型的网络。
其次,现有的算法在处理较大规模的网络时计算效率较低。
最后,社区发现结果的可解释性似乎仍然不够理想。
为了解决这些问题,社区发现算法的研究需要深入探索以下方面:1. 改进社区发现算法一方面,需要对现有的算法进行改进,提高其适应各种类型网络的能力。
另一方面,还需要发展出更有效的算法,提高计算效率和社区可解释性。
2. 融合多种算法社区发现算法的精度往往与算法的类型有关。
复杂网络中的社区发现算法研究

复杂网络中的社区发现算法研究社区发现是复杂网络分析中的一个重要问题,其目标是将网络中的节点划分为具有紧密联系的社区或群组。
社区发现算法可以帮助我们理解网络结构、发现隐藏的模式以及预测节点的行为。
本文将探讨复杂网络中社区发现算法的研究进展和应用。
现代社交媒体、互联网和其他大规模网络平台的兴起,使得社区发现问题变得尤为重要。
社区发现算法能够揭示网络中的主要社区结构,为社交网络分析、推荐系统、信息传播以及恶意行为检测等应用提供有力支持。
在复杂网络中,不同的社区结构可能具有不同的特征。
因此,研究者们提出了许多基于不同原理的社区发现算法。
其中,最著名的算法之一是Louvain算法。
Louvain算法是一种基于模块性优化的算法,通过不断合并具有最高模块性增益的节点,来构建社区结构。
这种算法具有计算效率高、可扩展性强等特点,并已在实际应用中得到广泛使用。
除了Louvain算法,还有许多其他经典的社区发现算法,比如基于谱聚类的算法、模拟退火算法、标签传播算法等。
这些算法在不同的场景下表现出了良好的性能。
例如,基于谱聚类的方法在图像分割和基因表达数据分析中得到了成功应用,标签传播算法在社交网络中的社区发现任务中也取得了不错的效果。
除了传统的社区发现算法,近年来,随着深度学习的兴起,基于神经网络的社区发现算法也得到了广泛关注。
这些算法利用神经网络的强大表达能力来学习节点的表征,并通过聚类算法来发现网络中的社区结构。
这种方法具有自动学习特征的优势,不需要事先定义特征,因此在一些复杂网络中能够取得良好的效果。
在实际应用中,社区发现算法的选择取决于具体的网络结构和任务需求。
有些算法适用于规模较小且稠密的网络,而另一些算法则适用于规模较大且稀疏的网络。
因此,在选择算法时需要综合考虑网络规模、网络稠密度、计算资源等因素。
除了算法的选择,评价社区发现算法的性能也是研究中的重要方面。
常用的评价指标包括模块性、归一化互信息、模块间的连接度、内外部度等。
大规模复杂网络中的社区发现算法研究

大规模复杂网络中的社区发现算法研究随着互联网的快速发展,大规模复杂网络成为了人们生活和工作中不可或缺的一部分。
这些网络包含了海量的节点和边,形成了一个庞大而错综复杂的网络结构。
在这种网络中,节点之间的连接关系对于了解网络的组织结构以及节点之间的相互作用起着至关重要的作用。
而社区发现算法则可以帮助我们理解和分析这些复杂网络中节点之间的聚类方式和关系。
社区发现算法是一种将网络节点划分为不同社区的方法。
社区指的是在网络中相互关联紧密、内部密度较大的节点子集。
社区发现算法的目标是找到这些社区并将其划分出来,以便更好地理解网络结构和节点之间的交互。
在大规模复杂网络中,社区发现算法面临着挑战,因为网络规模庞大且结构复杂,难以直观地判断节点之间的聚类方式。
在研究大规模复杂网络中的社区发现算法时,一些常见的算法方法包括谱聚类、模块度优化、标签传播和深度学习等。
谱聚类是一种基于矩阵特征向量分解的方法,通过计算网络的特征向量进行聚类划分。
模块度优化算法通过最大化网络中节点聚类的内部连边数和减少与其他社区的连边数来实现社区发现。
标签传播算法则基于节点之间的局部信息传播划分社区。
深度学习是近年来应用广泛的方法,通过使用神经网络模型来学习网络节点之间的特征和相互关系。
然而,在大规模复杂网络中应用这些算法时也遇到了一些挑战。
首先,网络规模庞大,算法的效率需要得到提高。
其次,网络结构复杂,社区表达方式多样,导致算法的准确性和鲁棒性存在一定的问题。
此外,由于网络中包含大量的噪声和异常节点,算法需要具备一定的鲁棒性和可靠性以应对这些干扰因素。
因此,针对这些挑战,研究者们提出了一系列的改进算法和优化策略。
为了提高算法的效率,研究者们提出了一些加速算法的方法。
例如,可以通过节点采样的方式减少计算量,或者使用分布式计算框架来实现算法的并行计算,以提高算法的速度和效率。
此外,由于网络中存在一些重要的节点和核心社区,可以对这些节点和社区进行优化,减少计算的复杂度。
复杂网络中社区发现算法与应用研究

复杂网络中社区发现算法与应用研究社区发现是复杂网络分析中的重要问题之一,它通过识别网络中具有紧密连接的节点群体,帮助我们理解网络结构与功能。
随着互联网的快速发展和信息交流的加剧,社区发现算法的研究与应用也日益受到关注。
社区发现算法的研究旨在解决以下问题:如何识别网络中具有紧密联系的节点,如何划分节点到不同的社区中。
早期的社区发现算法主要基于节点之间的连接关系,如Girvan-Newman算法、Louvain算法等。
这些算法在一定程度上能够发现网络中的社区结构,但在处理大规模复杂网络时往往存在计算复杂度高、准确率不高等问题。
为了解决上述问题,越来越多的研究者开始考虑节点的属性信息与网络拓扑结构的结合。
一些基于深度学习的社区发现算法如DeepWalk、Node2Vec等能够学习节点的低维表示,进而更好地发现社区结构。
此外,研究者们还提出了基于模块度优化的算法,如LFM、SLPA等,通过最大化模块度指标来找到网络中的社区结构。
除了算法的研究,社区发现的应用也越来越广泛。
首先,社区发现可以帮助我们理解复杂网络的结构与功能。
例如,在社交网络中,社区发现可以帮助我们发现具有相似兴趣或关系的人群,从而提供更个性化的社交服务。
其次,社区发现可以在推荐系统中发挥重要作用。
通过将用户群体划分为不同的社区,可以更好地进行精准推荐,提高推荐效果。
再者,社区发现在生物信息学、信息安全等领域也有广泛的应用,如发现蛋白质相互作用网络中的功能模块、检测网络攻击等。
社区发现算法与应用的研究仍然面临着许多挑战。
首先,如何应对网络的巨大规模是一个问题。
当前的社区发现算法在处理大规模网络时计算复杂度仍然较高,需要进一步优化。
其次,算法的准确性与稳定性也需要进一步提高。
由于复杂网络的特点,算法往往难以找到全局最优解,因此如何增加算法对噪声与干扰的鲁棒性是一个重要问题。
此外,当前的社区发现算法对于不同类型的网络如时变网络、异质网络等的适应性还有待提高。
复杂网络中的社区结构划分算法研究
复杂网络中的社区结构划分算法研究第一章简介复杂网络有着广泛的应用,例如社交网络、物流网络、生物网络等等。
在一个复杂网络中,不同的节点之间存在着不同的联系。
社区结构是指网络中一个节点集合,这些节点之间存在着紧密的联系,而这些联系又与网络外部的联系却相对松散。
在许多实际应用中,社区结构是非常有用的,例如社交网络中的好友圈、科研领域中的研究团队等等。
因此,社区结构划分算法的研究变得越来越重要。
本文将介绍一些常见的社区结构划分算法,包括Louvain算法、GN算法、Spectral Clustering算法等等,探讨它们的原理和优缺点。
第二章 Louvain 算法Louvain算法是一种基于模块度优化的社区结构划分算法。
其主要思想是通过不断合并最优的社区结构来达到最优的全局划分。
具体来说,Louvain算法分为两个阶段:第一阶段是在保持当前社区划分不变的前提下,每个节点都移动到与其相邻节点中度最大的社区中;第二阶段是对第一阶段的结果进行优化,合并可以提高模块度的社区划分,直到无法继续提高为止。
优点:Louvain算法是一种高效、可扩展的算法,可以在大规模网络中使用。
并且在实验中,Louvain算法的划分结果表现出了很好的社区行为。
此外,Louvain算法的实现代码也比较简单,易于理解。
缺点:Louvain算法对于具有重叠社区的网络进行划分的效果并不好。
此外,该算法的运行时间较长,在大规模网络中可能需要1小时以上的时间。
第三章 GN 算法GN(Girvan-Newman)算法是一种基于边介数来度量网络中重要性的社区结构划分算法。
边介数是指在一个无向图中,如果一条边所连通的节点对越多,说明这条边的介数越高。
算法的核心思想是通过不断删除网络中介数最高的边来分离网络,从而获得社区结构。
优点:GN算法适用于对于一些轮廓明显的社区结构进行划分,同时该算法的实现也相对简单。
缺点:GN算法对于重叠社区的网络划分效果较差。
复杂网络中基于节点度的社区发现算法研究
复杂网络中基于节点度的社区发现算法研究随着信息时代的发展,网络已经变得无处不在。
我们生活中的各个方面都与网络有着千丝万缕的联系。
然而,网络中的信息千差万别,由此也产生了我们所谓的“复杂网络”。
这些网络涉及的主题和节点之间的关系错综复杂,难以通过传统的方法得到清晰的结论。
为了更好地理解和处理这些复杂网络,社区发现算法应运而生。
社区发现算法是指从一个大型网络中找出关联紧密、内部呈现出某种连接形式的子群体。
这些子群体代表网络中的社区,有着明显的意义和作用。
如何发现这些社区是一个重要的问题,也是复杂网络分析领域中的研究热点之一。
在社区发现算法中,基于节点度的方法是比较常见的一种方式。
节点度指的是一个节点与其他节点相连的数量。
这种方法是从节点的角度出发进行研究的。
因为高度连接的节点可能就是一个社区的中心,而社区内部的节点互相连接的数量也更多。
在基于节点度的社区发现算法中,常用的方法有以下几种:1. 构建节点度矩阵构建节点度矩阵是指将网络中所有节点的度数按照大小排序,并且将节点与其度数一一对应。
得到这个矩阵后,就可以根据节点的度数进行社区的划分。
一般情况下,我们将度数相同的节点归为同一个社区。
这种方法比较简单,但是对于某些网络却可能得到不太理想的结果。
2. 基于模块度的划分在这种方法中,我们需要先给出一个网络的初始社区结构。
然后,对于每个社区,我们通过计算该社区的模块度来决定是否将其划分为更小的社区。
模块度是指某个社区内部边的数量与随机网络中边数量的比值。
当某个社区的模块度较高时,则说明社区内部边的数量较多。
此时,我们可以继续对这个社区进行细分,直到找到最小的社区为止。
3. 基于最小割的划分这种方法采用的是一种叫做“最小割”的思想。
最小割是指在一个网络中,将其分成两个部分的方式使得割(即去掉连接这两个部分的边)的数量最小。
我们可以通过多次使用最小割方法,将一个社区划分成多个较小的社区。
基于节点度的社区发现算法具有较强的可行性和有效性。
基于迁移学习的复杂网络社区发现算法研究
基于迁移学习的复杂网络社区发现算法研究迁移学习是机器学习领域的一个重要研究方向,可以将已学习知识迁移到新问题上,加快学习速度和提高性能。
在复杂网络社区发现领域,传统的算法往往需要大量的标注数据和算法调参,而迁移学习能够利用已有的社区结构信息,解决这一问题。
本文将探讨基于迁移学习的复杂网络社区发现算法的研究进展。
首先,我们需要了解什么是复杂网络社区发现。
复杂网络是由大量节点和边构成的网络,例如社交网络、蛋白质相互作用网络等。
社区发现是在复杂网络中找出具有较高内部连接性和较低外部连接性的节点集合,这些节点集合被称为社区。
社区发现对于理解网络结构、揭示社会关系、预测节点行为等有着重要意义。
然而,复杂网络中存在节点度分布不均匀、社区规模不确定等问题,传统的社区发现算法在面对这些挑战时表现不佳。
基于迁移学习的复杂网络社区发现算法是利用已有的社区结构信息,将其迁移到新网络上进行社区发现。
迁移学习的核心思想是通过找到源领域和目标领域之间的相似性,从源领域学习到的知识可以迁移到目标领域上。
在复杂网络社区发现中,源领域可以是一个已知的社区结构较明确的网络,而目标领域可以是一个需要进行社区发现的网络。
通过迁移学习的策略,可以利用源领域网络的结构信息帮助目标领域的社区发现,从而提高算法的性能。
近年来,研究人员提出了许多基于迁移学习的复杂网络社区发现算法。
其中一个常用的方法是基于相似性的迁移学习策略。
该策略通过计算源领域和目标领域之间的相似性矩阵,将源领域的社区结构信息应用于目标领域。
例如,可以通过计算节点之间的相似度、社区之间的相似度等来构建相似性矩阵。
然后,利用相似性矩阵进行社区划分,将源领域的社区划分结果迁移到目标领域上。
另一个常用的方法是基于距离的迁移学习策略。
该策略通过计算源领域和目标领域之间的距离矩阵,将源领域的社区结构信息迁移到目标领域上。
例如,可以通过计算节点之间的距离、社区之间的距离等来构建距离矩阵。
复杂网络上的社群发现算法研究
复杂网络上的社群发现算法研究随着互联网和社交网络的兴起,人们之间的联系越来越紧密,形成的网络也变得越来越复杂。
在这样的网络中,人们往往会形成各种社群,各个社群之间的联系也越来越密切。
如何在这样的网络中准确地发现社群,成为了一个重要的问题。
本文将探讨复杂网络上的社群发现算法研究。
一、社群的定义及重要性所谓社群,是指网络中一些紧密相连的节点之间的集合。
通常,这些节点之间有着共同的特征、目标、兴趣等,形成了一个比较有组织的集合。
社群的存在对于网络的研究和应用都有着重要的意义。
在社交网络中,社群发现可以帮助用户找到更多与自己兴趣相同的人,更好地交流。
在生物网络中,社群发现也可以帮助研究人员发现各个分子之间的相互作用和联系。
二、社群发现算法研究的现状社群发现算法主要分为两类:基于模块度的方法和基于概率模型的方法。
基于模块度的方法把社群内的节点之间的连边看做是模块结构的一部分,社群的发现目标是最大化网络的模块度。
这种方法通常是通过贪心算法、模拟退火等方法来实现的,比较常见的算法有Louvain算法、GN算法等。
而基于概率模型的方法则是通过建立概率模型来刻画网络结构,然后通过最大化似然函数来实现社群发现的目标。
这种方法通常包括贝叶斯网络模型、边缘随机场模型等。
三、社群发现算法的评价指标社群发现算法的评价指标包括模块度、归一化互信息(Normalized Mutual Information, NMI)、F值等。
其中,模块度是衡量网络社群结构的最重要的指标之一。
模块度越大,意味着社群内部的结构越紧密,社群之间的联系越弱。
而NMI通常被用来评价算法的聚类效果,NMI越大,说明聚类效果越好。
F值包括召回率和准确率两个指标,是用来评价算法的精度和召回率的。
四、社群发现算法的应用社群发现算法在各个领域都有广泛的应用。
在社交网络中,社群发现可以帮助用户发现和管理自己的社交圈子。
在生物网络中,社群发现可以帮助研究人员研究生物分子之间的相互作用关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法分析
复杂网络社区结构发现算法概述
杨泽俊1,2何柳a
(1.三峡大学湖北宜昌443000;2.湖北三峡职业技术学院湖北宜昌443000;
3.三峡旅游职业技术学院湖北宜昌443000)
摘要:分析了一些经典的复杂网络社区结构的发现算法,希望对社区发现问题的进一步研究及若干问题的早日解决起到一定的作业。
关键词:复杂网络社区结构
中图分类号:TP3 文献标识码:A 文章编号:1007—9416(2013)03—0145一O1
1引言
复杂网络[1堤现实世界中复杂系统的一种抽象表现形式,网络 中的节点是复杂系统中的个体,节点之间的边则是系统中个体之间 按照某种规则而自然形成或人为构造的一种关系。网络节点被划分 成若干组,使得组内节点之间的连接比较稠密,而不同组节点之间 的连接则比较稀少,这样的划分结果被定义为复杂网络的社区结构 [21。通过对复杂网络社区结构的研究,可以将复杂网络社区结构的研 究理论成果应用到具体问题当中去,如可以通过社区结构发现资源 分布、病毒的传播等。 2基于Laplace图特征值的谱二分法【3】 令G是一个具有n个节点的无向图,G的Laplace矩阵L是一个n X n的对称矩阵,它的对角线元素uj是节点i的度,表示节点i和节点 j的连接情况,当i和j之间有边相连时,则Lij=一1,否则Lij=0。显然, L每一行的和以及每一列的和均为0,因而,向量l=(1,1,1,1)是L的 相应于特征值0的特征向量。可以知道,此时L存在g个与特征值oN 应的特征向量 ,k=l,2,L,g,其中,v(k)的对应于分支Gk的分量为 1,而其余分量为0。 因为对称矩阵的任意2个特征值所对应的特征向量相互正交, 所以Laplace矩阵L的任意对应于非零特征值的特征向量均正交于 向量L=(1,1,l,1),以此所有非零特征值的特征向量必须具有正分 量和负分量。如果2个子图间连接很少,则将存在一个特征向量,它 的特征值近似于0;它的特征向量的正分量对应一个子图,负分量对 应另一个子图。 所以我们可以通过观察第二最小的特征值所对应的特征向量,依 据特征值元素的正负将一个网络分解成2个社区,这就是谱二分法。 3WH算法 在明确知道社团数目的情况下,Wu和Huberman提出了基于 电阻网络电压谱的快速谱分割法。利用此算法不仅可以求出复杂网 络的社团结构,还可以在不考虑整个复杂网络扩大社团结构的情况 下,寻找一个已知节点所在的整个社团。 令图G=(v,E)可以分为两个社团G1和G2,且已知节点M和N分 别属于这两个社团。令节点M为源节点,电压值为1,节点N为终节 点,电压值为0。此时,网络中的每条边都视为一个阻值为l的电阻。 复杂网络就可以看成一个电阻网络,可以利用基尔霍夫定理求各个 几点的电压值。然后,选取一个电压阈值V(O<V<I)。若节点i的电压 值Vi>V,认为它属于源节点M所在的社团,反之则为终结点N所在 的社团。可以利用谱线图来记录电压值:在0~l的范围内,将电压值 从大到小进行排列,然后用不同位置的谱线图来记录电压值。然后 选取某个阈值,认为该阈值左边的线相应的节点属于一个社团,而 右边的那些节点就属于另一个社团。 4GN算法 GN算法[41的思想是不断从网络中移除介数最大的边,边的介 数是指通过该边的最短路径的数目。因为同一社区内的节点对介数 较小,而不同社区的节点对介数较大,为此可以比较好的划分社区。 设网络矩阵中对角线上各元素之和为Tre 巴l。该矩阵给出
了网络中连接某一个社区内部各节点的边在所有边的数目中所占
比例,定义每行(或者列)中各元素之和为1;/i 勺,它表示与第价
社区中的节点相连的边在所有边中所占的比例,用下式来定义模块
性的衡量标准: 乙 一 i2) "re一 0
。
上式的意义是:矩阵网
络中连接两个同种类型的节点的边的比例减去在同样的社区结构
下任意连接这两个节点的边的比例的期望值。如果社团内部边的比
例不大于任意连接时的期望值,则有Q=O。Q的上限为Q=I,而Q越
接近这个值,则说明社团结构越明显。
GN算法中,如果计算关于有m个节点和n条边的网络的所有边
的介数则需O(mn)的时间。每一次删除边,都要重新计算一次边介
数,所有整个算法的时间复杂度在最坏的情况是O(m n)。
5贪婪算法
贪婪算法与上面算法的共同之处在于都是以最大化Q函数值为目
标,区别是最大化的途径不同。贪婪算 的过程为:(1翮始时将网络中的
每1个顶点都视为1个社团,每个社团内只有1个顶点。c2)两两合并社团,并
计算社团合并所产生的Q值的变化量:△Q= ,+e -2a,aj=2( 一口 口,)选
择使得Q值增加最大的合并方式进行。计算Q值变化时,只需考虑存
在连边的网络社团对。当网络中包含n条边时,这步算法的复杂度为
O(n)。网络社团合并后一定会对e矩阵产生影响,所以将合并的两个
社团所对应的行和列相加,对eij进行更新。(3)重复步骤(2)的操作,
不断对社团进行合并,一直到所有顶点被凝聚到一个社团为止。上
述的操作最多进行n一1次。这种方法将复杂网络中的社团用树状图
的形式表现,使得Q函数值最大的社团划分方式就是网络的最优划
分结果。
参考文献
[1]WWZachary.An information flowJournal of Anthropological
Research.model for conflict and fission in smallgroups.1977。33
(4):452—473.
[2]WWZachary.An information flow Journal of AnthrOpO1Og1ca]
Research.model for conflict and fission in small groups.1 977。33
(4):452-473.
[3]汪小帆,李翔,陈关荣.复杂网络理论及其应用[H].北京:清华大学
出版社。2006.
[4]Girvan M.Newman M E J.Community structure 1n socia1
andbiological networks[J].Proc Natl Acad Sci USA.2002。99:7821.
7826.
[5]Newman M E].Fast algorithm for detecting community strut.
ture in networks[J].Proc Natl Acad Sci,2001,99:7821.7826.
篇