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.

Figure 1 Tight example for Lemma 2 (black nodes are term<strong>in</strong>als): a <strong>Ste<strong>in</strong>er</strong><br />

separator s, and the correspond<strong>in</strong>g forests R1 and R2 with |T1| = k/3 and<br />

|T2| =2k/3 term<strong>in</strong>als, respectively. Note that <strong>in</strong> R2 ∪{s}, nodes separates two<br />

perfectly balanced forests R2a and R2b.<br />

R2<br />

R2a<br />

R2b<br />

s<br />

where P(s, T ) is the set of possible partitions (T1,T2) ofT \{s} <strong>in</strong> two nonempty<br />

subsets. Algorithm D&W simply applies Equation (1) to any subset of T ,<br />

<strong>in</strong> a bottom-up fashion, stor<strong>in</strong>g each partial solution computed for later <strong>computation</strong>s.<br />

Stor<strong>in</strong>g the partial solutions takes Ω(2 k ) <strong>space</strong>.<br />

A simple-m<strong>in</strong>ded approach to obta<strong>in</strong> a <strong>polynomial</strong>-<strong>space</strong> variant of D&W is<br />

to apply Equation (1) recursively, <strong>in</strong> a top-down fashion, without stor<strong>in</strong>g any<br />

partial solution. When |T |≤2, the problem is solved trivially <strong>in</strong> <strong>polynomial</strong><br />

time and <strong>space</strong> (base case). Unfortunately, this approach leads to a very high<br />

runn<strong>in</strong>g time. The ma<strong>in</strong> reason is that, by apply<strong>in</strong>g Equation (1) as it is, one<br />

generates some subproblems with almost the same number of term<strong>in</strong>als as <strong>in</strong> the<br />

orig<strong>in</strong>al problem.<br />

This problem can be circumvented by exploit<strong>in</strong>g a variant of the classical<br />

<strong>tree</strong>-separator theorem. It is well known that any n-node<strong>tree</strong>conta<strong>in</strong>sanodes<br />

(separator) whose removal divides the <strong>tree</strong> <strong>in</strong> two forests, each one conta<strong>in</strong><strong>in</strong>g at<br />

most 2n/3 nodes. The same basic result holds if we put weights on the nodes [7].<br />

In particular, the follow<strong>in</strong>g lemma holds (see Figure 1 for a tight example).<br />

Lemma 2. [7] Consider any <strong>Ste<strong>in</strong>er</strong> <strong>tree</strong> S on the set of term<strong>in</strong>als T , |T | = k ≥<br />

3. Then there exists an <strong>in</strong>ternal node s ∈ S (<strong>Ste<strong>in</strong>er</strong>-separator), not necessarily<br />

a term<strong>in</strong>al, whose removal divides the <strong>tree</strong> <strong>in</strong> two forests, each one conta<strong>in</strong><strong>in</strong>g at<br />

most 2k/3 term<strong>in</strong>als.<br />

As a consequence of Lemma 2, when apply<strong>in</strong>g Equation (1), we do not really<br />

need to consider all the partitions <strong>in</strong> P(s, T ), but it is sufficient to consider only<br />

the subset B(s, T ) ⊆P(s, T ) of (“almost balanced”) partitions (T1,T2) where<br />

|T1| ≤|T2| ≤2k/3:<br />

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

s∈V<br />

m<strong>in</strong><br />

(T1,T2)∈B(s,T ) {st(T1 ∪{s})+st(T2 ∪{s})}. (2)<br />

Us<strong>in</strong>g Equation (2) <strong>in</strong>stead of (1) makes no substantial difference with the dynamic<br />

programm<strong>in</strong>g approach by Dreyfus and Wagner: <strong>in</strong> fact, the most frequent<br />

R1

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

Saved successfully!

Ooh no, something went wrong!