A Faster Algorithm for the Steiner Tree Problem Daniel M olle, - - PDF document

a faster algorithm for the
SMART_READER_LITE
LIVE PREVIEW

A Faster Algorithm for the Steiner Tree Problem Daniel M olle, - - PDF document

A Faster Algorithm for the Steiner Tree Problem Daniel M olle, Stefan Richter, and Peter Rossmanith Department of Computer Science, RWTH Aachen University, Fed. Rep. of Germany { moelle, richter, rossmani } @cs.rwth-aachen.de Abstract. For


slide-1
SLIDE 1

A Faster Algorithm for the Steiner Tree Problem⋆

Daniel M¨

  • lle, Stefan Richter, and Peter Rossmanith

Department of Computer Science, RWTH Aachen University, Fed. Rep. of Germany {moelle, richter, rossmani}@cs.rwth-aachen.de

  • Abstract. For decades, the algorithm providing the smallest proven

worst-case running time (with respect to the number of terminals) for the Steiner tree problem has been the one by Dreyfus and Wagner. In this paper, a new algorithm is developed, which improves the running time from O(3kn+2kn2+n3) to (2+δ)k·poly(n) for arbitrary but fixed δ > 0. Like its predecessor, this algorithm follows the dynamic programming

  • paradigm. Whereas in effect the Dreyfus–Wagner recursion splits the
  • ptimal Steiner tree in two parts of arbitrary sizes, our approach looks

for a set of nodes that separate the tree into parts containing only few

  • terminals. It is then possible to solve an instance of the Steiner tree

problem more efficiently by combining partial solutions.

1 Introduction

As of today, NP-hard problems cannot be solved in polynomial time. Neverthe- less, we have to deal with many of them in everyday applications. Earlier work has resulted in numerous ways to address this dilemma, among them approxi- mation, randomized algorithms, parameterized complexity, heuristics and many

  • more. Recently, there has been renewed vigor in the field of exact algorithms,

and the exponential runtime bounds for many problems have been improved. Some examples for such improvement have been achieved with new algorithms for 3-Satisfiability [5], Independent Set [1, 8], Dominating Set [4], and Max-Cut [6, 9, 10]. The Steiner tree problem on networks is to find a subgraph of minimum total edge weight that connects all nodes in a given node subset. Since we assume positive weights for all edges, this subgraph must be a tree. The respective deci- sion problem, in which we ask for the existence of such a subgraph whose weight does not exceed a given limit, is known to be NP-complete. The optimization problem is APX-complete, even if the edge weights are restricted to {1, 2} [2]. On the positive side, it is polynomial-time approximable within 1 + (ln 3)/2 ≈ 1.55,

  • r within 1.28 in the aforementioned restricted variation [7].

The best exact algorithm for the Steiner tree problem known today is due to Dreyfus and Wagner [3]. Given a graph with n nodes and m edges, a set of

⋆ Supported by the DFG under grant RO 927/6-1 (TAPI).

  • B. Durand and W. Thomas (Eds.): STACS 2006, LNCS 3884, pp. 561–570, 2006.

c Springer-Verlag Berlin Heidelberg 2006

slide-2
SLIDE 2

562

  • D. M¨
  • lle, S. Richter, and P. Rossmanith

Maastricht Heerlen Aachen Li` ege Verviers Cologne D¨ usseldorf The Netherlands Germany Belgium Maastricht Heerlen Aachen Li` ege Verviers Cologne D¨ usseldorf

  • Fig. 1. A geographic example for Steiner trees

k terminals, and the lengths of the edges, it computes a minimum Steiner tree in time O(3kn + 2kn2 + n2 log n + nm) using dynamic programming. In this paper, we present an algorithm achieving the same in time (2 + δ)k · poly(n) for arbitrarily small but fixed δ > 0. For an intuitive introduction to some important concepts we use, look at the cities in Figure 1. The need for a high-speed road network linking these cities arises, and some of the existing roads must be enlarged. When we assign a prospective renovation cost to each existing road, the cheapest solutions to the problem are exactly the optimal Steiner trees in this network for the terminal set

  • f cities. One approach consists of solving the problem independently in Belgium,

