社区发现算法的研究源于对复杂系统模块结构特性的认识。Kernighan-Lin提出的二分算法促进了子图分割问题的研究,这成为了图挖掘领域的重要课题。社会学家也在社会网络中发现了社区结构的普遍性。21世纪初,社区研究开始受到重视,随着社交网络的普及,这一领域的研究变得更加活跃。
社区发现算法在网络分析、生物学、传染病传播等领域有着广泛的应用。在生物学中,它可以用于
新陈代谢网络分析、基因调控网络分析和主控基因识别。在传染病传播方面,社区发现可以帮助预测传播路径,以便及时控制疫情。此外,社区发现还在反恐、犯罪分析和社会网络分析中发挥作用。
非重叠社区发现算法最初基于相似度或谱方法,但由于计算复杂度高,后来发展出了更快捷的近似方法。Girvan与Newman的工作推动了非重叠社区发现的研究,他们的模块度度量法尤其重要。基于模块度的优化算法随之涌现,其中包括Duch的
极值优化算法和Guimera的模拟退火算法。Blondel等人开发的Fast Unfolding算法被认为是最快的非重叠社区发现算法之一。何东晓等人提出了基于聚类融合的遗传算法,金弟等人则提出了基于随机游走的蚁群算法。
重叠社区发现算法的研究受到了广泛关注,因为它更能反映现实网络的特点。Palla等人提出的派系过滤算法是早期的重要成果。
沈华伟等人提出了基于极大完全子图的社区发现算法。Evans的Clique Graph和Ahn的边社区发现方法也都体现了重叠社区的重要性。