Bipartite graphs are a prevalent modeling tool for real-world networks, capturing interactions between vertices of two different types. Within this framework, bicliques emerge as crucial structures when studying dense subgraphs: they are sets of vertices such that all vertices of the first type interact with all vertices of the second type. Therefore, they allow identifying groups of closely related vertices of the network, such as individuals with similar interests or webpages with similar contents. This article introduces a new algorithm designed for the exhaustive enumeration of maximal bicliques within a bipartite graph. This algorithm, called BBK for Bipartite Bron-Kerbosch, is a new extension to the bipartite case of the Bron-Kerbosch algorithm, which enumerates the maximal cliques in standard (non-bipartite) graphs. It is faster than the state-of-the-art algorithms and allows the enumeration on massive bipartite graphs that are not manageable with existing implementations. We analyze it theoretically to establish two complexity formulas: one as a function of the input and one as a function of the output characteristics of the algorithm. We also provide an open-access implementation of BBK in C++, which we use to experiment and validate its efficiency on massive real-world datasets and show that its execution time is shorter in practice than state-of-the art algorithms. These experiments also show that the order in which the vertices are processed, as well as the choice of one of the two types of vertices on which to initiate the enumeration have an impact on the computation time.
翻译:摘要:二分图是现实世界网络中常用的建模工具,用于捕获两类不同顶点之间的交互关系。在此框架下,双团成为研究稠密子图时的关键结构:它们是一组顶点,使得第一类顶点与第二类顶点之间全部相连。因此,双团有助于识别网络中紧密相关的顶点群,例如具有相似兴趣的个体或内容相似的网页。本文提出一种用于在二分图中穷举枚举极大双团的新算法。该算法称为BBK(Bipartite Bron-Kerbosch),是Bron-Kerbosch算法在二分图情形下的新扩展,而Bron-Kerbosch算法本身用于在标准(非二分)图中枚举极大团。该算法比现有最优算法更快,并能够处理现有实现难以应对的大规模二分图。我们从理论上分析该算法,建立了两种复杂度公式:一种基于输入特征,另一种基于算法输出特征。我们还提供了BBK的C++开源实现,并通过在真实大规模数据集上的实验验证其效率,表明其实际执行时间短于现有最优算法。这些实验还表明,顶点处理顺序以及选择哪一类顶点作为枚举起点对计算时间有显著影响。