the Netherlands, and Germany. This method works in our example, because there is an optimal Steiner tree for the entire network—drawn fat in Figure 1— in which you cross borders only in Aachen. That is, if every globally optimal solution contained the highway from Lige to Maastricht, regionally optimal trees could not be combined to form such a solution. Abstracting from geography, in Section 2 we will formally define regions to be maximal subtrees of a Steiner tree where every leaf is a terminal and vice

  • versa. In our example, the Belgium towns (including Aachen) would form one
  • region. The nationally constrained parts of the tree in Figure 1 are connected

unions of regions, and as such will formally be called confederations. At the end

  • f Section 2, we will prove that the heart of our algorithm can construct optimal

Steiner trees for confederations by combining regional solutions. Note that this entails optimal Steiner trees for the entire network. As our method relies on exhaustive search, it is only fast when all regions contain few terminals. Fortunately, there is a way to accomplish this. If, for an illustrative example, we find the Belgium region too large, promoting the central node in it to the rank of terminal will cut the region in three smaller

  • pieces. Section 3 will formalize the process of incorporating additional terminals,

which allows us to derive the aforementioned runtime bounds.

slide-3
SLIDE 3

A Faster Algorithm for the Steiner Tree Problem 563

2 Networks, Regions, and Confederations

We adhere to the notation commonly used for the Steiner tree problem. For a graph G, let V [G] and E[G] denote the set of nodes and the set of edges in G,

  • respectively. The edge weights of an input graph G are assumed to be given by

a function ℓ: E[G] → N, where N = {1, 2, 3, . . .}. Formally, an instance of the Steiner tree problem consists of a network (G, ℓ) and a terminal set Y ⊆ V [G]. We define the union operation on graphs G1, G2 as follows: G1 ∪ G2 := (V [G1]∪V [G2], E[G1]∪E[G2]). For any subgraph G′ of G from a network (G, ℓ), let ℓ(G′) :=

e∈E[G′] ℓ(e).

In order to explain our algorithm, let us imagine that we know an optimal Steiner tree T . We will examine some properties of T that enable us to find T —

  • r an equivalent tree—with relative efficiency. As outlined before, T consists of

regions (also called components or full Steiner trees in the literature), which we will define now as maximal subtrees that do not contain terminals as inner nodes. Definition 1. Let (G, ℓ) be a network, Z ⊆ V [G] a set of terminals, and T be an optimal Steiner tree for Z. A (T, Z)-region is an inclusion-maximal subtree R of T in which every terminal is a leaf. The set of all (T, Z)-regions in T is denoted by R(T, Z). See Figure 2 for an illustration of this concept. Regions are the smallest building blocks in our approach. From the tree structure of T , it is easy to see that neighboring regions overlap in exactly one node, which has to be a terminal. They can then be united to form confederations. Definition 2. A connected union T ′ of (T, Z)-regions is called a (T, Z)-con-

  • federation. Accordingly, the corresponding terminal set Z′ = Z ∩ V [T ′] is called

(T, Z)-confederate. As already indicated in the introduction, (T, Z)-regions are optimal for their terminal sets, provided T is optimal for Z. The following lemma formalizes a generalization of this fact for confederations. Lemma 1. Let (G, ℓ) be a network and T be an optimal Steiner tree for Z ⊆ V [G]. Any (T, Z)-confederation T ′ constitutes an optimal Steiner tree for its terminal set.

  • Fig. 2. A Steiner tree T with emphasized terminals Z and its (T, Z)-regions
slide-4
SLIDE 4

564

  • D. M¨
  • lle, S. Richter, and P. Rossmanith
  • Proof. Assume that T ′ = R1 ∪· · ·∪Rs, where R(T, Z) = {R1, . . . , Rt}, and that

there is a Steiner tree S′ for Z ∩ V [T ′] that is cheaper than T ′. The graph S

  • btained from T by replacing T ′ with S′ is connected: All the nodes shared by

T ′ and Rs+1 ∪ · · · ∪ Rt are contained in Z ∩ V [T ′]. Moreover, S′ connects all the nodes from Z ∩ V [T ′]. Since S is a connected graph that contains all the nodes from Z, it is a Steiner graph for Z which is cheaper than T , a contradiction. ⊓ ⊔ The vital property stated in the above lemma lies at the heart of our method. It ensures that we can build up an optimal Steiner tree T for Z—which is a (T, Z)- confederation itself—region by region. That is, when we add a neighboring region to a confederation, a larger confederation arises, and thus a larger optimal Steiner tree. While optimal Steiner trees for (T, Z)-confederate terminal sets can be con- structed recursively, we do not have a means to find or detect (T, Z)-confederate sets efficiently. This problem will be addressed by going through all subsets Z′

  • f Z. We can then be sure to hit the confederate ones in particular. Notice, how-

ever, that we still do not know with regard to which optimal Steiner tree T the respective Z′ are (T, Z)-confederate. Therefore we must be certain that replac- ing a (T, Z)-confederation by some other optimal Steiner tree for its terminal set does not destroy the optimality of the whole Steiner tree. In general, it is not true that combining two optimal Steiner trees for terminal sets Z1 and Z2 with |Z1 ∩ Z2| = 1 yields an optimal Steiner tree for Z1 ∪ Z2, as exemplified by the network in Figure 3. The following lemma shows, however, that if this is the case for two edge-disjoint optimal Steiner trees for Z1 and Z2, then it is the case for any two such trees. Lemma 2. Let (G, ℓ) be a network and Z1, Z2 ⊆ V [G] with |Z1 ∩ Z2| = 1. If there are edge-disjoint optimal Steiner trees T1 for Z1 and T2 for Z2 such that T1 ∪T2 is an optimal Steiner tree for Z1 ∪Z2, then the union T ′

1 ∪T ′ 2 of any two

  • ptimal Steiner trees T ′

1 for Z1 and T ′ 2 for Z2 is also an optimal Steiner tree for

Z1 ∪ Z2.

  • Proof. If there are edge-disjoint optimal Steiner trees T1 for Z1 and T2 for Z2

such that T1 ∪ T2 is an optimal Steiner tree for Z1 ∪ Z2, then the respective Z2 Z1 Z1 Z1, Z2 Z2 Z2 Z1 Z1 Z1, Z2 Z2 Z2 Z1 Z1 Z1, Z2 Z2

  • Fig. 3. Two optimal Steiner trees for Z1, Z2 that do not combine to form an optimal

Steiner tree for Z1 ∪ Z2 (assuming unit-weight edges), compared to an optimal Steiner tree for Z1 ∪ Z2

slide-5
SLIDE 5

A Faster Algorithm for the Steiner Tree Problem 565

  • ptimal weights are ℓ(T1), ℓ(T2), and ℓ(T1 ∪ T2) = ℓ(T1) + ℓ(T2). Let T ′

1 and

T ′

2 be arbitrary optimal Steiner trees for Z1 and Z2, respectively. Observe that

because Z1 and Z2 share a node, T ′

1∪T ′ 2 is a Steiner graph for Z1∪Z2. Of course,

ℓ(T ′

1) = ℓ(T1) and ℓ(T ′ 2) = ℓ(T2). This implies

ℓ(T ′

1 ∪ T ′ 2) ≤ ℓ(T ′ 1) + ℓ(T ′ 2) = ℓ(T1) + ℓ(T2) = ℓ(T1 ∪ T2).

By optimality of the Steiner tree T1 ∪ T2, we know that T ′

1 ∪ T ′ 2 is also optimal.

⊓ ⊔ We are now able to formulate a very important theorem regarding the correctness

  • f our algorithm for the Steiner tree problem.

