Given an n-node graph and a subset of k terminal nodes, the NP-hard Steiner tree problem is to compute a minimum-size tree which spans the terminals. All the known algorithms for this problem which improve on trivial O(1.62 n )-time enumeration are based on dynamic programming, and require exponential space. Motivated by the fact that exponential-space algorithms are typically impractical, in this paper we address the problem of designing faster polynomial-space algorithms. Our first contribution is a simple polynomial-space O(6 k n O(logk))-time algorithm, based on a variant of the classical tree-separator theorem. This improves on trivial O(n k+O(1)) enumeration for, roughly, k ≤ n/4. Combining the algorithm above (for small k), with an improved branching strategy (for large k), we obtain an O(1.60 n )-time polynomial-space algorithm. The refined branching is based on a charging mechanism which shows that, for large values of k, convenient local configurations of terminals and non-terminals must exist. The analysis of the algorithm relies on the Measure & Conquer approach: the non-standard measure used here is a linear combination of the number of nodes and number of non-terminals. As a byproduct of our work, we also improve the (exponential-space) time complexity of the problem from O(1.42 n ) to O(1.36 n ). © 2008 Springer-Verlag Berlin Heidelberg.
CITATION STYLE
Fomin, F. V., Grandoni, F., & Kratsch, D. (2008). Faster steiner tree computation in polynomial-space. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 5193 LNCS, pp. 430–441). Springer Verlag. https://doi.org/10.1007/978-3-540-87744-8_36
Mendeley helps you to discover research relevant for your work.