A Logarithmic Integrality Gap Bound for Directed Steiner Tree in Quasi-bipartite Graphs 1footnote 11footnote 1This work was in part supported by NSERC’s Discovery grant program. The second author greatfully acknowledges the support of the Hausdorff Institute and the Institute for Discrete Mathematics in Bonn, Germany.

A Logarithmic Integrality Gap Bound for Directed Steiner Tree in Quasi-bipartite Graphs 111This work was in part supported by NSERC’s Discovery grant program. The second author greatfully acknowledges the support of the Hausdorff Institute and the Institute for Discrete Mathematics in Bonn, Germany.

Zachary Friggstad Department of Computing Science, University of Alberta
Edmonton, AB, Canada, T6G 2E8
Jochen Könemann Department of Combinatorics and Optimization, University of Waterloo
Waterloo, ON, Canada, N2L 3G1
Mohammad Shadravan Department of Industrial Engineering and Operations Research, Columbia University
New York, NY, USA, 10027

We demonstrate that the integrality gap of the natural cut-based LP relaxation for the directed Steiner tree problem is in quasi-bipartite graphs with terminals. Such instances can be seen to generalize set cover, so the integrality gap analysis is tight up to a constant factor. A novel aspect of our approach is that we use the primal-dual method; a technique that is rarely used in designing approximation algorithms for network design problems in directed graphs.

1 Introduction

In an instance of the directed Steiner tree (DST) problem, we are given a directed graph , non-negative costs for all , terminal nodes , and a root . The remaining nodes in are the Steiner nodes. The goal is to find the cheapest collection of edges such that for every terminal there is an -path using only edges in . Throughout, we let denote and denote .

If , then the problem is simply the minimum-cost arborescence problem which can be solved efficiently [4]. However, the general case is well-known to be NP-hard. In fact, the problem can be seen to generalize the set-cover and group Steiner tree problems. The latter cannot be approximated within for any constant unless [10].

For a DST instance , let denote the value of the optimum solution for this instance Say that an instance of DST with terminals is -layered if can be partitioned as where and every edge has and for some . Zelikovsky showed for any DST instance and integer that we can compute an -layered DST instance in poly time such that and that a DST solution in can be efficiently mapped to a DST solution in with the same cost [2, 17].

Charikar et al. [3] exploited this fact and presented an -approximation with running time for any integer . In particular, this can be used to obtain an -approximation in quasi-polynomial time and a polynomial-time -approximation for any constant . Finding a polynomial-time polylogarithmic approximation remains an important open problem.

For a set of nodes , we let be the set of edges entering . The following is a natural linear programming (LP) relaxation for directed Steiner tree.

s.t. (1)

This LP is called a relaxation because of the natural correspondence between feasible solutions to a DST instance and feasible -integer solutions to the corresponding LP (DST-Primal). Thus, if we let denote the value of an optimum (possibly fractional) solution to LP (DST-Primal) then we have . For a particular instance we say the integrality gap is ; we are interested in placing the smallest possible upper bound on this quantity.

Interestingly, if (the shortest path problem) or (the minimum-cost arborescence problem), the extreme points of (DST-Primal) are integral so the integrality gap is 1 ([12] and [4], respectively). However, in the general case Zosin and Khuller showed that (DST-Primal) is not useful for finding -approximation algorithms for DST [18]. The authors showed that the integrality gap of (DST-Primal) relaxation can, unfortunately, be as bad as , even in instances where is a 4-layered graph. In their examples, the number of nodes is exponential in so the integrality gap may still be for some constant .

On the other hand, Rothvoss recently showed that applying rounds of the semidefinite programming Lasserre hierarchy to (the flow-based extended formulation of) (DST-Primal) yields an SDP with integrality gap for -layered instances [14]. Subsequently, Friggstad et al. [6] showed similar results for the weaker Sherali-Adams and Lovász-Schrijver linear programming hierarchies.

In this paper we consider the class of quasi-bipartite DST instances. An instance of DST is quasi-bipartite if the Steiner nodes form an independent set (i.e., no directed edge has both endpoints in ). Such instances still capture the set cover problem, and thus do not admit an -approximation for any constant unless  [15, 5]. Furthermore, it is straightforward to adapt known integrality gap constructions for set cover (e.g. [16]) to show that the integrality gap of (DST-Primal) can be as bad as in some instances. Hibi and Fujito [11] give an -approximation for quasi-bipartite instances of DST, but do not provide any integrality gap bounds.