As mentioned earlier, (T, Z)-confederations are very helpful for the construc- tion of optimal Steiner trees, but probably hard to find and detect in general. Our algorithm in Figure 4 will thus use the concept of (T, Z)-confederations only implicitly inside a dynamic programming approach. It builds a table of Steiner graphs for each Z′ ⊆ Z in order of cardinality. For subsets of size up to q, the Dreyfus–Wagner algorithm is employed. From then on, the cheapest bipartition

  • f Z′ is chosen. However, we only look at partitions where the smaller part is
  • f size at most q. Lemma 1 shows that we get an optimal Steiner tree this way

when we set q to be the maximum number of terminals in a single (T, Z)-region for some optimal Steiner tree T . Let us first formalize this concept. Definition 3. Let (G, ℓ) be a network and Z ⊆ V [G]. We say that Z is q- granular iff there exists an optimal Steiner tree T for Z in G such that |V [R] ∩ Z| ≤ q for every R ∈ R(T, Z). Theorem 1. Let (G, ℓ) be a network and Z ⊆ V [G] a set of terminals. If Z is q-granular, then the algorithm from Figure 4 computes an optimal Steiner tree for Z.

  • Proof. Let us prove the following statement: If Z′ is (T, Z)-confederate for an
  • ptimal Steiner tree T , then S(Z′) is an optimal Steiner tree for Z′. This will

entail the claim, since Z is (T, Z)-confederate for any Steiner tree.

1 for all 2 Z′ ⊆ Z such that |Z′| ≤ q do 3 S(Z′) ← Dreyfus–Wagner((G, ℓ), Z′) 4

  • d; for all Z′ ⊆ Z (ascending size) such that

5 |Z′| > q do 6 S(Z′) ← G; 7 for all Z′′ ⊆ Z′ and v ∈ Z′′ such that 2 ≤ |Z′′| ≤ q do 8 if ℓ(S(Z′′)) + ℓ(S(Z′ − Z′′ ∪ {v})) < ℓ(S(Z′)) 9 then S(Z′) ← S(Z′′) ∪ S(Z′ − Z′′ ∪ {v}) fi 10

  • d

11

  • d; return S(Z)
  • Fig. 4. Computing a Steiner tree for a q-granular set Z of terminals
slide-6
SLIDE 6

566

  • D. M¨
  • lle, S. Richter, and P. Rossmanith

. . .

  • Fig. 5. The n × 2-grid as a network with emphasized terminals Z, edges of weight 1

(thin) and edges of weight 2 + 1/(n − 1) + 1/n2 (thick). All the thin edges form the unique optimal Steiner tree T for Z, implying that Z is q-granular only for q ≥ n. Observe that optimal Steiner trees for any Z1, Z2 with Z1 ∪Z2 = Z, |Z1 ∩Z2| = 1, and |Z1|, |Z2| ≥ 2 do not combine to form an optimal Steiner tree for Z.

Let T ′ be the (T, Z)-confederation that corresponds to Z′. We use induction

  • n the number of regions in T ′. Since Z is q-granular, the claim holds if T ′ is

a single region, by correctness of the Dreyfus–Wagner algorithm. For a (T, Z)- confederation T ′ = R1 ∪ · · · ∪ Rt with t ≥ 2, we can find a region—say R1—that shares only a single node v with the other regions, such that R2 ∪ · · · ∪ Rt is still a (T, Z)-confederation. By Lemma 1, R1 as well as R2 ∪ · · · ∪ Rt constitute

  • ptimal Steiner trees for their respective terminals. Because these trees are edge-

