论文部分内容阅读
复杂网络的研究已成为一个涉及物理、数学、生物学、社会科学、信息科学等多学科的重要研究领域,同时也包扩其它的理论科学和应用科学。现实世界中的许多复杂的网络系统都可以抽象成图结构,包括社会网络、信息网络和生物网络等。例如,社会网络的拓扑结构会影响信息和疾病的传播,而电网的拓扑结构影响的电力传输的鲁棒性和稳定性,这些复杂的网络可以很自然地被分成社区结构。社区结构的概念是由Newman于2002年首次提出的。一个社区可以大致被描述为一个由部分顶点构成的的子图,在这个子图里面内部的顶点之间的连接非常紧密,同时与子图外部的顶点之间的连接比较松散。由于许多网络表现出这样的社区结构,因此检测并描述这样的一个社区结构具有重要的现实意义。二分网络是一种常见的网络结构,许多真实世界的网络自然地呈现出二分网络社区结构,如科学家进行科研项目的合作的网络,P2P系统中的计算机终端数据网络,投资-公司的网络,俱乐部会员-活动网络等。因此,对二分网络的社区检测对复杂网络分析的理论和应用研究也非常重要。对复杂网络社区挖掘的另一个重要方面是对反社区结构的研究。在反社区结构当中,顶点和其它反社区的顶点之间有比较紧密的连接,而同一个反社区内部的顶点有很少或者根本没有连接。对这样的的研究也有着重要的理论与现实意义。另一方面,在大量的实际网络中,顶点间的链接是随时间在变化的,社区的结构也会随之发生变化。如何在这样动态的网络中检测其社区结构是一个复杂的问题。本文的研究工作和主要研究成果有:(1)我们提出了基于蚁群优化的二分网络社区挖掘算法。在该算法中每一只蚂蚁构造一个社区,综合蚂蚁群体的结果可以得到顶点的社区划分。算法根据模块度来衡量解的质量,用以更新信息素,以进行下一次迭代。最后,将得出一个模块性最高的社区划分作为最终结果。实验结果表明,我们的算法不仅可以准确地确确定网络社区的数量,同时也能获得较高的社区划分质量。(2)针对反社区的挖掘问题,我们提出了一个简单的标号传播算法。该算法利用网络结构自身为指导,既不需要一个预先定义的优化的目标函数,也不需要于反社区的先验信息。在算法开始时,每一个节点被赋予一个不同的标号。在后来的每一步迭代中,每个节点采用目前大多数邻居节点所拥有标号。在迭代过程结束时,拥有同一个独特标号的密集的节点组建成一个社区。我们将算法应用到已知社区结构的网络进行验证。实验结果证明,该算法所需的时间几乎是一个线性的复杂度,因此它计算成本低于大多数现存的算法。(3)针对动态网络结构的社区检测问题,我们提出了一个相对简单的、可扩展的、基于人工生命的挖掘算法。该算法基于蚁群群居的自然现象,把社交网络模中的节点模拟为一种人工生群体,群体成员在一个虚拟的二维空间中通过随机游走而聚集形成社区。算法评估随时发生的社区的相互作用,以已决定群体成员下一步的运动状态。用户可以观察到在任何给定的时间点的社区检测结果。实验结果表明,我们的算法能够有效检测动态网络结构的社区结构的动态变化。