  Community detection is a classic problem in network science with extensive
applications in various fields. Among numerous approaches, the most common
method is modularity maximization. Despite their design philosophy and wide
adoption, heuristic modularity maximization algorithms rarely return an optimal
partition or anything similar. We propose a specialized algorithm, Bayan, which
returns partitions with a guarantee of either optimality or proximity to an
optimal partition. At the core of the Bayan algorithm is a branch-and-cut
scheme that solves an integer programming formulation of the modularity
maximization problem to optimality or approximate it within a factor. We
compare Bayan against 30 alternative community detection methods using
structurally diverse synthetic and real networks. Our results demonstrate
Bayan's distinctive accuracy and stability in retrieving ground-truth
communities of standard benchmark graphs. Bayan is several times faster than
open-source and commercial solvers for modularity maximization making it
capable of finding optimal partitions for instances that cannot be optimized by
any other existing method. Overall, our assessments point to Bayan as a
suitable choice for exact maximization of modularity in real networks with up
to 3000 edges (in their largest connected component) and approximating maximum
modularity in larger instances on ordinary computers. A Python implementation
of the Bayan algorithm (the bayanpy library) is publicly available through the
package installer for Python (pip).
