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

Slides:



Advertisements
Similar presentations
Polynomial-time reductions We have seen several reductions:
Advertisements

1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
NP-Completeness More Reductions. Definitions P: is the class of all decision problems which can be solved in polynomial time, O(n^k) for some constant.
1 The TSP : Approximation and Hardness of Approximation All exact science is dominated by the idea of approximation. -- Bertrand Russell ( )
Department of Computer Science & Engineering
1 Steiner Tree on graphs of small treewidth Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij.
1 NP-Complete Problems. 2 We discuss some hard problems:  how hard? (computational complexity)  what makes them hard?  any solutions? Definitions 
Combinatorial Algorithms
CSC5160 Topics in Algorithms Tutorial 2 Introduction to NP-Complete Problems Feb Jerry Le
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
Hardness Results for Problems P: Class of “easy to solve” problems Absolute hardness results Relative hardness results –Reduction technique.
Approximation Algorithms: Combinatorial Approaches Lecture 13: March 2.
1 Optimization problems such as MAXSAT, MIN NODE COVER, MAX INDEPENDENT SET, MAX CLIQUE, MIN SET COVER, TSP, KNAPSACK, BINPACKING do not have a polynomial.
1 Vertex Cover Problem Given a graph G=(V, E), find V' ⊆ V such that for each edge (u, v) ∈ E at least one of u and v belongs to V’ and |V’| is minimized.
2-Layer Crossing Minimisation Johan van Rooij. Overview Problem definitions NP-Hardness proof Heuristics & Performance Practical Computation One layer:
Efficient algorithms for Steiner Tree Problem Jie Meng.
Odds and Ends HP ≤ p HC (again) –Turing reductions Strong NP-completeness versus Weak NP-completeness Vertex Cover to Hamiltonian Cycle.
Complexity ©D.Moshkovitz 1 Paths On the Reasonability of Finding Paths in Graphs.
Steiner trees Algorithms and Networks. Steiner Trees2 Today Steiner trees: what and why? NP-completeness Approximation algorithms Preprocessing.
Approximation Algorithms Motivation and Definitions TSP Vertex Cover Scheduling.
Hardness Results for Problems
Approximation Algorithms
Minimum Spanning Trees. Subgraph A graph G is a subgraph of graph H if –The vertices of G are a subset of the vertices of H, and –The edges of G are a.
Outline Introduction The hardness result The approximation algorithm.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
Programming & Data Structures
V. V. Vazirani. Approximation Algorithms Chapters 3 & 22
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
Fixed Parameter Complexity Algorithms and Networks.
1 The TSP : NP-Completeness Approximation and Hardness of Approximation All exact science is dominated by the idea of approximation. -- Bertrand Russell.
1 Introduction to Approximation Algorithms. 2 NP-completeness Do your best then.
Advanced Algorithm Design and Analysis (Lecture 13) SW5 fall 2004 Simonas Šaltenis E1-215b
Lecture 22 More NPC problems
Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree R 陳建霖 R 宋彥朋 B 楊鈞羽 R 郭慶徵 R
Prabhas Chongstitvatana1 NP-complete proofs The circuit satisfiability proof of NP- completeness relies on a direct proof that L  p CIRCUIT-SAT for every.
Approximation Algorithms
Polynomial-time reductions We have seen several reductions:
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
Introduction to Graph Theory
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
NP-Complete problems.
WK15. Vertex Cover and Approximation Algorithm By Lin, Jr-Shiun Choi, Jae Sung.
NP-Completeness (Nondeterministic Polynomial Completeness) Sushanth Sivaram Vallath & Z. Joseph.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
CSE 589 Part V One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important. Bertrand Russell.
1 Approximation algorithms Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij TexPoint fonts used in EMF. Read the TexPoint manual.
CSC 413/513: Intro to Algorithms
CSE 421 Algorithms Richard Anderson Lecture 27 NP-Completeness Proofs.
The Theory of NP-Completeness 1. Nondeterministic algorithms A nondeterminstic algorithm consists of phase 1: guessing phase 2: checking If the checking.
Introduction to NP Instructor: Neelima Gupta 1.
COSC 3101A - Design and Analysis of Algorithms 14 NP-Completeness.
TU/e Algorithms (2IL15) – Lecture 10 1 NP-Completeness, II.
Steiner trees: Approximation Algorithms
Richard Anderson Lectures NP-Completeness
Richard Anderson Lecture 26 NP-Completeness
Efficient algorithms for Steiner Tree Problem
Richard Anderson Lecture 26 NP-Completeness
Graph theory Definitions Trees, cycles, directed graphs.
Computability and Complexity
1.3 Modeling with exponentially many constr.
Autumn 2016 Lecture 11 Minimum Spanning Trees (Part II)
Parameterised Complexity
Autumn 2015 Lecture 11 Minimum Spanning Trees (Part II)
Richard Anderson Lecture 25 NP-Completeness
1.3 Modeling with exponentially many constr.
CSE 373: Data Structures and Algorithms
Winter 2019 Lecture 11 Minimum Spanning Trees (Part II)
Lecture 24 Vertex Cover and Hamiltonian Cycle
Autumn 2019 Lecture 11 Minimum Spanning Trees (Part II)
Presentation transcript:

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.

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*(2 k )-time.  Uses inclusion/exclusion.  Algorithm invented by one of our former students.

4 INTRODUCTION Steiner Tree – Algorithms and Networks

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.

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

7 POLYNOMIAL-TIME SOLVABLE SPECIAL CASES Steiner Tree – Algorithms and Networks

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).

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.

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).

11 O*(2 K ) ALGORITHM BY INCLUSION/EXCLUSION Steiner Tree – Algorithms and Networks

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.

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:

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.

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 2 k 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.

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...

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.

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 2 k-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).

19 Counting Branching Walks  Let B W (v,j) be the number of branching walks of length j starting in v in G[W].  B W (v,0) = 1 for any vertex v.  B W (v,j) =  u 2 (N(v) Å W)  j 1 + j 2 = j-1 B W (u,j 1 ) B W (v,j 2 )  j 2 = 0 covers the case where we do not branch / split up and walk to vertex u.  Otherwise, a subtree of size j 1 is created from neighbour u, while a new tree of size j 2 is added starting in v. This splits off one branch, and can be repeated to split of more branches.  We can compute B W (v,j) for j = 0,1,2,....,t.  All in polynomial time.

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 2 k-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.

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