Quasi-bipartite instances have been well-studied in the context of undirected Steiner trees. The class of graphs was first introduced by Rajagopalan and Vazirani [13] who studied the integrality gap of (DST-Primal) for the bidirected map of the given undirected Steiner tree instances. Currently, the best approximation for quasi-bipartite instances of undirected Steiner tree is by Goemans et al. [8] who also bound the integrality gap of the bidirected cut relaxation by the same quantity. This is the same LP relaxation as (DST-Primal), applied to the directed graph obtained by replacing each undirected edge with the two directed edges and . This is a slight improvement over a prior -approximation for any constant by Byrka et al. [1].

The best approximation for general instances of undirected Steiner tree is for any constant [1]. However, the best known upper bound on the integrality gap of the bidirected cut relaxation for non-quasi-bipartite instances is only 2; it is an open problem to determine if this integrality gap is a constant-factor better than 2.

1.1 Our contributions

Our main result is the following. Let be the th harmonic number.

Theorem 1.

The integrality gap of LP (DST-Primal) is at most in quasi-bipartite graphs with terminals. Furthermore, a Steiner tree with cost at most can be constructed in polynomial time.

As noted above, Theorem 1 is asymptotically tight since any of the well-known integrality gap constructions for set cover instances with items translate directly to an integrality gap lower bound for (DST-Primal), using the usual reduction from set cover to 2-layered quasi-bipartite instances of directed Steiner tree.

This integrality gap bound asymptotically matches the approximation guarantee proven by Hibi and Fujito for quasi-bipartite DST instaces [11]. We remark that their approach is unlikely to give any integrality gap bounds for (DST-Primal) because they iteratively choose low-density full Steiner trees in the same spirit as [3] and give an -approximation for finding the optimum DST solution that does not contain a path with Steiner nodes . In particular, their approach will also find an -approximation to the optimum DST solution in 4-layered graphs and we know the integrality gap in some 4-layered instances is  [18].

We prove Theorem 1 by constructing a directed Steiner tree in an iterative manner. An iteration starts with a partial Steiner tree (see Definition 1 below), which consists of multiple directed components containing the terminals in . Then a set of arcs are purchased to augment this partial solution to one with fewer directed components. These arcs are discovered through a primal-dual moat growing procedure; a feasible solution for the dual (DST-Primal) is constructed and the cost of the purchased arcs can be bounded using this dual solution.

While the primal-dual technique has been very successful for undirected network design problems (e.g., see [9]), far fewer success stories are known in directed domains. Examples include a primal-dual interpretation of Dijkstra’s shortest path algorithm (e.g., see Chapter 5.4 of [12]), and Edmonds’ [4] algorithm for minimum-cost arborescences. In both cases, the special structure of the problem is instrumental in the primal-dual construction. One issue arising in the implementation of primal-dual approaches for directed network design problems appears to be a certain overlap in the moat structure maintained by these algorithms. We are able to handle this difficulty here by exploiting the quasi-bipartite nature of our instances.

2 The integrality gap bound

2.1 Preliminaries and definitions

We now present an algorithmic proof of Theorem 1. As we will follow a primal-dual strategy, we first present the LP dual of (DST-Primal).

s.t. (2)

In (DST-Dual), the sums range only over sets of nodes such that and .

Our algorithm builds up partial solutions, which are defined as follows.

Definition 1.

A partial Steiner tree is a tuple where, for each , is a subset of nodes, , and is a subset of edges with endpoints only in such that the following hold.

  • The sets form a partition .

  • (i.e. is a subset of Steiner nodes).

  • and for each .

  • For every and every , contains an -path.

We say that is the set of free Steiner nodes in and that is the head of for each . The edges of , denoted by , are simply . We say that are the components of where is the root component and are the non-root components.

Figure 1 illustrates a partial Steiner tree. Note that if is a partial Steiner tree with non-root components, then is in fact a feasible DST solution.

Finally, for a subset of edges we let .

Figure 1: A partial Steiner tree with non-root components (the root is pictured at the top). The only edges shown are those in some . The white circles are the heads of the various sets and the black circles are terminals that are not heads of any components. The squares outside of the components are the free Steiner nodes . Note, in particular, that each head can reach every node in its respective component. We do not require each to be a minimal set of edges with this property.

2.2 High-level approach

Our algorithm builds up partial Steiner trees in an iterative manner while ensuring that the cost does not increase by a significant amount between iterations. Specifically, we prove the following lemma in Section 3. Recall that refers to the optimum solution value for (DST-Primal).

Lemma 1.

Given a partial Steiner tree with non-root components, there is a polynomial-time algorithm that finds a partial Steiner tree with non-root components such that

Theorem 1 follows from Lemma 1 in a standard way.

Proof of Theorem 1.

