Tight Approximation for Variants of Directed Steiner Tree via State-Tree Decomposition and Linear Programming Rounding

07/26/2019
by   Xiangyu Guo, et al.
0

Directed Steiner Tree (DST) is a central problem in combinatorial optimization and theoretical computer science. Recently, Grandoni, Laekhanukit and Li and independently Ghuge and Nagarajan gave quasi-polynomial time O(^2k/ k)-approximation algorithms for the problem, which is tight under popular complexity assumptions. In this paper, we show a general framework that achieves O( n k)-approximation for many variants of DST. We show that if the problem has the property that the validity of the tree and its cost can be checked and computed using a bottom-to-top procedure, then the general framework can be used to produce a small-cost multi-tree: a tree that may contain multiple copies of a vertex or an edge. Using the framework, we show that two prominent variants of DST, namely Length-Bounded DST (LB-DST) and Buy-at-Bulk DST with Concave Cost Functions (BaB-DST-Concave), admit O( n k)-approximation algorithms. In the Length-Bounded Directed Steiner Tree (LB-DST) problem, there are bounds on lengths of paths from the root to vertices in the output tree. In the Buy-at-Bulk DST problem with Concave Functions (BaB-DST-Concave), each terminal needs to receive a flow from the root and the cost of each edge is a concave function on the total amount of flow that it carries. Our results almost match the best known O( ^2k/ k) algorithm that have recently been discovered by Ghuge and Nagarajan. Another variant that fits into the framework is the Degree-Bounded DST (DB-DST) problem. In this problem, we are additionally given a degree bound d_v on each vertex v ∈ V, which imposes the constraint that v is allowed to have at most d_v children in the output tree. In this case, our framework gives an O(^3n k, n k)-bicritiera approximation, which is the first non-trivial result for the problem.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset