1 steiner tree algorithms and networks 2014/2015 hans l. bodlaender johan m. m. van rooij

21
1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

Upload: justin-pearson

Post on 16-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

1

Steiner Tree

Algorithms and Networks 2014/2015Hans L. Bodlaender

Johan M. M. van Rooij

Page 2: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

2

The Steiner Tree Problem

Let G = (V,E) be an undirected graph, and let N µ V be a subset of the terminals.

A Steiner tree is a tree T = (V’,E’) in G connecting all terminals in N V’ µ V, E’ µ E, N µ V’ We use k=|N|.

Streiner tree problem: Given: an undirected graph G = (V,E), a terminal set N µ V, and

an integer t. Question: is there a Steiner tree consisting of at most t edges

in G.

Page 3: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

3

My Last Lecture

Steiner Tree. Interesting problem that we have not seen yet.

Introduction Variants / applications NP-Completeness

Polynomial time solvable special cases. Distance network.

Solving Steiner tree with k-terminals in O*(2k)-time. Uses inclusion/exclusion. Algorithm invented by one of our former students.

Page 4: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

4

INTRODUCTIONSteiner Tree – Algorithms and Networks

Page 5: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

5

Variants and Applications

Applications: Wire routing of VLSI. Customer’s bill for renting communication networks. Other network design and facility location problems.

Some variants: Vertices are points in the plane. Vertex weights / edge weights vs unit weights. Different variants for directed graphs.

Page 6: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

6

Steiner Tree is NP-Complete

Steiner Tree is NP-Complete. Membership of NP: certificate is a subset

of the edges. NP-Hard: reduction from Vertex Cover.

Take an instance of Vertex Cover, G=(V,E), integer k.

Build G’=(V’,E’) by subdividing each edge. Set N = set of newly introduced vertices. All edges length 1. Add one superterminal connected to all

vertices. G’ has Steiner Tree with |E|+k edges, if

and only if, G has vertex cover with k vertices.

= terminal

Page 7: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

7

POLYNOMIAL-TIME SOLVABLE SPECIAL CASES

Steiner Tree – Algorithms and Networks

Page 8: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

8

Special Cases of Steiner Tree

k = 1: trivial. k = 2: shortest path. k = n: minimum spanning tree.

k = c = O(1): constant number of terminals, polynomial-time solvable (next slides).

Page 9: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

9

Distance Networks

Distance network D(X) of G=(V,E) (induced by the set X). Take complete graph with vertex set X.

Cost of edge {v,w} in distance network is length shortest path from v to w in G.

Observations: Let W be the set of vertices of degree larger than two for an

optimal Steiner tree T in G with terminal set N. The Steiner tree T consists of a series of shortest paths between