Initialize a partial Steiner tree with non-root components as follows. Let be the set of all Steiner nodes, , and . Furthermore, label the terminals as and for each let and . Note that .

Iterate Lemma 1 to obtain a sequence of partial Steiner trees where has non-root components such that and

for each . Return as the final Steiner tree.

That can be found efficiently follows simply because we are iterating the efficient algorithm from Lemma 1 at most times. The cost of this Steiner tree can be bounded as follows.

The idea presented above resembles one proposed by Guha et al. [7] for bounding the integrality gap of a natural relaxation for undirected node-weighted Steiner tree by  [7]. Like our approach, Guha et al. also build a solution incrementally. In each phase of the algorithm, the authors reduce the number of connected components of a partial solution by adding vertices whose cost is charged carefully to the value of a dual LP solution that the algorithm constructs simultaneously.

3 A primal-dual proof of Lemma 1

Consider a given partial Steiner tree with non-root components. Lemma 1 promises a partial Steiner tree with non-root components with . In this section we will present an algorithm that augments forest in the sense that it computes a set of edges to add to . The proof presented here is constructive: we will design a primal-dual algorithm that maintains a feasible dual solution for (DST-Dual), and uses the structure of this solution to guide the process of adding edges to .

3.1 The algorithm

For any two nodes , let be the cost of the cheapest -path in . More generally, for a subset and a node we let . We will assume that for every and that as otherwise, we could merge and by adding the -cost -path to .

The usual conventions of primal-dual algorithms will be adopted. We think of such an algorithm as a continuous process that increases the value of some dual variables over time. At time , all dual variables are initialized to a value of . At any point in time, exactly dual variables will be raised at a rate of one unit per time unit. We will use for the time at which the algorithm terminates. As is customary, we will say that an edge goes tight if the dual constraint for becomes tight as the dual variables are being increased. When an edge goes tight, we will perform some updates to the various sets being maintained by the algorithm. Again, the standard convention applies that if multiple edges go tight at the same time, then we process them in any order.

Algorithm 1 describes the main subroutine that augments the partial Steiner tree to one with fewer components. It maintains a collection of moats and edges for each , while ensuring that the dual solution it grows remains feasible. Mainly to aid notation, our algorithm will maintain a so called virtual body for all such that . We will ensure that each has a mate such that the edge has cost no more than . For notational convenience, we will let be the virtual body of the root component. The algorithm will not grow a moat around the root since dual variables do not exist for sets containing the root.

Our algorithm will ensure that moats are pairwise terminal-disjoint. In fact, we ensure that any two moats may only intersect in . Terminal-disjointness together with the quasi-bipartite structure of the input graph will allow us to charge the cost of arcs added in the augmentation process to the duals grown.

An intuitive overview of our process is the following. At any time , the moats will consist of all nodes with . The moats will be grown until, at some time , for at least one pair with , there is a tight path connecting to . At this point the algorithm stops, and adds a carefully chosen collection of tight arcs to the partial Steiner tree that merges and (and potentially other components). Crucially, the cost of the added arcs will be charged to the value of the dual solution grown around the merged components.

Due the structure of quasi-bipartite graphs, we are able to ensure that in each step of the algorithm the active moats pay for at most one arc that is ultimately bought to form . Also, if has non-root components then each arc was paid for by moats around at most different heads. So, the total cost of all purchased arcs is at most . Finally, the total dual grown is , which is due to feasibility, so the cost of the edges bought can be bounded by .

3.2 Algorithm and invariants

Now we will be more precise. The primal-dual procedure is presented in Algorithm 1. The following invariants will be maintained at any time during the execution of Algorithm 1.

  1. For each , and (so there is a variable in the dual).

  2. For each , where .

  3. and both for distinct .

  4. For each we have . Furthermore, for each each there is a mate such that and .

  5. is feasible for LP (DST-Dual) with value exactly .

These concepts are illustrated in Figure 2.

Figure 2: The moats around the two partial Steiner trees are depicted by the gray circles. The dashed edges are those bought by the first moat and the solid edges are those bought by the second moat. Note the moats only intersect in (in particular, is the only lying in both moats). Also, lies in the virtual body for the left partial Steiner tree and the dashed arc entering is coming from its mate. The edges from the original partial Steiner trees are not shown. Observe that if any edge entering goes tight then it must be from either or some terminal (because is quasi-bipartite). This would allow us to merge at least one partial Steiner tree into the body of another.
2: for
4:Raise uniformly for each moat until some edge goes tight
5:if  for some and for some  then
6:     return the partial Steiner tree described in Lemma 3.
8:     Let be the unique moat with c.f. Proposition 1
10:     if  then
12:     go to Step (4)
Algorithm 1  Dual Growing Procedure