disjoint, Lemma 2 applies. Using the induction hypothesis, we thus get that S′ := S(Z ∩ V [R1]) ∪ S(Z ∩ V [R2 ∪ · · · ∪ Rt]) is an optimal Steiner tree for Z′. Because Z is q-granular, at some time in line seven Z′′ = Z∩V [R1] and Z′−Z′′∪ {v} = Z ∩ V [R2 ∪ · · · ∪Rt]. Therefore, the algorithm will eventually consider S′. Any graph S(Z′) computed by the algorithm is a Steiner graph for Z′. Thus, if S(Z′) = S′ at any time during the computation, S′ cannot be replaced because it is optimal. With the same argument, S(Z′) will be set to S′ at some point, unless S(Z′) already contains another optimal Steiner tree for Z′. ⊓ ⊔ The network shown in Figure 5 illustrates the importance of the concept of q-granularity for this theorem: If no two optimal Steiner trees for Z1, Z2 with Z1 ∪ Z2 = Z, |Z1 ∩ Z2| = 1, and |Z1|, |Z2| ≥ 2 combine to form an optimal Steiner tree for Z, the algorithm from Figure 4 is bound to fail for q < n.

3 Extending a Terminal Set

In the previous section, we established an algorithm that finds an optimal Steiner tree for any q-granular terminal set Z in a network (G, ℓ). In general, however, a terminal set Y can be |Y |-granular in the worst-case. Neither is this case absurd—it just needs all terminals to be leafs in every optimal Steiner tree— nor is it obvious how to predict the granularity of an instance. That seems to render the algorithm completely useless (in these instances, the Dreyfus–Wagner implementation would do all the work). Fortunately, it is possible to reduce granularity by extending terminal sets. The following lemma shows how we can achieve nearly arbitrary granularities by incorporating only a limited number of additional terminals. Lemma 3. Let T be an optimal Steiner tree for some Y ⊆V [T ], and q an inte- ger with 2 ≤q ≤|Y |. There is a set Z ⊆V [T ], Y ⊆Z, such that |Z| ≤ |Y | + |Y |

q−1

and |V [R]∩Z| ≤ q for every (T, Z)-region, implying that Z is q-granular.

slide-7
SLIDE 7

A Faster Algorithm for the Steiner Tree Problem 567

  • Proof. Consider the following algorithm:
  • 1. Let Z := Y .
  • 2. While T contains a (T, Z)-region R with 2 ≤ |V [R]∩Z| ≤ q that only shares

a single node v with the other (T, Z)-regions, remove R save v from T .

  • 3. If T is only a single (T, Z)-region with |V [T ] ∩ Z| ≤ q, then output Z and

stop.

  • 4. Choose a root r in T and let v := r.
  • 5. While a subtree rooted in a child w of v contains more than q −1 nodes from

Z, let v := w.

  • 6. Add v to Z and go to step (2).

See Figure 6 for an illustration of how the above algorithm constructs such a set Z. To prove the correctness, let us first show that each time a node v is added to Z in step (6), at least q nodes from Z are removed in step (2) immediately. It is easy to see that subtrees rooted at some node v can be turned into (T, Z)-regions by adding v to Z, and that these regions will then be removed by step (2) (save v). Moreover, as soon as |V [T ] ∩ Z| ≤ q, step (3) will terminate the algorithm. Whenever the while-loop in step (5) terminates, each subtree rooted at a child w of v contains at most q − 1 nodes from Z. Hence, by adding v to Z, each

  • f these subtrees becomes a (T, Z)-region containing at most q nodes from Z.

On the other hand, the union of all the subtrees rooted at v contains more than q − 1 nodes from Z, because v would not have been chosen by the while-loop in step (5) otherwise. Furthermore, v cannot be in Z yet—otherwise, step (2) would have removed the regions originating from the subtrees rooted at v. Thus, |Z| ≤ |Y | + |Y |

q−1 follows.

← ←

  • Fig. 6. We apply the algorithm from Lemma 3 to a tree T with emphasized terminals Z,

using q = 3 and always choosing the upper node as a root. Executing step (2) leads to the removal of four subtrees. Then, step (5) chooses another node for addition to Z. In the next iterations of step (2), three more subtrees are deleted. Another iteration removes yet another subtree. After that, step (5) chooses the root for addition to Z. Finally, after applying steps (2) and (3), the algorithm terminates.

slide-8
SLIDE 8

568

  • D. M¨
  • lle, S. Richter, and P. Rossmanith

