Faster maximal clique enumeration in large real-world link streams
Alexis Baudin, Clémence Magnien, Lionel Tabourier
TL;DR
This work addresses the problem of enumerating maximal cliques in large real-world link streams, where a clique is a set of vertices interacting throughout a time interval. It introduces a Bron-Kerbosch–based algorithm that enumerates time-maximal cliques by operating on instantaneous graphs $G_t$ and then filters for vertex-maximality using a final-time test, augmented by a pivoting strategy to prune the search. The authors provide correctness proofs and two complexity viewpoints: a parameterized input-bound and an output-sensitive bound, showing favorable scaling properties. Empirically, the approach significantly outperforms previous methods, enabling enumeration on massive datasets (up to $10^8$ links) with speedups up to $10^4$ on C++, and it supports parallel execution. The work advances practical clique enumeration in temporal networks, with implications for density-based analysis, community discovery, and dynamic subgraph mining in large real-world systems.
Abstract
Link streams offer a good model for representing interactions over time. They consist of links $(b,e,u,v)$, where $u$ and $v$ are vertices interacting during the whole time interval $[b,e]$. In this paper, we deal with the problem of enumerating maximal cliques in link streams. A clique is a pair $(C,[t_0,t_1])$, where $C$ is a set of vertices that all interact pairwise during the full interval $[t_0,t_1]$. It is maximal when neither its set of vertices nor its time interval can be increased. Some of the main works solving this problem are based on the famous Bron-Kerbosch algorithm for enumerating maximal cliques in graphs. We take this idea as a starting point to propose a new algorithm which matches the cliques of the instantaneous graphs formed by links existing at a given time $t$ to the maximal cliques of the link stream. We prove its validity and compute its complexity, which is better than the state-of-the art ones in many cases of interest. We also study the output-sensitive complexity, which is close to the output size, thereby showing that our algorithm is efficient. To confirm this, we perform experiments on link streams used in the state of the art, and on massive link streams, up to 100 million links. In all cases our algorithm is faster, mostly by a factor of at least 10 and up to a factor of $10^4$. Moreover, it scales to massive link streams for which the existing algorithms are not able to provide the solution.