3.3 Invariant analysis

Lemma 2.

Invariants 1-5 are maintained by Algorithm 1 until the condition in the if statement in Step (5) is true. Furthermore, the algorithm terminates in iterations.


Clearly the invariants are true after the initialization steps (at time ), given that for any . To see why Algorithm 1 terminates in a polynomial number of iterations, note that each iteration increases the size some moat by 1 and does not decrease the size of any moats. So after at most iterations some moat will grow to include the virtual body of another moat, at which point the algorithm stops.

Assume now that the invariants are true at some point just before Step (4) is executed and that the condition in Step (5) is false after Step (4) finishes. We will show that the invariants continue to hold just before the next iteration starts. We let denote the edge that went tight that is considered in Step (4). We also let denote the total time the algorithm has executed (i.e. grown moats) up to this point.

Before proceeding with our proof, we exhibit the following useful fact. In what follows, let be the moat around at any time during the algorithm. This proposition demonstrates how we control the overlap of the moats by exploiting the quasi-bipartite structure.

Proposition 1.

If , then for any , and for any .


Suppose, for the sake of contradiction, that for some and . Since is a subset of , the moat containing at time , we must have . Invariant 3 now implies that . Since is quasi-bipartite, then . Therefore for some . Since or , then the terminating condition in Step (5) would have been satisfied as . A contradiction. ∎

Following Proposition 1, we let be the unique index such that as in Step (8).

Invariant 1
First note that never loses vertices during the algorithm’s execution, and it therefore always contains head vertex . Also, vertex is not part of as otherwise the algorithm would have terminated in Step (5). Hence also does not contain the root node .

Invariant 2
This is just a reinterpretation of Dijkstra’s algorithm in the primal-dual framework (e.g. Chapter 5.4 of [12]), coupled with the fact that no edge considered in Step (4) in some iteration crosses more than one moat at any given time (Proposition 1).

Invariant 3
Suppose for some . This implies , and hence . Thus, the termination condition in Step (5) was satisfied and the algorithm should have terminated; contradiction.

If is not added to , and thus remains unchanged, continues to hold for . We also must have that for , as otherwise and this would violate the termination condition in Step (5).

Now suppose that is added to . Then for we still have as otherwise which contradicts and the fact that Invariant 3 holds at the start of this iteration. We also have that as otherwise . But this would mean that as well by Proposition 1. We established above that . However, contradicts the fact that is quasi-bipartite.

Invariant 4
That is clear simply because we only add nodes to the sets . Suppose now that is added to . In this case, as from the start. We claim that can also not be part of for some , since otherwise , contradicting Invariant 3. Hence . Note that the quasi-bipartiteness of implies that , and hence . Proposition 1 finally implies that only the moats crossed by are moats around , so since the algorithm only grows one moat around at any time we have , and this completes the proof of Invariant 4.

Invariant 5
The Step (4) stops the first time a constraint becomes tight, so feasibility is maintained. In each step, the algorithm grows precisely moats simultaneously. Because the objective function of (DST-Dual) is simply the sum of the dual variables, then the value of the dual is just times the total time spent growing dual variables. ∎

3.4 Augmenting

To complete the final detail in the description of the algorithm, we now show how to construct the partial Steiner tree after Step (5) has been reached. Lemma 2 shows that Invariants 1 through 5 hold just before Step (4) in the final iteration. Say the final iteration executes for time units and that is the edge that goes tight and was considered in Step (5).

Lemma 3.

When Step (6) is reached in Algorithm 1, we can efficiently find a partial Steiner tree with non-root components such that .


Let be the unique index such that at time . There is exactly one such because for is ensured by the invariants. Next, let and note that consists of all indices (except, perhaps, ) such that . By the termination condition, . Vertex lies in by definition. If then we let be the mate of as defined in Invariant 4. Otherwise, if , we let .

For notational convenience, we let be the path consisting of the single edge (or just the trivial path with no edges if ). In either case, say cost of is where (c.f. Invariant 4). For each , let be a shortest -path. Invariant 2 implies that


for some . Observe also that the tightness of at time and the definition of imply that


In fact, precisely a -value of the dual variables for contribute to ; the contribution of ’s variables to is at most .

Construct a partial Steiner tree obtained from and Algorithm 1 as follows.

  • The sets and head are unchanged for all .

  • Replace the components with a component having head . The edges of this component in are .

  • The free Steiner nodes of are the Steiner nodes not contained in any of these components.

Namely, consists of those nodes in that are not contained on any path .

We show that Steiner tree as constructed above satisfies the conditions stated in Lemma 1. We first verify that as constructed above is indeed a valid partial Steiner tree. Clearly the new sets and partition and is a subset of Steiner nodes.