It remains to show that |V [R] ∩ Z| ≤ q for every R ∈ R(T, Z). This is

  • bvious, because the algorithm only removes sufficiently small regions (save some

articulation nodes) from T repeatedly, until the tree is a single small region or a single terminal. Since q or more nodes from Z are removed whenever a node v is added to Z, the size of Z decreases by at least q−1 in every such case. However, the algorithm does not add any more nodes to Z as soon as |V [T ] ∩ Z| ≤ q. The size of Z is thus bounded from above by |Y | + ⌈(|Y | − q)/(q − 1)⌉ ≤ |Y | + |Y |/(q − 1). ⊓ ⊔ Observe that every optimal Steiner tree for Z is also an optimal Steiner tree for Y : Because Z is a superset of Y and Z ⊆ V [T ], T is also an optimal Steiner tree for Z. Any other optimal Steiner tree T ′ for Z has the same weight and connects all the nodes from Y , too. Of course, Lemma 3 only serves to show the existence of a small set of ex- tension terminals, even though the proof is algorithmical in nature. Without an optimal Steiner tree, we do not seem to have other means than exhaustive search to find the right extension nodes. Let us now accumulate the threads and analyze the running time for the new method: Theorem 2. For every δ ∈ (0, 1] there is an algorithm that computes an optimal Steiner tree for an arbitrary network (G, ℓ) and terminal set Y ⊆ V [G] in at most (2 + δ)|Y |poly(|V [G]|) steps.

  • Proof. Choose ε > 0 such that 12ε ln(1/3/ε) = δ and let q = ⌈ε|Y |⌉ + 1. If

|Y | < 1/ε, then the number of terminals is bounded by a constant, allowing us to find an optimal Steiner tree in polynomial time employing the Dreyfus– Wagner algorithm. Otherwise, there is a q-granular Z ⊆ V [G], Y ⊆ Z, of size ⌊|Y | + |Y |/(q − 1)⌋ such that any optimal Steiner tree for Z also constitutes an optimal Steiner tree for Y , due to Lemma 3. Moreover, by Lemma 1, we may employ the algo- rithm from Figure 4 to obtain an optimal Steiner tree for Z, solving the entire problem. Unfortunately, we do not know Z. We can, however, just go through all X ⊆ V [G] with |X| = ⌊|Y |/(q − 1)⌋ and run the algorithm for Z = Y ∪ X. Since it always outputs Steiner graphs for Z and it finds an optimal Steiner tree for Z at least once, the cheapest Steiner graph returned is indeed an optimal Steiner tree for Z. The runtime can be estimated as follows. It is easy to see that q ≤ |Z|/2, since ε < 1/20 even for δ = 1. For n = |V [G]|, the running time of lines 1–3 of the algorithm is

q

  • i=1

|Z| i

  • 3ipoly(n) ≤

|Z| q

  • 3qpoly(n),

because the running time of the Dreyfus–Wagner algorithm is 3ipoly(n) if there are i terminals. The running time of lines 4–10 can be estimated by

slide-9
SLIDE 9

A Faster Algorithm for the Steiner Tree Problem 569

1 1/5 ρ 1 ρ

ρ

( 1 − ρ )

1−ρ

1 + 2 ρ l n

1 ρ |Z|

  • i=q

|Z| i

  • q
  • j=2

i j

  • poly(n) ≤ 2|Z|

|Z| q

  • poly(n).

Now let ρ = q/|Z| and assume ρ < 3/20, which will be proven correct later. By a well-known estimation and some technical formula manipulations we get |Z| ρ|Z|

  • 1

ρρ(1 − ρ)1−ρ |Z| ≤

  • 1 + 2ρ ln(1/ρ)

|Z|. We also have that |Z| = |X| + |Y | ≤ |Y | + 1/ε, be- cause |X| ≤ |Y |/(q − 1) ≤ |Y |/ε|Y |. Therefore, there are no more than n1/ε = poly(n) possibilities to choose X. Taking this into consideration, the overall time to compute an optimal Steiner tree becomes 2|Y |+1/ε 1 + 2ρ ln(1/ρ) |Y |+1/εpoly(n) ≤

  • 2 + 12ε ln(1/3/ε)

