🤖 AI Summary
This paper addresses the problem of efficiently extracting maximum-size $(k,ell)$-sparse subgraphs from multi-graphs—a task with fundamental applications in rigidity theory and combinatorial optimization. We propose an enhanced augmenting-path algorithm that integrates three key innovations: quasi-forest initialization, dynamic edge/vertex ordering, and a two-stage optimization framework—ensuring optimality while substantially reducing the cost of augmenting operations. For the special case where the number of vertices is at least three and the graph satisfies $(k,2k)$-sparsity, we design an asymptotically faster dedicated algorithm. Experimental evaluation on both synthetic and real-world graphs demonstrates speedups of multiple orders of magnitude over state-of-the-art tools. Our implementation is open-sourced and recommended for integration into the LEMON graph algorithms library.
📝 Abstract
A multigraph $G = (V, E)$ is $(k, ell)$-sparse if every subset $X subseteq V$ induces at most $max{k|X| - ell, 0}$ edges. Finding a maximum-size $(k, ell)$-sparse subgraph is a classical problem in rigidity theory and combinatorial optimization, with known polynomial-time algorithms. This paper presents a highly efficient and flexible implementation of an augmenting path method, enhanced with a range of powerful practical heuristics that significantly reduce running time while preserving optimality. These heuristics $unicode{x2013}$ including edge-ordering, node-ordering, two-phase strategies, and pseudoforest-based initialization $unicode{x2013}$ steer the algorithm toward accepting more edges early in the execution and avoiding costly augmentations. A comprehensive experimental evaluation on both synthetic and real-world graphs demonstrates that our implementation outperforms existing tools by several orders of magnitude. We also propose an asymptotically faster algorithm for extracting an inclusion-wise maximal $(k,2k)$-sparse subgraph with the sparsity condition required only for node sets of size at least three, which is particularly relevant to 3D rigidity when $k = 3$. We provide a carefully engineered implementation, which is publicly available online and is proposed for inclusion in the LEMON graph library.