How quickly can you pack short paths? Engineering a search-tree algorithm for disjoint s-t paths of bounded length
Michael Kiran Huber
TL;DR
This work addresses Short Path Packing, the decision problem of finding $k$ internally vertex-disjoint $s$-$t$ paths each of length at most $\ell$. It introduces an exact FPT algorithm built on a search-tree framework augmented with greedy localization, plus a comprehensive set of heuristics: preprocessing to shrink the graph, triviality checks, pruning rules, symmetry breaking via forbidden intervals, and intelligent subproblem selection. To enable branching, the authors formalize Short Path Packing with Checkpoints (SPPC), enabling controlled decomposition of paths into subpaths between checkpoints and rigorous branching rules with correctness and runtime guarantees; they prove a worst-case bound of $(k\cdot \ell^2)^{k\cdot \ell}\cdot O(n+m)$. An extensive experimental evaluation on a diverse graph dataset demonstrates that the heuristic improvements, especially the baseline shortest-checkpoint criterion (b-sp) and symmetry breaking (b-fi), yield substantial runtime reductions, with preprocessing providing large speedups for larger graphs. The study also discusses practical considerations, including implementation details, limitations in comparability with existing tools, and avenues for future work such as stronger kernelization, dynamic shortest-path updates, and extensions to broader graph classes or weighted settings.
Abstract
We study the Short Path Packing problem which asks, given a graph $G$, integers $k$ and $\ell$, and vertices $s$ and $t$, whether there exist $k$ pairwise internally vertex-disjoint $s$-$t$ paths of length at most $\ell$. The problem has been proven to be NP-hard and fixed-parameter tractable parameterized by $k$ and $\ell$. Most previous research on this problem has been theoretical with limited practical implemetations. We present an exact FPT-algorithm based on a search-tree approach in combination with greedy localization. While its worst case runtime complexity of $(k\cdot \ell^2)^{k\cdot \ell}\cdot n^{O(1)}$ is larger than the state of the art, the nature of search-tree algorithms allows for a broad range of potential optimizations. We exploit this potential by presenting techniques for input preprocessing, early detection of trivial and infeasible instances, and strategic selection of promising subproblems. Those approaches were implemented and heavily tested on a large dataset of diverse graphs. The results show that our heuristic improvements are very effective and that for the majority of instances, we can achieve fast runtimes.
