Why is maximum clique often easy in practice?

To this day, the maximum clique problem remains a computationally challenging problem. Indeed, despite researchers' best efforts, there exist unsolved benchmark instances with one thousand vertices. However, relatively simple algorithms solve real-life instances with millions of vertices in a few seconds. Why is this the case? Why is the problem apparently so easy in many naturally occurring networks? In this paper, we provide an explanation. First, we observe that the graph's clique number $\omega$ is very near to the graph's degeneracy $d$ in most real-life instances. This observation motivates a main contribution of this paper, which is an algorithm for the maximum clique problem that runs in time polynomial in the size of the graph, but exponential in the gap $g:=(d+1)-\omega$ between the clique number $\omega$ and its degeneracy-based upper bound $d+1$. When this gap $g$ can be treated as a constant, as is often the case for real-life graphs, the proposed algorithm runs in time $O(dm)=O(m^{1.5})$. This provides a rigorous explanation for the apparent easiness of these instances despite the intractability of the problem in the worst case. Further, our implementation of the proposed algorithm is actually practical---competitive with the best approaches from the literature.



View Why is maximum clique often easy in practice?