Contents

# Approximation Algorithms: Steiner Forest Problem

This is the lecture notes from Chandra Chekuri's CS583 course on Approximation Algorithms. Chapter 11: Steiner Forest Problem. You can read Chapter 12: Primal Dual for Constrained Forest Problems, here. Chapter 10: Introduction to Network Design, here.
Chapter 11
We discuss a primal-dual based 2-approximation for the Steiner Forest problem[1]. In the Steiner Forest problem there is a graph $G=\left(V,E\right)$$G=\left(V,E\right)$G=(V,E)G=(V, E) where each edge $e\in E$$e\in E$e in Ee \in E has a cost ${c}_{e}\in \mathbb{R}$${c}_{e}\in \mathbb{R}$c_(e)inRc_{e} \in \mathbb{R}. We are given $k$$k$kk pairs of vertices $\left({s}_{1},{t}_{1}\right),\left({s}_{2},{t}_{2}\right),\dots \left({s}_{k},{t}_{k}\right)\in$$\left({s}_{1},{t}_{1}\right),\left({s}_{2},{t}_{2}\right),\dots \left({s}_{k},{t}_{k}\right)\in$(s_(1),t_(1)),(s_(2),t_(2)),dots(s_(k),t_(k))in\left(s_{1}, t_{1}\right),\left(s_{2}, t_{2}\right), \ldots\left(s_{k}, t_{k}\right) \in $V×V$$V×V$V xx VV \times V. The goal is to find the minimum cost set of edges $F$$F$FF such that in the graph $\left(V,F\right)$$\left(V,F\right)$(V,F)(V, F) the vertices ${s}_{i}$${s}_{i}$s_(i)s_{i} and ${t}_{i}$${t}_{i}$t_(i)t_{i} are in the same connected component for $1\le i\le k$$1\le i\le k$1 <= i <= k1 \leq i \leq k. We refer to the set $\left\{{s}_{1},\dots ,{s}_{k},{t}_{1},\dots ,{t}_{k}\right\}$$\left\{{s}_{1},\dots ,{s}_{k},{t}_{1},\dots ,{t}_{k}\right\}${s_(1),dots,s_(k),t_(1),dots,t_(k)}\left\{s_{1}, \ldots, s_{k}, t_{1}, \ldots, t_{k}\right\} as terminals. Notice that the graph $\left(V,F\right)$$\left(V,F\right)$(V,F)(V, F) can contain multiple connected components.
One can see that Steiner Forest generalizes the Steiner Tree problem. It is, however, much less easy to obtain a constant factor approximation for Steiner Forest. A natural greedy heuristic, similar to that for the online Steiner Tree problem is the following. We order the the pairs in some arbitrary fashion, say as $1$$1$11 to $k$$k$kk without loss of generality. We maintain a forest $F$$F$FF of edges that we have already bought. When considering pair $i$$i$ii we find a shortest path $P$$P$PP from ${s}_{i}$${s}_{i}$s_(i)s_{i} to ${t}_{i}$${t}_{i}$t_(i)t_{i} in the graph in which we reduce the cost of each edge in $F$$F$FF to $0$$0$00 (since we already paid for them). We add the new edges in $P$$P$PP to $F$$F$FF. Although simple to describe, the algorithm is not straight forward to analyze. In fact the best bound we have on the performance of this algorithm is $O\left({\mathrm{log}}^{2}k\right)$$O\left({\mathrm{log}}^{2}k\right)$O(log^(2)k)O(\log ^{2} k) (note that the corresponding bound for Steiner Tree tree is $O\left(\mathrm{log}k\right)$$O\left(\mathrm{log}k\right)$O(log k)O(\log k)) while the lower bound on its peformance is only $\mathrm{\Omega }\left(\mathrm{log}k\right)$$\mathrm{\Omega }\left(\mathrm{log}k\right)$Omega(log k)\Omega(\log k). The analysis of the upper bound requires appealing to certain extremal results [2] and closing the gap between the upper and lower bound on the analysis of this simplest of greedy algorithms is a very interesting open problem.
The first constant factor approximation for Steiner Forest is due to the influential work of Agarwal, Klein and Ravi [3] who gave a primal-dual 2-approximation which is still the best known. Their primal-dual algorithm has since been generalized for a wide variety of network design problems via the work of Goemans and Williamson (see their survey [4]) and several others. Steiner Forest has the advantage that one can visualize the algorithm and analysis more easily when compared to the more abstract settings that we will see shortly.
We now describe an integer programming formulation for the problem. In the IP we will have a variable ${x}_{e}$${x}_{e}$x_(e)x_{e} for each edge $e\in E$$e\in E$e in Ee \in E such that ${x}_{e}$${x}_{e}$x_(e)x_{e} is $1$$1$11 if and only if $e$$e$ee is part of the solution. Let the set $\mathcal{S}$$\mathcal{S}$S\mathcal{S} be the collection of all sets $S\subset V$$S\subset V$S sub VS \subset V such that $|S\cap \left\{{s}_{i},{t}_{i}\right\}|=1$$\left|S\cap \left\{{s}_{i},{t}_{i}\right\}\right|=1$|S nn{s_(i),t_(i)}|=1\left|S \cap\left\{s_{i}, t_{i}\right\}\right|=1 for some $1\le i\le k$$1\le i\le k$1 <= i <= k1 \leq i \leq k. For a set $S\subset V$$S\subset V$S sub VS \subset V let $\delta \left(S\right)$$\delta \left(S\right)$delta(S)\delta(S) denote the set of edges crossing the cut $\left(S,V\mathrm{\setminus }S\right)$$\left(S,V\mathrm{\setminus }S\right)$(S,V\\S)(S, V \backslash S). The IP can be written as the following.
$\begin{array}{rlrl}\text{min}& & & \sum _{e\in E}{c}_{e}{x}_{e}\\ \text{such that}& & & \sum _{e\in \delta \left(S\right)}{x}_{e}\ge 1\phantom{\rule{1em}{0ex}}\mathrm{\forall }S\in \mathcal{S}\\ & & & {x}_{e}\in \left\{0,1\right\}\phantom{\rule{1em}{0ex}}\mathrm{\forall }e\in E\end{array}$$\begin{array}{r}\text{min}\sum _{e\in E} {c}_{e}{x}_{e}\\ \text{such that}\sum _{e\in \delta \left(S\right)} {x}_{e}\ge 1\phantom{\rule{1em}{0ex}}\mathrm{\forall }S\in \mathcal{S}\\ {x}_{e}\in \left\{0,1\right\}\phantom{\rule{1em}{0ex}}\mathrm{\forall }e\in E\end{array}${:["min"sum_(e in E)c_(e)x_(e)],["such that"sum_(e in delta(S))x_(e) >= 1quad AA S inS],[x_(e)in{0","1}quad AA e in E]:}\begin{aligned} \text {min} &&& \sum_{e \in E} c_{e} x_{e} \\ \text {such that} &&& \sum_{e \in \delta(S)} x_{e} \geq 1 \quad \forall S \in \mathcal{S} \\ &&& x_{e} \in\{0,1\} \quad \forall e \in E \end{aligned}
We can obtain an LP-relaxation by changing the constraint that ${x}_{e}\in \left\{0,1\right\}$${x}_{e}\in \left\{0,1\right\}$x_(e)in{0,1}x_{e} \in\{0,1\} to ${x}_{e}\ge 0$${x}_{e}\ge 0$x_(e) >= 0x_{e} \geq 0. The dual of the LP-relaxation can be written as the following.
$\begin{array}{rlrl}\text{min}& & & \sum _{S\in \mathcal{S}}{y}_{S}\\ \text{such that}& & & \sum _{S:e\in \delta \left(S\right)}{y}_{S}\le {c}_{e}\phantom{\rule{1em}{0ex}}\mathrm{\forall }e\in E\\ & & & {y}_{S}\ge 0\phantom{\rule{1em}{0ex}}\mathrm{\forall }S\in \mathcal{S}\end{array}$$\begin{array}{r}\text{min}\sum _{S\in \mathcal{S}} {y}_{S}\\ \text{such that}\sum _{S:e\in \delta \left(S\right)} {y}_{S}\le {c}_{e}\phantom{\rule{1em}{0ex}}\mathrm{\forall }e\in E\\ {y}_{S}\ge 0\phantom{\rule{1em}{0ex}}\mathrm{\forall }S\in \mathcal{S}\end{array}${:["min"sum_(S inS)y_(S)],["such that"sum_(S:e in delta(S))y_(S) <= c_(e)quad AA e in E],[y_(S) >= 0quad AA S inS]:}\begin{aligned} \text {min} &&& \sum_{S \in \mathcal{S}} y_{S} \\ \text {such that} &&& \sum_{S: e \in \delta(S)} y_{S} \leq c_{e} \quad \forall e \in E \\ &&& y_{S} \geq 0 \quad \forall S \in \mathcal{S} \end{aligned}
Before we continue, some definitions will be stated which will help to define our algorithm for the problem.
Definition 11.1. Given a set of edges $X\subseteq E$$X\subseteq E$X sube EX \subseteq E, a set $S\in \mathcal{S}$$S\in \mathcal{S}$S inSS \in \mathcal{S} is violated with respect to $X$$X$XX if $\delta \left(S\right)\cap X=\mathrm{\varnothing }$$\delta \left(S\right)\cap X=\mathrm{\varnothing }$delta(S)nn X=O/\delta(S) \cap X=\emptyset. In other words $S$$S$SS is violated even with edge set $X$$X$XX included.
Definition 11.2. Given a set of edges $X\subseteq E$$X\subseteq E$X sube EX \subseteq E, a set $S\in \mathcal{S}$$S\in \mathcal{S}$S inSS \in \mathcal{S} is minimally violated with respect to $X$$X$XX if $S$$S$SS is violated with respect to $X$$X$XX and there is no ${S}^{\mathrm{\prime }}\subset S$${S}^{\mathrm{\prime }}\subset S$S^(')sub SS^{\prime} \subset S that is also violated with respect to $X$$X$XX.
Next we show that any two minimally violated sets are disjoint.
Claim 11.0.1. $\mathrm{\forall }X\subseteq E$$\mathrm{\forall }X\subseteq E$AA X sube E\forall X \subseteq E if $S$$S$SS and ${S}^{\mathrm{\prime }}$${S}^{\mathrm{\prime }}$S^(')S^{\prime} are minimally violated sets then $S\cap {S}^{\mathrm{\prime }}=\mathrm{\varnothing }$$S\cap {S}^{\mathrm{\prime }}=\mathrm{\varnothing }$S nnS^(')=O/S \cap S^{\prime}=\emptyset, i.e. $S$$S$SS and ${S}^{\mathrm{\prime }}$${S}^{\mathrm{\prime }}$S^(')S^{\prime} are disjoint.
In fact we will prove the following claim which implies the preceding one.
Claim 11.0.2. Let $X\subseteq E$$X\subseteq E$X sube EX \subseteq E. The minimially violated sets with respect to $X$$X$XX are the connected components of the graph $\left(V,X\right)$$\left(V,X\right)$(V,X)(V, X) that are violated with respect to $X$$X$XX.
Proof. Consider a minimal violated set $S$$S$SS. We may assume the set $S$$S$SS contains ${s}_{i}$${s}_{i}$s_(i)s_{i} but not ${t}_{i}$${t}_{i}$t_(i)t_{i} for some $i$$i$ii. If $S$$S$SS is not a connected component of $\left(V,X\right)$$\left(V,X\right)$(V,X)(V, X) then there must be some connected component ${S}^{\mathrm{\prime }}$${S}^{\mathrm{\prime }}$S^(')S^{\prime} of $G\left[S\right]$$G\left[S\right]$G[S]G[S] that contains ${s}_{i}$${s}_{i}$s_(i)s_{i}. But ${\delta }_{X}\left({S}^{\mathrm{\prime }}\right)=\mathrm{\varnothing }$${\delta }_{X}\left({S}^{\mathrm{\prime }}\right)=\mathrm{\varnothing }$delta_(X)(S^('))=O/\delta_{X}\left(S^{\prime}\right)=\emptyset, and hence ${S}^{\mathrm{\prime }}$${S}^{\mathrm{\prime }}$S^(')S^{\prime} is violated; this contradicts the fact that $S$$S$SS is minimal. Therefore, if a set $S$$S$SS is a minimal violated set then it must be connected in the graph $\left(V,X\right)$$\left(V,X\right)$(V,X)(V, X).
Now suppose that $S$$S$SS is a connected component of $\left(V,X\right)$$\left(V,X\right)$(V,X)(V, X); it is easy to see that no proper subset of $S$$S$SS can be violated since some edge will cross any such set. Thus, if $S$$S$SS is a violated set then it is minimal violated set.
Thus, the minimal violated sets with respect to $X$$X$XX are the conected components of the graph $\left(V,X\right)$$\left(V,X\right)$(V,X)(V, X) that are themselves violated sets. It follows that any two distinct minimal violated sets are disjoint.
The primal-dual algorithm for Steiner Forest is described below.
 SteinerForest: $\phantom{\rule{1em}{0ex}}F←\mathrm{\varnothing }$$\phantom{\rule{1em}{0ex}}F←\mathrm{\varnothing }$quad F larr O/\quad F \leftarrow \emptyset$\phantom{\rule{1em}{0ex}}F←\mathrm{\varnothing }$ $\phantom{\rule{1em}{0ex}}$$\phantom{\rule{1em}{0ex}}$quad\quad$\phantom{\rule{1em}{0ex}}$ while $F$$F$FF$F$ is not feasible $\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$quadquad\quad\quad$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$ Let ${C}_{1},{C}_{2},\dots ,{C}_{h}$${C}_{1},{C}_{2},\dots ,{C}_{h}$C_(1),C_(2),dots,C_(h)C_{1}, C_{2}, \ldots, C_{h}${C}_{1},{C}_{2},\dots ,{C}_{h}$ be minimally violated sets with respect to $F$$F$FF$F$ $\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$quadquad\quad\quad$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}$ Raise ${y}_{{C}_{i}}$${y}_{{C}_{i}}$y_(C_(i))y_{C_{i}}${y}_{{C}_{i}}$ for $1\le i\le h$$1\le i\le h$1 <= i <= h1 \leq i \leq h$1\le i\le h$ uniformly until some edge $e$$e$ee$e$ becomes tight $\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}F←F+e$$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}F←F+e$quadquad F larr F+e\quad\quad F \leftarrow F+e$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}F←F+e$ $\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}{x}_{e}=1$$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}{x}_{e}=1$quadquadx_(e)=1\quad\quad x_{e}=1$\phantom{\rule{1em}{0ex}}\phantom{\rule{1em}{0ex}}{x}_{e}=1$ $\phantom{\rule{1em}{0ex}}$$\phantom{\rule{1em}{0ex}}$quad\quad$\phantom{\rule{1em}{0ex}}$ Output ${F}^{\mathrm{\prime }}=\left\{e\in F\mid F-e\text{is not feasible}\right\}$F^(')={e in F∣F-e" is not feasible"}F^{\prime}=\{e \in F \mid F-e \text{ is not feasible} \}
The first thing to notice about the algorithm above is that it is closely related to our solution to the Vertex Cover problem, however, there are two main differences. In the Vertex Cover we raised the dual variables for all uncovered edges uniformly, however, in this algorithm we were more careful on which dual variables are raised. In this algorithm, we chose to only raise the variables which correspond to the minimally violated sets. Unlike the case of Steiner Tree, in Steiner Forest, there can be non-trivial connected components that are not violated and hence become inactive. A temporarily inactive component may become part of an active component later if an active component merges with it. The other main difference is that when we finally output the solution, we prune $F$$F$FF to get ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime}. This is done for technical reasons, but the intuition is that we should include no edge in the solution which is not needed to obtain a feasible solution. To understand this algorithm, there is a non-trivial example in the textbook [5] that demonstrates the algorithm's finer points.
Lemma 11.1. At the end of the algorithm, ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime} and $\mathbf{y}$$\mathbf{y}$y\mathbf{y} are primal and dual feasible solutions, respectively.
Proof. In each iteration of the while loop, only the dual variables corresponding to connected components were raised. Therefore, no edge that is contained within the same component can become tight, and, therefore, $F$$F$FF is acyclic. To see that none of the dual constraints are violated, observe that when a constraint becomes tight (that is, it holds with equality), the corresponding edge $e$$e$ee is added to $F$$F$FF. Subsequently, since $e$$e$ee is contained in some connected component of $F$$F$FF, no set $S$$S$SS with $e\in \delta \left(S\right)$$e\in \delta \left(S\right)$e in delta(S)e \in \delta(S) ever has ${y}_{S}$${y}_{S}$y_(S)y_{S} raised. Therefore, the constraint for $e$$e$ee cannot be violated, and so $\mathrm{y}$$\mathrm{y}$y\mathrm{y} is dual feasible.
As long as $F$$F$FF is not feasible, the while loop will not terminate, and there are some minimal violated sets that can have their dual variables raised. Therefore, at the end of the algorithm $F$$F$FF is feasible. Moreover, since $F$$F$FF is acyclic (it is a forest), there is a unique ${s}_{i}-{t}_{i}$${s}_{i}-{t}_{i}$s_(i)-t_(i)s_{i}-t_{i} path in $F$$F$FF for each $1\le i\le k$$1\le i\le k$1 <= i <= k1 \leq i \leq k. Thus, each edge on a ${s}_{i}-{t}_{i}$${s}_{i}-{t}_{i}$s_(i)-t_(i)s_{i}-t_{i} path is not redundant and is not deleted when pruning $F$$F$FF to get ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime}.
Theorem 11.3. The primal-dual algorithm for Steiner Forest gives a $2$$2$22-approximation.
Proof. Let ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime} be the output from our algorithm. To prove this theorem, we want to show that $c\left({F}^{\mathrm{\prime }}\right)\le 2\sum _{s\in \mathcal{S}}{y}_{S}$$c\left({F}^{\mathrm{\prime }}\right)\le 2\sum _{s\in \mathcal{S}} {y}_{S}$c(F^(')) <= 2sum_(s inS)y_(S)c\left(F^{\prime}\right) \leq 2 \sum_{s \in \mathcal{S}} y_{S} where ${y}_{S}$${y}_{S}$y_(S)y_{S} is the feasible dual constructed by the algorithm. It follows from this that the algorithm is in fact a 2-approximation. First, we know that $c\left({F}^{\mathrm{\prime }}\right)=\sum _{e\in {F}^{\mathrm{\prime }}}{c}_{e}=\sum _{e\in {F}^{\mathrm{\prime }}}\sum _{S\in \mathcal{S}:e\in \delta \left(S\right)}{y}_{s}$$c\left({F}^{\mathrm{\prime }}\right)=\sum _{e\in {F}^{\mathrm{\prime }}} {c}_{e}=\sum _{e\in {F}^{\mathrm{\prime }}} \sum _{S\in \mathcal{S}:e\in \delta \left(S\right)} {y}_{s}$c(F^('))=sum_(e inF^('))c_(e)=sum_(e inF^('))sum_(S inS:e in delta(S))y_(s)c\left(F^{\prime}\right)=\sum_{e \in F^{\prime}} c_{e}=\sum_{e \in F^{\prime}} \sum_{S \in \mathcal{S}: e \in \delta(S)} y_{s} because every edge picked is tight. Let ${\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$${\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$deg_(F^('))(S)\operatorname{deg}_{F^{\prime}}(S) denote the number of edges of ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime} that cross the cut $\left(S,V\mathrm{\setminus }S\right)$$\left(S,V\mathrm{\setminus }S\right)$(S,V\\S)(S, V \backslash S). It can be seen that $\sum _{e\in {F}^{\mathrm{\prime }}}\sum _{S\in \mathcal{S}:e\in \delta \left(S\right)}{y}_{s}=\sum _{s\in \mathcal{S}}{y}_{S}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$$\sum _{e\in {F}^{\mathrm{\prime }}} \sum _{S\in \mathcal{S}:e\in \delta \left(S\right)} {y}_{s}=\sum _{s\in \mathcal{S}} {y}_{S}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$sum_(e inF^('))sum_(S inS:e in delta(S))y_(s)=sum_(s inS)y_(S)deg_(F^('))(S)\sum_{e \in F^{\prime}} \sum_{S \in \mathcal{S}: e \in \delta(S)} y_{s}=\sum_{s \in \mathcal{S}} y_{S} \operatorname{deg}_{F^{\prime}}(S).
Let ${A}_{i}$${A}_{i}$A_(i)A_{i} contain the minimally violated sets in iteration $i$$i$ii and let ${\mathrm{\Delta }}_{i}$${\mathrm{\Delta }}_{i}$Delta_(i)\Delta_{i} denote the amount of dual growth in the $i$$i$ii th iteration. Say that our algorithm runs for $\alpha$$\alpha$alpha\alpha iterations. We can then rewrite $\sum _{s\in \mathcal{S}}{y}_{S}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$$\sum _{s\in \mathcal{S}} {y}_{S}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$sum_(s inS)y_(S)deg_(F^('))(S)\sum_{s \in \mathcal{S}} y_{S} \operatorname{deg}_{F^{\prime}}(S) as the double summation $\sum _{i=1}^{\alpha }\sum _{S\in {A}_{i}}{\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$$\sum _{i=1}^{\alpha } \sum _{S\in {A}_{i}} {\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$sum_(i=1)^(alpha)sum_(S inA_(i))Delta_(i)deg_(F^('))(S)\sum_{i=1}^{\alpha} \sum_{S \in A_{i}} \Delta_{i} \operatorname{deg}_{F^{\prime}}(S). In the next lemma it will be shown for any iteration $i$$i$ii that $\sum _{S\in {A}_{i}}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le 2|{A}_{i}|$$\sum _{S\in {A}_{i}} {\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le 2\left|{A}_{i}\right|$sum_(S inA_(i))deg_(F^('))(S) <= 2|A_(i)|\sum_{S \in A_{i}} \operatorname{deg}_{F^{\prime}}(S) \leq 2\left|A_{i}\right|. Knowing this we can prove the theorem:
$\sum _{S\in \mathcal{S}}{y}_{s}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)=\sum _{S\in \mathcal{S}}\sum _{i:S\in {A}_{i}}{\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)=\sum _{i=1}^{\alpha }\sum _{S\in {A}_{i}}{\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le \sum _{i=1}^{\alpha }{\mathrm{\Delta }}_{i}\cdot 2|{A}_{i}|\le 2\sum _{S\in \mathcal{S}}{y}_{S}.$$\sum _{S\in \mathcal{S}} {y}_{s}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)=\sum _{S\in \mathcal{S}} \sum _{i:S\in {A}_{i}} {\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)=\sum _{i=1}^{\alpha } \sum _{S\in {A}_{i}} {\mathrm{\Delta }}_{i}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le \sum _{i=1}^{\alpha } {\mathrm{\Delta }}_{i}\cdot 2\left|{A}_{i}\right|\le 2\sum _{S\in \mathcal{S}} {y}_{S}.$sum_(S inS)y_(s)deg_(F^('))(S)=sum_(S inS)sum_(i:S inA_(i))Delta_(i)deg_(F^('))(S)=sum_(i=1)^(alpha)sum_(S inA_(i))Delta_(i)deg_(F^('))(S) <= sum_(i=1)^(alpha)Delta_(i)*2|A_(i)| <= 2sum_(S inS)y_(S).\sum_{S \in \mathcal{S}} y_{s} \operatorname{deg}_{F^{\prime}}(S)=\sum_{S \in \mathcal{S}} \sum_{i: S \in A_{i}} \Delta_{i} \operatorname{deg}_{F^{\prime}}(S)=\sum_{i=1}^{\alpha} \sum_{S \in A_{i}} \Delta_{i} \operatorname{deg}_{F^{\prime}}(S) \leq \sum_{i=1}^{\alpha} \Delta_{i} \cdot 2\left|A_{i}\right| \leq 2 \sum_{S \in \mathcal{S}} y_{S} .
Now we show the lemma used in the previous theorem. It is in this lemma that we use the fact that we prune $F$$F$FF to get ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime}.
We need a simple claim.
Lemma 11.2. Let $T=\left(V,E\right)$$T=\left(V,E\right)$T=(V,E)T=(V, E) be a tree/forest and let $\mathrm{Z}\subseteq V$$\mathrm{Z}\subseteq V$Zsube V\mathrm{Z} \subseteq V be a subset of the nodes such that every leaf of $T$$T$TT is in $Z$$Z$ZZ. Then $\sum _{v\in Z}{\mathrm{deg}}_{T}\left(v\right)\le 2|Z|-2$$\sum _{v\in Z} {\mathrm{deg}}_{T}\left(v\right)\le 2|Z|-2$sum_(v in Z)deg_(T)(v) <= 2|Z|-2\sum_{v \in Z} \operatorname{deg}_{T}(v) \leq 2|Z|-2 where ${\mathrm{deg}}_{T}\left(v\right)$${\mathrm{deg}}_{T}\left(v\right)$deg_(T)(v)\operatorname{deg}_{T}(v) is the degree of $v$$v$vv in $T$$T$TT.
Proof. We will prove it for a tree. We have $\sum _{v\in V}{\mathrm{deg}}_{T}\left(V\right)=2|V|-2$$\sum _{v\in V} {\mathrm{deg}}_{T}\left(V\right)=2|V|-2$sum_(v in V)deg_(T)(V)=2|V|-2\sum_{v \in V} \operatorname{deg}_{T}(V)=2|V|-2 since a tree has $|V|-1$$|V|-1$|V|-1|V|-1 edges. Every node $u\in V-Z$$u\in V-Z$u in V-Zu \in V-Z has degree at least 2 since it is not a leaf. Thus $\sum _{u\in V-Z}{\mathrm{deg}}_{T}\left(u\right)\ge 2|V-Z|$$\sum _{u\in V-Z} {\mathrm{deg}}_{T}\left(u\right)\ge 2|V-Z|$sum_(u in V-Z)deg_(T)(u) >= 2|V-Z|\sum_{u \in V-Z} \operatorname{deg}_{T}(u) \geq 2|V-Z|. Thus,
$\sum _{v\in Z}{\mathrm{deg}}_{T}\left(v\right)\le 2|V|-2-2|V-Z|\le 2|Z|-2.$$\sum _{v\in Z} {\mathrm{deg}}_{T}\left(v\right)\le 2|V|-2-2|V-Z|\le 2|Z|-2.$sum_(v in Z)deg_(T)(v) <= 2|V|-2-2|V-Z| <= 2|Z|-2.\sum_{v \in Z} \operatorname{deg}_{T}(v) \leq 2|V|-2-2|V-Z| \leq 2|Z|-2 .
Lemma 11.3. For any iteration $i$$i$ii of our algorithm, $\sum _{s\in {A}_{i}}{\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le 2|{A}_{i}|-2$$\sum _{s\in {A}_{i}} {\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)\le 2\left|{A}_{i}\right|-2$sum_(s inA_(i))deg_(F^('))(S) <= 2|A_(i)|-2\sum_{s \in A_{i}} \operatorname{deg}_{F^{\prime}}(S) \leq 2\left|A_{i}\right|-2.
Proof. Consider the graph $\left(V,{F}^{\mathrm{\prime }}\right)$$\left(V,{F}^{\mathrm{\prime }}\right)$(V,F^('))\left(V, F^{\prime}\right), and fix an iteration $i$$i$ii. In this graph, contract each set $S$$S$SS active in iteration $i$$i$ii to a single node (call such a node an active node), and each inactive set to a single node. Let the resulting graph be denoted by $H$$H$HH. We know that $F$$F$FF is a forest and we have contracted connected subsets of vertices in $F$$F$FF; as ${F}^{\mathrm{\prime }}\subseteq F$${F}^{\mathrm{\prime }}\subseteq F$F^(')sube FF^{\prime} \subseteq F, we conclude that $H$$H$HH is also a forest.
Claim 11.0.3. Every leaf of $H$$H$HH is an active node.
Proof. If not, consider leaf node $v$$v$vv of $H$$H$HH which is an inactive node and let $e\in {F}^{\mathrm{\prime }}$$e\in {F}^{\mathrm{\prime }}$e inF^(')e \in F^{\prime} be the edge incident to it. We claim that ${F}^{\mathrm{\prime }}-e$${F}^{\mathrm{\prime }}-e$F^(')-eF^{\prime}-e is feasible which would contradict the minimality of ${F}^{\mathrm{\prime }}$${F}^{\mathrm{\prime }}$F^(')F^{\prime}. To see this, if $x,y$$x,y$x,yx, y are two nodes in $H$$H$HH where $v\ne x,v\ne y$$v\ne x,v\ne y$v!=x,v!=yv \neq x, v \neq y then $x$$x$xx and $y$$y$yy are connected also in $H-e$$H-e$H-eH-e since $v$$v$vv is a leaf. Thus the utility of $e$$e$ee is to connect $v$$v$vv to other nodes in $H$$H$HH but if this is the case $v$$v$vv would be an active node at the start of the iteration which is not the case.
The degree in $H$$H$HH of an active node corresponding to violated set $S$$S$SS is ${\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$${\mathrm{deg}}_{{F}^{\mathrm{\prime }}}\left(S\right)$deg_(F^('))(S)\operatorname{deg}_{F^{\prime}}(S). Now we apply Lemma 11.2.

1. Parts of this chapter are based on past scribed lecture notes by Ben Moseley from 2009. ↩︎
2. Baruch Awerbuch, Yossi Azar, and Yair Bartal. “On-line generalized Steiner problem”. In: Theoretical Computer Science 324.2-3 (2004), pp. 313–324. ↩︎
3. Ajit Agrawal, Philip Klein, and Ramamoorthi Ravi. “When trees collide: An approximation algorithm for the generalized Steiner problem on networks”. In: SIAM journal on Computing 24.3 (1995), pp. 440–456. ↩︎
4. Michel X Goemans and David P Williamson. “The primal-dual method for approximation algorithms and its application to network design problems”. In: Approximation algorithms for NP-hard problems (1997), pp. 144–191. ↩︎
5. Vĳay V Vazirani. Approximation algorithms. Springer Science & Business Media, 2013. ↩︎

# Recommended for you

Co-Tuning: An easy but effective trick to improve transfer learning
Co-Tuning: An easy but effective trick to improve transfer learning
Transfer learning is a popular method in the deep learning community, but it is usually implemented naively (eg. copying weights as initialization). Co-Tuning is a recently proposed technique to improve transfer learning that is easy to implement, and effective to a wide variety of tasks.
4 points
0 issues