Note that if in the above construction, then because no moat contains . Thus, if is replaced when is constructed, then is the head of this new component.

Next, consider any . If then there is an -path in . If then it can be reached from in as follows. Follow the -path in , then the path , cross the edge , follow to reach , and finally follow the -path in . Finally, if for any then lies on some path , in which case it can be reached in a similar way.

It is also clear that and that the number of non-root components in is . Also, is at most the cost of the the paths plus .

It now easily follows from (3) and (4) that

The last bound follows because the feasible dual we have grown has value . Let be the number of nonroot components in . Conclude by observing . ∎

To wrap things up, executing Algorithm 1 and constructing the partial Steiner tree as in Lemma 3 yields the partial Steiner tree that is promised by Lemma 1.

4 Conclusion

We have shown that the integrality gap of LP relaxation (DST-Primal) is in quasi-bipartite instances of directed Steiner tree. The gap is known to be in 4-layered instances [18] and in 3-layered instances [6]. Since quasi-bipartite graphs are a generalization 2-layered instances, it is natural to ask if there is a generalization of 3-layered instances which has an or even integrality gap.

One possible generalization of 3-layered graphs would be when the subgraph of induced by the Steiner nodes does not have a node with both positive indegree and positive outdegree. None of the known results on directed Steiner tree suggest such instances have a bad gap.

Even when restricted to 3-layered graphs, a straightforward adaptation of our algorithm that grow moats around the partial Steiner tree heads until some partial Steiner trees absorbs another fails to grow a sufficiently large dual to pay for the augmentation within any reasonable factor. A new idea is needed.


  • [1] J. Byrka, F. Grandoni, T. Rothvoss, and L. Sanita. Steiner tree approximation via iterative randomized rounding. Journal of the ACM, 60(1):6, 2013.
  • [2] G. Calinescu and G. Zelikovsky. The polymatroid Steiner problems. J. Combinatorial Optimization, 9(3):281–294, 2005.
  • [3] M. Charikar, C. Chekuri, T. Cheung, Z. Dai, A. Goel, S. Guha, and M. Li. Approximation algorithms for directed Steiner problems. J. Algorithms, 33(1):73–91, 1999.
  • [4] J. Edmonds. Optimum branchings. J. Res. Natl. Bur. Stand., 71:233–240, 1967.
  • [5] U. Feige. A threshold of for approximating Set-Cover. Journal of the ACM, 45(4):634–652, 1998.
  • [6] Z. Friggstad, A. Louis, Y. K. Ko, J. Könemann, M. Shadravan, and M. Tulsiani. Linear programming hierarchies suffice for directed Steiner tree. In proceedings of IPCO, 2014.
  • [7] S. Guha, A. Moss, J. Naor, and B. Schieber. Efficient recovery from power outage (extended abstract). In proceedings of STOC, 1999.
  • [8] M. X. Goemans, N. Olver, T. Rothvoss, and R. Zenklusen. Matroids and integrality gaps for hypergraphic Steiner tree relaxations. In proceedings of STOC, 2012.
  • [9] M. X. Goemans and D. P. Williamson. A general approximation technique for constrained forest problems. SIAM Journal on Computing, 24(2):296–317, 1995.
  • [10] E. Halperin and R. Krauthgamer. Polylogarithmic inapproximability. In proceedings of STOC, 2003.
  • [11] T. Hibi, and T. Fujito. Multi-rooted Greedy Approximation of directed Steiner trees with applications. In proceedings of WG, 2012.
  • [12] C. H. Papadimitriou and K. Steiglitz. Combinatorial Optimization: Algorithms and Complexity. Prentice-Hall, Inc., 1982.
  • [13] S. Rajagopalan, and V. V. Vazirani. On the bidirected cut relaxation for the metric Steiner tree problem. In proceedings of SODA, 742–751, 1999.
  • [14] T. Rothvoss. Directed Steiner tree and the Lasserre hierarchy. CoRR abs/1111.5473, 2011.
  • [15] D. Steurer and I. Dinur. Analytical approach to parallel repetition. CoRR abs/1305.1979, 2013.
  • [16] V. V. Vazirani. Approximation Algorithms. Springer-Verlag, 2003.
  • [17] A. Zelikovsky. A series of approximation algorithms for the acyclic directed Steiner tree problem. Algorithmica, 18:99–110, 1997.
  • [18] L. Zosin and S. Khuller. On directed Steiner trees. In proceedings of SODA, 2002.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Add comment
Loading ...
This is a comment super asjknd jkasnjk adsnkj
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test description