论文部分内容阅读
复杂网络可以用来描述社会关系网络、生物网络、通信网络、网页链接关系等真实网络。从20世纪90年代,复杂网络概念提出之后,很多不同领域的研究者都开始关注复杂网络的研究,但是对于复杂网络本身还没有精确严格的定义。它既不是规则网络,也不是随机网络,而是具有与两者皆不相同的统计特征的网络,例如小世界效应和无标度特性。
随着对复杂网络性质的物理意义和数学特性的深入研究,研究者们发现在很多实际网络中都具有一个共同性质:网络中存在社团结构,即网络由若干个“社团”组成,社团内部的节点之间连接紧密,社团之间的连接稀疏。通过研究复杂网络中的拓扑结构特征特别是社团结构的形成规律,有助于揭示复杂网络对应的真实网络表象背后的不复杂的、规律性的特征。
当前,探索和分析复杂网络中的社团结构也成为复杂网络研究者的热点方向。本文就复杂网络进行了一些介绍,特别是对复杂网络的社团结构及社团划分算法进行探讨,具体主要包括以下几个方面:
(1)详述了复杂网络中社团结构的概念和社团划分算法的研究现状。综述了复杂网络的基本概念及其近期的研究方向。首先介绍了研究复杂网络的重要意义和当前复杂网络的研究方向,介绍了复杂网络的基本参数,并介绍了几种基本的网络拓扑模型及其特征,从而引出复杂网络具有的性质。然后,介绍了社团划分算法的分类,详细描述了几种具有代表性的复杂网络中的社团划分算法,并比较这些算法的划分准确率、复杂度和性能。这是本文研究内容的背景知识和理论基础。
(2)提出了一种基于聚集系数的局部社团划分算法。目前已有的社团划分算法必须了解网络的全局信息,本文提出的算法不要求了解网络全局信息,仅根据局部信息也能够划分出局部社团。该算法可以应用到难以获得全局网络信息或者规模很大的网络,从局部开始,不需要考虑全局信息,在时间复杂度上有一定优势。同时,这种局部社团划分算法也可以应用于网络全局的社团结构的搜索,并且不需要事先了解社团规模或者全局社团个数。
(3)在JPAC工具中增加了对复杂软件网络进行社团划分的功能模块。介绍了基于复杂网络的大型Java程序分析工具JPAC的系统结构和主要功能。描述了JPAC工具的三层结构:数据分析层、统计计算层和用户界面层,并介绍了通过三层结构JPAC平台能够实现的主要功能。详细介绍了在JPAC工具中增加的对Java程序进行模块划分的社团划分的功能模块。
(4)利用实验工具对JDK系统形成的JSCG网络进行社团划分并分析解释实验结果。以IDK的六个不同版本为例,分析大型软件系统中的复杂网络特征。发现JDK六个版本的JSCG都是复杂网络,从而可从复杂网络的角度考察其结构特征。利用JPAC平台对JDK1.6版本形成的JSCG网络进行社团划分,对实验结果进行分析和解释,进而验证了JPAC工具中社团划分模块的有效性和在软件网络中的应用。