A recursive linear time modular decomposition algorithm via LexBFS
Derek Corneil, Michel Habib, Christophe Paul, Marc Tedder
TL;DR
The paper tackles the problem of computing the modular decomposition tree ${ m MD}(G)$ in linear time. It introduces a mixed recursive paradigm that combines the skeleton and factoring-permutation approaches with a LexBFS-based slice decomposition, enabling a streamlined, data-structure-friendly algorithm. Key contributions include the formulation of factoring $x$-modular sequences, the introduction of slices and slice-decomposition, a linear-time preprocessing via LexBFS, and an assembly procedure that merges local modular decompositions into a global ${ m MD}(G)$. The approach yields a practical, implementable linear-time algorithm and suggests broad applicability of slice-based preprocessing to related decomposition problems and graph algorithms.
Abstract
A module of a graph G is a set of vertices that have the same set of neighbours outside. Modules of a graphs form a so-called partitive family and thereby can be represented by a unique tree MD(G), called the modular decomposition tree. Motivated by the central role of modules in numerous algorithmic graph theory questions, the problem of efficiently computing MD(G) has been investigated since the early 70's. To date the best algorithms run in linear time but are all rather complicated. By combining previous algorithmic paradigms developed for the problem, we are able to present a simpler linear-time that relies on very simple data-structures, namely slice decomposition and sequences of rooted ordered trees.
