Abstract
Many network design problems deal with the design of low-cost networks that are resilient to the failure of their elements (such as nodes or links). One such problem is Connectivity Augmentation, with the goal of cheaply increasing the (edge- or node-)connectivity of a given network from a value k to \(k+1\). The problem is NP-hard for \(k \ge 1\), and the most studied setting focuses on the case of edge-connectivity with \(k=1\). In this work, we give a 1.892-approximation algorithm for the NP-hard problem of augmenting the node-connectivity of any given graph from 1 to 2, which improves upon the state-of-the-art approximation previously developed in the literature. The starting point of our work is a known reduction from Connectivity Augmentation to some specific instances of the Node-Steiner Tree problem, and our result is obtained by developing a new and simple analysis of the iterative randomized rounding technique when applied to such Steiner Tree instances. Our results also imply a 1.892-approximation algorithm for the problem of augmenting the edge-connectivity of a given graph from any value k to \(k+1\). While this does not beat the best approximation factor known for this problem, a key point of our work is that the analysis of our approximation factor is less involved when compared to previous results in the literature. In addition, our work gives new insights on the iterative randomized rounding method, that might be of independent interest.
Similar content being viewed by others
Avoid common mistakes on your manuscript.
1 Introduction
Survivable network design deals with the design of a low-cost network that is resilient to the failure of some of its elements (like nodes or links), and finds application in various settings such as, e.g., telecommunications and transportation. A fundamental problem in this area is Connectivity Augmentation, which asks to cheaply increase the connectivity of a given network from a value k to \(k+1\). The most classical setting considers edge-connectivity: here the input consists of a k-edge-connected graph G and a set L of extra links, and the goal is to select the smallest subset \(L' \subseteq L\) of links such that if we add \(L'\) to the graph G, then its connectivity increases by 1, i.e., it becomes \((k+1)\)-edge-connected. This Edge-Connectivity Augmentation problem has a long history. It was observed long ago (see Dinitz et al. [13], as well as Cheriyan et al. [9] and Khuller and Thurimella [21]) that there is an approximation-preserving reduction from the Edge-Connectivity Augmentation problem for an arbitrary k to the case where \(k = 1\), if k is odd, and to the case where \(k = 2\), if k is even. When \(k = 1\), the problem is known as the Tree Augmentation problem (TAP), since the input graph in that case can be assumed to be a tree without loss of generality, while the case of \(k = 2\) is called the Cactus Augmentation problem (CacAP), since the input graph in that case can be assumed to be a cactus graphFootnote 1. It is easy to see that TAP is a special case of CacAPFootnote 2. This, combined with the aforementioned reduction, implies that an \(\alpha \)-approximation algorithm for CacAP yields an \(\alpha \)-approximation algorithm for the general Edge-Connectivity Augmentation problem. Both TAP and CacAP admit simple 2-approximation algorithms [18, 20, 21]. Approximation algorithms with approximation ratio better than 2 have been discovered for TAP in a long line of research spanning three decades [1, 6,7,8, 10, 12, 14, 16, 17, 19, 21, 23,24,25,26], and more recently for CacAP [4, 6, 29].
The above problems naturally extend to their node-connected variants. However, approximation results on Node-Connectivity Augmentation are more scarce, even for the most basic generalization, known as the Block-Tree Augmentation problem (Block-TAP), which is the direct extension of TAP to the node-connected case. We now define it formally.
Definition 1
(Block-TAP) Let \(T=(V, E)\) be a tree, and \(L \subseteq \left( {\begin{array}{c}V\\ 2\end{array}}\right) \). The goal is to compute a minimum cardinality set \(L'\subseteq L\) such that \(G = (V, E \cup L')\) is a 2-node-connected graph.
Similar to CacAP, a 2-approximation algorithm was known for quite some time [17, 21] for Block-TAP, and until recently, it was an open question to design an approximation algorithm with ratio better than 2. Very recently, Nutov [27] observed that Block-TAP can be reduced to special instances of the (unweighted) Node Steiner Tree problem, extending the techniques of Basavaraju et al. [2] and Byrka et al. [4] used for CacAP. We recall that the (unweighted) Node Steiner Tree problem takes as input a graph G and a subset of nodes (called terminals), and asks to find a tree spanning the terminals which minimizes the number of non-terminal nodes included in the tree. These special Node Steiner Tree instances exhibit some crucial properties, similar to the Steiner Tree instances constructed by [4] for CacAP, and hence the 1.91-approximation of [4] for CacAP also yields a 1.91-approximation to Block-TAP. This is the first result breaking the barrier of 2 on its approximability, and the best bound known so far.
Our results and techniques. In this work, we consider the problem of augmenting the node-connectivity of a graph from 1 to 2, that is slightly more general than Block-TAP.
Definition 2
(1-Node-CAP) Let \(G=(V, E)\) be a 1-node-connected graph, and \(L \subseteq \left( {\begin{array}{c}V\\ 2\end{array}}\right) \). The goal is to compute a minimum cardinality set \(L'\subseteq L\) such that \(G' = (V, E \cup L')\) is a 2-node-connected graph.
Our main result is the following.
Theorem 1
There exists a 1.892-approximation algorithm for 1-Node-CAP.
Note that Block-TAP is a particular case of 1-Node-CAP where the input graph G is a treeFootnote 3. Therefore as a corollary, with our result we improve upon the approximation bound for Block-TAP.
Corollary 1
There exists a 1.892-approximation algorithm for Block-TAP.
Moreover, as another corollary of our techniques and prior results, we also get the following result about CacAP.
Theorem 2
There exists a 1.892-approximation algorithm for CacAP.
The starting point of our work is the reduction of Block-TAP and CacAP to the previously mentioned Node Steiner Tree instances of [2, 4, 27], which from now on we call CA-Node-Steiner-Tree instances (formally defined in Definition 3). We first observe that instances of the more general 1-Node-CAP can be reduced to CA-Node-Steiner-Tree instances. We clarify that these instances, obtained by the above reduction, can also be treated as Edge Steiner Tree instances (as done by [4]) but we will view them as Node Steiner Tree instances, since this allows for a more direct correspondence between “links to add” for 1-Node-CAP/Block-TAP/CacAP, and “Steiner nodes to select” for Steiner Tree. This view helps us to give a cleaner analysis of the iterative randomized rounding technique. Thus, the main task for proving Theorems 1 and 2 is to design a 1.892-approximation for CA-Node-Steiner-Tree.
Besides giving a 1.892-approximation for 1-Node-CAP, which improves upon the state-of-the-art approximation of 1.91 by Nutov [27] for Block-TAP, one key point of our work is that the analysis of our approximation bound is quite simple compared to the existing results in the literature for CacAP that achieve a better than 2 approximation. More precisely, only the algorithm of [6] gives a better approximation factor than our algorithm—in fact, much better —but its analysis is more involved. Furthermore, our work gives some new insights on the iterative randomized rounding method introduced by Byrka et al. [5] that might be of independent interest. We give a few more details of this iterative rounding next.
The iterative randomized rounding technique, applied to CA-Node-Steiner-Tree, at each iteration uses an (approximate) LP-relaxation to sample a set of Steiner nodes connecting part of the terminals, contract them, and iterate until all terminals are connected. Roughly speaking, the heart of the analysis lies in bounding the expected number of iterations of the algorithm until a Steiner node of a given initial optimal solution is not needed anymore in the current (contracted) instance. This is achieved by a suitably chosen spanning tree on the set of terminals (called the witness tree). In the original Steiner Tree work given by [5], as well as in the work by [4], the witness tree is chosen (mostly) randomly. Later an edge-deletion process over this tree is mapped to an edge-deletion process over the edges of an optimal solution. In contrast, we give a purely deterministic way to construct the witness tree, and then map an edge-deletion process over this tree to a node-deletion process over the Steiner nodes of an optimal solution. The deterministic method of constructing the witness tree that we introduce here relies on computing some minimum weight paths from the Steiner nodes in an optimal solution to terminals, according to some node-weights that take into account two factors: the number of nodes in the path, and the degree of each internal node in the path.
Moreover, our techniques can be refined and give a \((1.8{\bar{3}} + \varepsilon )\)-approximation algorithm for what we call leaf-adjacent Block-TAP instances; these are Block-TAP instances where at least one endpoint of each link is a leaf. We note here that Nutov [29] recently gave a \(1.6{\bar{6}}\)-approximation for leaf-to-leaf Block-TAP instances; there are instances where both endpoints of each link are leaves. Thus, our \((1.8{\bar{3}} + \varepsilon )\)-approximation algorithm deals with a strictly larger set of instances compared to [29], albeit with a worse approximation factor.
Theorem 3
For any fixed \(\varepsilon >0\), there exists a \((1.8{\bar{3}} + \varepsilon )\)-approximation algorithm for leaf-adjacent Block-TAP.
Interestingly, we can also provide some concrete limits on how much our techniques can be further pushed. We show that there exist leaf-to-leaf Block-TAP instances for which our choice of the witness tree is the best possible, and yields a tight bound of \(1.8{\bar{3}}\). This shows that any approximation bound strictly better than \(1.8{\bar{3}}\) needs substantially different arguments.
Related work. We clarify here that the 2-approximation algorithms mentioned for TAP, CacAP, Block-TAP work even with weighted instances, where each link comes with a non-negative cost and the goal is to minimize the overall cost of the selected links. In fact, the 2-approximation algorithms for Block-TAP [17, 21] works more generally for (weighted) 1-Node-CAP. Differently, all other aforementioned algorithms only apply to the unweighted version of TAP, CacAP and Block-TAP (some of them extend to the weighted version with bounded integer weights). Traub and Zenklusen [31, 32] very recently presented a 1.7-approximation algorithm and a \((1.5 + \varepsilon )\)-approximation algorithm for the general weighted version of TAP, thus breaking the long-standing barrier of 2 for weighted TAP. For more details about the history of these problems, we refer the reader to [6, 19] and the references contained in them.
Regarding CacAP, last year Byrka et al. [4] managed to break the 2-approximation barrier and obtained a 1.91-approximation, thus resulting in the first algorithm with an approximation factor strictly smaller than 2 for the general Edge-Connectivity Augmentation problem. As mentioned, to get this result, they exploited a reduction of Basavaraju et al. [2] to the (unweighted) Edge Steiner Tree problem and utilized the machinery developed for that problem by Byrka et al. [5]. We recall here that the (unweighted) Edge Steiner Tree problem takes as input a graph G and a subset of nodes (called terminals), and asks for a minimum size subtree of G spanning the terminals. Specifically, Byrka et al. [4] tailored the analysis of the iterative randomized rounding algorithm for Steiner Tree in [5] to the specific Steiner Tree instances arising from the reduction. Nutov [29] then showed how one can use any algorithm for the Edge Steiner Tree problem in a black-box fashion in order to obtain approximation algorithms for CacAP, at the expense of a slightly worse approximation bound; in particular, he obtained a 1.942-approximation by applying the algorithm of [5] as a black box. Soon after, Cecchetto et al. [6] (relying on a completely different approach, more in line with the techniques used for TAP) gave a very nice unified algorithm that gives a state-of-the-art 1.393-approximation for CacAP, and thus, also for TAP and the general Edge-Connectivity Augmentation problem.
Regarding Node-Connectivity Augmentation for \(k > 1\), we refer the reader to [11, 28] and the references contained in them.
Organization of material. The rest of this work is organized as follows. In Sect. 2, we start by formally defining CA-Node-Steiner-Tree instances, and state the connection to CacAP, Block-TAP, and 1-Node-CAP. We also explicitly (re)prove that CA-Node-Steiner-Tree instances admit a hypergraph LP-relaxation which is based on so-called k-restricted components. We then describe the iterative randomized rounding procedure for these node-based instances in Sect. 3. Some missing proofs from Sects. 2 and 3 can be found in Appendix A. Section 4 contains our simpler witness tree analysis. Finally, Sect. 5 reports the improved approximation for leaf-adjacent Block-TAP instances, while Sect. 6 contains lower bound constructions that demonstrate the limits of our techniques.
2 From connectivity augmentation to node steiner tree
2.1 Reduction to CA-Node-Steiner-Tree instances
As a reminder, in the Node Steiner Tree problem, we are given a graph \(G = (V, E)\) and a subset \(R\subseteq V\) of nodes, called terminals, and the goal is to compute a tree T of G that contains all the terminals and minimizes the number of non-terminal nodes (so-called Steiner nodes) contained in T. We will refer to the number of Steiner nodes contained in a tree T as the cost of the solution, and indicate it with cost(T).
In general, the Node Steiner Tree problem is as hard to approximate as the Set Cover problem, and it admits a \(O(\log \vert R\vert )\) approximation algorithm (which holds even in the more general weighted version [22]). However, the instances that arise from the reductions of [2, 4, 27] have special properties that allow for a constant factor approximation. We now define the properties of these instances. We use the notation \(N_G(u)\) to denote the set of nodes that are adjacent to a node u in a graph G (u is not included in \(N_G(u)\)).
Definition 3
(CA-Node-Steiner-Tree) Let \(G=(V,E)\) be an instance of Node Steiner Tree, with \(R\subseteq V\) being the set of terminals. The instance G is a CA-Node-Steiner-Tree instance if the following hold:
-
1.
For each terminal \(v \in R\), we have \(N_G(v) \cap R = \emptyset \).
-
2.
For each Steiner node \(\ell \in V \setminus R\), we have \(\vert N_G(\ell ) \cap R \vert \le 2\).
-
3.
For each terminal \(v \in R\), the set \(N_G(v)\) forms a clique in G.
As already mentioned, the starting point of this work is the reduction from CacAP and Block-TAP to CA-Node-Steiner-Tree. An overview of the reduction from CacAP to CA-Node-Steiner-Tree by Byrka et al. [4] is found in Appendix A.1. In Appendix A.2 we extend the reduction from Block-TAP to CA-Node-Steiner-Tree by Nutov [27], to deal with 1-Node-CAP instances. The following two theorems make these connections formal.
Theorem 4
([4]) The existence of an \(\alpha \)-approximation algorithm for CA-Node-Steiner-Tree implies the existence of an \(\alpha \)-approximation algorithm for CacAP.
Theorem 5
(Extending [27]) The existence of an \(\alpha \)-approximation algorithm for CA-Node-Steiner-Tree implies the existence of an \(\alpha \)-approximation algorithm for 1-Node-CAP (and hence Block-TAP).
The above two theorems imply that from now on we can therefore concentrate on the CA-Node-Steiner-Tree problem.
2.2 An approximate relaxation for CA-Node-Steiner-Tree
A crucial property that we will use is that, similar to the Edge Steiner Tree problem, one can show that the k-restricted version of the problem provides a \((1+\varepsilon )\)-approximate solution to the original problem, for an arbitrarily small \(\varepsilon >0\).
To explain this in more detail, we first recall that any Steiner tree can be seen as the union of components, where a component is a subtree whose leaves are all terminals, and whose internal nodes are all Steiner nodes. We note that two components of such a union are allowed to share nodes and edges. A component is called k-restricted if it has at most k terminals. A k-restricted Steiner tree is a collection of k-restricted components which induces a connected hypergraph when taking R as vertex set, and adding for each component the set of its terminals as a hyperedge. The key theorem of this section is the following.
Theorem 6
Consider a CA-Node-Steiner-Tree instance and let \(\texttt {OPT}\) be its optimal value. For any integer \(m \ge 1\), there exists a k-restricted Steiner tree Q(k), for \(k = 2^m\), whose cost satisfies \(cost(Q(k)) \le \left( 1 + \frac{4}{\log k}\right) \texttt {OPT}\).
We stress that cost(Q(k)) is equal to the number of Steiner nodes in Q(k) counted with multiplicities; an example demonstrating this is given in Fig. 1.
The proof of the above theorem mimics the result of Borchers and Du [3] regarding the Edge Steiner Tree problem, and can be found in Appendix A.3. In proving the above theorem, we crucially use the properties stated in Definition 3, as the statement is not true for general Node Steiner Tree instances.
The above theorem shows that CA-Node-Steiner-Tree can be approximated using k-restricted Steiner trees, with a small loss in the objective value. Based on this, we now present a linear programming relaxation for the k-restricted Node Steiner Tree problem, which we call the Directed Components Relaxation (or, in short, DCR), as it mimics the DCR relaxation of Byrka et al. [5] for the Edge Steiner Tree problem.
Let \(G = (V, E)\) be a Node Steiner Tree instance, where \(R \subseteq V\) is the set of terminals. Let \(k > 0\) be an integer parameter. For each subset \(R' \subseteq R\) of terminals of size at most k, and for every \(c' \in R'\), we define a directed component \(C'\) as the minimum Node Steiner tree on terminals \(R'\) with edges directed towards \(c'\). More precisely, let \(S(R') \subseteq V \setminus R\) be a minimum-cardinality set of Steiner nodes such that \(G[R' \cup S(R')]\) is connected. We define \(C'\) by taking a spanning tree in \(G[R' \cup S(R')]\) and directing the edges towards \(c'\), and we let \(cost(C') = \vert S(R')\vert \). We call \(c'\) the sink of the component and all other terminals in \(R' \setminus \{c'\}\) the sources of the component. Let \({\mathbf {C}}\) be the set of all such directed components \(C'\), with all possible sinks \(c'\in C'\). Note that \({\mathbf {C}}\) has an element for each subset of terminals \(R' \subseteq R\), \(\vert R'\vert \le k\), and each terminal \(c' \in R'\). We introduce one variable \(x(C')\) for each \(C' \in {\mathbf {C}}\). Finally, we choose an arbitrary terminal \(r \in R\) as the root. The k-DCR relaxation is the following.
Let \(\texttt {OPT}_{\text {LP}}(k)\) be the optimal value of the above relaxation for \(k \in {\mathbb {N}}_{>0}\), and \(\texttt {OPT}\) be the value of an optimal (integral) solution to our original (unrestricted) CA-Node-Steiner-Tree instance. The next theorem states that the k-DCR LP can be solved in polynomial time for any fixed k and its optimal solution yields a \((1+\varepsilon )\)-approximation of \(\texttt {OPT}\). Its proof can be found in Appendix A.4.
Theorem 7
For any fixed \(\varepsilon > 0\), there exists a \(k = k(\varepsilon ) > 0\) such that \(\texttt {OPT}_{\text {LP}}(k) \le (1+\varepsilon ) \texttt {OPT}\), and moreover, an optimal solution to the k-DCR LP can be computed in polynomial time.
Given the above theorems, all that remains to show is the following: given an optimal fractional solution to the k-DCR LP, design a rounding procedure that returns an integral CA-Node-Steiner-Tree solution whose cost is at most \(\gamma \) times larger than the cost of an optimal k-restricted Steiner tree, for as small \(\gamma \ge 1\) as possible. Following the chain of reductions discussed in this section, such a rounding scheme would immediately imply a \((\gamma +\varepsilon )\)-approximation algorithm for 1-Node-CAP and CacAP, given that \(\gamma \) is constant. In the following sections, we present such a scheme that gives \(\gamma \le 1.8917\).
3 The iterative randomized rounding algorithm
Our rounding scheme for the k-DCR relaxation consists in applying the iterative randomized rounding technique of Byrka et al. [5], first applied to the Edge Steiner Tree problem, and is described in Algorithm 1.
We will now analyze the cost of the output solution. Throughout this section, we follow the analysis of [5] and slightly modify it wherever needed. Let \(G = (V, E)\) be a given CA-Node-Steiner-Tree instance, where \(V = R \cup S\); R is the set of terminals and S is the set of Steiner nodes. Let \(\varepsilon > 0\) be a fixed small constant and \(k = k(\varepsilon )\) as in the proof of Theorem 7. For the sake of the analysis, we can assume that \(\sum _{C'\in {\mathbf {C}}^i}x^i_{C'}\) is the same for all iterations i, as in [5]Footnote 4. So let \(M =\sum _{C'\in {\mathbf {C}}^i}x^i_{C'}\).
Let \(T = (R \cup S^*, E^*)\), \(S^* \subseteq S\) and \(E^* \subseteq E\), be an optimal solution to the given CA-Node-Steiner-Tree instance G of cost \(cost(T) = \vert S^*\vert \). We will analyze the cost of the output of Algorithm 1 with respect to T. For that, we define a sequence of subgraphs of T, one for each iteration of the algorithm, in the following way: if, during the \(i^\text {th}\) iteration, we sample \(C^i\), then we delete a subset of nodes of T and what remains is the subgraph \(T^i\) defined for that iteration. What must be specified is which nodes of T are deleted at each iteration, which will be explained shortly. Let \(T=T^0 \sqsupseteq T^1 \sqsupseteq T^2 \sqsupseteq ...\) be sequence of subgraphs remaining after each iteration, where the notation \(T^{i+1} \sqsubseteq T^i\) means that \(T^{i+1}\) is a (not necessarily strict) subgraph of \(T^i\). We show that there exists some universal constant \(\gamma \in {\mathbb {R}}_{\ge 1}\) and a choice of optimal solution T such that the following two properties are satisfied:
-
(a)
\(T^i\) plus the components sampled until iteration i form a connected subgraph spanning the terminals.
-
(b)
On average, a Steiner node in T is deleted after \(M \gamma \) iterations.
Similar to [5], we show that conditions (a) and (b) yield that the iterative randomized rounding algorithm is in fact a \((\gamma + \varepsilon )\)-approximation algorithm, for any fixed \(\varepsilon > 0\). This is achieved by relying on the construction of a witness tree W, which is a particular kind of spanning tree on the set of terminals. However, the main differences with respect to [5] are that (i) we delete nodes of T instead of edges, and (ii) we have a purely deterministic way to construct the witness tree, and thus we need an explicit averaging argument for (b).
We now discuss the details of our deletion process. As mentioned, given T we construct a witness tree \(W = (R, E_W)\) that spans the set of terminals. For each component C, let \({\mathcal {B}}_W(C)\) be the family of maximal edge sets \(B \subseteq E_W\) such that \((W\setminus B) \cup C\) forms a connected subgraph spanning the terminals. In each iteration i, we “mark” a subset of edges of W that correspond to a randomly chosen set in \({\mathcal {B}}_W(C^i)\). For a positive integer t, let \(H(t) :=\sum _{j=1}^t \frac{1}{j}\) be the \(t^\text {th}\) harmonic number. The following lemma is proved in [5] (more precisely, see Lemmas 19 and 20 in [5]).
Lemma 1
([5]) For each component C, there exists a probability distribution over \({\mathcal {B}}_W(C)\) such that the following holds: for any \({\widetilde{W}} \subseteq E_W\), the expected number of iterations until all edges of \({\widetilde{W}}\) are marked is bounded by \(H(\vert {\widetilde{W}} \vert ) \cdot M\), where the expectation is over the random choices of the algorithm and the distributions over \(\{{\mathcal {B}}_W(C)\}_C\).
We will delete Steiner nodes from T using the marked edges in W, as follows. For each Steiner node \(v \in S^*\), we define
and \(w(v) :=\vert W(v) \vert \); less formally, w(v) is equal to the number of edges e of W such that the path between the endpoints of e in T contains v. From now on, we will say that the vector \(w: S^* \rightarrow {\mathbb {N}}_{\ge 0}\) is the vector imposed on \(S^*\) by W. A Steiner node \(v \in S^*\) is deleted in the first iteration where all the edges in W(v) become marked. Thus, each subgraph \(T^i\), \(i > 0\), defined in the beginning of this section, is the subgraph obtained from \(T^{i-1}\) after the \(i^\text {th}\) iteration according to this deletion process.
Lemma 2
For every \(i > 0\), \(T^i \cup C^1 \cup \dots \cup C^i\) spans the terminals.
Proof
Let \(E_W^i \subseteq E_W\) be the set of edges of W that have not been marked at iteration i. By construction, \(E_W^i \cup C^1 \cup \dots \cup C^i\) spans the terminals. For every \((p,q) \in E_W^i\), the unique path between p and q in T is still present in \(T^i\), as none of the nodes in this path have been deleted. Hence p and q are connected in \(T^i\). The result follows.\(\square \)
We now address the universal constant \(\gamma \) that was mentioned above. For a CA-Node-Steiner-Tree instance \(G=(V, E)\), where \(R \subseteq V\) is the set of terminals and \(S = V \setminus R\) is the set of Steiner nodes, we define
where w is the vector imposed on \(S^*\) by each witness tree W considered. The constant \(\gamma \) that will be used to pinpoint the approximation ratio of the algorithm is defined as
In Sect. 4 we will prove the following theorem.
Theorem 8
\(\gamma \le 1.8917\). We are ready to prove the main theorem of this section; throughout its proof, we use the notation introduced in this section.
Theorem 9
For any fixed \(\varepsilon > 0\), the iterative randomized rounding algorithm (see Algorithm 1) yields a \((\gamma + \varepsilon )\)-approximation.
Proof
Let \(G = (R \cup S, E)\) be a CA-Node-Steiner-Tree instance. We run Algorithm 1 with \(k = 2^{\lceil 4/\varepsilon ' \rceil }\), as in the proof of Theorem 7, and \(\varepsilon ' :=\frac{\varepsilon }{2}\). It is easy to see that the algorithm runs in polynomial time.
Let \(T = (R \cup S^*)\) and W be the optimal Steiner tree and corresponding witness tree, respectively, such that \(\gamma _G = \frac{\sum _{v \in S^*} H(w(v))}{cost(T)}\). Clearly, \(\gamma _G \le \gamma \). For each Steiner node \(v \in S^*\), let \(D(v) :=\max \{i: v\in T^i\}\). By Lemma 1, we have \({{\textbf {E}}}[D(v)] \le H(w(v)) \cdot M\). We have
The first inequality holds since (i) Lemma 2 implies that an optimal solution to the CA-Node-Steiner-Tree instance defined in iteration i has cost at most \(cost(T^i)\), and (ii) Theorem 7 shows that the k-DCR LP provides a \((1+\varepsilon ')\)-approximate solution to it. The first inequality of the second line follows since \(\sum _{v \in S^*} {{\textbf {E}}}[D(v)] \le M \cdot \sum _{v \in S^*} H(w(v))\), while the last inequality follows by the definition of \(\gamma \) and Theorem 8.\(\square \)
Putting everything together, we can now easily prove our main two theorems, Theorems 1 and 2 .
Proof of Theorems 1 and 2
We first design a 1.892-approximation algorithm for the CA-Node-Steiner-Tree problem. For that, we pick \(\varepsilon \) to be sufficiently small (e.g., \(\varepsilon = 0.0003\) suffices) and by Theorems 8 and 9, we get that the iterative randomized rounding algorithm (Algorithm 1) is a 1.892-approximation algorithm for CA-Node-Steiner-Tree. By Theorems 4 and 5 , we also get a 1.892-approximation algorithm for 1-Node-CAP and CacAP. This concludes the proof.\(\square \)
4 A deterministic construction of the witness tree
In this section, for any given CA-Node-Steiner-Tree instance \(G=(V, E)\), we consider a specific optimal Steiner tree and describe a deterministic construction of a witness tree W that shows that \(\gamma _G < 1.8917\). By the definition of \(\gamma \), this immediately implies Theorem 8.
Throughout this section, we use the following notation: given is a CA-Node-Steiner-Tree instance \(G=(R \cup S, E)\) and an optimal solution \(T = (R \cup S^*, E^*)\). The goal is to construct a witness tree \(W = (R, E_W)\) spanning the terminals, such that \(\frac{1}{\vert S^* \vert } \sum _{v \in S^*} H(w(v))\) is minimized, where \(w: S^* \rightarrow {\mathbb {N}}_{\ge 0}\) is the vector imposed by W. From now on, we will refer to the quantity \(\frac{1}{\vert S^* \vert } \sum _{v \in S^*} H(w(v))\) as the average H(w)-value of the Steiner nodes. Similarly, we will refer to w(v) as the w-value of a node v. Since the proof of Theorem 8 consists of several steps, we will present them separately, and at the end of the section we will put everything together and formally prove Theorem 8.
We start by observing that every CA-Node-Steiner-Tree instance has an optimal solution in which the terminals are leaves. This follows by Definition 3, since (i) there are no edges between terminals and (ii) adjacent Steiner nodes of a terminal form a clique. Thus, from now on we assume that T is an optimal solution in which the terminals are leaves. Given this, the first step is to show that we can reduce the problem of constructing a witness tree spanning the terminals to the problem of constructing a witness tree spanning the Steiner nodes that are adjacent to terminals. This will allow us to remove the terminals from T, and only focus on \(T[S^*]\), which is a (connected) tree.
4.1 Removing terminals from T
Let \(F \subseteq S^*\) be the set of Steiner nodes contained in T with at least one adjacent terminal. We call F the set of final Steiner nodes. In order to simplify notation, we will remove the terminals from T, and compute a tree W spanning the final nodes of \(T[S^*]\) (note that the set of final nodes contains all the leaves of \(T[S^*]\)). Any such tree W directly corresponds to a terminal spanning tree as follows: for each final Steiner node \(f \in F\), we arbitrarily pick one of the (at most) two terminals adjacent to f, which we denote as \(\mathtt {rep}(f)\). Given a spanning tree W of the final Steiner nodes, we can now generate a terminal spanning tree \(W'\) as follows (see Fig. 2 a):
-
we replace every edge \((f, f')\) of W with the edge \((\mathtt {rep}(f), \mathtt {rep}(f'))\),
-
in case a final Steiner node f has a second terminal t adjacent to it besides \(\mathtt {rep}(f)\), we also add the edge \((\mathtt {rep}(f), t)\) to the tree.
It is easy to see that the vectors w and \(w'\) imposed by W and \(W'\), respectively, on the Steiner nodes are the same for all nodes except for the final Steiner nodes, where the w-values differ by 1 in case a final Steiner node has two adjacent terminals. Thus, from now on we focus on computing a tree W spanning the final Steiner nodes, and we simply increase the corresponding imposed w-value of each final Steiner node by 1. More formally, if \(W = (S^*, E_W)\) is a tree spanning the final nodes of \(T[S^*]\), we have for every \(v \in S^*\):
where denotes the indicator of the event “\(v \in F\)”. This expression corresponds to the (worst-case) assumption that every final Steiner node is incident to two terminals; this is without loss of generality since, if the average H(w)-value computed in this way is less than a given value \(\gamma ' > 0\), then clearly the average \(H(w')\)-value imposed by the terminal spanning tree \(W'\) is also bounded by \(\gamma '\), as the harmonic function H is an increasing function.
The next step is to root \(T[S^*]\) and then decompose it into a collection of rooted subtrees of \(T[S^*]\) such that every final Steiner node appears as either a leaf or a root (or both); we call these subtrees final-components. This decomposition is nearly identical to the one used in Sect. 2.2 where we decomposed a tree into components where terminals appeared as leaves (here we use final Steiner nodes instead of terminals), with the added element that now these components are also rooted.
4.2 Decomposing T into final-components
To simplify notation, let \(T = (V, E)\) be a tree where \(F \subseteq V\) is the set of final Steiner nodes, again noting that F contains all the leaves of T. We start by rooting the tree T at an arbitrary leaf r; note that \(r \in F\). We decompose T into a set of final-components \(T_1, \dots , T_{\tau }\), where a final-component is a rooted maximal subtree of T whose root and leaves are the only nodes in F. We clarify here that for a rooted tree, we call a vertex a leaf if it has no children (thus, although the root may have degree 1, it is not referred to as a leaf).
More precisely, we start with T and consider the maximal subtree \(T_1\) of T that contains the root r, such that all leaves of \(T_1\) are final Steiner nodes, and including the root, are the only final Steiner nodes. For each leaf \(f \in F \cap T_1\), we do the following. If f has children \(\{x_1, \ldots , x_p\}\) in T, for some \(p \in {\mathbb {N}}_{p \ge 1}\), we first create p copies of f; this means that, along with the original node f, we now have \(p+1\) copies of f, and one copy of it remains in \(T_1\). We then remove \(T_1\) from T, and for each tree \(T(x_i)\), \(i \in [p]\) where \([p] :=\{1,2,\dots ,p\}\), rooted at \(x_i\), that is part of the forest \(T \setminus T_1\), we connect \(x_i\) with one distinct copy of f, and set this copy to be the root of the modified tree \(T(x_i)\). Doing this for every leaf of \(T_1\), we end up with a forest. We repeat this procedure recursively for each tree of this forest, until all trees of the forest are final-components. A simple example of this decomposition is shown in Fig. 2b. Let \(T_1, \ldots , T_\tau \) be the resulting final-components. Without loss of generality, we assume that for every \(i \in [\tau ]\), \(\bigcup _{j\le i} T_j\) is connected. We clarify that in this union of trees, duplicate copies of the same node are “merged” back into one node.
Given the final-components \(T_1, \ldots , T_\tau \) of T, we will now show how to compute a tree \(W_i\) spanning the final Steiner nodes of each \(T_i\), and then show how to combine all of them to generate a tree W that spans the final Steiner nodes of T, while bounding the average H(w)-value imposed on \(S^*\) by W.
4.3 Computing a tree W spanning the final Steiner nodes of T
We start by describing how to compute a tree \(W_i\) that spans the final Steiner nodes of each final-component \(T_i\), as well as how to join these trees \(\{W_i\}_{i = 1}^\tau \) to obtain a tree W spanning the whole set of final Steiner nodes of T. We construct W iteratively as follows. We start with \(W =\emptyset \), process the final-components \(T_1, \ldots , T_\tau \) one by one according to the index-order, and for each i, compute a tree \(W_i\) for \(T_i\) and merge it with the current W; again, in this merging, multiple copies of the same node are merged back into one node.
To analyze this procedure, we fix a final-component \(T_i\) rooted at \(r_i\), and let \((r_i, v)\) be the unique edge incident to \(r_i\) inside \(T_i\). Let \(T' = \bigcup _{j < i} T_j\), and \(W'\) be the constructed witness tree for \(T'\). Let \(w'\) be the vector imposed on the Steiner nodes of \(T'\) by \(W'\). Note that for \(i=1\) we let \(T'=\emptyset \), \(W'=\emptyset \), and \(w'= 0\).
We do some case analysis based on whether \(v \in F\) or not; throughout this analysis, we use the notation \(\vert T\vert \) to denote the number of nodes of a tree T.
Case 1: \(v \in F\). In this case, the edge \((r_i,v)\) is the only edge of \(T_i\), so \(W_i\) simply consists of the nodes \(\{r_i, v\}\) and the edge \((r_i,v)\). The following lemma shows that merging \(W_i\) with \(W'\) (by simply merging the two copies of \(r_i\) and taking the union of the edges of \(W'\) and \(W_i\), in the case where \(W' \ne \emptyset \)) would keep the average H(w)-value below our threshold. Let \(w''\) be the vector imposed by \(W'' = W' \cup W_i\).
Lemma 3
Let \(\gamma ' \ge H(3)\), and suppose that \(\sum _{u \in T'} \frac{H(w'(u))}{\vert T' \vert } < \gamma '\). Then, \(\sum _{u \in T'\cup T_i} \frac{H(w''(u))}{\vert T' \cup T_i \vert } < \gamma '\).
Proof
We do some case analysis. If \(i = 1\), then \(W' = \emptyset \) and \(r_i = r\). In this case we have \(w''(r_i) = w''(v) = 2\), which gives \(\sum _{u \in T'\cup T_i} \frac{H(w''(u))}{\vert T' \cup T_i \vert } = H(2) < \gamma '\).
So, suppose now that \(i > 1\), which implies that \(W' \ne \emptyset \). Note that \(w''(v) = 2\), \(w''(r_i) = w'(r_i) + 1\), and for each \(u \in T'\setminus \{r_i\}\), \(w''(u)= w'(u)\). Moreover, we have \(w'(r_i) \ge 2\); to see this, note that \(r_i\) is a final Steiner node of \(T'\) and has degree at least 1 in \(W'\). Thus, \(H(w''(r_i)) \le H(w'(r_i)) + \frac{1}{3}\). Therefore,
We conclude that the lemma holds.\(\square \)
Case 2: \(v \notin F\). In this case, the witness tree \(W_i\) of \(T_i\) is computed deterministically by a procedure described in Algorithm 2; we provide an example of the output of Algorithm 2 in Fig. 3.
In order to bound the average H(w)-value that we get after adding \(W_i\) to the current \(W'\), we first introduce some notation. For any node \(u \ne r_i\) of \(T_i\), let \(\mathtt {parent}(u)\) denote the parent of u in \(T_i\). Let \(Q_u\) denote the subtree of \(T_i\) rooted at u. For any non-final Steiner node u, P(u) denotes the minimum-weight path from u to a leaf, as computed at step (3) of Algorithm 2. In the case where u is a final Steiner node of \(T_i\), we define \(P(u) :=\{u\}\); in particular \(P(r_i) :=\{r_i\}\). For every \(u \in T_i\), let \(q_u\) be the number of nodes of P(u) (including the endpoints) and l(u) denote the (unique) endpoint of this path that is a final Steiner node. For every non-final Steiner node u, exactly one child of u is in this path, which we call the marked child of u. For every \(u \ne r_i\), we let a(u) denote the node closest to u on the path from u to \(r_i\) such that \(l(u) \ne l(a(u))\). Examples of these definitions are given in Fig. 4.
To begin the analysis, we first observe that for every node \(u \ne r_i\) of \(T_i\), \(W_i\) contains an edge with endpoints l(u) and l(a(u)); we call this edge \(e_u\). Note that we can have \(e_u = e_v\) for \(u \ne v\). For every \(u \ne r_i\), we consider the subtree \(W^u\) of \(W_i\) defined with respect to \(Q_u\), defined as a set of edges as
We also define \(W^{r_i} = W_i\). Observe that for every \(u \in T_i\), \(W^u\) indeed corresponds to a connected subtree of \(W_i\). An example of \(W^u\) is provided in Fig. 5, where we also clarify several properties of Lemma 4, proved below. We let \(w^u\) be the vector imposed by \(W^u\), where for every \(\ell \in Q_u\), we have
Let \(h(Q_u) :=\sum _{\ell \in Q_u} H(w^u(\ell ))\). We note here that \(W^u\) might involve one final Steiner node, namely l(a(u)), that is not contained in \(Q_u\). Finally, let \(d_u\) be equal to 3 if u is a leaf, otherwise, let \(d_u\) be equal to the degree of u in \(T_i\).
Lemma 4
Let \(u \in T_i\) be a non-final Steiner node and \(u_1, \dots , u_p\) be the children of u, with \(u_1\) being the marked child of u. Then:
-
(a)
\(w^u(u) = p\).
-
(b)
For every \(j \in \{2, \ldots , p\}\) and every Steiner node \(\ell \in Q_{u_j}\), \(w^u(\ell ) = w^{u_j}(\ell )\).
-
(c)
For every \(\ell \in Q_{u_1} \setminus P(u_1)\), \(w^u(\ell ) = w^{u_1}(\ell )\).
-
(d)
For every \(\ell \in P(u_1)\), \(H(w^u(\ell )) - H(w^{u_1}(\ell )) \le \sum _{j=2}^{p} \frac{1}{d_{\ell } +j-2}\).
Proof
We first observe that \(W^u\) is given by the disjoint union of \(W^{u_1} \cup W^{u_2} \cup \ldots \cup W^{u_p}\). In fact, for \(j=2, \ldots , p\), the edge \(e_{u_j} \in W^{u_j}\) is precisely the edge with endpoints \(l(u_1)\) and \(l(u_j)\), and the edge \(e_{u_1} \in W^{u_1}\) corresponds to \(e_u\). Given these observations, \( w^u(u) = p\) as the edges of \(W^u\) which contribute to \(w^u(u)\) are precisely \(e_{u_1}, \dots , e_{u_p}\). Hence (a) holds.
Statements (b) and (c) follow by observing that the only nodes whose \(w^u\)-value differs from the corresponding \(w^{u_j}\)-value are in \(Q_{u_1}\), and are precisely the nodes of the path \(P(u_1)\). It is not hard to see that for every \(\ell \in P(u_1)\), we have \(w^u(\ell ) = w^{u_1}(\ell ) + p-1\). Thus, we get that \(H(w^u(\ell )) - H(w^{u_1}(\ell )) = \sum _{j= 2}^{p} \frac{1}{w^{u_1}(\ell ) + j - 1}\). We now compute a lower bound for \(w^{u_1}(\ell )\). If \(\ell \ne l(u_1)\), then we can apply statement (a), which we just proved, to \(Q_{u_\ell }\), and get that \(d_{\ell } -1 = w^{\ell }(\ell ) \le w^{u_1}(\ell )\). Hence (d) holds in this case. We now consider the case \(\ell = l(u_1)\), i.e., \(\ell \) is a leaf of \(Q_{u_1}\). In this case, we have \(d_{\ell } =3\) and \(w^{\ell }(\ell ) =2\), where the latter equality holds since there is a unique edge \(e_{\ell } \in W^{\ell }\) and \(\ell \) is a leaf, which means that its w-value is increased by 1. Thus, statement (d) holds in this case as well. This concludes the proof.\(\square \)
The following lemma is the main technical part of our analysis.
Lemma 5
Let \(\delta = 7/120\). For each node \(u \in T_i \setminus r_i\), we have
Proof
The proof is by induction on \(\vert Q_u\vert \). The base case is \(\vert Q_u\vert =1\), in which case u is leaf of \(T_i\). In this case, we have \(d_u =3\), \(w^u(u)=2\), and \(P(u)=\{u\}\), giving
For the induction step, let u be a non-final Steiner node of \(T_i\), let \(u_1, \dots , u_p\) be its children, and let \(u_1\) be its marked child. By Lemma 4 we have that
By the induction hypothesis, for each \(j \in [p]\) we have \(h(Q_{u_j}) + \sum _{\ell \in P(u_j)} \frac{1}{d_{\ell }} + \delta < 1.8917 \cdot \vert Q_{u_j}\vert \). Combining these we get
where the last inequality follows by statement (d) of Lemma 4. We now observe that due to the greedy choice of the path P(u) at step (3) of Algorithm 2, for each \(j \in [p]\) we have \(\sum _{\ell \in P(u_j) \setminus F} \frac{1}{d_{\ell }} + 1 \ge \sum _{\ell \in P(u_1) \setminus F} \frac{1}{d_{\ell }} + 1\), since there is exactly one final Steiner node in each path \(P(u_j)\), \(j \in [p]\). Thus, we get \(\sum _{\ell \in P(u_j)} \frac{1}{d_{\ell }} \ge \sum _{\ell \in P(u_1)} \frac{1}{d_{\ell }}\) for every \(j \in [p]\), and so \(\sum _{j=1}^p \sum _{\ell \in P(u_j)} \frac{1}{d_{\ell }} \ge p \sum _{\ell \in P(u_1)} \frac{1}{d_{\ell }}\). Moreover, for every \(\ell \in P(u_1)\) we have \(\sum _{j = 2}^p \frac{1}{d_\ell + j - 2} \le \frac{p-1}{d_\ell }\). Combining these we get
Substituting \(d_{l(u)}=3\) into this equation, we get
Rearranging, and using \(\sum _{\ell \in P(u)} \frac{1}{d_{\ell }} = \sum _{\ell \in P(u_1)} \frac{1}{d_{\ell }} + \frac{1}{d_{u}}\) and \(d_u = p+1\), we get
We will now show that \(-\delta (p-1) - \frac{p-1}{3} + \sum _{j=2}^{p} \frac{1}{j+1} + H(p+1) \le 1.8917\). For that, we define \(\psi (p) :=2H(p+1) - (p-1)\left( \frac{1}{3} + \delta \right) - H(2)\). Note that the left-hand side of the inequality above is equal to \(\psi (p)\). We now show that \(\psi (p) \le \psi (4)\) for every \(p \in {\mathbb {N}}_{>0}\). For that, we have
We now observe that \(\psi (p+1) - \psi (p) \ge 0\) for \(p \in \{1,2,3\}\) and \(\psi (p+1) - \psi (p) < 0\) for \(p \ge 4\). Thus, \(\psi (p)\) is increasing for \(p \le 4\) and decreasing for \(p \ge 4\). This means that \(\max _{p \in {\mathbb {N}}_{>0}} \psi (p) = \psi (4)\). It is easy to verify that \(\psi (4) = 1.891{\bar{6}} < 1.8917\). Putting everything together, we conclude \(h(Q_u) + \sum _{\ell \in P(u)} \frac{1}{d_{\ell }} + \delta < 1.8917 \cdot \vert Q_u \vert \).\(\square \)
Finally, we observe that \(W_i = W^{r_i}\). With the above lemma at hand, it is not difficult to show that merging \(W_i\) with the current W keeps the average H(w)-value below our targeted threshold. Once again, let \(T'\) be the union of \(T_1, \dots , T_{i-1}\), let \(w'\) be the vector imposed by the current \(W'\) before adding \(W_i\), and \(w''\) be the vector imposed by \(W' \cup W_i\).
Lemma 6
If \(\sum _{u \in T'} \frac{H(w'(u))}{\vert T'\vert } < 1.8917\), then \(\sum _{u \in T'\cup T_i} \frac{H(w''(u))}{\vert T' \cup T_i\vert } < 1.8917\).
Proof
We do some case analysis. We first consider the case of \(i = 1\), which means that \(r_i = r\) and \(W' = \emptyset \). In this case, since \(T_i \setminus \{r_i\} = Q_v\), we can apply Lemma 5 and get that \(\sum _{\ell \in T_i \setminus \{r_i\}} H(w''(\ell )) < 1.8917(\vert T_i\vert -1) - \sum _{\ell \in P(v)} \frac{1}{d_{\ell }} - \delta \). Moreover, we have \(w''(r_i) = 2\). Thus, we get
We now turn to the case of \(i > 1\), which means that \(W' \ne \emptyset \). In this case, we note the following:
-
1.
\(w''(\ell ) = w'(\ell )\) for all \(\ell \in T_i \setminus r_i\),
-
2.
\(w''(r_i) = w'(r_i) + 1\), and
-
3.
\(w'(u)=w''(u)\) for all \(u \in T'\setminus \{r_i\}\).
Since \(r_i\) is a leaf of \(T'\), we have \(w'(r_i) \ge 2\), which implies that \(H(w''(r_i)) \le H(w'(r_i)) + \frac{1}{3}\). Moreover, since \(T_i \setminus \{r_i\} = Q_v\), we can apply Lemma 5 to get \( \sum _{\ell \in T_i \setminus \{r_i\}} H(w''(\ell )) < 1.8917(\vert T_i\vert -1) - \sum _{\ell \in P(v)} \frac{1}{d_{\ell }} - \delta \). Furthermore, \( \sum _{\ell \in P(v)} \frac{1}{d_{\ell }} + \delta \ge \frac{1}{3}\), as \(d_{l(v)} = 3\) and \(l(v) \in P(v)\). Hence we get that
\(\square \)
4.4 The proof of Theorem 8
We are now ready to put everything together and prove Theorem 8.
Proof of Theorem 8
Let \(G = (R \cup S, E)\) be a CA-Node-Steiner-Tree instance, where R is the set of terminals. Let \(T = (R \cup S^*, E^*)\) be an optimal solution in which the terminals are leaves. By the discussion of Sect. 4.1, it suffices to construct a tree \(W = (F, E_W)\) spanning the set of final Steiner nodes of T, whose imposed w-value on \(v \in S^*\) is defined as
Following the discussion of Sect. 4.2, we root T at an arbitrary leaf r and decompose it into a set of final-components \(T_1, \ldots , T_\tau \), with the property that \(r \in T_1\) and for every \(i \in [\tau ]\), \(\bigcup _{j \le i} T_j\) is connected. We process the trees in increasing index order and do the following. We maintain a tree \(W'\) spanning the final Steiner nodes of \(T' = \bigcup _{j < i} T_j\), and during iteration i, we compute a tree \(W_i\) spanning the final Steiner nodes of \(T_i\) and then merge it with \(W'\), as discussed in Sect. 4.3. The resulting tree is a tree spanning the final Steiner nodes of \(\bigcup _{j \le i} T_j\), as demonstrated in Sect. 4.3. The analysis we did now shows that after each iteration i, the resulting tree spanning the final Steiner nodes of \(\bigcup _{j \le i} T_j\) satisfies the desired bound of 1.8917. More precisely, by setting \(\gamma ' = 1.8917\) in Lemma 3 and by using Lemma 6, we get that after each iteration, the resulting tree has an average H(w)-value strictly smaller than 1.8917. Thus, a straightforward induction shows that the final tree W will have an average H(w)-value strictly smaller than 1.8917 and will span the final Steiner nodes of T. This means that \(\gamma _G < 1.8917\), which implies that \(\gamma \le 1.8917\).\(\square \)
5 Improved approximation for leaf-adjacent block-TAP
In this section, we consider Block-TAP instances where at least one endpoint of every link is a leaf; we call such instances leaf-adjacent Block-TAP instances. We note that leaf-adjacent Block-TAP is a generalization of the case where both endpoints are leaves, often called leaf-to-leaf Block-TAP. For leaf-to-leaf Block-TAP, Nutov gave a \(1.6{\bar{6}}\)-approximation [29]. Here, we give a \((1.8{\bar{3}} + \varepsilon )\)-approximation for the more general setting of leaf-adjacent Block-TAP.
Throughout this section, we assume that we are given a Block-TAP instance, where \(T=(V_T, E_T)\) is the input tree, \(R_T \subseteq V_T\) is its set of leaves and \(L \subseteq \left( {\begin{array}{c}V_T\\ 2\end{array}}\right) \) is the set of links, such that \(\ell \cap R_T \ne \emptyset \) for every \(\ell \in L\). Using the reduction to CA-Node-Steiner-Tree (see Theorem 5), we get a CA-Node-Steiner-Tree instance \(G= (R\cup S,E)\) that satisfies the following property: every Steiner node in G is adjacent to at least one terminal. We call such instances leaf-adjacent CA-Node-Steiner-Tree instances.
We start by observing that any leaf-adjacent CA-Node-Steiner-Tree instance \(G = (R \cup S, E)\) has an optimal solution \(T^* = (R \cup S^*, E^*)\) such that every Steiner node \(s \in S^*\) is adjacent to at least one terminal in \(T^*\). To see this, suppose that there is a Steiner node \(s \in S^*\) that is not adjacent to any terminal in \(T^*\). Since s is adjacent to some terminal \(r \in R\) in G, we add the edge (s, r) to \(T^*\). This creates a cycle that goes through s. By removing the edge of the cycle that is adjacent to s and is not equal to (s, r), we end up with a different optimal solution where s is adjacent to a terminal. This shows that we can transform any optimal solution to a solution that satisfies the desired property, namely, that every Steiner node is adjacent to a terminal. Thus, from now on we assume that \(T^*\) satisfies this property.
Our analysis consists of demonstrating that the procedure laid out in Sect. 4.3 finds a witness tree W for \(T^*\) such that if \(w: S^* \rightarrow {\mathbb {N}}\) is the vector imposed on \(S^*\) by W, then we have \(\frac{1}{\vert S^* \vert } \sum _{v \in S^*} H(w(v)) \le H(3)\). To see this, we first transform \(T^*\) to a forest as follows. In case there is a terminal \(r \in R\) of \(T^*\) that is not a leaf, we split the tree \(T^*\) at r by first removing r, and then adding back a copy of r as a leaf to the d(r) trees of the forest \(T^* \setminus \{r\}\), where d(r) is the degree of r in \(T^*\). By performing this operation for all terminals whose degree is larger than 1, we end up with a forest, where each terminal \(r \in R\) appears in d(r) trees, in total, such that for each tree of the forest, every final Steiner node is adjacent to a terminal and moreover, all terminals are leaves. Since each Steiner node belongs to exactly one tree of this forest, it is easy to see that if we compute a terminal spanning tree for each tree of the resulting forest, and take the union of these trees, then the w-value of each Steiner node imposed by the final terminal spanning tree is the same as the w-value imposed by the terminal spanning tree computed for the particular tree of the forest which the Steiner node belongs to. Thus, without loss of generality, we assume from now on that \(T^*\) satisfies both desired properties, namely that every Steiner node is adjacent to a terminal and every terminal is a leaf.
We now remove the terminals from \(T^*\) as in Sect. 4.1 and decompose the remaining tree \(T^*[S^*]\) into final-components as in Sect. 4.2, which we denote \(T^*_1,\dots , T^*_\tau \). It then remains to see that when we construct the witness trees \(\{W_i\}_{i=1}^\tau \) and merge them together to create the witness tree W, every tree in \(\{T^*_i\}_{i=1}^\tau \) falls under Case 1 of the analysis. This implies that we only apply Lemma 3 when merging witness trees. Since the guarantee of Lemma 3 holds for any \(\gamma ' \ge H(3)\), we use it with \(\gamma ' = H(3)\) and get the desired bound.
More precisely, observe that each node of \(T^*[S^*]\) is a final node by the construction of \(T^*\), so the final-components \(T^*_1,\dots , T^*_\tau \) are in fact the edges of \(T^*[S^*]\). When the analysis of Sect. 4 considers a fixed final-component \(T^*_i\) rooted at \(r_i\) with \((r_i,v)\) being the unique edge incident to \(r_i\) inside \(T^*_i\), we know that v is a final node by construction, so we only consider Case 1 when analyzing the change of the average H(w)-value. Thus, we obtain the following theorem.
Theorem 10
Given is a leaf-adjacent CA-Node-Steiner-Tree instance \(G = (R \cup S, E)\), and let \(T^* = (R \cup S^*, E^*)\) be an optimal Steiner tree such that each Steiner node \(s \in S^*\) is adjacent to at least one terminal in \(T^*\). Then, there exists a witness tree W such that \(\frac{1}{\vert S^* \vert } \sum _{v \in S^*} H(w(v)) \le H(3)\), where w is the vector imposed on \(S^*\) by W.
The witness tree that achieves the stated value of \(\frac{1}{\vert S^* \vert } \sum _{v \in S^*} H(w(v))\) is in fact a very natural one. We perform the operation above to transform \(T^*\) into a forest where the terminals are exactly the leaves of \(T^*\). For every component, and for every edge (u, v) of that component, there is a corresponding edge in the witness tree between one of the terminals adjacent to u and one adjacent to v. Furthermore, if two terminals have the same adjacent Steiner node, then the witness tree has an edge between those two terminals as well.
The above theorem, along with Theorems 5 and 9 , immediately imply Theorem 3.
6 Limitations of the witness tree analysis
In this section, we show that we cannot get an approximation factor better than \(1.8{\bar{3}}\) by using (deterministic/randomized) witness trees in the analysis of Algorithm 1. Moreover, we show that Algorithm 2 sometimes finds a witness tree that gives an average H(w)-value greater than 1.8504. This shows that our analysis of the approximation factor of Algorithm 1 with the witness tree generated by Algorithm 2 is off by at most 0.0416.
6.1 Lower bound for \(\gamma \)
In this section, we show that \(\gamma \ge H(3)\). To prove this, we construct a family of leaf-adjacent CA-Node-Steiner-Tree instances that are trees, i.e., the optimal Steiner tree is the input graph itself, along with a specific witness tree that we prove to be optimal, such that the average H(w)-value is at least \(H(3) - \varepsilon \), for any fixed \(\varepsilon > 0\). More formally, we prove the following theorem.
Theorem 11
For any \(\varepsilon > 0\), there exists a leaf-adjacent CA-Node-Steiner-Tree instance \(G_\varepsilon \) such that \(\gamma _{G_\varepsilon } > H(3) - \varepsilon \).
Proof
We give an explicit construction that corresponds to a leaf-to-leaf Block-TAP instance, i.e., every Steiner node is adjacent to exactly two terminals. Recall that leaf-to-leaf instances are a specific case of leaf-adjacent instances. Consider the following graph. Let \(t = \lceil \frac{2}{3\varepsilon } \rceil + 1\) and let \(S = \{s_1, \ldots , s_t\}\). Let \(R = \bigcup _{i = 1}^t\{r_i^{(1)}, r_i^{(2)}\}\). For every \(i \in [t-1]\), the node \(s_i\) is adjacent to \(s_{i+1}\). In other words, the nodes \(s_1, \ldots , s_t\) form a path whose endpoints are \(s_1\) and \(s_t\). Finally, every Steiner node \(s_i\) is adjacent to terminals \(r_i^{(1)}\) and \(r_i^{(2)}\). Let \(G_\varepsilon = (R \cup S, E)\) be the resulting CA-Node-Steiner-Tree instance. Observe that there is a unique optimal Steiner tree, which is the graph \(G_\varepsilon \) itself. This implies that
We now consider the following witness tree W, that simply “follows” the path \(s_1, \ldots , s_t\). More precisely, we define \(W = (R, E_W)\) as follows:
-
There is an edge between \(r_i^{(1)}\) and \(r_i^{(2)}\) for every \(i \in [t]\).
-
There is an edge between \(r_i^{(1)}\) and \(r_{i+1}^{(1)}\) for every \(i \in [t-1]\).
It is easy to see that we have \(w(s_1) = w(s_t) = 2\), and \(w(s_i) = 3\) for every \(i \in \{2, \ldots , t-1\}\), and so we get that
Thus, the only thing remaining to show is that W is an optimal witness tree with respect to minimizing \(\sum _{i = 1}^t H(w(s_i))\). For that, let \(W^*\) be an optimal witness tree with respect to minimizing \(\sum _{i = 1}^t H(w(s_i))\), and let \(w^*\) be the vector imposed on S by \(W^*\). We first check if \((r_i^{(1)}, r_i^{(2)}) \in W^*\) for every \(i \in [t]\). Suppose that there is an \(i \in [t]\) such that \((r_i^{(1)}, r_i^{(2)}) \notin W^*\). We now add the edge \((r_i^{(1)}, r_i^{(2)})\) to \(W^*\) and a cycle is created. Clearly, there exists an edge \(e' \in W^*\) adjacent to \(r_i^{(2)}\) such that \(W' = (W^* \setminus \{e'\}) \cup \{(r_i^{(1)}, r_i^{(2)})\}\) is a terminal spanning tree. It is also easy to see that \(w'(s_j) \le w^*(s_j)\) for every \(j \in [t]\), where \(w'\) is the vector imposed on S by \(W'\). We conclude that \(\sum _{i = 1}^t H(w'(s_i)) \le \sum _{i = 1}^t H(w^*(s_i))\), and so from now on we assume without loss of generality that \((r_i^{(1)}, r_i^{(2)}) \in W^*\) for every \(i \in [t]\).
We now impose some more structure on \(W^*\). In particular, we process the terminals in increasing order of index, and for each \(i \in [t - 1]\), we replace any edge of the form \((r_i^{(2)}, r_j^{(x)})\), \(j > i\) and \(x \in \{1,2\}\), with the edge \((r_i^{(1)}, r_j^{(1)})\). It is easy to see that no w-value changes, and so from now on we assume without loss of generality that for every \(i \in [t]\), the terminal \(r_i^{(2)}\) is a leaf of \(W^*\) that is connected with \(r_i^{(1)}\).
Finally, we turn to the edges \((r_i^{(1)}, r_{i+1}^{(1)})\) that are in W for every \(i \in [t-1]\). If \(W^* \ne W\), then there exist \(1 \le i < j \le t\), with \(j - i > 1\) such that \(e = (r_i^{(1)}, r_j^{(1)}) \in W^*\). We remove e from \(W^*\) and get two subtrees \(W_1^*\) and \(W_2^*\), where \(r_i^{(1)} \in W_1^*\) and \(r_j^{(1)} \in W_2^*\). Consider any \(k\in \{i+1,\dots ,j-1\}\). Assume \(r_k^{(1)}\in W^*_1\). We now add the edge \(e' = (r_{k}^{(1)}, r_j^{(1)})\) and obtain a new witness tree \(W' = W_1^*\cup W_2^*\cup \{e'\}\). Note that the removal of e causes \(w(s_l)\) to decrease by 1 for every Steiner node \(s_l\) with \(i \le l \le j\), while the addition of \(e'\) increases \(w(s_l)\) by 1 for every Steiner node \(s_l\) with \(k \le l \le j\). The case when \(r_k^{(1)}\in W^*_2\) is symmetric, simply adding \((r_i^{(1)},r_k^{(1)})\) instead of \((r_{k}^{(1)}, r_j^{(1)})\). We conclude that \(\sum _{i = 1}^t w'(s_i) \le \sum _{i = 1}^t w^*(s_i)\), where \(w'\) is the vector imposed on S by \(W'\). Putting everything together, we get that W is an optimal witness tree with respect to minimizing \(\sum _{i = 1}^t H(w(s_i))\), and so \(\gamma _{G_\varepsilon } > H(3) - \varepsilon \).\(\square \)
An immediate corollary of the above theorem is the following.
Corollary 2
\(\gamma \ge H(3) = 1.8{\bar{3}}\).
The above lower bound shows a limitation of our techniques, as it demonstrates that one cannot hope to obtain a better than \(1.8{\bar{3}}\)-approximation by selecting a different (deterministic/randomized) witness tree.
6.2 Lower bound for the witness tree generated by Algorithm 2
Finally, besides the \(1.8{\bar{3}}\) lower bound, we also give an explicit example of a CA-Node-Steiner-Tree instance for which Algorithm 2 finds a witness tree that gives an average H(w)-value greater than 1.8504. This shows that our analysis of the approximation factor of Algorithm 1 with the witness tree generated by Algorithm 2 is off by at most 0.0416.
We now describe the CA-Node-Steiner-Tree instance \(T = (R\cup S^*, E^*)\), which is a tree; thus the optimal solution is T itself. We will show that Algorithm 2 finds a witness tree spanning the terminals of T that gives an average H(w)-value greater than 1.8504. We now describe the tree T, which consists of five layers:
-
the \(1^{\text {st}}\) layer contains a single node r.
-
the \(2^{\text {nd}}\) layer consists of 9 nodes \(\{x_1, \ldots , x_9\}\). For each \(i \in [9]\), there is an edge \((r, x_i)\).
-
the \(3^{\text {rd}}\) layer is the set \(\bigcup _{i = 1}^9 \{y_{i1}, \ldots , y_{i5}\}\), which consists of 9 groups of 5 nodes. For each \(i \in [9]\) and \(j \in [5]\), there is an edge \((x_i, y_{ij})\).
-
the \(4^{\text {th}}\) layer is the set \(\bigcup _{i = 1}^9 \bigcup _{j = 1}^5 \{z_{ij1}, \ldots , z_{ij4}\}\), which consists of \(9 \times 5\) groups of 4 nodes. For each \(i \in [9]\), \(j \in [5]\) and \(k \in [4]\), there is an edge \((y_{ij}, z_{ijk})\).
-
the \(5^{\text {th}}\) layer is the set \(R = \bigcup _{i = 1}^9 \bigcup _{j = 1}^5 \bigcup _{k = 1}^4 \{q_{ijk}^{(1)},q_{ijk}^{(2)}\}\), which consists of \(9 \times 5 \times 4 \times 2\) terminals. For each \(i \in [9]\), \(j \in [5]\) and \(k \in [4]\), there is an edge \((z_{ijk}, q_{ijk}^{(1)})\) and an edge \((z_{ijk}, q_{ijk}^{(2)})\).
There are no other edges contained in T. As in Sect. 4.1, the set of final Steiner nodes is the set of vertices in the \(4^{\text {th}}\) layer, and since there are exactly two distinct terminals adjacent to each final Steiner node, we remove all the terminals and simply increase the w-value of the each final Steiner node by 1. A pictorial representation of \(T \setminus R\) is provided in Fig. 6.
From now on, we denote the set of vertices of the subtree rooted at \(x_i\) as \(Q_{x_i}\). To use Algorithm 2, we root T at a final Steiner node, and without loss of generality, by the symmetry of T, we can root T at \(z_{222}\). Similarly, without loss of generality we can let the ordering of the leaves of T selected at step (1) of Algorithm 2 coincide with the lexicographic ordering of the leaf indices. With this ordering, for each non-final Steiner node \(u\in T\), we find the minimum-weight path P(u) described at step (3) of Algorithm 2, which we highlight in Fig. 7, along with the corresponding w-values.
For each \(Q_{x_i}\), \(i\in \{3,\dots ,9\}\), we have
and for \(Q_{x_1}\) we have
We now turn to the nodes in the set \(T\setminus \bigcup _{i \in [9] \setminus \{2\}}Q_{x_i}\). It is not hard to see that \(w(r) = 8\), and
Putting everything together, we get that the average H(w)-value of the Steiner nodes of T is
We conclude that for this particular instance, the analysis of of Algorithm 1 with the witness tree generated by Algorithm 2 will necessarily give an approximation factor strictly larger than 1.8504.
Notes
A cactus is a connected graph where every edge is part of exactly one cycle.
For that, we can simply add two parallel copies of each edge in the input tree of a TAP instance and the resulting instance is equivalent to a CacAP instance.
It is stated in [27] that 1-Node-CAP and Block-TAP are equivalent by relying on constructing the so-called block-cut tree of a given graph. While this is immediate if one allows weights for the links (see also [17, 21]), the same reduction does not seem to hold in the unweighted setting. We refer to A.2.1 for more details.
Roughly speaking, in order to ensure that the sum is the same during all iterations, we can slightly modify the algorithm and add a dummy component of zero cost whose x-value is set in such a way so that the summation is equal to some \(M > 0\). A coupling argument shows that all expected properties of the output are the same for both versions of the algorithm. See [page 12, [5]] for more details.
References
Adjiashvili, D.: Beating approximation factor two for weighted tree augmentation with bounded costs. ACM Trans. Algorithms 15(2), 19:1-19:26 (2019)
Basavaraju, M., Fomin, F.V., Golovach, P.A., Misra, P., Ramanujan, M.S., Saurabh, S.: Parameterized algorithms to preserve connectivity. In: Proceedings of the 41st International Colloquium on Automata, Languages, and Programming (ICALP), p 800–811 (2014)
Borchers, A., Du, D.: The \(k\)-steiner ratio in graphs. SIAM J. Comput. 26(3), 857–869 (1997)
Byrka, J., Grandoni, F., Ameli, A.J.: Breaching the 2-approximation barrier for connectivity augmentation: a reduction to Steiner tree. In: Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing (STOC), p 815–825 (2020)
Byrka, J., Grandoni, F., Rothvoß, T., Sanità, L.: Steiner tree approximation via iterative randomized rounding. J. ACM 60(1), 6:1-6:33 (2013)
Cecchetto, F., Traub, V., Zenklusen, R.: Bridging the gap between tree and connectivity augmentation: unified and stronger approaches. In: Proceedings of the 53rd Annual ACM SIGACT Symposium on Theory of Computing (STOC), p 370–383. ACM (2021)
Cheriyan, J., Gao, Z.: Approximating (unweighted) tree augmentation via lift-and-project, part I: stemless TAP. Algorithmica 80(2), 530–559 (2018)
Cheriyan, J., Gao, Z.: Approximating (unweighted) tree augmentation via lift-and-project, part II. Algorithmica 80(2), 608–651 (2018)
Cheriyan, J., Jordán, T., Ravi, R.: On 2-coverings and 2-packings of laminar families. In: Proceedings of the 7th Annual European Symposium on Algorithms (ESA), Lecture Notes in Computer Science, vol. 1643, p 510–520. Springer (1999)
Cheriyan, J., Karloff, H.J., Khandekar, R., Könemann, J.: On the integrality ratio for tree augmentation. Oper. Res. Lett. 36(4), 399–401 (2008)
Cheriyan, J., Végh, L.A.: Approximating minimum-cost k-node connected subgraphs via independence-free graphs. SIAM J. Comput. 43(4), 1342–1362 (2014)
Cohen, N., Nutov, Z.: A \((1+\ln 2)\)-approximation algorithm for minimum-cost 2-edge-connectivity augmentation of trees with constant radius. Theor. Comput. Sci. 489–490, 67–74 (2013)
Dinic, E., Karzanov, A., Lomonosov, M.: The system of minimum edge cuts in a graph. In book: Issledovaniya po Diskretnoĭ Optimizatsii (Engl. title: Studies in Discrete Optimizations), A.A. Fridman, ed., Nauka, Moscow, 290-306, in Russian, (1976)
Even, G., Feldman, J., Kortsarz, G., Nutov, Z.: A 1.8 approximation algorithm for augmenting edge-connectivity of a graph from 1 to 2. ACM Trans. Algorithms 5(2), 21:1-21:17 (2009)
Feldman, J., Ruhl, M.: The directed steiner network problem is tractable for a constant number of terminals. In: Proceedings of the 40th Annual Symposium on Foundations of Computer Science (FOCS), p 299–308. IEEE Computer Society (1999)
Fiorini, S., Groß, M., Könemann, J., Sanità, L.: Approximating weighted tree augmentation via chvátal-gomory cuts. In: Proceedings of the 29th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), p 817–831. SIAM (2018)
Frederickson, G.N., JáJá, J.: Approximation algorithms for several graph augmentation problems. SIAM J. Comput. 10(2), 270–283 (1981)
Goemans, M.X., Goldberg, A.V., Plotkin, S.A., Shmoys, D.B., Tardos, É., Williamson, D.P.: Improved approximation algorithms for network design problems. In: Proceedings of the 5th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), p 223–232 (1994)
Grandoni, F., Kalaitzis, C., Zenklusen, R.: Improved approximation for tree augmentation: saving by rewiring. In: Proceedings of the 50th Annual ACM SIGACT Symposium on Theory of Computing (STOC), p 632–645. ACM (2018)
Jain, K.: A factor 2 approximation algorithm for the generalized steiner network problem. Comb. 21(1), 39–60 (2001)
Khuller, S., Thurimella, R.: Approximation algorithms for graph augmentation. J. Algorithms 14(2), 214–225 (1993)
Klein, P.N., Ravi, R.: A nearly best-possible approximation algorithm for node-weighted steiner trees. J. Algorithms 19(1), 104–115 (1995)
Kortsarz, G., Nutov, Z.: A simplified 1.5-approximation algorithm for augmenting edge-connectivity of a graph from 1 to 2. ACM Trans. Algorithms 12(2), 23:1-23:20 (2016)
Kortsarz, G., Nutov, Z.: LP-relaxations for tree augmentation. Discret. Appl. Math. 239, 94–105 (2018)
Nagamochi, H.: An approximation for finding a smallest 2-edge-connected subgraph containing a specified spanning tree. Discret. Appl. Math. 126(1), 83–113 (2003)
Nutov, Z.: On the tree augmentation problem. In: Proceedings of the 25th Annual European Symposium on Algorithms (ESA), p 61:1–61:14 (2017)
Nutov, Z.: 2-node-connectivity network design. In: Proceedings of the 18th International Workshop on Approximation and Online Algorithms (WAOA), Lecture Notes in Computer Science, vol. 12806, p 220–235. Springer (2020)
Nutov, Z.: A 4 + \(\epsilon \) approximation for k-connected subgraphs. In: Proceedings of the 31st ACM-SIAM Symposium on Discrete Algorithms (SODA), p 1000–1009. SIAM (2020)
Nutov, Z.: Approximation algorithms for connectivity augmentation problems. In: Proceedings of the 16th International Computer Science Symposium in Russia (CSR), vol. 12730, p 321–338. Springer (2021)
Segev, A.: The node-weighted steiner tree problem. Networks 17(1), 1–17 (1987)
Traub, V., Zenklusen, R.: A better-than-2 approximation for weighted tree augmentation. 62nd IEEE Annual Symposium on Foundations of Computer Science, FOCS Denver, CO, USA. 1–12 (2021) https://doi.org/10.1109/FOCS52979.2021.00010.
Traub, V., Zenklusen, R.: Local search for weighted tree augmentation and steiner tree. Proceedings of the 2022 ACM-SIAM Symposium on Discrete Algorithms, SODA 2022, Virtual Conference / Alexandria, VA, USA. 3253–3272 (2021). https://doi.org/10.1137/1.9781611977073.128.
Xu, X., Wang, Y., Du, H., Wan, P., Zou, F., Li, X., Wu, W.: Approximations for node-weighted steiner tree in unit disk graphs. Optim. Lett. 4(3), 405–416 (2010)
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Missing proofs
Missing proofs
1.1 Proof of Theorem 4
Let \((G=(V,E),L)\) be a given CacAP instance, where \(L \subseteq \left( {\begin{array}{c}V\\ 2\end{array}}\right) \). For every link \(\ell = (v_0,v_{n+1})\) let \(v_1,\dots ,v_n\) be the sequence of nodes of degree at least 4 that belong to every simple path from \(v_0\) to \(v_{n+1}\) in G, such that each pair \(\ell _i = \{v_i, v_{i+1}\}\) lies on the same cycle \(C_i\) in G. We call each \(\ell _i\) a projection of \(\ell \) on \(C_i\), and the set of projections of \(\ell \) is denoted by \(\text {proj}(\ell )\). Projections \(\ell _i = (v, u)\) and \(\ell _{i'}' = (v',u')\) of \(\ell \in L\) and \(\ell ' \in L\), respectively, are said to cross if they satisfy one of the following conditions: they share an endpoint, or they have both endpoints on the same cycle C and one of the two simple v to u paths in C contain exactly one of \(u'\) or \(v'\). Links \(\ell \) and \(\ell '\) are said to cross if they have projections \(\ell _i\in \text {proj}(\ell )\) and \(\ell _{i'}'\in \text {proj}(\ell ')\) that cross.
From (G, L) we construct a Node Steiner Tree instance \(G_{ST} = (R\cup L, E_{ST})\) in the following way. The set of links L make up the Steiner nodes of \(G_{ST}\) and the set of degree-2 nodes in G make up the set of terminals R. For each link \(\ell \in L\) with endpoint \(r\in R\), we have \((\ell , r)\in E_{ST}\), and for each pair of links \(\ell \) and \(\ell '\) that cross, we have \((\ell ,\ell ') \in E_{ST}\). Notice that \(G_{ST}\) is, in particular, a CA-Node-Steiner-Tree instance.
A key lemma that shows why the above reduction is useful is the following; its proof is given in [2, 4].
Lemma 7
([2, 4]) Let (G, L) be a CacAP instance, and let \(G_{ST} = (R\cup L, E_{ST})\) be the corresponding CA-Node-Steiner-Tree instance. A subset of links \(L'\subseteq L\) is a feasible solution of (G, L) if and only if \(G_{ST}[R\cup L']\) is connected.
Clearly, a feasible solution \(L'\) to a CacAP instance (G, L) has size \(\vert L'\vert \) and implies a feasible solution to the corresponding CA-Node-Steiner-Tree instance \(G_{ST} = (T\cup L, E_{ST})\) of size \(\vert L'\vert \) and vice versa, so we can conclude Theorem 4.
1.2 Proof of Theorem 5
In this section we slightly generalize the reduction from a Block-TAP instance to CA-Node-Steiner-Tree that was described by Nutov [27], and give a reduction from 1-Node-CAP to CA-Node-Steiner-Tree that shows that an \(\alpha \)-approximation for CA-Node-Steiner-Tree implies an \(\alpha \)-approximation for 1-Node-CAP. The reduction has two steps. We first reduce the original problem to a weighted Block-TAP instance with specific properties, where each link has weight either 0 or 1. We then show that Nutov’s reduction [27] still applies, and it gives a final CA-Node-Steiner-Tree instance that is unweighted.
1.2.1 The reduction to Block-TAP with \(\{0,1\}\) weights
In this section, we use one of the standard ways to reduce a 1-Node-CAP instance to a Block-TAP instance. Let \(G = (V, E)\) be a connected graph, and let \(L \subseteq \left( {\begin{array}{c}V\\ 2\end{array}}\right) \) be a set of links. Let \(C \subseteq V\) be the set of cut nodes of G. As a reminder, a node \(c \in V\) is a cut node of G if \(G \setminus \{c\}\) is not connected. Note that if \(C = \emptyset \), then G is already 2-node-connected, and so the problem is trivial. So, from now on we assume that \(C \ne \emptyset \).
We start by computing the block-cut tree \(T = (V_T, E_T)\) of G. It is well-known that the block-cut tree of a graph can be computed in polynomial time. T contains one copy of each cut node of G and one node for each maximal 2-node connected component of G. Let \(C = \{c_1, \ldots , c_n\} \subseteq V\) be the set of cut nodes of G, and let \({\mathcal {B}} = \{B_1, \ldots , B_m\}\) be the collection of maximal 2-node connected components. We have \(V_T = C \cup {\mathcal {B}}\). The edge set \(E_T\) is defined as follows: for every \(i \in [n], j \in [m]\), \((c_i, B_j) \in E_T\) if and only if \(c_i \in B_j\). It is easy to verify that the resulting graph T is indeed a tree.
Along with a block-cut tree T of a graph G, we also define a function \(f_G\) that maps the nodes of G to the nodes of T. More precisely, we define a map \(f_G: V\rightarrow V_T\) as follows: \(f_G(c_i) = c_i\), for every \(i \in [n]\), and \(f_G(v) = B_j\) for every \(j \in [m]\), \(v \in B_j \setminus C\). Note that \(f_G\) is well-defined, i.e., for every \(v \in V \setminus C\), there exists exactly one block \(B_j\) such that \(v \in B_j\). We also extend the map \(f_G\) and define \(f_G(\ell ) :=(f_G(u), f_G(v))\), for any \(\ell = (u,v) \in L\). Finally, the set of links \(L_T \subseteq \left( {\begin{array}{c}V_T\\ 2\end{array}}\right) \) is defined as follows:
-
for each link \(\ell = (u,v) \in L\) there is a link \(\ell _T :=f_G(\ell ) \in L_T\) of weight 1. Let \(f_G(L)\) denote the set of all such links.
-
for each block \(B_j\), \(j \in [m]\), and every pair of cut vertices \(c, c' \in B_j \cap C\), where \(c \ne c'\), there is a link \((c,c') \in L_T\) of weight 0. Let \(L_0\) denote the set of all the links of this form.
Throughout the rest of this section, we will use the notation introduced in these last two paragraphs. The following observation is now easy to verify.
Observation 1
Let \(G = (V, E)\) be a connected graph and let \(T = (V_T, E_T)\) be a block-cut tree of G. Let \(f_G: V \rightarrow V_T\) be the associated map. Let c be a cut vertex of G, and let \(G_1, \ldots , G_k\) be the connected components of \(G \setminus \{c\}\), where \(k \in {\mathbb {N}}_{\ge 2}\). Let \(T_1, \ldots , T_{k'}\) be the connected components of \(T \setminus \{c\}\). Let \(V_i \subseteq V\) be the set of nodes contained in the blocks that are nodes of \(T_i\), for every \(i \in [k']\). Then, the following hold:
-
1.
\(k = k'\),
-
2.
there is a bijection \(g_c: [k] \rightarrow [k]\), such that \(V_{g_c(i)} = V(G_i) \cup \{c\}\) for every \(i \in [k]\), where \(V(G_i)\) is the set of nodes contained in \(G_i\),
-
3.
\(V_i \cap V_j = \{c\}\) for every \(i \ne j \in [k]\).
We will now show that the two instances are equivalent. More precisely, we prove the following lemma.
Lemma 8
Let \(G = (V, E)\) be a connected graph and let L be a set of links in G. Let \(T = (V_T, E_T)\) be the corresponding block-cut tree of G, let \(f_G\) be the associated map between V and \(V_T\), and let \(L_T = f_G(L) \cup L_0\) be the corresponding set of links. Let \(L' \subseteq L(G)\). Then, \(G \cup L'\) is 2-node-connected if and only if \(T \cup f_G(L') \cup L_0\) is 2-node-connected.
Before proving the lemma, we note that we might have two (or more) links \(\ell \ne \ell ' \in L\) being mapped, via \(f_G\), to the same \({\bar{\ell }}\) link in T; in other words, \(f_G^{-1}({\bar{\ell }})\) might be a set with more than one link. In such a case, we map back \({\bar{\ell }}\) to any link of \(f_G^{-1}({\bar{\ell }})\) in an arbitrary way.
Proof of Lemma 8
Let \(L' \subseteq L\) be a set of links such that \(G \cup L'\) is 2-node-connected. We will show that \(T \cup f_G(L') \cup L_0\) is 2-node-connected. Suppose otherwise. This means that there exists a node \(u \in V_T\) that, if removed, disconnects the tree. We observe that u must necessarily be a cut node, i.e., \(u = c \in C\). To see this, note that in the graph \(T \cup L_0\), all nodes that are adjacent to a node \(B_j\), for any \(j \in [m]\), form a clique, and thus, the removal of \(B_j\) cannot disconnect the graph \(T \cup L_0(T)\). Since \(u = c\) is a cut node, it means that \(G \setminus \{c\}\) is not connected. By Observation 1, the connected components \(G_1, \ldots , G_k\) of \(G \setminus \{c\}\) correspond, one by one, to the components \(T_1, \ldots , T_k\) of \(T \setminus \{c\}\). This implies that any link \(\ell \in L'\) connecting component \(G_i\) with component \(G_j\), \(i \ne j \in [k]\), corresponds to a link \(f_G(\ell )\) connecting \(T_i\) with \(T_j\). Thus, since \((G \cup L') \setminus \{c\}\) is connected, this means that \((T \cup f_G(L')) \setminus \{c\}\) is connected, and so we get a contradiction. We conclude that \(T \cup f_G(L') \cup L_0(T)\) is 2-node-connected.
Conversely, let \(L' \subseteq L\) such that \(T \cup f_G(L') \cup L_0\) is 2-node-connected. We will show that \(G \cup L'\) is 2-node-connected. Suppose otherwise. This means that there exists a cut node \(c \in C\) such that \((G \cup L') \setminus \{c\}\) is not connected. In particular, there are at least 2 connected components \(H_1\) and \(H_2\) in \((G \cup L') \setminus \{c\}\), and these components are simply unions of the connected components \(G_1, \ldots , G_k\) of \(G \setminus \{c\}\). Since there are no links with c as an endpoint in the graph \((T \cup f_G(L') \cup L_0) \setminus \{c\}\), this means that the connected components of \((T \cup f_G(L') \cup L_0) \setminus \{c\}\) are exactly the same as the connected components of \((T \cup f_G(L')) \setminus \{c\}\). Moreover, by Observation 1, the components \(G_1, \ldots , G_k\) correspond, one by one, to the components \(T_1, \ldots ,T_k\) of \(T \setminus \{c\}\). Since \((T \cup f_G(L')) \setminus \{c\}\) is connected, this means that the set \(f_G(L')\) contains links that do not have c as an endpoint which connect all of the components \(T_1, \ldots , T_k\) to a single component; in particular, if \(u \in H_1\) and \(v \in H_2\), then there is a path between \(f_G(u)\) and \(f_G(v)\) in \((T \cup f_G(L')) \setminus \{c\}\). This means that \(H_1\) and \(H_2\) must be connected via \(L'\), and so we get a contradiction. We conclude that \(G \cup L'\) is 2-node-connected.\(\square \)
1.2.2 The reduction to CA-Node-Steiner-Tree
Given the Block-TAP instance \(T = (V_T, E_T)\), as constructed in the previous section, we now modify Nutov’s reduction [27] in order to reduce our weighted Block-TAP instance to an unweighted CA-Node-Steiner-Tree instance. To simplify notation, we denote the set of links in T as \(L = L_0 \cup L_1\), where \(L_0\) is the set of links of weight 0 and \(L_1\) is the set of links of weight 1. Let \(R \subseteq E_T\) be the set of edges of T that have a leaf as an endpoint; these edges will correspond to terminals in the resulting CA-Node-Steiner-Tree instance. We define three graphs, with the last one being the final resulting CA-Node-Steiner-Tree instance.
Definition 4
-
1.
The \((L,E_T)\)-incidence graph is the graph with node set \(L \cup E_T\) and edge set defined as follows: there is an edge between \(\ell = (u,v) \in L\) and \(e\in E_T\) if e belongs to the unique path in T connecting u and v.
-
2.
The short-cut \((L, E_T)\)-incidence graph is obtained from the \((L, E_T)\)-incidence graph by short-cutting the set \(E_T\), where short-cutting a node \(e \in E_T\) means adding a clique between the neighbors of e.
-
3.
The reduced \((L,E_T)\)-incidence graph is obtained from the short-cut \((L,E_T)\)-incidence graph as follows. For every \(\ell \ne \ell ' \in L_1\) such that there is a path between \(\ell \) and \(\ell '\) in the short-cut \((L,E_T)\)-incidence graph whose nodes, other than the endpoints, all belong to \(L_0\), we add an edge between \(\ell \) and \(\ell '\). We then delete the set \(E_T \setminus R\) and the set \(L_0\). In this resulting instance, let R be the set of terminals and \(L_1\) be the set of Steiner nodes.
We stress that the final reduced \((L,E_T)\)-incidence graph is treated as an unweighted Node Steiner Tree instance, i.e, all Steiner nodes have weight 1. For \(J = T \cup L\), we define \(\kappa _J(s,t)\) to be the maximum number of internally node disjoint paths from s to t in J. Given a block-cut tree \(T = (V_T, E_T)\) with a set of links \(L = L_0 \cup L_1\), let H be the \((L,E_T)\)-incidence graph, and let \(H_R\) be the reduced \((L,E_T)\)-incidence graph. For distinct vertices \(s,t\in V_T\), we say (s, t) are H-reachable if H has a path connecting \(e^{(s)}\) with \(e^{(t)}\), where \(e^{(s)}\) and \(e^{(t)}\) are the edges of the unique path from s to t in T that are incident to s and t, respectively. We are now ready to prove the key lemma of this section; its proof closely follows [27].
Lemma 9
Let \(T = (V_T,E_T)\) be a block-cut tree with a set of links \(L = L_0 \cup L_1\). Let H be the \((L,E_T)\)-incidence graph. Let \(J = T \cup L\). Then for \(s,t\in V_T\) such that \((s,t) \notin E_T\), \(\kappa _J (s,t) \ge 2\) if and only if (s, t) are H-reachable.
Proof
Let \(s \ne t\in V_T\) such that \((s,t) \notin E_T\), and P be the unique path between s and t in T. We treat P both as a set of edges and a set of vertices. Let \(e^{(s)}\) and \(e^{(t)}\) be the edges of the unique path from s to t in T that are incident to s and t, respectively. We will prove the statement by using induction on the number of edges in P.
Base case. The base case is when P has 2 edges. Let \(P = (s,u,t)\). If \(u = B_j\), for some \(j \in [m]\), then s and t are necessarily cut nodes that belong to the same block \(B_j\). In this case, we have \(\kappa _{T \cup L_0} (s,t) \ge 2\), and by construction, we also have the path \((e^{(s)}, \ell , e^{(t)})\) in H, where \(\ell = (e^{(s)}, e^{(t)}) \in L_0\). Thus, in this case the statement trivially holds.
So, suppose now that \(u = c \in C\). In this case, we have \(s = B_i\) and \(t = B_j\), \(i \ne j\), such that \(c \in B_i \cap B_j\). Suppose that \(\kappa _J(s,t)\ge 2\). Consider \(T\setminus \{c\}\) and let \(T^{(s)}, T^{(t)}\) be the components of \(T\setminus \{c\}\) that contain s and t, respectively. Then, \(J\setminus \{c\}\) has a path from s to t. Consider such a path Q, and suppose that Q goes through each of the components \(T^{(s)}=T_0,T_1,\dots ,T_{l-1},T_l=T^{(t)} \subset T\setminus \{c\}\) exactly once, where \(l \in {\mathbb {N}}_{\ge 1}\); without loss of generality the components are labelled in the order Q visits them. It is easy to see that we must have a link \(\ell _x \in L_1\) between \(T_x\) and \(T_{x+1}\), for every \(x \in \{0, 1, \ldots , l-1\}\). Let \(e_x\) denote the edge in T that is adjacent to c and has an endpoint in \(T_x\), for \(x \in \{0, 1, \ldots , \ell \}\). Note that we have \(e_0=e^{(s)}\) and \(e_{l}=e^{(t)}\). It is not hard to see that we have the following path between \(e^{(s)}\) and \(e^{(t)}\) in H: \(e^{(s)},\ell _0,e_1,\ell _1,\dots ,\ell _{l-1},e^{(t)}\). We conclude that (s, t) are H-reachable.
Suppose now that \(\kappa _J(s,t)=1\). This implies that \(J\setminus \{c\}\) has no path between s and t. Let \(J^{(s)}\) be the component of \(J\setminus \{c\}\) that contains s. Let \(L^{(s)}\) and \(L^{(t)}\) be the set of links that have both endpoints in \(J^{(s)}\cup \{c\}\) and \(V\setminus J^{(s)}\), respectively. Since there is no path between s and t in \(J\setminus \{c\}\), it is clear that \(L^{(s)}\) and \(L^{(t)}\) partition L. In particular, this means that for any link \(\ell \in L^{(s)}\), the path in T connecting the endpoints of \(\ell \) shares no edges with the corresponding path for any link in \(L^{(t)}\). Thus, there is no path between \(e^{(s)}\) and \(e^{(t)}\) in H, and the claim holds.
Induction step. We now suppose that P has at least 3 edges, and that the claim holds for all paths whose number of edges is strictly smaller than the number of edges in P. Let (u, v) and \((v,t) = e^{(t)}\) be the last two edges in P. In order to prove that the claim holds, we first prove several other facts we will need. From now on, let \(P_{xy}\) denote the subpath of P with endpoints \(x \in V_T\) and \(y \in V_T\).
Fact 1
If \(\kappa _J(s,t) \ge 2\), then \(\kappa _J(s,v) \ge 2\).
Proof
Suppose that \(\kappa _J(s,t) \ge 2\), and let Z be the cycle in J formed by taking the union of two node disjoint paths from s to t in J. Obviously, if v is part of Z, we have two internally disjoint paths from s to v in J, and in this case the claim holds. If v is not part of Z, then let a be the node in \(P_{sv}\) such that the path \(P_{av}\) only shares a single node with the cycle Z; clearly, such a node a always exists, as s belongs both to Z and \(P_{sv}\). We claim that the set of edges \(Z \cup P_{av} \cup \{(v,t)\}\) contains two internally disjoint paths from s to v. In particular, the first path is the union of the shortest path \(P'\) in Z from s to a along with \(P_{av}\), while the second path is a subset of the edges \(Z \setminus P'\) along with the edge (v, t).\(\square \)
Fact 2
If (s, v) and (u, t) are both H-reachable, then (s, t) are H-reachable.
Proof
By assumption, there is a path between \(e^{(s)}\) and \((u,v) \in E_T\) in H, and a path between \((u,v) \in E_T\) and \((v,t) = e^{(t)} \in E_T\). Combining these paths gives the result.\(\square \)
Fact 3
If (s, t) are H-reachable, then (s, v) are H-reachable.
Proof
Suppose Q is the path between \(e^{(s)}\) and \(e^{(t)}\) in H. First, suppose that \(t \in C\). In this case, \(v = B_j\) and \(u = c'\in C\), which means that there exists a link \(\ell ' \in L_0\) that is adjacent to both \(e^{(t)}\) and (u, v). Hence, \(Q \cup \ell '\) connects \(e^{(s)}\) and (u, v), meaning (s, v) are H-reachable.
Now, assume \(t \notin C\). Thus, we must have \(u = B_i\), \(v = c \in C\) and \(t = B_j\), for some \(i \ne j \in [m]\). If there is a link \(\ell \in L\) that is part of Q and is adjacent to (u, v), then the claim holds. So, suppose there is no such link. Let \(L^{(s)}\) and \(L^{(t)}\) be the set of links in L with both ends in the connected components of \(T \setminus \{(u,v)\}\) containing s and t, respectively. The only links not included in \(L^{(s)} \cup L^{(t)}\) are those where the path between their endpoints in T contains the edge \((u,v) \in E_T\). In particular, this implies that Q only contains links from \(L^{(s)} \cup L^{(t)}\). However, there is no path between \(e^{(s)}\) and \(e^{(t)}\) using only edges from \(L^{(s)}\) and \(L^{(t)}\), which contradicts the existence of the path Q. Thus, Q must contain a link that is adjacent to (u, v) and we conclude that the claim holds.\(\square \)
Resuming the induction, suppose that \(\kappa _J(s,t)\ge 2\). Then by Fact 1, we know that \(\kappa _J(s,v)\ge 2\) and \(\kappa _J(u,t)\ge 2\). Using the induction hypothesis, this implies that (s, v) and (u, t) are H-reachable, and by Fact 2 we conclude that (s, t) are H-reachable.
Suppose now that (s, t) are H-reachable, and assume for contradiction that \(\kappa _J(s,t) =1\). By Fact 3, we know that (s, v) and (u, t) are H-reachable. Using the induction hypothesis, we get that \(\kappa _J(s,v) \ge 2\) and \(\kappa _J(u,t)\ge 2\). Since \(\kappa _J(s,t)=1\), there is a node \(a \in P \setminus \{s,t\}\) such that s and t are in separate connected components of \(J\setminus \{a\}\). If \(a \in P_{su} \setminus \{s\}\), then this contradicts the fact that \(\kappa _J(s,v)\ge 2\). If \(a=v\), then this contradicts the fact that \(\kappa _J(u,t) \ge 2\). Thus, we must have \(\kappa _J(s,t) \ge 2\). This concludes the induction step, and the proof.\(\square \)
Using the above lemma, we can show that we only need to focus on the reduced \((L,E_T)\)-incidence graph.
Lemma 10
J is 2-node-connected if and only if \(H_R\) has a path between every two terminals.
Proof
We first observe that J is 2-node-connected if and only if \(\kappa _J(s,t)\ge 2\) for every pair of leaves s, t of T. Combined with Lemma 9, this implies that J is 2-node-connected if and only if for any 2 leaves \(s,t\in T\), (s, t) are H-reachable. To obtain the reduced \((L,E_G)\)-incidence graph \(H_R\), we perform the following steps. We first short-cut the set \(E_T\) of nodes of H; clearly this does not modify the connectivity of H. Afterwards, we extend the neighborhood of each link \(\ell \) of weight 1, and make \(\ell \) adjacent to any other link \(\ell '\) of weight 1 that can be reached from \(\ell \) in the incidence graph via a path that only uses links of weight 0.
We now make some observations. We observe that short-cutting ensures that if there is a path between two leaf-edges in the original incidence graph, then there is also a path in the incidence graph whose endpoints are leaf-edges and whose internal nodes are all links. Moreover, since no link of \(L_0\) is adjacent to a leaf edge, this means that if there is a path between two leaf-edges in the original incidence graph, H, then there is also a path in \(H_R\) whose endpoints are leaf-edges and whose internal nodes are all links in \(L_1\). This means that, by performing the final step where we remove the nodes of \(L_0\) and \(E_T \setminus R\), connectivity between leaf-edges is maintained. We conclude that for any 2 leaves \(s,t \in T\), (s, t) are H-reachable if and only if they are \(H_R\)-reachable. Putting everything together, the claim holds.\(\square \)
We now have all the ingredients necessary to prove Theorem 5.
Proof of Theorem 5
Given a connected graph \(G = (V, E)\) with a set of links L, we construct the block-cut tree \(T = (V_T, E_T)\) and the reduced \((f_G(L) \cup L_0, E_T)\)-incidence graph \(H_R\). The resulting instance is viewed as a Node Steiner Tree instance, where R, the set of leaf-edges of T, is the set of terminals and \(f_G(L)\) is the set of links. Lemmas 10 and 8 imply that \(J' = G\cup L'\) is 2-node-connected, for some \(L' \subseteq L\), if and only if the set \(f_G(L')\) is a feasible solution for the constructed Node Steiner Tree \(H_R\), and moreover, the cost of \(L'\) in both instances is the same and equal to \(|L'|\).
It remains to see that the resulting Node Steiner Tree instance is in fact a CA-Node-Steiner-Tree instance, which can be done by verifying that the requirements for a CA-Node-Steiner-Tree instance hold. By definition of the incidence graph it is clear that terminals are only adjacent to Steiner Nodes. By definition of the short-cut \((L,E_G)\)-incidence graph we know that the neighbors of a terminal form a clique. Finally, any link \(\ell \) in H is adjacent only to the edges that appear on the path in T between its endpoints, and for any such path at most two edges are leaf-edges. Since we only have leaf-edges in the reduced incidence graph, we get that each Steiner node is adjacent to at most two terminals. This concludes the proof.\(\square \)
1.3 Proof of Theorem 6
Before proving Theorem 6, we start with the following observations and lemmas.
Observation 2
Let \(\texttt {OPT}\) be the optimal cost of a CA-Node-Steiner-Tree instance with t terminals. Then, we have \(\texttt {OPT}\ge t/2\).
Definition 5
A rooted binary tree is called regular if every non-leaf node has exactly 2 children.
As a clarification, a leaf in this rooted tree is a vertex with no children. For the rest of this section, we use the notation \(P_T(u,v)\) to denote the unique path from u to v in a tree T.
Lemma 11
(see also Lemma 3.1 in [3]) For any rooted regular binary tree \(T = (V, E)\) with a set of leaves \(C \subseteq V\), there exists a one-to-one mapping \(f: V \setminus C \rightarrow C\) from non-leaf nodes to leaves, such that
-
for every \(u \in V \setminus C\), f(u) is a descendent of u, and
-
all paths \(P_T(u,f(u))\) from \(u \in V \setminus C\) to f(u) are pairwise edge disjoint, and internally node disjoint (where internally node disjoint means that there is no node that belongs to both paths and is also internal for both paths).
Proof
We will prove a slightly stronger statement which implies the lemma. We will show that for any regular binary tree \(T = (V, E)\) rooted at a vertex \(r \in V\) with a set of leaves \(C \subseteq V\), there exists a one-to-one mapping \(f: V \setminus C \rightarrow C\) from non-leaves to leaves such that:
-
1.
for every \(u \in V \setminus C\), f(u) is a descendant of u,
-
2.
all paths \(P_T(u,f(u))\) from u to f(u) are pairwise edge disjoint, and internally node disjoint,
-
3.
there exists a leaf \(c_0 \in C\) that is not the image of any non-leaf node, such that the path \(P_T(r, c_0)\) from the root r of the tree to \(c_0\) is edge disjoint and internally node disjoint from any other path \(P_T(u, f(u))\), for any \(u \in V \setminus C\).
To prove the above statement, we use induction on the height h of the tree, where we define the height of the tree as the maximum number of nodes that appear in any path from the root to a leaf, including the endpoints. The base case is \(h = 1\), in which case, the tree consists of a single leaf, and thus the statement is trivially true. Suppose now that the statement holds for all regular binary trees of height at most \(h \ge 1\). We will show that the statement also holds for all regular binary trees of height \(h+1\).
Let \(T = (V, E)\) be a tree of height \(h+1\), let r be its root, and let \(u_1\) and \(u_2\) be its two children. Let \(C \subseteq V\) be its set of leaves. The subtrees \(T_1\) and \(T_2\), rooted at \(u_1\) and \(u_2\), respectively, are both regular binary trees of height at most h. Let \(V_i\) denote the set of vertices of \(T_i\), for \(i \in \{1,2\}\), and \(C_i \subseteq V_i\) denote the set of leaves of \(T_i\), for \(i \in \{1,2\}\). Note that \(V = \{r\} \cup V_1 \cup V_2\) and \(C = C_1 \cup C_2\). By the induction hypothesis, there exist maps \(f_1: V_1 \setminus C_1 \rightarrow C_1\) for \(T_1\) and \(f_2: V_2 \setminus C_2 \rightarrow C_2\) for \(T_2\) that satisfy the desired properties. Let \(c_i \in C_i\) be the leaf of \(T_i\) that satisfies the third property of the statement, for \(i \in \{1,2\}\). We now define the map \(f: V \setminus C \rightarrow C\) for T as follows:
-
\(f(r) = c_1\),
-
for every \(i \in \{1,2\}\) and \(u \in V_i \setminus C_i\), we set \(f(u) = f_i(u)\),
Clearly, the first property of the statement is satisfied. By the induction hypothesis, and since \(T_1\) and \(T_2\) are disjoint, we get that all paths \(\{P_T(u,f(u))\}_{u \in V \setminus (C \cup \{r\})}\) are pairwise edge disjoint, and internally they are node disjoint. Thus, we only need to check the path \(P_T(r,c_1)\). We observe that the path \(P_T(r,c_1)\) from r to \(c_1\) is clearly node disjoint from all paths of the set \(\{P_T(u,f(u))\}_{u \in V_2 \setminus C_2}\) and by the induction hypothesis, it is also edge disjoint and internally node disjoint from any path \(P_T(u,f(u))\) where \(u \in V_1 \setminus C_1\). Again, we clarify here that internally node disjoint means that there is no node that belongs to both paths and is also internal for both paths. Thus, the first two properties are satisfied. In order to prove the third property, we set \(c_0 \equiv c_2\). By the induction hypothesis, the path \(P_T(v_2, c_2)\) is edge disjoint and internally node disjoint from any other path of the set \(\{P_T(u,f(u))\}_{u \in V_2 \setminus C_2}\). Moreover, it only intersects the path from r to f(r) at its endpoint. Thus, the third property is satisfied for T. This concludes the proof.\(\square \)
Lemma 12
Let \(T = (V, E)\) be a tree with t leaves, and let d(v) be the degree of \(v \in V\). Then, we have \(\sum _{v\in V : d(v) \ge 3} (d(v) - 2) \le t\).
Proof
Let n be the total number of vertices of T, which we decompose as \(n = t + n_2 + n_{\ge 3}\), where \(n_2\) is the number of vertices of degree exactly 2, and \(n_{\ge 3}\) is the number of vertices of degree at least 3. We have \(t + 2n_2 + \sum _{v \in V: d(v) \ge 3} d(v) = 2(n-1) = 2t + 2n_2 + 2n_{\ge 3} - 2\), which gives \(\sum _{v \in V: d(v) \ge 3} (d(v) - 2) = t - 2 \le t\).\(\square \)
We are now ready to prove Theorem 6.
Proof of Theorem 6
We begin with an optimal solution Q of cost \(\texttt {OPT}\) to the given CA-Node-Steiner-Tree instance, whose set of leaves is identical to the set of terminals. We modify Q as described in Xu et al. [33] to get a new tree \(Q^+\) of equal cost. More precisely, we first create a dummy Steiner node of zero weight in the middle of an edge that serves as the root of the tree; thus, from now on Q will be a rooted tree. For each Steiner node v that has at least three children, we expand v into a binary tree by using duplicate nodes of zero weight such that every node in the resulting tree has at most two children. The following lemma, whose proof is straightforward and thus omitted, shows that the number of auxiliary nodes is proportional to the degree of the node that is modified.
Lemma 13
Let v be a node of Q with at least three children. Then, if we apply the transformation described above to v, we get a new tree that contains \(d(v)-3\) extra auxiliary nodes, where d(v) is the degree of v in Q.
We repeatedly apply the transformation described above, and we get a new tree \(Q^+\) where every Steiner node has at most two children. This new tree \(Q^+\) has at most \(n + \sum _{v \in Q: d(v) \ge 4}(d(v) - 3) \le 3n\) vertices, where n is the number of vertices of the rooted tree Q. Finally, for any non-leaf node different from the root that has degree 2, we add a dummy terminal as a child, and we end up with a regular node weighted binary tree (where only Steiner nodes have weight), which, by slightly abusing notation, we call \(Q^+\).
We now label the Steiner nodes of \(Q^+\) with labels \(\{0,\dots , m-1\}\) as follows; we stress that the labeling and the arguments used closely follow the techniques of Borchers and Du [3]. We first clarify some terminology. We say that the root is at the \(0^{\text {th}}\) layer of \(Q^+\), the children of the root are at the \(1^{\text {st}}\) layer, and so on. We label the root with 0, the \(1^{\text {st}}\) layer of nodes with 1, and so on until the \((m-1)^{\text {th}}\) layer. We then repeat the labelling with label 0, starting from layer m. More precisely, the Steiner nodes at layer i all get the same label \(i\mod m\). We obviously have the property that any m consecutive layers have different labels.
For each label \(j \in \{0, \ldots , m-1\}\), we will define a feasible k-restricted Steiner tree \(Q_j^+\). We first define its components; the tree \(Q_j^+\) is simply the union of these components and its cost is the sum of the costs of its components. For a fixed label j, each component of \(Q_j^+\) is rooted at either the root of \(Q^+\) or a Steiner node with label j. We define the component rooted at Steiner node v labelled with j as follows: the component rooted at v contains the paths in \(Q^+\) to the first nodes below v that are also labelled with j; call these nodes intermediate leaves. More precisely, the component rooted at v connects to u if u is a descendant of v labelled with j, such that there is no other node of label j on the path from v to u besides v and u. Then, for an intermediate leaf u that is a Steiner node, the component contains the unique path p(u), from u to f(u), as defined in Lemma 11. If there is a path from v to a leaf of \(Q^+\) that is a descendant of v such that the path does not contain a node with label j, then that path is also in the component. The component of \(Q_j^+\) that is rooted at the root of \(Q^+\) is constructed in a similar way. Finally, \(Q_j^+\) is the union of all components rooted at a Steiner node with label j, along with the component rooted at the root of \(Q^+\), which is always included, even if \(j > 0\).
Lemma 14
Each component of \(Q_j^+\) has at most k terminals.
Proof
It is clear that a component has at most \(2^m\) intermediate leaves, and thus at most \(2^m\) leaves connected by paths from these intermediate leaves. Moreover, if there is a direct path from the root of the component to a leaf that does not contain an intermediate leaf, then the leaf must be no more than m layers below the component root. So, the total number of leaves for any component is at most \(2^m = k\).\(\square \)
Lemma 15
Let \(j \in \{0, \ldots , m-1\}\). The tree \(Q_j^+\) is a feasible k-restricted CA-Node-Steiner-Tree.
Proof
First, look at the part of each component that connects a node v labelled as j to its intermediate leaves: the union of all these components, along with the component rooted at the root of \(Q^+\), contains all nodes of \(Q^+\). Furthermore, take any two components such that one is rooted at v, and one is rooted at one of its intermediate leaves, say u: the components intersect at the terminal f(u). It is not difficult to see then that \(Q_j^+\) is indeed a feasible k-restricted Steiner tree.\(\square \)
Given a k-restricted Steiner tree \(Q_j^+\) of \(Q^+\), we now explain how to construct a k-restricted Steiner tree \(Q_j\) of Q. For any component B of \(Q_j^+\) we construct a component \(B'\) in Q by contracting every expanded node and removing every dummy terminal. Moreover, if \(B'\) contains the global root, we remove it as well and “restore” the edge that was split in order to create the root. \(B'\) clearly still has at most k terminals, and thus the union of these components of Q is a k-restricted Node Steiner Tree, denoted as \(Q_j\). For the final step of our argument, we require the following observation about k-restricted trees that will be useful in bounding the optimal cost.
Observation 3
Consider the k-restricted Steiner trees \(Q_0^+, \ldots , Q_{m-1}^+\) of \(Q^+\) and their corresponding components. Any non-root Steiner node appears as an intermediate leaf in exactly one component of exactly one such Steiner tree.
Using this observation we will now find a bound on the sum \(\sum _{j = 0}^{m-1}cost(Q_j)\). For that, we consider a Steiner node v of Q. We first note that v has \(d(v) - 2\) “copies” in \(Q^+\). By Observation 3, each such copy appears as an intermediate leaf in exactly one component of exactly one Steiner tree among \(Q_0^+, \ldots , Q_{m-1}^+\), and thus it is counted twice, since it also appears once as the root of a component. Finally, each such copy can appear at most one more time as an internal node of a path from an intermediate leaf to a leaf (as implied by Lemma 11). Thus, v appears at most \(2(d(v) - 2) + m\) times in the sum \(\sum _{j = 0}^{m-1}cost(Q_j)\). Let S denote the set of Steiner nodes of Q, \(S_2 = \{s \in S: d(s) = 2\}\) and \(S_{\ge 3} = \{ s \in S: d(s) \ge 3\}\). Note that \(S = S_2 \cup S_{\ge 3}\) and \(\texttt {OPT}= \vert S\vert \). Let t be the number of terminals. We have
where in the above derivations we used Observation 2 and Lemma 12. Thus, there exists a label \(j \in \{0, 1, \ldots , m-1\}\) such that \(cost(Q_j) \le \left( 1 + \frac{4}{\log k} \right) \texttt {OPT}\), where we recall that \(k = 2^m\).\(\square \)
1.4 Proof of Theorem 7
Proof of Theorem 7
Given an \(\varepsilon > 0\), we set \(k = 2^{\lceil 4/\varepsilon \rceil }\). Since k is fixed, computing a minimum Node Steiner tree connecting k terminals can be done in polynomial time. To see this, we note that the Node Steiner Tree problem can be reduced to the Directed Edge Steiner Tree problem without modifying the number k of terminals (see [30]). Thus, one can use existing algorithms for optimally solving Directed Edge Steiner Tree instances with a fixed number of terminals (see, e.g., [15]). We conclude that the set of components \({\mathbf {C}}\) can be computed in polynomial time, and thus we can generate the variables of k-DCR LP in polynomial time. Although the set of constraints is exponential in \(\vert R\vert \), an optimal solution for it can be computed in polynomial time by standard flow techniques (see [Lemma 8, [4]]).
Regarding the LP value, it is easy to see that \(\texttt {OPT}_{\text {LP}}(\vert R\vert ) \le \texttt {OPT}\), as the entire optimal tree can be viewed as an |R|-restricted Steiner Tree which can be directed towards r, and whose cost is equal to \(\texttt {OPT}\). We now argue that \(\texttt {OPT}_{\text {LP}}(k)\) is at most \(\left( 1 + \frac{4}{\log k} \right) \texttt {OPT}_{\text {LP}}(\vert R\vert )\). For this, let x be an arbitrary feasible solution of the \(\vert R\vert \)-DCR LP. We look at every component Q with terminals \(R'\) and sink \(c' \in R'\) whose x-value is strictly positive, i.e., \(x(Q) > 0\), and we do the following: if the component is a k-restricted component, we set \(x'(Q) =x(Q)\). Otherwise, by Theorem 6, we compute a k-restricted Steiner Tree \(Q'\) with components \(Q_1', \ldots , Q_j'\), each containing at most k terminals, such that \(cost(Q') = \sum _{i = 1}^j cost(Q_i') \le \left( 1 + \frac{4}{\log k} \right) cost(Q)\). Moreover, we “direct” the components consistently towards the sink \(c'\) of Q, and increase the corresponding \(x'\)-variables by \(x(Q')\) for each such directed component. The resulting vector \(x'\) is a feasible solution for k-DCR, whose objective function value is at most \(\left( 1 + \frac{4}{\log k} \right) \) times the objective function value of x. We therefore get \(\texttt {OPT}_{\text {LP}}(k) \le \left( 1 + \frac{4}{\log k} \right) \texttt {OPT}_{\text {LP}}(\vert R\vert ) \le (1 + \varepsilon ) \texttt {OPT}\).\(\square \)
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Angelidakis, H., Hyatt-Denesik, D. & Sanità, L. Node connectivity augmentation via iterative randomized rounding. Math. Program. 199, 995–1031 (2023). https://doi.org/10.1007/s10107-022-01854-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10107-022-01854-z
Keywords
- Network design
- Connectivity augmentation
- Iterative randomized rounding
- Steiner Tree
- Approximation algorithms