|Y |poly(n), where the inequality holds because by |Y | ≥ 1/ε, ρ = q |Z| = ⌈ε|Y |⌉ + 1 |Y | +

  • |Y |/(q − 1)
  • =

⌈ε|Y |⌉ + 1 |Y | +

  • |Y |/⌈ε|Y |⌉

≤ ε|Y | + 2 |Y | ≤ ε + 2 1/ε = 3ε < 3 20. In total, we get an algorithm with running time (2 + δ)|Y |poly(n). ⊓ ⊔

4 Remarks on Running Time

Of course, the constants in the above worst-case analysis become very large even for moderate δ. On the other hand, we used many extremely rough estimations. This is because we put the emphasis on the asymptotical behavior, as we aimed to improve the running time from O(3k · n3) to ck · poly(n) for c as close to 2 as we like, concentrating on obtaining a simple analysis rather than the best possible bounds. The polynomial degree in the running time contains 1/ε as an additive term. This can be improved to O(ε−2/3) by dividing the process into two stages using different granularities. However, the analysis becomes quite involved at this point. It remains an open question whether the problem can be solved in 2k · poly(n). The fact that we need to go through many extension sets X seems to play a dominant role in the running time of our algorithm for practical values of k. For many instances, however, a much smaller set X might suffice. To make use

  • f this, the following property would be very useful: If the algorithm outputs a

non-optimal Steiner graph for all sets X of size q, then it finds a cheaper Steiner

slide-10
SLIDE 10

570

  • D. M¨
  • lle, S. Richter, and P. Rossmanith

graph for some set X of size q + 1. Unfortunately, the grid in Figure 5 proves to be a counter-example to this conjecture. Still, finding relaxed versions of this property might be an interesting question for future research. On a final note, the idea of joining more than two partial solutions to speed up dynamic programming algorithms seems to lend itself to generalization. The application of this principle might result in better runtime bounds for many problems.

  • Acknowledgement. We thank the anonymous referees for many helpful com-

ments.

References

  • 1. R. Beigel. Finding maximum independent sets in sparse and general graphs. In
  • Proc. of 10th SODA, pages 856–857, 1999.
  • 2. M. Bern and P. Plassmann.

The Steiner problem with edge lengths 1 and 2. Information Processing Letters, 32:171–176, 1989.

  • 3. S. E. Dreyfus and R. A. Wagner. The Steiner problem in graphs. Networks, 1:195–

207, 1972.

  • 4. F. V. Fomin, F. Grandoni, and D. Kratsch. Measure and conquer: Domination –

A case study. In Proc. of 32d ICALP, LNCS. Springer, 2005.

  • 5. K. Iwama and S. Tamaki.

Improved upper bounds for 3-SAT. In Proc. of 15th SODA, pages 328–328, 2004.

  • 6. J. Kneis, D. M¨
  • lle, S. Richter, and P. Rossmanith.

Algorithm based on the treewidth of sparse graphs. In Proc. of 31st WG, LNCS. Springer, 2005. To appear.

  • 7. G. Robins and A. Zelikovsky. Improved Steiner tree approximation in graphs. In
  • Proc. of 11th SODA, pages 770–779, 2000.
  • 8. J. M. Robson. Algorithms for maximum independent sets. Journal of Algorithms,

7:425–440, 1986.

  • 9. A. Scott and G. B. Sorkin. Faster algorithms for Max-CUT and Max-CSP, with

polynomial expected time for sparse instances. In Proc. of 7th RANDOM, number 2764 in LNCS, pages 382–395. Springer, 2003.

  • 10. R. Williams.

A new algorithm for optimal constraint satisfaction and its im- plications. In Proc. of 31st ICALP, number 3142 in LNCS, pages 1227–1237. Springer, 2004.