Given a graph, a $k$-plex is a set of vertices in which each vertex is not adjacent to at most $k-1$ other vertices in the set. The maximum $k$-plex problem, which asks for the largest $k$-plex from the given graph, is an important but computationally challenging problem in applications such as graph mining and community detection. So far, there are many practical algorithms, but without providing theoretical explanations on their efficiency. We define a novel parameter of the input instance, $g_k(G)$, the gap between the degeneracy bound and the size of the maximum $k$-plex in the given graph, and present an exact algorithm parameterized by this $g_k(G)$, which has a worst-case running time polynomial in the size of the input graph and exponential in $g_k(G)$. In real-world inputs, $g_k(G)$ is very small, usually bounded by $O(\log{(|V|)})$, indicating that the algorithm runs in polynomial time. We further extend our discussion to an even smaller parameter $cg_k(G)$, the gap between the community-degeneracy bound and the size of the maximum $k$-plex, and show that without much modification, our algorithm can also be parameterized by $cg_k(G)$. To verify the empirical performance of these algorithms, we carry out extensive experiments to show that these algorithms are competitive with the state-of-the-art algorithms. In particular, for large $k$ values such as $15$ and $20$, our algorithms dominate the existing algorithms. Finally, empirical analysis is performed to illustrate the effectiveness of the parameters and other key components in the implementation.
翻译:给定一个图,$k$-团是顶点集合,其中每个顶点至多与集合内其他$k-1$个顶点不相邻。最大$k$-团问题旨在从给定图中找出最大的$k$-团,是图挖掘和社区检测等应用中的重要但计算困难的问题。目前已有多种实用算法,但缺乏对其效率的理论解释。我们定义了一个新的输入实例参数$g_k(G)$,即退化界与给定图中最大$k$-团大小之间的间隙,并提出了一种以$g_k(G)$为参数的精确算法,其最坏情况运行时间关于输入图大小呈多项式复杂度,关于$g_k(G)$呈指数复杂度。在实际输入中,$g_k(G)$非常小,通常限定在$O(\log{(|V|)})$内,表明算法可在多项式时间内运行。我们进一步将讨论扩展到更小的参数$cg_k(G)$,即社区退化界与最大$k$-团大小之间的间隙,并表明我们的算法在无需大幅修改的情况下也可基于$cg_k(G)$进行参数化。为验证这些算法的实证性能,我们进行了大量实验,证明它们与最先进算法具有竞争力。特别是在$k$值较大(如$15$和$20$)时,我们的算法优于现有算法。最后,通过实证分析说明了参数及实现中其他关键组件的有效性。