1. Steiner Tree parameterized by Treewidth
Saket Saurabh
The Institute of Mathematical Sciences, India
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
1 / 10
2. The Steiner Tree Problem
Steiner Tree
Input: A gonnected graph G of treewidth t, a set of Terminal vertices
K ⊆ V (G ).
Question: Find a minimum size sub-tree S of G such that K is connected in S.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
2 / 10
3. The Steiner Tree Problem
Steiner Tree
Input: A gonnected graph G of treewidth t, a set of Terminal vertices
K ⊆ V (G ).
Question: Find a minimum size sub-tree S of G such that K is connected in S.
Theorem
Steiner Tree parameterized by treewidth is solvable in time
t O(t) poly (n).
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
2 / 10
4. Tree Decomposition
We are given a Tree Decomposition T = (T , χ) of the graph G , where T
is rooted at a vertex r .
For a node i ∈ T , Xi is the corresponding bag of vertices of G .
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
3 / 10
5. Dynamic Programming
Let S be an optimum steiner
tree.
Let Xi be a bag in T and G [Vi ]
be the graph “below” Xi .
Corresponding to Xi we need to
store a table of partial solutions.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
6. Dynamic Programming
Let F = S ∩ G [Vi ]. So F
contains all terminals in K ∩ Vi .
F is a forest of G [Vi ] and let
F1 , F2 , . . . , Fl be it’s connected
components.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
7. Dynamic Programming
Let F = S ∩ G [Vi ]. So F
contains all terminals in K ∩ Vi .
F is a forest of G [Vi ] and let
F1 , F2 , . . . , Fl be it’s connected
components.
H = F ∩ Xi and X = Xi F .
Let E (H) be the edges in G [H]
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
8. Dynamic Programming
Let F = S ∩ G [Vi ]. So F
contains all terminals in K ∩ Vi .
F is a forest of G [Vi ] and let
F1 , F2 , . . . , Fl be it’s connected
components.
H = F ∩ Xi and X = Xi F .
Let E (H) be the edges in G [H]
Pq = Fq ∩ Xi where
q ∈ {1, 2 . . . l}. Let
P = {Pq |q ∈ {1, 2 . . . l}}
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
9. Dynamic Programming
Let F = S ∩ G [Vi ]. So F
contains all terminals in K ∩ Vi .
F is a forest of G [Vi ] and let
F1 , F2 , . . . , Fl be it’s connected
components.
H = F ∩ Xi and X = Xi F .
Let E (H) be the edges in G [H]
Pq = Fq ∩ Xi where
q ∈ {1, 2 . . . l}. Let
P = {Pq |q ∈ {1, 2 . . . l}}
P is a partition of H, where Pq
is the set of vertices of H which
are connected in the tree Fq
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
10. Dynamic Programming
Let F = S ∩ G [Vi ]. So F
contains all terminals in K ∩ Vi .
F is a forest of G [Vi ] and let
F1 , F2 , . . . , Fl be it’s connected
components.
H = F ∩ Xi and X = Xi F .
Let E (H) be the edges in G [H]
Pq = Fq ∩ Xi where
q ∈ {1, 2 . . . l}. Let
P = {Pq |q ∈ {1, 2 . . . l}}
P is a partition of H, where Pq
is the set of vertices of H which
are connected in the tree Fq
Therefore corresponding to F
we have a tuple (X , H, P).
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
11. Dynamic Programming
Suppose forests F1 and F2
which correspond to the same
tuple (X , H, P).
Then (S F1 ) ∪ F2 is also a
solution.
Thus we only need to keep only
a minimum F corresponding to
each choice of (X , H, P) in Xi .
The dynamic programming table
stores the following,
c[X , H, P, i] = |F |
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
12. Dynamic Programming
Suppose forests F1 and F2
which correspond to the same
tuple (X , H, P).
Then (S F1 ) ∪ F2 is also a
solution.
Thus we only need to keep only
a minimum F corresponding to
each choice of (X , H, P) in Xi .
The dynamic programming table
stores the following,
c[X , H, P, i] = |F |
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
13. Dynamic Programming
We build the dynamic
programming table in a bottom
up fashion.
Finally, we output the minimum
sized F corresponding to the
root-bag of T .
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
4 / 10
14. Leaf Nodes
For a leaf node Xi of T , |G [Vi ]| ≤ t + 1.
Thus we can compute the table entries in time t O(t) using a
bruteforce algorithm.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
5 / 10
15. Forget Node
Let Xi be a forget node with child node Xj .
For each tuple of Xi we store the minimum of the Xj which are
consistent with it.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
6 / 10
16. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
17. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
18. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Otherwise, v ∈ X .
/
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
19. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Otherwise, v ∈ X .
/
Assume that v ∈ P1 where P1 ∈ P.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
20. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Otherwise, v ∈ X .
/
Assume that v ∈ P1 where P1 ∈ P.
Let F1 be the tree corresponding to P1 .
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
21. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Otherwise, v ∈ X .
/
Assume that v ∈ P1 where P1 ∈ P.
Let F1 be the tree corresponding to P1 .
Deleting v fro P1 results in subtrees
p
1
2
F1 , F1 , . . . , F1 .
This gives us a tuple (X , H v , P ) of Xj where
p
1
P = {P1 , . . . P1 } ∪ (P {P1 })
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
22. Introduce Node
Let Xi be an introduce node with child node Xj .
Xi = Xj ∪ {v }
Suppose v ∈ X .
If v is a terminal then, the table entries will be φ.
Else, c[X , H, P, i] = c[X v , H, P].
Otherwise, v ∈ X .
/
Assume that v ∈ P1 where P1 ∈ P.
Let F1 be the tree corresponding to P1 .
Deleting v fro P1 results in subtrees
p
1
2
F1 , F1 , . . . , F1 .
This gives us a tuple (X , H v , P ) of Xj where
p
1
P = {P1 , . . . P1 } ∪ (P {P1 })
Therefore, c(X , H, P, i) = minP c(X , H v , P , j)
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
7 / 10
23. Join Node
Let Xi be a join-node with children Xj and Xk .
We merge the solution of Xj and Xk , but we must
carefully avoid cycles.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
8 / 10
24. Join Node
Let Xi be a join-node with children Xj and Xk .
We merge the solution of Xj and Xk , but we must
carefully avoid cycles.
Consider a tree F in G [Vi ],
q
1
2
F = (Fj1 ∪ Fj2 . . . Fjp ) (Fk ∪ Fk . . . Fk )
p
q
1
(Fj1 , . . . , Fj ) correspond to Xj and (Fk , . . . , Fk )
correspond to Xk
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
8 / 10
25. Join Node
Let Xi be a join-node with children Xj and Xk .
We merge the solution of Xj and Xk , but we must
carefully avoid cycles.
Consider a tree F in G [Vi ],
q
1
2
F = (Fj1 ∪ Fj2 . . . Fjp ) (Fk ∪ Fk . . . Fk )
p
q
1
(Fj1 , . . . , Fj ) correspond to Xj and (Fk , . . . , Fk )
correspond to Xk
Therefore we have a corresponding (X , H, P) for
Xi (X , Hj , Pj ) for Xj and (X , Hk , Pk ) for Xk .
(H, P) is obtained by tree-merge of (Hj , Pj ) and
(Hk , Pk ).
Given (Hj , Pj ) and (Hk , Pk ) we can build an
auxillary graph and test if they can be tree-merged.
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
8 / 10
26. Join Node
Let Xi be a join-node with children Xj and Xk .
We merge the solution of Xj and Xk , but we must
carefully avoid cycles.
Consider a tree F in G [Vi ],
q
1
2
F = (Fj1 ∪ Fj2 . . . Fjp ) (Fk ∪ Fk . . . Fk )
p
q
1
(Fj1 , . . . , Fj ) correspond to Xj and (Fk , . . . , Fk )
correspond to Xk
Therefore we have a corresponding (X , H, P) for
Xi (X , Hj , Pj ) for Xj and (X , Hk , Pk ) for Xk .
(H, P) is obtained by tree-merge of (Hj , Pj ) and
(Hk , Pk ).
Given (Hj , Pj ) and (Hk , Pk ) we can build an
auxillary graph and test if they can be tree-merged.
Thus for H, P of Xi , we find the minimum partial
solutions in Xj and Xk which can be tree-merged.
c[X , H, P, i] = min(Pj ,Hj ,Pk ,Hk ) c[X , Hj , Pj , j] +
c[X , Hk , Pk , k] − |E (Hj ) ∩ E (Hk )|
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
8 / 10
27. Running Time
Clearly, the leaf, forget and introduce nodes take time t O(t) .
For the join operation, we need to go over all entries for Xi and Xk
which could be tree-merged.
This can be done in time t O(t) .
Thus the algorithm runs in time t O(t) .
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
9 / 10
28. Thank you. Questions ?
Saket Saurabh (The Institute of Mathematical Sciences, India)
Steiner Tree parameterized by Treewidth
10 / 10