Computing Optimal Steiner Trees in Polynomial Space
Given an n -node edge-weighted graph and a subset of k terminal nodes, the NP-hard (weighted) Steiner tree problem is to compute a minimum-weight 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 progr...
Saved in:
Published in | Algorithmica Vol. 65; no. 3; pp. 584 - 604 |
---|---|
Main Authors | , , , , |
Format | Journal Article |
Language | English |
Published |
New York
Springer-Verlag
01.03.2013
Springer |
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | Given an
n
-node edge-weighted graph and a subset of
k
terminal nodes, the NP-hard (weighted) Steiner tree problem is to compute a minimum-weight 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
O
((27/4)
k
n
O
(log
k
)
)-time polynomial-space algorithm for the problem. This algorithm is based on a variant of the classical tree-separator theorem: every Steiner tree has a node whose removal partitions the tree in two forests, containing at most 2
k
/3 terminals each. Exploiting separators of logarithmic size which evenly partition the terminals, we are able to reduce the running time to
. This improves on trivial enumeration for roughly
k
<
n
/3, which covers most of the cases of practical interest. Combining the latter algorithm (for small
k
) with trivial enumeration (for large
k
) we obtain a
O
(1.59
n
)-time polynomial-space algorithm for the weighted Steiner tree problem.
As a second contribution of this paper, we present a
O
(1.55
n
)-time polynomial-space algorithm for the cardinality version of the problem, where all edge weights are one. This result is based on a improved branching strategy. 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 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. Using a recent result in Nederlof (International colloquium on automata, languages and programming (ICALP), pp. 713–725,
2009
), the running time can be reduced to
O
(1.36
n
). The previous best algorithm for the cardinality case runs in
O
(1.42
n
) time and exponential space. |
---|---|
ISSN: | 0178-4617 1432-0541 |
DOI: | 10.1007/s00453-012-9612-z |