Robust Reoptimization of Steiner Trees

In reoptimization, one is given an optimal solution to a problem instance and a (locally) modified instance. The goal is to obtain a solution for the modified instance. We aim to use information obtained from the given solution in order to obtain a better solution for the new instance than we are able to compute from scratch. In this paper, we consider Steiner tree reoptimization and address the optimality requirement of the provided solution. Instead of assuming that we are provided an optimal solution, we relax the assumption to the more realistic scenario where we are given an approximate solution with an upper bound on its performance guarantee. We show that for Steiner tree reoptimization there is a clear separation between local modifications where optimality is crucial for obtaining improved approximations and those instances where approximate solutions are acceptable starting points. For some of the local modifications that have been considered in previous research, we show that for every fixed ε>0\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\varepsilon > 0$$\end{document}, approximating the reoptimization problem with respect to a given (1+ε)\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$(1+\varepsilon )$$\end{document}-approximation is as hard as approximating the Steiner tree problem itself. In contrast, with a given optimal solution to the original problem it is known that one can obtain considerably improved results. Furthermore, we provide a new algorithmic technique that, with some further insights, allows us to obtain improved performance guarantees for Steiner tree reoptimization with respect to all remaining local modifications that have been considered in the literature: a required node of degree more than one becomes a Steiner node; a Steiner node becomes a required node; the cost of one edge is increased.


Introduction
The Steiner tree problem (STP) is one of the most studied problems in the area of network design. We are given a graph G with nodes V(G), edges E(G), and a cost function c ∶ E(G) → ℝ ≥0 , as well as a set R ⊆ V(G) of required nodes (also called regular nodes or terminals). The objective is to find a minimum-cost tree T within G such that R ⊆ V(T) . The Steiner tree problem is known to be APX-hard [8], and the currently best approximation algorithm has a performance guarantee of ln 4 + ≈ 1.387 [25].
We consider the Steiner tree problem with respect to reoptimization, a framework for dynamic algorithms in the context of NP-hard problems. We are given two related instances I and I ′ of an algorithmic problem together with a solution SOL to the instance I, and our goal is to compute a solution to I ′ . The relation between I and I ′ is determined by an operation that we call local modification.
The concept of reoptimization is motivated by the observation that instead of computing new solutions from scratch, oftentimes we can reuse the effort spent to solve problems similar to the one at hand. For instance, let us consider a large circuit where certain components have to be connected. The components are the required nodes and there are points that may be used by several connections, the Steiner nodes. Now suppose that a long and costly computation has led to an almost optimal solution. Afterwards the requirements change: either an additional component has to be placed to a point that previously was a Steiner node or a component is removed, which turns a required node into a Steiner node. In such a situation it would seem wasteful to discard the entire previous effort.
Classically, when considering reoptimization problems one assumes that SOL is an optimal solution. The reason for this assumption is that assuming optimality considerably reduces the formal overhead and therefore facilitates to concentrate on the main underlying properties of the reoptimization problem. We show, however, that assuming optimality is not without loss of generality. Let us assume that c(SOL) is a (1 + ) factor larger than the cost of an optimal solution. Then we say that a Steiner tree reoptimization algorithm is robust, if it is an approximation algorithm and its performance guarantee is ⋅ (1 + O( )) , where is its performance guarantee when = 0 . Intuitively, this definition ensures that for → 0 , the performance guarantee converges smoothly towards , independent of the given instance. We consider robustness of reoptimization algorithms to be a crucial feature, since in real-world applications close-to-optimal solutions are much more frequent than optimal solutions. We address all local modifications that have previously been considered for Steiner tree reoptimization. We classify these modifications into two groups, according to their robustness. The first group contains those problems where obtaining a robust reoptimization algorithm implies to provide an approximation algorithm for the (non-reoptimization) Steiner tree problem with matching performance guarantee. The second group of problems allows for improved robust reoptimization algorithms compared to STP approximation algorithms.
For all reoptimization problems of the second group that have previously been considered (and that are known to be NP-hard [17]), we provide robust reoptimization algorithms that, for → 0 , obtain better performance guarantees than the previous results with optimality assumption [13,14].
After the journal submission of our manuscript, Bilò [9] published polynomial time approximation schemes for Steiner tree reoptimization with respect to four of the most important local modifications (see Table 1). The algorithms use some of our techniques as a building block.

Local Modifications and Our Contribution
There are ten local modifications that previously have been considered for the Steiner tree problem. The two most studied modifications address the set of required nodes: we either declare a required node to be a Steiner node, or a Steiner node to be a required node. Here, STP R− resp. STP R+ denote the corresponding reoptimization problems. We show, in Sect. 4, that finding a robust reoptimization algorithm for STP R− is as hard as finding a Steiner tree approximation algorithm with matching approximation ratio. If one, however, excludes that the node t declared to be a Steiner node is a leaf in the given instance, we provide a robust reoptimization algorithm with improved performance ratio (see Table 1 for an overview of the achieved improvements). We show that in contrast to STP R− , STP R+ always allows for improved robust reoptimization algorithms. The next interesting type of local modification is to modify the cost of a single edge. We do not require the cost function to be metric. In particular, in the shortest path metric induced by the modified edge cost, the cost of several edges may be changed. We call the modification where Table 1 Comparison of approximation ratios of the Steiner Tree Reoptimization problem for the different  types of local modifications To increase the readability, all values , in the approximation ratios are omitted. The numerical values are rounded up at the third digit and we assume = 1.387 , the approximation ratio ln(4) + of the Steiner tree approximation algorithm of Byrka et al. [25] with small enough . The subsequent results of Bilò [9] assume Sol to be an optimal solution but translate to robust reoptimization results for all local modifications except those that we show to be not permit robust reoptimization the cost of one edge is increased STP E+ , and the converse local modification where the cost of one edge is decreased is STP E− . We provide an improved robust reoptimization algorithm for STP E+ and show that robust reoptimization for STP E− is as hard as approximating the Steiner tree problem itself (analogous to general STP R− ). The two local modifications to remove an edge from the graph and to add an edge to the graph reduce to STP E+ resp. STP E− in a straightforward manner. The remaining four local modifications are the removal or addition of a required node or a Steiner node. It is known that the local modification where required or Steiner nodes are removed is as hard as Steiner tree approximation, even if we are given an optimal solution to the old problem [17]. We show that adding a required node or a Steiner node to the graph causes robust reoptimization to be as hard as STP approximation.
One of the key insights that leads to our improved algorithms is that for all local modifications that allow for robust reoptimization algorithms, we can replace the given Steiner tree by a k-restricted Steiner tree of about the same cost. A k-restricted Steiner tree has a limited size of the subgraphs where all required nodes are leaves (see Sect. 2 for a precise definition). At the same time, we have the promise that there is an almost optimal Steiner tree for the modified instance that is k-restricted. This property allows us to handle certain subgraphs of Steiner trees called full components. (i) We remove entire full components from the given Steiner tree and perform optimal computations to obtain a feasible solution to the modified instance, and (ii) we guess entire full components of the Steiner tree that we aim to compute. The new insights simplify and generalize the previous approaches to Steiner tree reoptimization and therefore give raise to more sophisticated analyses than before. 1

Preliminaries
We denote a Steiner tree instance by (G, R, c), where G is an undirected graph, R ⊆ V(G) is the set of required nodes, and c ∶ E(G) → ℝ ≥0 is a cost function. The Steiner nodes of (G, R, c) are the nodes S = V(G)⧵R.
Since c is symmetric, we sometimes use the simplified notation For two graphs G, G ′ , we define G ∪ G � to be the graph with node set V(G) ∪ V(G � ) and edge set E(G) ∪ E(G � ) (i.e., we do not keep multiple edges). For an edge e, G − e is G with e removed from E(G). We define G − G � to be the graph with node set V(G)⧵(V(G � ) ∩ S) and edge set E(G)⧵E(G � ) . We emphasize that we do not remove required vertices.
In Steiner tree algorithms, it is standard to consider the edge-costs to be metric. The reason is that forming the metric closure (i.e., using the shortest path metric) does not change the cost of an optimal solution: if we replace an edge of a Steiner tree by the shortest path between the two ends, we obtain a valid Steiner tree again.
In the context of reoptimization, however, we cannot assume the cost function to be metric without loss of generality, because the triangle inequality restricts the effect of local changes. Therefore in the following we have to carefully distinguish between metric and general cost functions.
For a given Steiner tree, its full components are exactly those maximal subtrees that have all leaves are in R and all internal nodes are in S. Note that for a given Steiner tree T, we may remove leaves if they are not in R; we still have a Steiner tree, and its cost did not increase. Therefore we may assume that T is composed of full components. A k-restricted Steiner tree is a Steiner tree where each full component has at most k nodes from R. [20]) For an arbitrary > 0 , let k ≥ 2 1∕ . Then for all Steiner tree instances (G, R, c) with optimal solution OPT of cost opt , there is a krestricted Steiner tree T of cost at most (1 + )opt which can be obtained from OPT in polynomial time.

Lemma 1 (Borchers and Du
Let T be a k-restricted Steiner tree in graph G. We replace the edge costs c by the shortest-path metric of G. In particular, since G is connected, it is a complete graph with respect to the changed cost function c. We assume that within T, . We replace {u, v}, {v, w} by {u, w} without increasing the cost of T and without changing the property that T is k-restricted. Within the entire text, OPT denotes an optimal solution and opt denotes the cost of an optimal solution. We will often add sub-and superscripts to OPT and opt in order to distinguish between various types of (close to) optimal solutions.

Connecting Forests and Guessing Components
We state two algorithms that we will use repeatedly within the subsequent sections. The first algorithm, ConneCt, was introduced by Böckenhauer et al. [18] and has been used in all previous Steiner tree reoptimization results. The algorithm connects components of a Forest F of G in order to obtain a feasible Steiner tree T. The idea is that we start from a partial solution with few components that together contain all required vertices, and we use an exact computation to complete the solution. In ConneCt we use the following notation. Denote by Note that after contracting a component there may be multiedges. Here, we treat multigraphs as simple graphs, where we only consider the cheapest edge of each multiedge. For ease of presentation, we slightly abuse notation and use the cost function c for both the graph before and the graph after the contraction.
Clearly, the graph T computed by ConneCt is a Steiner tree. If the number of components of the forest F given as input is a constant and we use the Dreyfus-Wagner algorithm [27] 2 to compute T ′ , ConneCt runs in polynomial time. The graph T computed by ConneCt is the minimum-cost Steiner tree that contains F, since all Steiner trees that contain F determine feasible solutions T ′ .
The second algorithm of this section is called Guess. It is motivated by the CONNECT algorithm of [14] and we present it here in a different manner. The algorithm Guess provides a mechanism to profit from guessing full components of an optimal k-restricted Steiner tree: we contract the guessed full components S i to single vertices r i and this way we obtain a new instance to which we apply known approximation algorithms. We call GUESS by simply writing GUESS( ) , if the instance and k are clear from the context and A is a -approximation algorithm. For example GUESS(3k) means that = 3k .

Lemma 2
For an arbitrary > 0 , let k be the parameter obtained from Lemma 1. Let A be a polynomial-time -approximation algorithm for the Steiner tree problem. Furthermore, let OPT k be an optimal k-restricted solution of cost opt k to the Steiner tree instance (G, R, c) where c is a metric. Then, for ∈ O (1) , Guess runs in polynomial time and computes a Steiner tree T of cost at most (1 + )( − + )opt , where opt k is the total cost of the maximum-weight full components of OPT k and opt is the cost of an optimal solution.

The index in the notation O (⋅) means that is a constant. 3
Proof We first analyze the running time of the algorithm. Since A runs in polynomial time, we only have to consider the number of families S that we have to test. This number is bounded from above by , since we only choose sets of size at most 2k. Since both k and are constants, this number is polynomial in n.
Next we analyze the cost of T. Since we assume that for each Steiner node v ∈ S ∩ V(OPT k ) , deg(v) ≥ 3 , we conclude that all full components of OPT k have at most 2k nodes. Therefore there is a family S considered by Guess such that the classes of S are exactly the node sets of the maximum-weight full components of OPT k . Contracting a minimum spanning tree T i is equivalent to contracting the full component with required nodes R ∩ S i in OPT k . We finish the proof by applying a standard argument that was used, for instance, by Böckenhauer et al. [16]. The cost of an optimal Steiner tree before expanding the full components is bounded from above by opt k − opt k , and expanding the full components adds opt k . Therefore we obtain c(T) ≤ (opt k − opt k ) + opt k = ( − + )opt k .
By our choice of k and Lemma 1, opt k ≤ (1 + )opt and therefore In the subsequent proofs, we will repeatedly obtain a value such that ≥ ( − 1 − ) , where is the actual performance ratio of the considered approximation algorithm. By simple arithmetics and assuming that (1 + )( − + ) tends to ( − + ) for chosen sufficiently small, Lemma 2 implies The reason for our assumption is that we can choose k in Lemma 1 and therefore the additional error is arbitrarily small. 4 We avoid complicated formalisms and instead slightly relax the approximation ratios in theorem statements by adding a value O , ( ) for a > 0 that can be chosen arbitrarily small whenever the proofs use (1).

A Required Node Becomes a Steiner Node
The variant of the minimum Steiner tree reoptimization problem where a node is declared to be a Steiner node ( STP R− ) is defined as follows.

Given:
A parameter > 0 , a Steiner tree instance (G, R, c), a solution OPT old to (G, R, c) such that opt old ≤ (1 + )opt old , and a node t ∈ R. Solution: A Steiner tree solution to (G, R⧵{t}, c).
An instance of STP R− is a tuple G, R, c, OPT old , t . If = 0 , we skip the index and write STP R− . Without loss of generality we assume that c is a metric: we may use the metric closure since the local modification does not change G or c.
The algorithm DeClaresteiner starts with reducing the instance to one where the changed required node has a degree of at least two, using a known technique. Afterwards it transforms the given solution to a k-restricted Steiner tree (note that the order of these two steps is important). The remaining algorithm outputs the best of three solutions that intuitively can be described as follows: we either keep the old solution; or we remove up to three full components incident to t to obtain a partial solution that we complete again using ConneCt; or we guess a partial solution that is at least as large as the 3k largest full-components of an optimal solution and complete these components to a solution using the best available approximation algorithm.
Note that in contrast to the error from Lemma 1, we cannot control the error of the given solutions.

3
The following theorem indicates that in general we have to require = 0 for instances of STP R− with deg(t) = 1.

Theorem 1 For an arbitrary > 0 , let A be a polynomial-time -approximation algorithm for STP R− . Then there is a polynomial-time -approximation algorithm for the Steiner tree problem.
Proof Given a Steiner tree instance (G, R, c), let opt new be the cost of an optimal solution. We construct a STP R− instance G ′ , R ′ , c ′ , OPT old , t from (G, R, c). We first compute a minimum spanning tree T of G [R]. Note that G[R] is a complete graph since we assume c to be metric, and c(T) ≤ 2opt new , as shown by Takahashi and Matsuyama [32]; we assume w.l.o.g. that < 2 . We obtain G ′ by combining G and a new node t as follows. We set V(G � ) ∶= V(G) ∪ {t} and E(G � ) = E(G) ∪ {t, t � } for a node t � ∈ R . Then we obtain c ′ from c by setting c � (t, t � ) = c(T) ⋅ max{1, (1 − )∕ } and forming the metric closure. 5 We set R � = R ∪ {t} and obtain a solution to (G � , R � , c � ) by adding {t, t � } to T . We show later that the computed solution is OPT old . Finally, we obtain the Steiner tree T by applying A to G ′ , R ′ , c ′ , OPT old , t .
Observe that T cannot contain an edge incident to t, since all of those edges have at least the cost of T . Therefore T is a Steiner tree of (G, R, c). Conversely, all Steiner trees of (G, R, c) are feasible solutions to G ′ , R ′ , c ′ , OPT old , t . We conclude that T provides an approximation, i.e., T is a feasible solution to (G, R, c) and c(T) ≤ opt new .
To finish the proof, we have to show that OPT old was a valid solution given to A , i.e., its cost opt old is at most a factor (1 + ) larger than optimum. Clearly, OPT old is a Steiner tree of (G � , R � , c � ) . Let opt old be the cost of an optimal Steiner trees for (G � , R � , c � ).

◻
For all remaining cases, DeClaresteiner profits from knowing OPT old .
Then, for an arbitrary > 0 , DeClaresteiner is an approximation algorithm for STP R− with performance guarantee For the approximation ratio = ln(4) + �� from [25] with ′′ and chosen sufficiently small, we obtain an approximation ratio of less than 1.204 ⋅ (1 + ).

Proof of Theorem 2
Since k is a constant, all steps of DeClaresteiner except for the call of ConneCt clearly run in polynomial time. To see that also the call of ConneCt does, observe that removing the edges and Steiner nodes of a full component increases the number of connected components by at most k − 1.
We continue with showing the claimed upper bound on the performance guarantee. Before we show the main result, we introduce two simplification steps. First, we show that we can restrict our attention to the case deg(t) = 2 in OPT old ,k . Our analysis simultaneously gives a new proof for the previous best reoptimization result [14]. Subsequently we reduce the class of considered instances to those where all optimal solution to (G, R⧵{t}, c) have a special structure.
We start with analyzing the case where deg(t) = 1 . If this case appears in the while loop, by our assumption we have = 0 and thus OPT old is an optimal solution. The transformation of DeClaresteiner within the while loop reduces the instance to one where deg(t) ≥ 2 [18]. When transforming the resulting solution OPT old to OPT old ,k , generally t could become a degree-one vertex. We use, however, that this is not the case when applying the algorithm of Borchers and Du [20]: The algorithm considers the full components separately, which implies that initially the degrees of all required vertices are one. Each full component is replaced by a graph where each required vertex has a degree of at least one. Consequently, the degree of no required vertex is decreased.
For the remaining proof, we assume deg OPT old ,k (t) ≥ 2 . We prove the following technical lemma, which is needed for our subsequent argumentation.

Lemma 3 There is a collection C of at most 3k full components of OPT new
k such that F ∪ C is a connected graph.
Proof Observe that F has less than 3k connected components, and each of them contains nodes from R. We use that the full components of OPT new k only intersect in R. Since OPT new k is connected, by the pigeonhole principle it has a full component C that contains required nodes from two distinct components of F. Thus adding C to F reduces the number of components. Now the claim follows inductively. ◻ Let = c(T)∕opt new ≥ 1 be the performance ratio of DeClaresteiner. Thus, in the following we want to determine an upper bound on . We may assume since otherwise, T 1 already gives an approximation ratio better than .
We define = c(CONNECT(F)) − c(F) , the cost to connect F. Let d be the number of full components removed from OPT old ,k to obtain F, i.e., d ∈ {2, 3}.

Lemma 4
For an arbitrary > 0 , the performance ratio of DeClaresteiner is bounded from above by 1 + −1+ ( −1)(d+1) We determine the following constraints. Since C t 1 + OPT new contains a feasible solution to (G, R, c), Furthermore, since c(T 2 ) is at most as large as the left hand side of (4).
We use (3) to replace opt old ,k in (2) to obtain By applying (3) and (5) to (4), we obtain Finally, ≥ ∕opt new k , by Lemma 3. Therefore, due to Lemma 2, Now the claim follows if we replace in (7) by the right hand side of (6), where we used that ≥ 1 . ◻ We note that for d = 2 and = 0 , the upper bound on the performance guarantee due to Lemma 4 matches the previously best performance guarantee [14]. For d = 3 , the value is better than the aimed-for value from Theorem 2. Observe that a straightforward extension of DeClaresteiner would allow us to consider values of d larger than three.
Due to Lemma 4, in the following we may assume that deg(t) = 2 . Next, we analyze the structure of OPT old ,k and OPT new . Let R 1 = (R ∩ V(C t 1 ))⧵{t} and R 2 = (R ∩ V(C t 2 ))⧵{t} . We partition F into forests F 1 and F 2 such that F 1 contains exactly the trees T of F with V(T) ∩ R 1 ≠ � and F 2 contains the remaining trees T ′ , with V(T � ) ∩ R 2 ≠ � (see Fig. 1).

Lemma 5 Suppose there are at least two edge-disjoint paths in OPT new
k between V(F 1 ) and V(F 2 ) . Then, for an arbitrary > 0 , the performance guarantee of DeClaresteiner is bounded from above by (11 −8) Proof Let P ′ and P ′′ be two edge-disjoint paths within OPT new k between V(F 1 ) and V(F 2 ) such that none of their internal nodes are in V(OPT old ,k ) . Without loss of Fig. 1 Structure of OPT old ,k . The paths P 1 and P 2 are drawn with thick lines generality, we assume that c(P � ) ≤ c(P �� ) . Then, additionally to the previous constraints, we obtain the following.
From (9) and (10), we obtain and thus, due to (11) and (2),(9), Furthermore, by using (8) and (9) in (4), we obtain and thus, due to (2) and (9) and the fact that opt new k ≥ , A linear combination of (13) and (14) with coefficients one and two gives (1 + O( )) ≥ 8( −1− ) 3(1+ ) . Using (1) we obtain ◻ Since the value obtained by Lemma 5 is better than the aimed-for ratio, from now on we can restrict our focus to instances where in OPT new k , there are no two edge-disjoint paths between F 1 and F 2 . In particular, this means that there is exactly one full component L in OPT new k that connects F 1 and F 2 . Since we assumed that there are no Steiner nodes of degree two in OPT new k , there is exactly one edge e L in L such that removing e L leaves two connected components of OPT new k , one containing R 1 and the other one containing R 2 . Let P L be a minimumcost path between V(F 1 ) and V(F 2 ) in L (and thus P L clearly contains e L ). Let P 1 L be the subpath of P L between F 1 and e L and let P 2 L be the subpath of P L between F 2 and e L . We define ∶= c(P L ) , � ∶= c(e L ) , �� 1 ∶= c(P 1 L ) , and �� 2 ∶= c(P 2 L ) . Similar to above, we define �� ∶= ( �� 1 + �� 2 )∕2 . Note that − � = 2 �� . It follows easily that c(L) ≥ � + 4 �� . Let L ′ be a forest with a minimum number of full components from OPT new k such that OPT old ,k − C t 1 − C t 2 + L � is connected. From Lemma 3, we obtain that L ′ contains at most 3k full components and thus we considered guessing L ′ when computing T 3 in DeClaresteiner. We define ∶= c(L � ) − � − 4 �� . Since L ′ contains L, is non-negative.
To find an upper bound on the value of , we maximize subject to the constraints (2), (9) and the following constraints.
By removing e L from OPT new k and adding the paths P 1 and P 2 , we obtain a feasible solution to (G, R, c); conversely, by removing e 1 and e 2 from OPT old ,k and adding P L , we obtain a feasible solution to (G, R⧵t, c) that is considered in T 2 . Therefore In T 2 we also consider to remove C t 1 , C t 2 completely and to add L ′ . Therefore Due to Lemma 2, we may assume In T 3 , one of the considered guesses is L ′ and therefore We scale the values such that opt new = 1 . Then we perform the following replacements. We replace opt old in (9) and in (15) by using (2); we use (9) to replace opt old in (16); we use (9) to replace opt old in (17). We keep (18) and (19). This way we obtain a linear program that maximizes subject to the following constraints, where we ignore the dependence on .

A Steiner Node Becomes a Required Node
In this section, instead of removing nodes from R, we consider the problem to add nodes to R, i.e., we declare a Steiner node to be a required node. Formally the problem STP R+ is defined as follows.

Given:
A parameter > 0 , a Steiner tree instance (G, R, c), a solution OPT old to (G, R, c) such that opt old ≤ (1 + )opt old , and a Steiner node t ∈ V(G)⧵R .

Proof of Theorem 3
We prove the theorem in three steps, according to the degree of t in OPT new k . Let us first assume that deg(t) = 1 . Then there is a well defined edge {t, t � } in OPT new k . Thus we may solve (G, R, c, OPT old , t � ) and add {t, t � } afterwards if t is not included. If t � ∈ R , OPT old is good enough already. Otherwise deg(t � ) ≥ 2 in the k-restricted optimal solution to (G, R, c, OPT old , t � ) that we obtain from OPT new k by removing t. Adding {t, t � } after obtaining a solution to (G, R, c, OPT old , t � ) does not increase the approximation ratio since both the computed and the optimal solution are increased by the same amount. Note that in DeClarerequireD, the transformation is implicitly contained. If t � ∈ R , T 1 provides a (1 + )-approximation. Since for both instances we consider the same full components C, T 2 is at most as large as the solution obtained for (G, R, c, OPT old , t � ) together with {t, t � } . In T 3 , we implicitly considered deg(t) = 1 by choosing k + 1 as parameter, whereas k is sufficient for the remaining proof. Therefore, in the following we assume deg(t) ≥ 2.
For the remaining proof where deg(t) ≥ 2 in OPT new k , we introduce the following notation. Let us fix a close-to-optimal solution OPT new k to (G, R ∪ {t}, c). We consider t as the root of OPT new k and fix two subtrees F 1 and F 2 such that there is a full component L of OPT old with V(L) ∩ V(F 1 ) ≠ � and V(L ∩ V(F 2 ) ≠ � . Thus L connects F 1 and F 2 . We define = c(L) . The trees F 1 and F 2 exist, because OPT old is a connected graph. Let us now consider the graph H = F 1 ∪ F 2 ∪ L . Note that since nodes not in R have a degree of at least three, there is at most one edge e L in L that is a cut edge of H. If e L exists, we set � = c(e L ) ; otherwise, � = 0 . If there are more than one components of OPT old connecting F 1 and F 2 , we change the names such that ′ is minimal.
We set We define p 1 = min{c({r, t}) ∶ r ∈ R 1 } , p 2 = min{c({r, t}) ∶ r ∈ R 2 } , and p ∶= min{c({r, t}) ∶ r ∈ R} . Furthermore, let P 1 and P 2 be the minimum-cost paths from t to R 1 resp. R 2 in OPT new k . Let e 1 and e 2 be the edges of P 1 resp. P 2 incident to t. We define, for i ∈ {1, 2} , p � i ∶= c(e i ) and p �� i ∶= c(P i ) − p � i . Then p � ∶= (p � 1 + p � 2 )∕2 and p �� ∶= (p �� 1 + p �� 2 )∕2 . In particular, Before we continue with the second case, let us state two general constraints. Since OPT new is a feasible solution to (G, R), we have We get since otherwise T 1 is a good enough solution. The constraints (22) and (23) imply (23) opt old + p ≥ opt new , Next we reduce the problem to deg(t) = 2.

Lemma 6 For an arbitrary
Proof By definition of p, we conclude that opt new k ≥ 3p . Using (24), we conclude that (1 + ) ≥ 3( − 1 − ) . Therefore, by (1), we obtain the claimed result. ◻ For the last case where deg(t) = 2 , we obtain the following additional constraints. Since L contains a path between R 1 and R 2 of length at least , and e L is the only cut edge (if there is any).
In other words, if we double e L then there are two edge-disjoint paths between R 1 and R 2 in OPT new k . Furthermore, since adding a direct edge between F 1 and F 2 reconnects the graph after removing e 1 and e 2 . From (23) and (26), we obtain To get a feasible solution to (G, R ∪ {t}, c) , we can remove e L from L (if e L exists) and connect the graph again by adding minimum-cost edges from R 1 and R 2 to t. Therefore T 2 is good enough unless We obtain the following constraint from (22) and (28).

Increased Edge Cost
We now consider the reoptimization variant where the edge cost of one edge is increased, STP E+ . If e is the edge of G with increased cost, we define c new ∶ E(G) → ℝ ≥0 as c new (e � ) = c(e � ) for all edges e � ∈ E(G)⧵{e} and c new (e) is the increased cost. Then the formal definition of the reoptimization variant is as follows.

Given:
A parameter > 0 , a Steiner tree instance (G, R, c), a solution OPT old to (G, R, c) such that opt old ≤ (1 + )opt old , and a cost c new (e) ≥ c(e) for an edge e ∈ E(G). Solution: A Steiner tree solution to (G, R, c new ).
Observe that the cost function obtained after applying the local modification in general is not a metric, and OPT new ,k is assumed to live in the metric closure according to the new cost function. Proof Let us introduce the following notation. To emphasize which of the two instances we consider, we write c old (e) instead of c(e), where e is the edge with increased cost. We assume that e ∈ E(OPT old ,k ) , as otherwise T 1 would be good enough already. Therefore the graph OPT old ,k − e has exactly two connected components F 1 and F 2 . Similar to the previous proof, we define R 1 ∶= R ∩ V(F 1 ) and R 2 ∶= R ∩ V(F 2 ).
In OPT old ,k , let K be the full component that contains e. Let P be a minimum-cost path from R 1 to R 2 within K. Then we set ∶= c(P) − c old (e).
In OPT new k , there is a full component L of cost such that V(L) contains nodes from both R 1 and R 2 . If L has two edge-disjoint paths between R 1 and R 2 , we define � = 0 . Otherwise there is an edge e L ∈ E(L) such that e L is a cut edge in F 1 ∪ F 2 ∪ L , and � ∶= c(e L ) . We obtain the following inequalities, where as before = c(T)∕opt new .
Removing e and adding a shortest path between R 1 and R 2 within L gives a feasible solution to (G, R, c new ) . Therefore T 2 is good enough unless One feasible solution to the original instance is to remove e L and to add P. Therefore we obtain From (35) and (36), we obtain Since clearly opt new ≥ opt old , (35) implies In (37) and (38), we have used that c old (e) ≥ 0 and therefore it can be omitted.
We obtain an additional constraint by observing that in addition to using e L , within OPT new k the required vertices of K have to be connected. Let K 1 be the tree of K − e that contains R 1 ∩ V(K) . We see K 1 as a rooted tree with the root r 1 contained in e = {r 1 , r 2 } . Let us fix any two vertices u ≠ u � ∈ V(K 1 )⧵{r} , with parents v, v ′ . Then the minimum distance between the two subtrees rooted at u, u ′ is at least max{c(u, v), c(u � , v � )} . The same argumentation holds for K 2 , which we define analogous to K 1 (it contains R 2 ∩ V(K) , and has the root r 2 ). By traversing a path from V(K 1 ) ∩ R 1 to r 1 within K 1 and from V(K 2 ) ∩ R 2 to r 2 , and adding the distances, we conclude that there is a collection of at most k full components in OPT new k that without counting e L have a total cost of at least . Therefore, using T 2 , which due to (37) implies and with (38) we obtain (35) opt old ,k − c old (e) + ∕2 + � ∕2 ≥ opt new .

Given:
A parameter > 0 , a Steiner tree instance (G, R, c), a solution OPT old to (G, R, c) such that opt old ≤ (1 + )opt old , and a cost c new (e) ≤ c(e) for an edge e ∈ E(G). Solution: A Steiner tree solution to (G, R, c new ).
We show that decreasing the edge cost does not allow for a robust reoptimization better than STP approximation, similar to the case considered in Theorem 1. The proof of the following theorem is analogous to the proof of Theorem 1.

Theorem 5
For an arbitrary > 0 , let A be a polynomial-time -approximation algorithm for STP E− . Then there is a polynomial-time -approximation algorithm for the Steiner tree problem.
Proof Given a Steiner tree instance (G, R, c), we construct a STP E− instance (G � , R � , c � , e, c new (e)) . We first compute a minimum spanning tree T of G [R]. As in the proof of Theorem 1, G[R] is a complete graph since w.l.o.g. we assume c to be metric, and c(T) ≤ 2opt new , as shown by Takahashi and Matsuyama [32]. Again, we assume w.l.o.g. that < 2.
We obtain G ′ by combining G and a new node t as follows. We set V(G � ) ∶= V(G) ∪ {t} and E(G � ) = E(G) ∪ {t, t � } for a node t � ∈ R . Then we obtain c ′ from c by setting c � (t, t � ) = c(T) ⋅ max{1, (1 − )∕ } and forming the metric closure. We set R � = R ∪ {t} and obtain OPT old by adding {t, t � } to T . Finally, we obtain the Steiner tree T by applying A to (G � , R � , c � , {t, t � }, 0).
Observe that reducing the cost in this case does not influence any edge costs in G ′ except for those edges incident to t. Therefore the new instance is equivalent to (G, R). To finish the proof, we have to show that OPT old was a valid solution given to A , i.e., opt old is at most a factor (1 + ) larger than optimum. This step is identical with the corresponding step in the proof of Theorem 1. ◻

Changing the Node Set
Finally, we consider the local modifications where we remove nodes from the graph or add nodes to the graph. The results of this section are much simpler than the results of the previous sections and we sketch them for completeness, without formal definitions of the considered reoptimization problems. Removing a required node or a Steiner node gives a reoptimization problem that is as hard as the original Steiner tree problem [17]. The idea is that if (G, R, c) is a Steiner tree instance that we want to solve, then we add a node t that has cost zero edges to all nodes in G, and therefore there is a trivial optimal Steiner tree of cost zero. Removing t, however, leaves us with the original problem instance; in this case the hardness does not even depend on the robustness, the problem is hard even if we are given an optimal solution.
Adding a node is at least as hard as decreasing the edge cost. If a Steiner node t is added, this is straightforward: if we want to decrease the cost of e = {u, v} in a Steiner tree instance (G, R, c), we add a Steiner node v ′ with c(v, v � ) = 0 , c(u, v � ) the reduced cost, and c(v � , w) = c(v, w) for all other w ∈ V(G).
If a required node t is added, we have to consider an additional step. Observe that decreasing the cost of e = {u, v} can only have an impact, if it is contained in all optimal solutions to the modified problem, as otherwise keeping the given solution is close to optimal. Therefore we can solve STP E− by taking the best of the following two solutions: we either keep the given old optimal solution or we reduces the edge cost analogous to the case where t is a Steiner node.