11.12.2012 Views

Fast Steiner tree computation in polynomial space - Lita

Fast Steiner tree computation in polynomial space - Lita

Fast Steiner tree computation in polynomial space - Lita

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

measure of the size of the problem. This measure is used to bound <strong>in</strong> a tighter<br />

way the progress made by the recursive algorithm considered at each branch<strong>in</strong>g<br />

step. The runn<strong>in</strong>g time obta<strong>in</strong>ed with respect to the ref<strong>in</strong>ed measure is eventually<br />

turned <strong>in</strong>to the equivalent runn<strong>in</strong>g time <strong>in</strong> terms of the standard measure<br />

considered (typically the number of nodes or edges for graph problems). As it<br />

will be clearer from the analysis, a convenient measure <strong>in</strong> our case is a l<strong>in</strong>ear<br />

comb<strong>in</strong>ation of the number n of nodes and number nN = n − k of non-term<strong>in</strong>als<br />

<strong>in</strong> the graph.<br />

Prelim<strong>in</strong>aries. In the follow<strong>in</strong>g stG(T ) denotes the m<strong>in</strong>imum number of edges<br />

of a <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong> of graph G over term<strong>in</strong>al set T . When the graph G is clear from<br />

the context, we will simply write st(T ). By contract<strong>in</strong>g a subset of nodes V ′ ,we<br />

mean (i) remov<strong>in</strong>g V ′ from the graph, (ii) add<strong>in</strong>g a new node v ′ , and (iii) add<strong>in</strong>g<br />

one edge between v ′ and each neighbor of V ′ not <strong>in</strong> V ′ . The follow<strong>in</strong>g lemma is<br />

easy to verify.<br />

Lemma 1. (Contraction Lemma) Let (G, T ) be an <strong>in</strong>stance of the card<strong>in</strong>ality<br />

<strong>Ste<strong>in</strong>er</strong> <strong>tree</strong> problem. Also let V ′ be a connected component of term<strong>in</strong>als, G ′ be the<br />

graph result<strong>in</strong>g from contract<strong>in</strong>g V ′ <strong>in</strong> a unique node v ′ ,andT ′ = T ∪{v ′ }\V ′ .<br />

Then<br />

stG(T )=|V ′ |−1+stG ′(T ′ ).<br />

The rest of this paper is organized as follows. In Section 2 we present our<br />

O(5.96 k n O(log k) ) <strong>polynomial</strong>-<strong>space</strong> algorithm. The ref<strong>in</strong>ed branch<strong>in</strong>g strategy<br />

based on the charg<strong>in</strong>g argument is described <strong>in</strong> Section 3, and analyzed <strong>in</strong> Section<br />

4 with the Measure & Conquer technique.<br />

2 <strong>Ste<strong>in</strong>er</strong> Tree via <strong>Ste<strong>in</strong>er</strong> Separators<br />

In this section we describe a simple <strong>polynomial</strong>-<strong>space</strong> algorithm for the <strong>Ste<strong>in</strong>er</strong><br />

<strong>tree</strong> problem of runn<strong>in</strong>g time O((27/4) k n O(log k) ). We later show how to reduce<br />

thetimecomplexitytoO(5.96 k n O(log k) ). We remark that, with m<strong>in</strong>or modifications,<br />

this algorithm works also <strong>in</strong> the weighted case.<br />

Our algorithm is <strong>in</strong>spired by the classical dynamic programm<strong>in</strong>g algorithm<br />

D&W by Dreyfus and Wagner [10], which takes O ∗ (3 k ) time and exponential <strong>space</strong>.<br />

Algorithm D&W is based on the follow<strong>in</strong>g observation. Consider any <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong><br />

S on the set of term<strong>in</strong>als T , |T |≥3. There must be an <strong>in</strong>ternal node s ∈ S, not<br />

necessarily a term<strong>in</strong>al, such that the sub<strong>tree</strong>s of S rooted at s can be partitioned<br />

<strong>in</strong> two forests R1 and R2, each one conta<strong>in</strong><strong>in</strong>g at least one term<strong>in</strong>al. Let Ti be<br />

the term<strong>in</strong>als <strong>in</strong> Ri, i ∈{1, 2}. If we compute optimal <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong>s on term<strong>in</strong>als<br />

T1 ∪{s} and T2 ∪{s}, and we merge them, we obta<strong>in</strong> an optimal <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong> for<br />

the orig<strong>in</strong>al problem. Of course we do not know s nor (T1,T2) a priori, but we can<br />

guess them by enumerat<strong>in</strong>g all the possible cases. Recall that stG(T )=st(T )is<br />

the m<strong>in</strong>imum cost of a <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong> of G on term<strong>in</strong>als T . The follow<strong>in</strong>g equation<br />

holds:<br />

st(T )=m<strong>in</strong> m<strong>in</strong><br />

s∈V (T1,T2)∈P(s,T ) {st(T1 ∪{s})+st(T2 ∪{s})}, (1)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!