vertices in N [ W. The cost of T equals the cost of the minimum spanning tree in

D(N[W). The cost of the optimal Steiner tree in D(V) equals the cost of T.

Page 10: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

10

Steiner Tree with O(1) Terminals

Suppose |N|= k is constant c. Compute distance network D(V). There is a minimum cost Steiner tree in D(V) that contains

at most k – 2 non-terminals. Any Steiner tree that has one that is no longer without non-

terminal vertices of degree 1 and 2. A tree with r leaves and internal vertices of degree at least 3

has at most r – 2 internal vertices.

Polynomial time algorithm for k = O(1) terminals: Enumerate all sets W of at most k – 2 non-terminals in G. For each W, find a minimum spanning tree in the distance

network D(NÈW). Take the best over all these solutions

Takes polynomial time for fixed k = O(1).

Page 11: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

11

O*(2K) ALGORITHM BY INCLUSION/EXCLUSION

Steiner Tree – Algorithms and Networks

Page 12: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

12

Some background on the algorithm

Algorithm invented by Jesper Nederlof. Just after he finished his Master thesis supervised by Hans (and

a little bit by me). Master thesis on Inclusion/Exclusion algorithms.

Page 13: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

13

A Recap: Inclusion/Exclusion Formula

General form of the Inclusion/Exclusion formula:

Let N be a collection of objects (anything). Let 1,2, ...,n be a series of requirements on objects. Finally, let for a subset W µ {1,2,...,n}, N(W) be the number

of objects in N that do not satisfy the requirements in W.

Then, the number of objects X that satisfy all requirements is:

},...,2,1{

|| )()1(nW

W WNX

Page 14: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

14

The Inclusion/Exclusion formula:Alternative proofs

Various ways to prove the formula.1. See the formula as a branching algorithm branching on a

requirement: required = optional – forbidden

2. If an object satisfies all requirements, it is counted in N(Æ).If an object does not satisfy all requirements, say all but those in a set W’, then it is counted in all W µ W’ With a +1 if W is even, and a -1 if W is odd. W’ has equally many even as odd subsets: total contribution is 0.

},...,2,1{

|| )()1(nW

W WNX

Page 15: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

15

Using the Inclusion/Exclusion Formula for Steiner Tree (problematic version)

One possible approach: Objects: trees in the graph G. Requirements: contain every terminal.

Then we need to compute 2k times the number of trees in a subgraph of G. For each W µ N, compute trees in G[V\W].

However, counting trees is difficult: Hard to keep track of which vertices are already in the tree.

Compare to Hamiltonian Cycle: We want something that looks like a walk, so that we do not

need to remember where we have been.

},...,2,1{

|| )()1(nW

W WNX

Page 16: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

16

Branching Walks

Definition: Branching walk in G=(V,E) is a tuple (T,Á): Ordered tree T. Mapping Á from nodes of T to nodes of G, s.t. for any edge {u,v}

in the tree T we have that {Á(u),Á(v)} 2 E.

The length of a branching walk is the number of edges in T. When r is the root of T, we say that the branching walk

starts in Á(r) 2 V. For any n 2 T, we say that the branching walk visits all

vertices Á(n) 2 V.

Some examples on the blackboard...

Page 17: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

17

Branching Walks and Steiner Tree

Definition: Branching walk in G=(V,E) is a tuple (T,Á): Ordered tree T. Mapping Á from nodes of T to nodes of G, s.t. for any edge

{u,v} in the tree T we have that {Á(u),Á(v)} 2 E.

Lemma: Let s 2 N a terminal. There exists a Steiner tree T in G with at most c edges, if and only if, there exists a branching walk of length at most c starting in s visiting all terminals N.

Page 18: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

18

Using the Inclusion/Exclusion Formula for Steiner Tree

Approach: Objects: branching walks from

some s 2 N of length c in the graph G. Requirements: contain every terminal in N\{s}.

We need to compute 2k-1 times the number of branching walks of length c in a subgraph of G. For each W µ N\{s}, compute branching walks from s in G[V\

W].

Next: how do we count branching walks? Dynamic programming (similar to ordinary walks).

},...,2,1{

|| )()1(nW

W WNX

Page 19: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

19

Counting Branching Walks

Let BW(v,j) be the number of branching walks of length j starting in v in G[W].

BW(v,0) = 1 for any vertex v.

BW(v,j) = u2(N(v)ÅW) j1 + j2 = j-1 BW(u,j1) BW(v,j2)

j2 = 0 covers the case where we do not branch / split up and walk to vertex u.

Otherwise, a subtree of size j1 is created from neighbour u, while a new tree of size j2 is added starting in v.This splits off one branch, and can be repeated to split of more branches.

We can compute BW(v,j) for j = 0,1,2,....,t. All in polynomial time.

Page 20: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

20

Putting It All Together

Algorithm: Choose any s 2 N. For t = 1, 2, …

Use the inclusion/exclusion formula to count the number of branching walks from s of length t visiting all terminals N.

This results in 2k-1 times counting branching walks from s of length c in G[V\W].

If this number is non-zero: stop the algorithm and output that the smallest Steiner tree has size t.

},...,2,1{

|| )()1(nW

W WNX

Page 21: 1 Steiner Tree Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij

21

THAT’S ALL FOLKS…Steiner Tree – Algorithms and Networks