Approximation Algorithms for Steiner Augmentations for Two-Connectivity R. Ravi Department of Computer Science Brown University Providence , Rhode Island 02912 CS-92-21 April 1992 Approximation algorithms for Steiner augmentations for two-connectivity R. Ravi ? Brown University Abstract We consider the problem of increasing the connectivity of a given graph to two at optimal cost . Fredrickson and Ja'Ja ' -LSB- 6 -RSB- showed that that this problem is NP-hard and provided approximation algorithms . Recently , Khuller and Thurimella -LSB- 7 -RSB- have extended these results and presented a more efficient version of the results in -LSB- 6 -RSB- . We consider an extension of this problem to a more general setting . In this setting , we are given an edge-weighted graph , a subset of the vertex set called the sites and an initial subgraph ; The objective is to find a minimum weight augmentation of edges that makes the sites two edge-connected or vertex-connected . We present approximation algorithms for the first time for these problems by extending those in -LSB- 7 -RSB- with matching performance bounds . If the initial subgraph connects all the sites , we find an augmentation of weight at most twice the optimal . Otherwise , the performance guarantee is three . The performance guarantee of three is obtained by an interesting application of an approximate min-max relation concerning Steiner trees and packing of certain kind of cuts derived in -LSB- 1 -RSB- . AMS 1980 Subject Classification : 68R10 , 68Q25 1 Introduction We consider the following two problems : Let G = -LRB- V ; E -RRB- be an undirected graph with a nonnegative weight function w on its edges . A subset S of vertices is specified as the sites . Given an initial subgraph G0 = -LRB- V0 ; E0 -RRB- of G , we wish to find an edge-augmentation of minimum-weight such that there are two edge - -LRB- vertex - -RRB- disjoint paths between every pair of sites when we augment G0 with the edges in the augmentation . We call these the Steiner bridge-connected and biconnected augmentation problems respectively . As the names suggest , these are generalizations of the problems of finding a minimum-weight bridge-connected and biconnected augmentations of a given edge-weighted graph -LRB- in the same way that the Steiner tree problem is a generalization of the minimum spanning tree problem -RRB- . The latter problems were shown to be NP-complete by Fredrickson and Ja'Ja ' -LSB- 6 -RSB- and they also offer approximation algorithms with a worst case performance guarantee of two when the initial subgraphs are connected . Their techniques also provide us with approximation algorithms for the minimum-weight bridge-connected and biconnected subgraphs of a given edge-weighted graph with performance guarantee three : start with a minimum weight spanning tree and augment it to achieve two connectivity . In this note , we extend these techniques to the generalized problems . Also , we observe that a naive extension of the techniques of Fredrickson and Ja'Ja ' to the minimum-weight two-connected Steiner subgraph problems would result in approximation algorithms with performance factor greater than three ; The initial subgraph of minimum-weight that one-connects the sites is a minimum-weight Steiner tree which is NP-hard to compute exactly -LSB- 5 -RSB- . Hence , in this case , the performance guarantee is the sum of that for the Steiner tree problem and two for the second phase of augmenting this Steiner tree . This is ? Research supported by an IBM Graduate Fellowship . Additional support provided by NSF PYI award CCR-9157620 and DARPA contract N00014-91-J-4052 ARPA Order No. 8225 . always greater than three . However , we adapt and use an approximate min-max equality relating Steiner trees to packing of cuts derived earlier -LSB- 1 -RSB- to improve the performance ratio to three . Khuller and Thurimella -LSB- 7 -RSB- have recently presented a more efficient and concise version of the results in -LSB- 6 -RSB- . We follow their outline in our exposition here . 2 Definitions We use the same terminology as in -LSB- 7 -RSB- . We are given an undirected graph G = -LRB- V ; E -RRB- with a nonnegative weight function w on its edges and jV j = n ; jEj = m . The set E represents the set of feasible edges to be used in the subgraph . The initial subgraph to be augmented to be two-connected is denoted by G0 = -LRB- V0 ; E0 -RRB- . The weight of any subgraph G0 is the sum of the weights of the edges in it . An undirected edge between two nodes u and v is represented by -LRB- u ; v -RRB- and a directed edge from u to v by hu ; vi . A directed graph is strongly connected if for every pair of vertices u and v in it , there is a directed path from u to v . An undirected graph is -LRB- one - -RRB- connected if for any two vertices u and v , there is an undirected path from u to v . A bridge is an edge whose removal leaves the graph disconnected . A graph is bridgeconnected if it contains no bridges . A cut vertex is a vertex whose removal along with its incident edges disconnects G . A graph is biconnected if it contains no cut vertices . Note that in a bridge-connected -LRB- biconnected -RRB- graph , there always exists two edge - -LRB- node - -RRB- disjoint paths between any pair of vertices . A block is a maximal biconnected subgraph of a given undirected graph . Let Bi = -LRB- V i ; Ei -RRB- be the blocks of an undirected graph G for 1 < = i < = t and let Vc represent the cut vertices in G . The block-cut vertex tree T = -LRB- Vs ; Es -RRB- is defined as follows . Let Vb be a set of t new block vertices representing the blocks of G . Then Vs = Vc -LSB- Vb . Define Es = f -LRB- ci ; Bj -RRB- : Bj 2 Vb ; ci 2 Vc and ci 2 V jg . Each edge connects a block vertex Bj with a cut vertex ci that is in the block corresponding to Bj . Hence cut vertices and block vertices alternate in the block-cut vertex tree . Associated with each vertex in the block-cut vertex tree is a set of nodes of the graph . If ci is a cut vertex , then the set corresponding to the cut vertex ci 2 Vc is just Xi = fcig . If Bj 2 Vb , the set associated with it is Yj = fv : v 2 V j and v is not a cut vertex g . If G is a tree , then each block corresponds to a single edge in the tree and all the vertices except the leaves of the tree are cut vertices . From these definitions , we have the following observations . Observation 2.1 In the block-cut vertex tree T , each edge is between a vertex in Vb and a vertex in Vc . Observation 2.2 The sets associated with the vertices of T form a partition of the vertices of G . An arborescence rooted at a vertex r is a directed spanning tree with all nodes except r having indegree one and r having indegree zero . A reverse arborescence rooted at r is one with edges directed towards r , i.e. , all nodes except r have outdegree one and r has outdegree zero . Given a directed graph with edge-weights and a root node r , the algorithms in -LSB- 2 , 3 , 9 -RSB- can be used to find a minimum-weight arborescence . For a vertex v in a rooted tree T , let the components formed by deleting v be denoted by C1 -LRB- v -RRB- ; ... ; Cd -LRB- v -RRB- -LRB- v -RRB- where d -LRB- v -RRB- is the degree of v in T . If v is not the root , we will assume that C1 -LRB- v -RRB- is the component containing the root and the other components correspond to the subtrees rooted at the children of v . In a rooted tree , for a vertex v , we denote its parent by p -LRB- v -RRB- . 3 Background First , we introduce a few results that we shall be using later in the analysis of the performance guarantee of our algorithms . 3.1 Packing of requirement cuts Given a graph G and a subset of the vertices S specified as sites , we define a requirement cut as a set of edges whose removal separates at least one site from another . Each requirement cut -LRB- henceforth referred to as a cut -RRB- can be written as ? -LRB- W -RRB- , where W is a node subset of the graph , and ? -LRB- W -RRB- denotes the set of edges with exactly one endpoint in W . ? -LRB- W -RRB- is also referred to as the cocycle determined by W . A fractional packing of cuts is a family of cuts ? -LRB- W1 -RRB- ; ? -LRB- W2 -RRB- ; ... ; ? -LRB- Wk -RRB- , together with a rational weight > = i for each cut . A -LRB- fractional -RRB- w-packing of cuts is a weighted collection of cuts that have the following property : for each edge -LRB- u ; v -RRB- , the sum of the weights of all the cuts in this collection containing the edge is at most w -LRB- u ; v -RRB- . The value of the packing is the sum of the weights of all the cuts in the packing . A maximum packing is one of maximum value . 3.2 Maximum packing of cuts and minimum-weight Steiner trees In this subsection , connectivity refers to both edge and vertex connectivity unless explicitly stated otherwise . Given weights on the edges , the problem of finding a minimum-weight Steiner tree connecting all the sites is NP-complete . Since a requirement cut separates the sites , any Steiner tree must have an edge in the cut . Thus it is easy to see that the weight of any Steiner tree is at least as much as the value of a maximum packing of requirement cuts . The following result was shown in -LSB- 1 -RSB- . Theorem 3.1 Given an undirected graph with edge-weights , and a subset of the vertices specified as sites , the minimum-weight Steiner tree connecting all the sites has weight at most twice the value of the maximum packing of requirement cuts . The algorithm in -LSB- 1 -RSB- greedily finds a packing of requirement cuts and simultaneously builds a Steiner tree of weight at most twice the value of this packing . Note that any Steiner bridge-connected subgraph must have at least two edges crossing any requirement cut since this subgraph has two edge-disjoint connections between the separated sites . In fact , the same holds for any Steiner biconnected subgraph also since node-disjoint paths are also edge-disjoint . Thus we have the following lemma . Lemma 3.1 The weight of any two connected Steiner subgraph is at least twice as much as the value of a maximum packing of requirement cuts . Combining the results from the Theorem and the lemma above , we get the following theorem . Theorem 3.2 Given an undirected graph with edge-weights , and a subset of the vertices specified as sites , the approximately minimum-weight Steiner tree found by the algorithm in -LSB- 1 -RSB- has weight at most that of any minimum-weight two-connected Steiner subgraph . We can extend the above theorem to handle the case when all sites are not one-connected in the initial subgraph G0 . To one-connect the sites in initial subgraph , we do the following . We find the connected components of the initial subgraph . We mark those that contain a separated site as significant . Now , we contract the significant components to single supernodes ; the uncontracted edges of G0 are assigned zero weight . Now we find a Steiner tree of approximately minimum weight connecting these significant supernodes and the remaining sites in G0 using the algorithm in -LSB- 1 -RSB- . This algorithm also gives us a packing of requirement cuts of at least half the value as the weight of the Steiner tree . This Steiner tree is our augmentation that one-connect the sites . Each requirement cut in the packing is also a requirement cut in G since it separates some sites . Also , the optimal augmentation for two-connectivity also must intersect each of these requirement cuts in the packing twice . Thus the cost of the optimal augmentation is at least twice the value of this cut packing . Putting these together , we get the following theorem . Theorem 3.3 Given an undirected graph with edge-weights , a subset of the vertices specified as sites and an initial subgraph which does not one-connect the sites , we can find an augmentation of the initial subgraph that one-connects the sites whose weight is at most that of an optimal augmentation that twoconnects the sites . Thus in the case that all the sites are not one-connected in the initial subgraph , we first find an augmentation that one-connects all the sites as outlined above . By the theorem above , the weight of this augmentation is at most the weight of the optimal augmentation for two-connectivity . Then we use the algorithms for connected initial subgraphs detailed in later sections to obtain an augmentation of this graph with weight at most twice the optimal . Thus we have an approximation algorithm with guarantee three . 4 The Steiner bridge-connected augmentation problem 4.1 Overview We follow the outline of the algorithm of Fredrickson and Ja'Ja ' -LSB- 6 -RSB- as modified by Khuller and Thurimella -LSB- 7 -RSB- for finding an approximately minimum-weight bridge-connected augmentation of a given initial subgraph . First , note that we can assume that we are given an initial subgraph one-connecting all the sites , from the remarks in the end of the previous section . Notice then that it is sufficient to show how to augment a tree for bridge-connecting it . For , if the connected initial subgraph G0 has non-trivial bridgeconnected components , then we can shrink each of these components to single vertices , and form a tree whose edges correspond to the bridges in G0 . The edges retained in E are those of minimum weight that connect vertices of different bridge-connected components among themselves or to other nodes in G . We retain only the minimum weight edge in these cases since we are looking only for a minimum weight augmentation . Further , we can disregard the edges in E within the same bridge-connected component since they are of no use in augmenting G0 to be bridge-connected . Thus we have modified the initial subgraph to a tree T0 . Call a bridge-connected component in G0 significant if it contains a separated site . Since we assumed that G0 one-connects all the sites , each site is in some significant component in G0 . Thus each site is represented in some significant node in T0 . We further modify the tree T0 so that all its leaves represent significant components . We contract each edge in T0 whose removal from T0 does not separate any pair of significant components . Let the resulting tree be denoted by T . After contracting such edges , each node in T represents a set of nodes in G. Moreover , as a result of the contractions , each leaf of T represents a set of nodes containing at least one separated site . Any set of edges in E ? E0 whose addition to E0 bridge-connects the sites also bridge connects all the leaves in T and vice-versa . Thus we can assume without loss of generality that the input graph G0 is a tree where each leaf of the tree is a site . We shall work under this assumption in the presentation of the algorithm . Let V denote the set of nodes in V connected by the edges in E0 . To begin , we form a multigraph G0 only on the vertices V . Namely G0 = -LRB- V ; E0 -LSB- E0 -RRB- where the edge -LRB- u ; v -RRB- 2 E0 whenever there is a path from u to v in G not using any edge in E0 and -LSB- represents multiset union . For -LRB- u ; v -RRB- 2 E0 , we set w -LRB- u ; v -RRB- = the minimum weight of such a path under the w function . We say that the edge -LRB- u ; v -RRB- so introduced in E0 corresponds to a minimum-weight path between u and v in G not using any edge in E0 . From G0 , we construct a directed graph GD , and find a minimum weight arborescence rooted at a vertex r . If there is no such arborescence , we can show that there is no augmentation possible using feasible edges . We use the edges in the arborescence to choose the augmentation solution and show that the cost is at most twice the optimal . 4.2 The algorithm The algorithm takes as input the graph G0 and the tree G0 . The algorithm outputs a set of edges Aug ? E ? E0 that bridge-connects G0 . -LRB- 1 -RRB- -LRB- Construct GD = -LRB- V ; ED -RRB- -RRB- -LRB- a -RRB- Pick a leaf r in G0 and direct the edges in G0 to form a reverse arborescence rooted at r -LRB- with all edges directed towards r -RRB- . Denote the resulting tree by T . -LRB- b -RRB- Add to ED the directed tree edges of T and set their weight to zero . -LRB- c -RRB- For each edge -LRB- u ; v -RRB- 2 E0 , if -LRB- u ; v -RRB- is a back edge -LRB- i.e. connects a vertex to one of its ancestors -RRB- , we add one directed edge to ED ; otherwise , we add two directed edges to ED as detailed below . We will call these directed edges as images of -LRB- u ; v -RRB- and we say these directed edges are generated by -LRB- u ; v -RRB- . Let e = -LRB- u ; v -RRB- 2 E0 and have weight w -LRB- See Figure 1 -RRB- . -LRB- i -RRB- If u is an ancestor of v -LRB- the converse is symmetric -RRB- , then add an edge hu ; vi in GD with weight w. Note that u may be the parent of v. -LRB- ii -RRB- If neither u nor v is an ancestor of the other , let t = l : c : a : -LRB- u ; v -RRB- be the least common ancestor of u and v in the tree T . Add the directed edges ht ; ui and ht ; vi in GD each with weight w. vuruvrvtur -LRB- a -RRB- -LRB- b -RRB- -LRB- c -RRB- Figure 1 : Cases in construction of GD . In -LRB- a -RRB- , neither u nor v is an ancestor of the other . In the other two cases , u is an ancestor of v . The node u may even be the parent of v as in -LRB- b -RRB- if there is a path in G not using edges in G0 between u and v. -LRB- 2 -RRB- Find a minimum weight arborescence rooted at r. Define Aug = f paths in G corresponding to -LRB- u ; v -RRB- : a directed edge generated by -LRB- u ; v -RRB- is chosen in the arborescence.g We have the following simple observation about the edges added in GD . Observation 4.1 All the edges in GD ? T connect a vertex to one of its descendants in T . 4.3 Correctness and Guarantee We now state and sketch the proofs of the key lemmas . They follow exactly the same outline as in -LSB- 7 -RSB- . Lemma 4.1 If the set of sites is bridge-connected in G , then GD is strongly connected . Proof Sketch : The proof is by contradiction . Clearly every vertex in GD can reach the root r via the tree T . So if GD is not strongly connected , there is some vertex that the root can not reach . Consider such a vertex closest to the root and call it u. Now , it is easy to see any two sites are bridge connected in G0 whenever they are bridge-connected in G. By our assumption about G0 , the root r , being a leaf , is a site and so is any leaf l that is a descendant of u. Moreover , r and l are bridge-connected in G and hence in G0 . Thus the edge -LRB- u ; p -LRB- u -RRB- -RRB- is not a bridge in G0 . Since -LRB- u ; p -LRB- u -RRB- -RRB- is not a bridge , we can find an edge -LRB- v ; s -RRB- in G0 between v , a descendant of u and s a non-descendant of u . This undirected edge causes addition of directed edges that make u reachable from r giving a contradiction . 2 Lemma 4.2 If G bridge-connects all the sites , then the graph G0 along with Aug bridge-connects all the sites . Proof Sketch : By the previous lemma , we can find a minimum weight arborescence in GD . Assume that G0 along with Aug fails to bridge-connect all the sites . Then we can find a bridge edge -LRB- u ; p -LRB- u -RRB- -RRB- in the tree T that is closest to the root -LRB- not necessarily unique -RRB- . Since the descendants of u are reached from r by the arborescence , there must be a directed edge hw ; vi from an ancestor , w , of u to a descendant , v , of u -LRB- using Observation 4.1 -RRB- . This edge must have been generated by an edge in G0 connecting v to a node outside the subtree rooted at u which contradicts the assumption that -LRB- u ; p -LRB- u -RRB- -RRB- is a bridge . 2 Lemma 4.3 The weight of Aug is at most twice that of the optimal augmentation of G0 to bridge-connect the sites . Proof Sketch : We prove the lemma by exhibiting an arborescence of weight at most 2w -LRB- Aug ? -RRB- , where Aug ? is the optimal augmentation . Define E00 = f -LRB- x ; y -RRB- : x ; y 2 G0 and there is a path not using any nodes in G0 between x and y in Aug ? g The set of directed edges generated by the edges in E00 along with the zero weight edges in G0 forms a strongly connected graph with total weight at most 2w -LRB- Aug ? -RRB- . Since we find a minimum weight arborescence , the weight of the one we find is at most 2w -LRB- Aug ? -RRB- as well . 2 The above lemmas prove the following theorem . Theorem 4.1 There is an approximation algorithm to find an augmentation of minimum-weight that bridge-connects a given set of sites of an edge-weighted undirected graph starting with an initial subgraph that one-connects the sites . The performance guarantee is two . As a corollary , combining remarks from the end of Section 3 summarized in Theorem 3.3 , we get the following . Corollary 4.1 There is an approximation algorithm to find an augmentation of minimum-weight that bridge-connects a given set of sites of an edge-weighted undirected graph starting with an initial subgraph that does not connect the sites . The performance guarantee is three . As a special instance of this corollary , we can obtain approximation algorithms for the minimum weight subgraph that bridge-connects the sites with performance guarantee three . The costliest step in our algorithm is the computation of the all-pair shortest paths for determining the edges in E0 and their weights which takes O -LRB- n3 -RRB- time . We note that the above performance ratios are approachable as illustrated by an example in -LSB- 6 -RSB- for the case of minimum-weight spanning bridge-connected subgraphs . By using the same example with the set of sites being the whole node set of the graph , we see that our algorithm reduces to that in -LSB- 6 -RSB- and hence performs just as badly on this example . 5 The Steiner biconnected subgraph problem 5.1 Overview Again , as in Section 4 , we can assume without loss of generality that the initial subgraph G0 connects the sites . First , we form a graph G0 on the nodes of G0 with edges of G0 corresponding to paths that are node-disjoint from G0 . We then contract the blocks in G0 to form a tree structure T . Using the graphs G0 and T , we construct a weighted directed graph GD . We then find a minimum-weight arborescence in GD from which we identify the set of edges to be included in the augmentation . One important difference is that in this case , the tree T we use is the block-cut vertex tree of G0 . As described in Section 4 , we can modify the tree T to ensure that each leaf of the tree represents a set of nodes that contains a separated site . Thus we can assume without loss of generality that this is the case . In this case , it is easy to see that any augmentation of G0 that biconnects the sites biconnects the leaves of T and vice-versa . 5.2 The algorithm Let V denote the set of nodes in V connected by the edges in E0 . To begin , we form a graph G0 only on the vertices V0 . Namely G0 = -LRB- V ; E0 -LSB- E0 -RRB- where the edge -LRB- u ; v -RRB- 2 E0 whenever there is a path from u to v in G not using any nodes in E0 and -LSB- represents multiset union . Also , we set w -LRB- u ; v -RRB- = the weight of such a path of minimum weight under the w function . We say that the edge -LRB- u ; v -RRB- so introduced in E0 corresponds to such a path in G . We then construct the block-cut vertex tree T of G0 . Using Observation 2.2 , we can associate a vertex of the tree T meaningfully with each vertex of G0 . By superimposing an edge -LRB- x ; y -RRB- in G0 on the tree T , we mean adding an edge between vertices a and b of T where their associated sets X and Y contain x and y respectively . -LRB- a -RRB- -LRB- b -RRB- -LRB- c -RRB- rrr Figure 2 : Stages in the construction of GD . In -LRB- a -RRB- , the dotted edges are the superimposed edges of E0 . Alternating bigger and smaller nodes represent blocks and cut vertices in T . In -LRB- b -RRB- , the graph GD constructed after Step 2 -LRB- c -RRB- is shown , and in -LRB- c -RRB- , the graph is shown after performing the modifications described in Step 2 -LRB- d -RRB- . The algorithm takes as input the graph G0 and the block-cut vertex tree T of G0 . The algorithm outputs a set of edges Aug ? E ? E0 that bridge-connects G0 . -LRB- 1 -RRB- Superimpose all the edges of E0 on T . Discard all the self-loops . Among multiple parallel edges , retain one of minimum weight and discard the rest . -LRB- 2 -RRB- -LRB- Construct GD = -LRB- V ; ED -RRB- -RRB- -LRB- a -RRB- Pick a leaf r in T and direct the edges in T to form a reverse arborescence rooted at r. Continue to denote this directed tree by T . -LRB- b -RRB- Add to ED the directed tree edges of T and set their weight to zero . -LRB- c -RRB- Consider the superimposed edges of E0 on T . Let -LRB- u ; v -RRB- be such an edge . If -LRB- u ; v -RRB- is a back edge , we add one directed edge to ED ; otherwise , we add four directed edges to ED as detailed below . We call these directed edges as images of -LRB- u ; v -RRB- and we say these directed edges are generated by -LRB- u ; v -RRB- . Let e = -LRB- u ; v -RRB- 2 E0 and have weight w -LRB- See Figure 2 -RRB- . -LRB- i -RRB- If u is an ancestor of v -LRB- the converse is symmetric -RRB- , then add an edge hu ; vi in GD with weight w . In the case that u is the parent of v , we discard this edge and add nothing to ED -LRB- Note that such edges can be removed from any biconnectivity augmentation of G0 -RRB- . -LRB- ii -RRB- If neither u nor v is an ancestor of the other , let t = l : c : a : -LRB- u ; v -RRB- be the least common ancestor of u and v in the tree T . Add the four directed edges ht ; ui ; ht ; vi ; hu ; vi and hv ; ui in GD each with weight w. -LRB- d -RRB- Modify Ed as follows . For every u 2 Vc , if there is an outgoing edge from u to a descendant v , then replace that edge with huv ; vi where uv is the child of u on the tree path from u to v. -LRB- 3 -RRB- Find a minimum weight arborescence rooted at r. Define Aug = f path in G corresponding to -LRB- u ; v -RRB- : a directed edge generated by -LRB- u ; v -RRB- is chosen in the arborescence.g From the construction of GD , we have the following observation . Observation 5.1 In the directed graph GD , there are no outgoing edges from a cut vertex to any of its descendants in T . 5.3 Correctness and Performance guarantee We now state and sketch the proofs of the key lemmas . Again , we follow exactly the same outline as in -LSB- 7 -RSB- . Lemma 5.1 If the set of sites is biconnected in G , then GD is strongly connected . Proof Sketch : The proof is by contradiction . Clearly , every vertex in GD can reach the root r via the tree T . So if GD is not strongly connected , there is some vertex that the root can not reach . Consider such a vertex closest to the root and call it u . There are two cases to consider . Let the vertex u be a cut vertex . The key observation is that the components formed on the deletion of vertex u from T are connected by the set of superimposed edges of E0 . This is because the sites that form the leaves of T are biconnected in G. Using these connections , we can identify directed edges added to GD that make u reachable from r giving a contradiction . The case when u is a block vertex is handled by a similar argument on the cut vertex p -LRB- u -RRB- . The details are in -LSB- 7 -RSB- . 2 Lemma 5.2 If G biconnects all the sites , then the graph G0 along with Aug biconnects all the sites . Proof Sketch : By the previous lemma , we can find a minimum weight arborescence in GD . Assume that G0 along with Aug fails to biconnect all the sites . Then we can find a cut vertex u in the tree T . We then consider the components C1 -LRB- u -RRB- ; ... ; Cd -LRB- u -RRB- -LRB- u -RRB- and group them into two groups : the first containing C1 and all the other components that are connected to C1 when the edges of Aug are superimposed on T , and the second containing the rest . Since u is a cut vertex , both the groups must be non-empty . Furthermore , all the vertices in GD are reachable from the root r in the minimum weight arborescence we find . Also , by Observation 5.1 , no directed edges go out of u in GD . These imply that there must be a directed edge from a component in the first group to one in the second . The path generated by this directed edge in Aug would contradict the assumption that u is a cut vertex . 2 Lemma 5.3 The weight of Aug is at most twice that of the optimal augmentation of G0 to biconnect the sites . Proof Sketch : We prove the lemma by exhibiting an arborescence of weight at most 2w -LRB- Aug ? -RRB- , where Aug ? is the optimal augmentation . Define E00 = f -LRB- x ; y -RRB- : x ; y 2 G0 and there is a nontree path not using any nodes in G0 between x and y in Aug ? g The set of directed edges generated by the edges in E00 along with the zero weight edges in G0 forms a strongly connected graph with total weight at most 4w -LRB- Aug ? -RRB- . However , no arborescence will use more than two of the four directed images of each edge in E00 . Since we find a minimum-weight arborescence , the weight of the one we find is at most 2w -LRB- Aug ? -RRB- . 2 The above lemmas prove the following theorem . Theorem 5.1 There is an approximation algorithm to find an augmentation that biconnects a given set of sites of an edge-weighted undirected graph starting with an initial subgraph that one-connects the sites . The performance guarantee is two . As a corollary , using Theorem 3.3 , we get the following . Corollary 5.1 There is an approximation algorithm to find an augmentation that biconnects a given set of sites of an edge-weighted undirected graph starting with an initial subgraph that does not connect the sites . The performance guarantee is three . As a special instance of this corollary , we can obtain approximation algorithms for the minimum weight subgraph that biconnects the sites with performance guarantee three . Again , the costliest step is the computation of the all-pair shortest paths for determining the edges in E0 and their weights which takes O -LRB- n3 -RRB- time . 6 Conclusions Though more recent algorithms in -LSB- 8 -RSB- solve the minimum bridge-connected and biconnected subgraph problems with better performance factors , they do not extend to the edge-weighted or to the Steiner cases we considered . While the method described in -LSB- 6 -RSB- generalizes to the Steiner setting as we saw above , it does not extend to the generalized Steiner setting where we seek to two-connect arbitrarily specified pairs of vertices . This remains an important open problem . Acknowledgements It is a pleasure to thank my advisor , Philip Klein , for his encouragement and help in verifying these results . References -LSB- 1 -RSB- A. Agrawal , P. Klein and R. Ravi , \ When trees collide : an approximation algorithm for the generalized Steiner problem on networks , '' Proceedings of the 23rd Annual ACM Symposium on Theory of Computing -LRB- 1991 -RRB- , pp. 134-144 . -LSB- 2 -RSB- Y. J. Chu , and T. H. Liu , \ On the shortest arborescence of a directed graph '' , Sci . Sinica , 14 -LRB- 1965 -RRB- , pp. 1396-1400 . -LSB- 3 -RSB- J. Edmonds , \ Optimum branchings '' , J. Res . Nat . Bur . Standards Sect . B , 71 -LRB- 1967 -RRB- , pp. 233-240 . -LSB- 4 -RSB- K. P. Eswaran , and R. E. Tarjan , \ Augmentation problems '' , SIAM Journal on Computing , Vol . 5 -LRB- 1976 -RRB- , pp. 653-665 . -LSB- 5 -RSB- M. R. Garey and D. S. Johnson , Computers and Intractability : A guide to the theory of NP - completeness , W. H. Freeman , San Francisco -LRB- 1979 -RRB- . -LSB- 6 -RSB- Greg N. Fredrickson , and Joseph Ja'Ja ' , \ Approximation algorithms for several graph augmentation problems '' , SIAM Journal on Computing , Vol . 10 , No. 2 -LRB- 1981 -RRB- , pp. 270-283 . -LSB- 7 -RSB- S. Khuller , and R. Thurimella , \ Approximation algorithms for graph augmentation , '' Technical report UMIACS-TR-91-132 , CS-TR-2766 , Univ. of Maryland , September -LRB- 1991 -RRB- , to appear in Journal of Algorithms . -LSB- 8 -RSB- S. Khuller , and U. Vishkin , \ Biconnectivity approximations and graph carvings '' , Technical Report UMIACS-TR-92-5 , CS-TR-2825 Univ. of Maryland , January 1992 . -LSB- 9 -RSB- R. E. Tarjan , \ Finding optimum branchings '' , Networks , 7 -LRB- 1977 -RRB- , pp. 25-35 .

B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

approximation algorithms
augmentation
biconnectivity

minimum-weight two-connected steiner subgraphs