A Cutting Plane Algorithm for Multicommodity Survivable Network Design Problems Geir Dahl
∗
and Mechthild Stoer
†
April, 1996
Abstract We present a cutting plane algorithm for solving the following telecommunications network design problem: given point-to-point traffic demands in a network, specified survivability requirements and a discrete cost/capacity function for each link, find minimum cost capacity expansions satisfying the given demands. This algorithm is based on the polyhedral study described in [19]. In this paper we describe the underlying problem, the model and the main ingredients in our algorithm. This includes: initial formulation, feasibility test, separation for strong cutting planes and primal heuristics. Computational results for a set of real-world problems are reported.
1
Introduction
The design of cost-efficient telecommunications networks meeting requirements concerning traffic, survivability etc. is a major challenge with great economic impact. In particular, it is important to establish networks that are robust with respect to accidents like cable cuts, electronic failures or power supply shut-down. The disastrous consequences of a fire in switching center in Chicago 1988 are described in [21]. Lost business was then estimated to be hundreds of millions of dollars. [7] describes the social consequences of a fire in a switching center in Oslo in 1985, which interrupted ∗
Institute of Informatics, University of Oslo, P.O.Box 1080 Blindern, 0316 Oslo, Norway. Email:
[email protected] † Telenor Research, P.O.Box 83, 2007 Kjeller, Norway. Email:
[email protected]
1
28.000 subscriber lines. (Hardest hit were elder and sick people, and businesses with many clients and suppliers.) Such failures happen more often, but qualified estimates of their consequences are seldom published. Often, the capacity limitations play a crucial role in these design problems (e.g., capacities of terminal equipment installed at both end nodes of each transmission links). This calls for models and methods for designing lowcost capacitated networks that allow routing of traffic in both normal and specified failure situations. The model we discuss in this paper falls into this framework. In MULTISUN (MULTIcommodity SUrvivable Network design) we integrate the problems of topological design, capacity assignment and routing. Due to its generality this is a very difficult problem with NP-hard problems as special cases. The main purpose of this paper is to describe a cutting plane algorithm for solving MULTISUN problems and report computational results for some real-world problems of interest. In an earlier paper [19] we presented a theoretical study of the MULTISUN problem and identified several classes of facet defining inequalities for certain associated integral polyhedra. We therefore refer to [19] for validity and facet proofs for the inequalities discussed later. The MULTISUN problem can be described more precisely as follows. Let V be a given set of nodes with traffic demands between certain pairs of these nodes. Each demand represents a certain amount of point-to-point traffic to be routed in the network between the origin and destination nodes. Traffic may be split on several paths, so it may be viewed as a continuous network flow. In addition, we have given “supply” edges joining pairs of nodes in V ; these represent existing or potential direct physical links (e.g., a fiber cable or a radio relay system). For each supply edge one wants to decide which capacity to install, selected from a discrete set of alternatives, each with an associated building cost. We are interested in cost-optimal capacity extensions that satisfy the following conditions: (i) in case of a node or edge failure, all demands can be routed simultaneously, (ii) when all nodes and edges are operating, all demands can be routed simultaneously such that no more than a given fraction of the given demand is routed through any intermediate node. This model can be viewed as an extension of the work of Gr¨otschel et al. [8] on the design of networks with connectivity constraints. There each edge, once installed, was supposed to have infinite capacity. This leads typically to very sparse designs. In this study, we combine connectivity with demand 2
routing to obtain more realistic designs. A large amount of work has been done by Minoux and others on a model related to ours, with a continuous cost function, see Minoux [15] (and its references). Gavish et al. [6] investigate exactly the same problem as we do (without diversified routing), but they use another LP-formulation. They experienced difficulties with the number of routing variables, which are projected away in our model. Lee et al. [10] investigate spare channel assignment for upgrading an existing network with two types of link facilities under survivability constraints. The “routings” in the non-failure state are here assumed to be given, so only a flow, not a multi-flow, needs to be found in each failure state. Lisser et al. [12] describe a promising interior point algorithm for designing a reserve network (routings in the non-failure state are assumed to be given) with linear costs on capacity increases, and with varying strategies for rerouting demands. In contrast to the latter two references, we attempt to design the core and the reserve network at the same time, allowing dynamic rerouting of all demands in case of failure. This paper is organized as follows. In Section 2 we present the integer linear programming model for the MULTISUN problem. In addition we explain how to obtain stronger LP relaxations by adding certain classes of valid inequalities originating from knapsack-like substructure of the original model. Next, in Section 3, we explain the main components of our cutting plane algorithm for the MULTISUN problem, including separation algorithms and primal heuristics. The development of the algorithm was funded by Telenor. Results for some real-world problems are reported and discussed in Section 4. Finally, in the concluding section, some directions for further work is pointed out. We use fairly standard notation from graph theory and polyhedral theory, see [2, 17], but a few notions need to be explained. RM denotes the vector space of real vectors indexed by M (where P M is some finite set), and for x ∈ RM and S ⊆ M we let x(S) denote i∈S xi . Vectors are indicated by bold face letters. 1 is a suitably dimensioned vector with 1’s. Let G = (V, E) be an undirected graph without loops and multiple edges. If W ⊆ V ∪ E, we let G − W denote the graph obtained from G by removing from G each node in W with their incident edges, and all edges in W . The cut δG(W ) induced by a subset W of V is the set of edges with one end node in W and the other outside W . By G[W ] = (W, E(W )) we denote the graph induced by node set W , i.e., E(W ) are those edges with both end nodes in W . For two nodes u and v, a [u, v]-path P is a sequence of consecutive nodes and edges connecting u and v without repeating any nodes. A graph G is said to be 2-edge (or 2-node) connected with respect to some given node set R, if between any two nodes u, v ∈ R there exist at least two edge- (or node-) 3
disjoint [u, v]-paths. In this definition G is not permitted to have parallel edges. A network N = (G, c) is a graph G with weights (e.g., capacities or demands) ce ≥ 0 associated with each edge e. Given a supply network (G, c) and a demand network (H, d), where G = (V, E) and H = (V, D) have the same node set, a multicommodity flow (w.r.t. (H, d)) is defined i i as a collection of [u, v]-paths Puv in G together with numbers fuv ≥ 0 for P i each [u, v] ∈ D and i such that i fuv = duv , for each [u, v] ∈ D. The associated is the vector z uv ∈ RE with e’th component given by P uv-flow i zuv,e = i:e∈Puv i fuv (called the uv-flow in edge e). The network (G, c), or thePcapacity vector c, is said to allow a multicommodity flow w.r.t. (H, d), if uv∈D zuv,e ≤ ce for each e ∈ E, i.e., the total flow in each edge does not exceed the edge capacity.
2
Mathematical model and improved formulations
In this section we first present the mathematical model for the MULTISUN problem and discuss multicommodity flow requirements in some detail. Next we briefly describe the polyhedral approach to this problem and how it leads to some stronger LP formulations of the problem.
2.1
The MULTISUN model
Each edge of the supply graph G = (V, E) corresponds to a physical (transmission) link that has been or can be established. The nodes correspond to switching points. We assume that G is connected (otherwise the problem would decompose). In the demand graph H = (V, D) each edge [u, v] ∈ D represents a traffic demand of value duv between its end nodes u and v. For each supply edge e ∈ E one has to choose a capacity ye from a small set of possible choices with associated costs. This should be done so that the network (G, y) (with capacity vector y) can support the required traffic with total cost as low as possible. The possible capacity choices on each edge give rise to a discrete cost function, which can be modeled as follows. For each edge e let the incremental capacity steps be mte > 0, for t = 1, . . . , Te and let the incremental cost steps be c1 P ≥ 0, for t = 1, . .P . , Te . The P cost of installing a capacity ye at edge e s s t t t m m with s−1 < y ≤ is e e e t=1 t=1 t=1 ce for s = 1, . . . , Te . If an edge has 1 1 an existing capacity of k units, Ps sett me = k and ce = 0. The jump in cost may be due to e.g. the installation of a occuring for each capacity t=1 meP new cable. We assume that mTe e ≥ uv∈D duv . If this capacity is technically 4
not possible, one can associate a “high” cost cTe e with it. This means that all demands may be routed through any edge (but possibly at a high cost). We model the cost function using a binary variable xte for each incremental capacity step t on each supply edge e. For each e the variables x1e , . . . , xTe e are required to be a (possibly empty) sequence of ones followed by a (possibly empty) sequence of zeros; this determines the capacity range. The index set of these (design) variables xte is I := { (e, t) | t = 1, . . . , Te, e ∈ E }, and x ∈ RI is a design vector consisting of all these variables (with some ordering). For a design vector x ∈ RI the corresponding is cT x and the PTe cost t t associated capacity vector y is given by ye = t=1 me xe . We model the flow requirements as follows. Let y be the capacity vector associated with some design vector x. The network (G, y) is supposed to allow a multicommodity flow carrying all traffic (in which case y is called feasible). This requirement on y may be expressed in terms of linear inequalities as follows. For some given nonnegative vector µ ∈ RE and demand edge f ∈ D let πfµ denote the shortest path length in G between the two end nodes of f with respect to edge lengths µe , e ∈ E. Then y is feasible if and only if X µ X πf df for all µ ≥ 0. (1) µe ye ≥ e∈E
f ∈D
This characterization of feasible capacities is known as the “Japanese theorem” (first stated in [9, 16]) and may be proved using linear programming duality (some more details are found in Subsection 3.2, see also [13]). We call each inequality in (1) a metric inequality, see [19] for more comments on these inequalities. In (1) we can restrict ourselves to a finite set of these inequalities; namely those defined by vectors (µ, π) in the set Π of extreme rays of the cone { µ ∈ RE , π ∈ RD | µ ≥ 0, πf = πfµ for all f ∈ D }.
(2)
An important special case of the metric inequalities is obtained by choosing µ as the incidence vector of the cut δG(W ) induced by a node set W 6= ∅, W 6= V (when we assume that G[W ] and G[V \ W ] are connected). Then (1) reduces to the cut inequality y(δG(W )) ≥ d(δH (W )).
(3)
This inequality assures that the total capacity of a cut is no smaller than all the demands across this cut. Let G = (V, E) and H = (V, D) be as above. We model the network failures as follows. Consider a failing component s ∈ V ∪ E. For a capacity 5
vector y ∈ RE , the supply network (G(s), y(s)) is the network obtained by deleting s and setting y(s) to zero for all deleted edges. The demand “network” (H(s), d(s)) is defined as (H, d) for s ∈ E and (H − s, d(s)) for s ∈ V (so d(s) is zero for the deleted edges). When no network component is failing, s is set to 0, (G(0), y(0)) is set to (G, y), and (H(0), d(0)) to (H, d). The set of failure states S is V ∪ E ∪ {0} when the network is supposed to be survivable against node and edge failures, and S = {0} when no survivability is required. The network is called survivable if for each s ∈ S the supply network (G(s), y(s)) allows a multicommodity flow for the demand network (H(s), d(s)). More complex survivability requirements can be treated similarly (see [4]). The integer linear programming formulation of the MULTISUN problem with survivability constraints now becomes min cT x subject to (i) 1 ≥ x1e ≥ · · · ≥ xTe e ≥ 0 P P µ (ii) e∈E(s) µe ye ≥ f ∈D(s) πf df P e mte xte (iii) ye = Tt=1 (iv) xte integer
for all e ∈ E; for all (µ, π) ∈ Π(s), s ∈ S;
(4)
for all e ∈ E; for all (e, t) ∈ I.
Here, for each s, πfµ is the shortest-path length between the end nodes of demand edge f using length function µ and the set Π(s) is the set of extreme rays of cone (2) with E, D defined as E(s), D(s). A variation of this model is obtained by introducing additional diversification constraints on the flows in the normal state s = 0. The purpose of such constraints is to reduce the immediate loss of traffic when a failure occurs. For 0 < λuv ≤ 1 we say that a uv-flow z uv of value duv in a network (G, y) is λuv -diversified if zuv,e ≤ λuv duv for each e ∈ E and zuv (δG(w)) ≤ 2λuv duv for each w ∈ V − {u, v}. This means that the uv-flow through any node or edge does not exceed λuv duv . (Here an edge requirement is only needed whenever [u, v] ∈ E; otherwise they are implied by the node requirements.) The MULTISUN problem with diversification is the problem where we require each uv-flow to be λuv -diversified in state s = 0. We can model this problem by replacing, for s = 0, the metric inequalities in (4) by the so-called diversified metric inequalities X X X X X w γuv λuv duv − θuv λuv duv (5) µe ye ≥ L∗µ,γ,θ (uv)duv − e∈E
uv∈D
uv∈D w6=u,v
6
uv∈D∩E
for all extreme rays of the cone {(µ, π, γ, θ) : µ ≥ 0, γ ≥ 0, θ ≥ 0, πuv = L∗µ,γ,θ (uv)duv for all [u, v] ∈ D}. (6) Here L∗µ,γ,θ (uv) denotes the shortest path length between u and v when edges have weight µe for e 6= [u, v], µe + θe for e = [u, v], and when all nodes w w 6= u, v have weights γuv . When γ and θ are 0, the metric inequalities (1) are received. A derivation of these inequalities based on duality is given in Subsection 3.2.
2.2
Associated polytopes and improved formulations
We introduce the integral polytope MSUNS := conv{ x ∈ RI | xsatisfies (4)(i)–(iv) }.
(7)
The MULTISUN problem may be viewed as the LP problem min cT x subject to x ∈ MSUNS .
(8)
Note here the dependency on the failure state set S. The polytope MSUNS has a complicated polyhedral structure; see [19] for a study of some of its properties. We repeat a few results that are of interest for the cutting plane algorithm we use. Under quite weak conditions MSUNS is fulldimensional and all the ordering constraints (4)(i) define facets of MSUNS (i.e., are nonredundant). The inequalities (4)(ii) do not define facets of MSUNS except in very special cases. This indicates the need of stronger formulations than the “naive” LP relaxation given by (4), and, in fact, numerical results confirm this belief. We describe next inequalities that tighten the LP formulation. The band inequalities constitute a class of valid inequalities for MSUNS that a relaxation of MSUNS , the so-called ICOV-polytope. Let P arise PTe from t t t=1 ge xe ≥ b be a metric inequality (4)(ii) or a diversified metric e∈E inequality, where get := µe mte . Let F := {e ∈ E | ge1 > 0}. Because the highest capacity of each edge is “large”, we may assume that geTe ≥ b for each e ∈ F . Consider the polytope P PTe t t ICOV(g, b) := conv{ ( xte : t = 1, . . . , Te , e ∈ F ) | t=1 ge xe ≥ b; e∈F 1 Te 1 ≥ xe ≥ · · · ≥ xe ≥ 0 for all e ∈ F ; x integral }. The polytope ICOV(g,b) can be viewed as a knapsack polytope with additional ordering constraints. Facial properties of related knapsack polytopes have been studied in [14, 20]. Any inequality that is valid for ICOV 7
(g,b) is clearly also valid for MSUNS , if the “missing” coefficients for indices (e, t) with e 6∈ F are set to zero. For A ⊆ E, we define the index set I(A) := { (e, t) ∈ I | e ∈ A, t = 1, . . . , Te }. For simplicity, we write I(e) instead of I({e}). A band B of F is a subset of I(F ) containing exactly one < B element (e, tB e ) in each I(e), e ∈ F . Let B = {(e, t) ∈ I(F ) | t < te }. A band B is called valid if g(B < ) < b, and in that case the band inequality X x(B) := xte ≥ 1, (9) (e,t)∈B
is valid for ICOV(g,b). Figure 1 illustrates a band inequality with F = {e1, . . . , e4 } and b = 4. The x-axis denotes edges, and along the y-axis boxes of height get are stacked with ge0 lowest and geTe highest. The (valid) band is the set of boxes marked with 1, and g(B 0) be a metric inequality valid for the normal state s = 0, and let B be a band of F , where F = {e ∈ E | ge1 > 0}. If g(B < \ I(e)) < b for all e ∈ F , then it can be shown that the strengthened band inequality x(B) ≥ 2
(10)
is a valid inequality for MSUNS when E ⊆ S, and it defines a facet of this polytope under rather weak conditions. When a strengthened band inequality is derived from a cut inequality, it will in many cases define a facet of MSUNS . Finally, we remark that we have found other classes of facet defining inequalities that may be of interest. These include generalized band inequalities and partition inequalities arising from node partitions into three or more subsets. For details, see [19]. We have not included any of these inequalities in the algorithms reported here, but they may be of interest in further work.
3
Description of the algorithms
In this section we describe a cutting plane algorithm for solving the MULTISUN problem based on the model given in (4). We also give algorithms for solving the associated separation problems and testing the feasibility of a ¯ . Finally, some simple primal heuristic methods are given capacity vector y described.
3.1
The master problem
We use a cutting plane approach to the model (4). This means that we solve a sequence of successively stronger LP relaxations of (4), where each LP is obtained from the previous one by adding certain band inequalities that were violated by the previous optimal LP solution. In each iteration one determines whether the capacities obtained are feasible. One could view this approach as applying Benders’ decomposition to a certain mixed integer linear programming model (see Subsection 3.2). Master algorithm: 0. (Initialize) Find an initial relaxation P 0 of MSUNS defined by selected band inequalities. Set iteration count t := 0. 9
1. (Master optimization) Solve the LP relaxation min {cT x | x ∈ P t } ¯ t . Let y ¯ t be the associated and obtain an optimal (vertex) solution x capacity vector. ¯ t satisfies all the metric inequalities (1). 2. (Master separation) Check if y If it does, go to Step 3. If a violated cut inequality was found, use this to find violated band inequalities (see Subsection 3.4). Otherwise try a heuristic for finding violated band inequalities (using a pool of cuts). Let P t+1 be the polyhedron obtained by adding these band inequalities to P t , set t := t + 1 and return to Step 1. If no more band inequalities could be found, proceed to Step 3. ¯ t is integral, then x ¯ t is optimal, 3. (Optimality check and heuristics) If x lo T t and the algorithm terminates. Otherwise, let z = c x (lower bound) and use a primal heuristic (Subsection 3.5) for finding an upper bound z up on the optimal value z ∗ in (4), and conclude that z lo ≤ z ∗ ≤ z up ; terminate. For solving the LP’s in Step 1 we use the LP solver CPLEX, see [3]. The next subsections contain descriptions of algorithms used in Step 2 and 3.
3.2
Testing feasibility of multicommodity flow
We describe a method which determines whether a given capacity vector ¯ ≥ 0 allows a multicommodity flow in all failure states s ∈ S, or equivalently, y ¯ ≥ 0 satisfies (4)(ii) for s ∈ S \ {0}, and (5) for s = 0. whether y Assumptions on the capacity vector We assume that the edges of positive capacity define a graph Gy with the properties 1. For each s ∈ S \ {0}, and for each [u, v] ∈ D(s), Gy − s contains at least one [u, v]-path. 2. Gy is supposed to contain at least ⌈1/λuv ⌉ node-disjoint [u, v]-paths, where λuv is the diversification parameter for demand [u, v]. These definitions ensure that the LPs considered in this section have feasible solutions.
10
The primal LP Let f uv be a column vector with a component fuv,P for each [u, v]-path P in G. Let Puv denote the set of all [u, v]-paths in the graph G. Furthermore, we let Auv denote the edge-path incidence matrix for paths in Puv (so this matrix has one row for each edge and one column for each of the paths). To solve the multicommodity feasibility problem for s = 0 we set up the following linear programming model (MF). This is the well-known path formulation for multicommodity flow problems augmented with the constraints that assure diversification of flows. To solve the multicommodity feasibility problem for s 6= 0, constraints (iii) and (iv) are removed from (11). To simplify the presentation we leave out the index s in matrices etc. below. min α subject to P ¯ (i) yα ≤ y uv∈D Auv f uv −¯ T (ii) 1 f uv = duv for all P (iii) ≤ λuv duv for all P ∈Pu,v :w∈P fuv,P w∈V (iv) fuv,uv ≤ λuv duv for all (v)
f uv
≥ 0
[u, v] ∈ D; [u, v] ∈ D, (11) \ {u, v}; [u, v] ∈ D ∩ E;
for all [u, v] ∈ D.
The path variables fuv,P , for each P ∈ Puv and [u, v] ∈ D, express the flow on this path, and the expansion variable α represents an artificial capacity extension on each edge. The constraints (i) and (ii) assure that edge capacities are not exceeded and that all demands are satisfied. Finally, the diversification constraints (iii) and (iv) assure that at most a given fraction λuv of demand [u, v] is routed through the node w 6= u, v and the edge [u, v] ∈ D ∩ E. Constraints (iii) and (iv) are only present if the normal ¯ allows a diveroperating state s = 0 is considered. The capacity vector y sified multicommodity flow if and only if the optimal value α∗ in (MF) is nonpositive. By the assumption on Gy , (MF) has a feasible solution with nonnegative α. Similar path formulations are well known in the literature for “ordinary” multicommodity flow problems (without flow diversification). They originate from [5], see also [15]. For a recent fast combinatorial heuristic algorithm for the multicommodity flow problem, see [11].
11
The dual LP The LP dual of problem (11) is given by P P max ¯e − uv∈D πuv duv − e∈E µe y P P P w uv∈D w6=u,v γuv λuv duv − uv∈D∩E θuv λuv duv subject to P P w (i) e∈P µe − πuv + w∈P,w6=u,v γuv + θuv ≥ 0 for all P ∈ Puv and [u, v] ∈ D; P (ii) ¯e = 1; e∈E µe y w (iii) µe , γuv , θuv ≥ 0 for all e ∈ E, [u, v] ∈ D, w ∈ V \ {u, v}.
(12)
w The dual variables µe , πuv , γuv and θuv (for e ∈ E, [u, v] ∈ D, w ∈ V \ {u, v}) are associated with the constraints (i), (ii), (iii) and (iv) in (11), respectively. Note that the variable θuv is only present in (12)(i) when P = {uv}. We also ¯ 6= 0. Consider a [u, v]-path P . We see that (12) is a feasible LP problem if y w as edge and node weights, may view µe and γuv P Prespectively,w and define the length of the path P as Lµ,γ,θ (P ) := e∈P µe + w∈P,w6=u,v γuv . (If P = {uv} the last term is replaced by θuv .) Constraint (12)(i) then says that πuv can not exceed the shortest path length L∗µ,γ,θ (uv) := min{Lµ,γ,θ (P ) : P ∈ Puv } between u and v. Since duv ≥ 0, there is an optimal solution of (12) with πuv = L∗µ,γ,θ (uv). Since (11) and (12) are feasible, linear programming duality implies that the optimal value of (MF) is positive if and only if there exist (µ, π, γ, θ) feasible for (12), such that X X X X w θuv λuv duv . γuv λuv duv − πuv duv − µe y¯e < e∈E
uv∈D
uv∈D,w6=u,v
uv∈D∩E
This is a violated diversified metric inequality (5). Row and column generation For realistic problems the number of path variables and diversification constraints is normally very high, and it can be expected that in an optimal solution most path variables are zero and few diversification constraints are active. We therefore solve (MF) by a row and column generation procedure. The LP is initialized for state s = 0 with “promising” columns based on calculations of ⌈1/λuv ⌉ node-disjoint paths in Gy . For state s > 0, the LP is initialized with the columns generated in the previous state. 12
In the column generation phase shortest path problems are solved, one for each demand; the weights are determined from the present solution of (12). Whenever a set of new path variables is added to the LP, and s = 0, also diversification constraints (row generation) for all the nodes in these paths are added. This is done to avoid violation of these constraints for the next LP solution, and reduces the number of LPs to be solved. If the opti¯ is infeasible, then a violated mal solution α∗ is positive, i.e., the capacity y inequality is obtained from the dual problem. When the diversification constraints (11)(iii) are not present, this inequality is a metric inequality (4)(ii); otherwise it is a diversified metric inequality (5). If the LPs become too large, one could remove columns and/or constraints during the computations, but this is not done in the present implementation of these algorithms. (In particular, the number of diversification constraints may grow fast and should be controlled.) Lifting of missing coefficients In (MF) we remove constraints (i) for edges e with y¯e = 0 and in the column generation procedure we only generate shortest paths that avoid these zero capacity edges. When a violated metric inequality is found, one has to find the missing coefficients µe for the removed constraints, such that the resulting coefficients lie in the cone (6). This entails shortest path computations for each missing edge. Instead, we only use those metric inequalities that define cut inequalities (3), because for these inequalities one can easily determine the missing coefficients. Namely, it is first checked whether the present dual variables satisfy the following conditions: 1. The entries in µ and π take at most two values: 0 or some positive constant. 2. γ and θ are 0. If the dual variables do not satisfy these conditions, the metric inequality is not processed further. Otherwise, a connected component of Gy with all edges of positive µe -value removed, is computed. The node set W of this component defines a cut inequality (3) in G(s). Infeasible LPs We remark that the problem (11) may be infeasible; this happens precisely when Gy does not satisfy the connectivity assumptions. To find that out, a simple search procedure checks these assumptions. Since we in our computations only consider λ ≥ 0.5 and single node and edge failures, this search 13
can be done efficiently. If the assumptions are not satisfied, a cut δ(W ) of cardinality 1 or 0 in Gy (or in Gy minus a node s) is returned. This leads to a violated (strengthened) band inequality. Summary of the feasibility test ¯ ≥ 0 allows a The feasibility test checks whether a given capacity vector y multicommodity flow in all states s ∈ S, and, if not, determines violated (diversified) metric inequalities, and from this, if possible, violated cut inequalities. 1. Check whether Gy satisfies the connectivity assumptions. If not, generate a violated band inequality and stop. 2. Choose an order on the states in S. State s = 0 should come first. For each state s in this order do Steps 3.-4. 3. Solve the feasibility LP (11) for state s (with constraints (i) corresponding to e with zero capacity removed) by column and row generation. Constraints (iii) and (iv) are only present if s = 0 and some diversification parameter λuv is < 1. 4. If the optimal value of α is positive, the dual variables define a violated (diversified) metric inequality. Try to lift this into a violated cut inequality. If the optimal value is nonnegative, the primal variables f define a feasible multicommodity flow for state s.
3.3
The initial LP of the master problem
We decribe how to generate the first LP to be solved in the master problem. This is done heuristically by generating band inequalities from some “promising” cut inequalities that are likely to be violated by initial LP solutions. The purpose of the procedure is to reduce the number of calls to the time-consuming multicommodity feasibility routine (see Subsection 3.2). The inequalities we use in the initial LP are the (strengthened) band inequalities (9) and (10). To determine a subset of these exponentially many inequalities, we use a dual ascent approach to the following relaxation of min {cT x | x ∈ MSUNS }: min
cT x subject to T h x ≥ 1 for certain band inequalities (9); hT x ≥ 2 for certain strengthened band inequalities (10); x ≥ 0. 14
(13)
Here, hT x ≥ 1 (hT x ≥ 2) are band inequalities derived from cut inequalities (3), and c is the cost function, respectively. A dual variable ξh ≥ 0 is assigned to each band inequality hT x ≥ rh (where rh ∈ {1, 2}) and the dual program to (13) becomes P max hh ξh subject to Pr t t (14) h he ξh ≤ ce for all e ∈ E, t = 1, . . . , Te ; ξh ≥ 0. This can be seen as a problem of packing cuts. The dual ascent method is a greedy algorithm for (14). It starts from the feasible dual solution ξ := 0 and increases certain variables ξh as much as possible without ξh becoming infeasible. The band inequalities positive ξh will then constitute the first LP, together with ordering constraints (4)(i). Some more details are given next. Internally the algorithm keeps a family F of pairwise disjoint node sets. Each node set W ∈ F defines a cut inequality y(δ(W )) ≥ d(δ(W )). A band inequality hT x ≥ r is associated to the cut inequality by setting hte = 1 for e ∈ δ(W ) and t = 1 if cte > 0, and t = 2 otherwise. hte is set to 0 for all other e and t. The right hand side r is set to 2, 1, or 0, according to whether the so defined inequality is valid. The highest possible value r is preferred. The node sets in F are so chosen that the associated band inequality has right hand side r ≥ 1. With each element of F there is also associated a dual variable ξh . So, internally the algorithm has at hand a set of band inequalities. In the beginning F contains all single nodes with which a valid band inequality with nonzero right-hand side can be associated. The ξh are set to 0. The following dual ascent iterations are then performed while F is nonempty. A dual ascent iteration 1. Increase all ξh for the band inequalities associated with F by a value α, which is chosen largest possible without ξ becoming infeasible. Let f be an edge that defines a “tight” constraint in (14), which hinders further progress. f = ij lies in δ(W ) for some W ∈ F . 2. Remove the (one or two) cuts δ(W ) containing f from F , but “store” the ξ-values of their associated band inequalities. If there was only one cut δ(W ), and i ∈ W , then add the cut W ∪ {j} to F , if some (strengthened) band inequality could be derived. If there were two cuts containing f, with disjoint W and W ′, then add the cut W ∪ W ′ to 15
F , if some (strengthened) band inequality can be constructed from it. The ξ-value of the associated band inequality is set to 0 in either case. The set of band inequalities generated by the dual ascent iterations form the initial LP of the master problem.
3.4
Separation of band inequalities
We describe an algorithm for finding violated band inequalities in the master problem. As remarked before, this problem is hard, so we use heuristics for finding such violated inequalities. ¯ = (¯ Assume that a point x xte : e ∈ EPand t = 1, . . . , Te ) is given, such ¯ with components y¯e := t mte x¯te (for e ∈ E) violates some that the vector y metric inequality aT y ≥ b > 0 all of whose coefficients are integer. We describe a heuristic that derives a (possibly) violated band inequality (9) from the metric inequality. Let F := {e | ae > 0}, get := ae mte for all e ∈ F and t = 1, . . . , Te , and, P τ finally, Gte := t−1 τ =1 ge for all e ∈ F and t = 1, . . . , Te . We assume that all Gte and b are integer, and that b ≥ 1; 0 = G1e < · · · < GTe e ; x¯1e ≥ · · · ≥ x¯Te e ≥ 0
(15)
for all e ∈ F . We are looking for 0/1 coefficients hte (e ∈ F , t = 0, . . . , Te), such that the validity requirements in the definition of the band inequality are met. This can be formulated as the following integer LP: P P e t t x¯e he minh e∈F Tt=1 subject to P t t e,t Ge he ≤ b − 1; (16) P t h = 1 for all e ∈ F ; e t for all e ∈ F , for all t; hte ≥ 0 t he integer for all e, t. The problem (16) for given Gte and x¯ is NP-hard, as the knapsack problem is a special case. So instead of solving the integer LP, we will solve its continuous relaxation. The LP-solution will contain at most two noninteger entries. This is because any extreme point h of the LP-relaxation of (16) has at most |F | + 1 16
nonzeros. Since for each e ∈ F there exists at least one nonzero hte , there is at most one e with two nonzero hte and hse . The latter two entries are the only ones that can be fractional. Setting hte := 1 and hse := 0 when t < s, a feasible solution to the integer LP (16) can be derived. We will say in a moment how this solution can be improved. Next we describe a combinatorial procedure to solve the LP-relaxation of (16). The LP-dual to the continuous relaxation of (16) is P maxα,β e∈F βe − (b − 1) α subject to βe − Gte α ≤ x¯te for all e ∈ F , t = 1, . . . , Te ; α ≥ 0 For fixed α, optimal values βe can be computed as βe (α) := min{ x¯te + Gte α } t
so the dual problem becomes max φ(α) where φ(α) = α≥0
X
βe (α) − (b − 1) α
(17)
e∈F
φ is a one-dimensional, concave, and piecewise-linear function, whose breakpoints are the breakpoints of the functions βe . It has a finite maximum in the interval [0, ∞) because for large α, the βe (α) equal x¯1e + G1e α = x¯1e for each e. A line search procedure solves max {φ(α) | α ≥ 0}. From the optimal solution of (17) one can derive an optimal fractional solution to (16) and from this a good feasible solution. This solution can be improved heuristically by trying to replace, sequentially for e ∈ F , hte = 1 by hse = 1 when s > t, until no more such improvements of the objective function of (16) are possible. Separation of strengthened band inequalities (10) is handled as follows. Suppose an edge failure state is checked and a violated cut inequality ¯ (δG−f (W )) ≥ d(δH (W )) y is found. Suppose furthermore that f ∈ δG(W ). Defining F as δG−f (W ) and b as d(δH (W with the approach described above, derive a band P)), one P can, t t inequality e∈F t he xe ≥ 1. It may be violated or not. Now one tries to P P ′ find a maximal t′ such that e∈F t hte xte +xtf ≥ 2 satisfies the requirements in the definition of a strengthened band inequality. If it is violated, it is added to the master LP. 17
3.5
Primal heuristics
¯ for The cutting plane algorithm often stops with a fractional solution x, which no more violated inequalities can be found. We describe here how to ¯. derive a feasible integer solution from a nonfeasible x We implemented two methods. The first is called INCREASE. It in¯ , as it descends through a branch&bound creases fractional components of x ¯ to a feasible tree. The other is called DECREASE, because it blows up x but expensive solution and then greedily decreases its components. A more detailed description follows. ¯ INCREASE scans x ¯ Input to INCREASE is a nonfeasible solution x. for fractional components in the supply graph. If there are none, then IN¯ has CREASE stops unsuccessfully and one has to try another heuristic. If x t fractional components, let x¯e be the largest one among those with value < 1. Under these conditions, the index t is chosen as large as possible (if there are several possibilities). Then 1 ≥ x¯1e ≥ x¯2e ≥ . . . ≥ x¯te are transformed into equations in the LP. Thereby xte is fixed to 1. Moreover, all components of ¯ of value 1 are fixed to 1 for the rest of the heuristic. The new LP is solved x ¯ as its solution. If x ¯ is still nonfeasible, one scans for fractional with a new x components, etc. INCREASE may stop without success, when the feasibility tests find only (diversified) metric inequalities, which are not added to the master LP. If one ¯ satisfies all of these, then an integer x ¯ must be feasible. makes sure that x In the computational tests we observed very few unsuccessful stops, all of which were due to violated diversified metric inequalities in state s = 0. ¯ to a feasible solution x′ as follows: it solves DECREASE first blows up x the feasibility test (11) for the normal P state s = 0 with the capacity vector ¯ (associated with x). ¯ The expression uv∈D Auv f uv in (11)(i) is a feasible y capacity vector for normal state s = 0. In the same way one finds feasible capacity vectors for all failure states s ∈ V ∪ E. By taking the component-wise maximum of all these vectors and then rounding each component to the next highest admissible capacity step, one finds a feasible integer solution x′ . Now one decreases each entry in x′ as much as possible without violating feasibility. We have implemented several different ways of ordering the components, for instance based on smallest cost increase or smallest value of x¯te − x¯t−1 e . The number of feasibility tests can be reduced by the following operation. Suppose x′ is a feasible solution occuring in the course of DECREASE, then compute the capacity actually used by a feasible routing for x′ , (just as in the “blowing-up” operation), and reduce the capacities to the lowest possible capacity step with respect to the computed routing. This operation does not increase any edge capacity (since x′ is feasible) but may reduce capacities on 18
several edges at once, e.g. on induced paths. Usually INCREASE is faster and produces better solutions. But sometimes DECREASE performs better. In our computational tests we have only used INCREASE, except where this failed to produce a solution.
4
Computational results
The algorithms have been implemented in C++ as a part of a network planning tool (called MULTISUN) developed by Telenor. An important part of this program is a graphical interface used to display and edit input networks and to show solutions with installed capacities. The computations were done on a Solbourne 5E/702-64-b1 workstation with 60 MIPS and 80 MB RAM. In the tests below band inequalities (9), strengthened band inequalities (10), and cut inequalities (3) with y expressed by x-variables as in (4)(iii), are separated. The failure states comprise all failures of single nodes or edges. All the test runs (except for Table 4) reported below are from data supplied to us by network planners. This means that these runs are of interest in the overall planning process. It should be remarked, however, that the final designs are typically decided by taking into account other aspects (reliability, budget, etc.) The test examples fall into four classes, each of which correpond to a certain supply graph. The instances in a class are distinguished by different demands and survivability requirements. The diversification parameter λ is varied in {1/2, 1} (but kept the same for all demands in a given instance). We also vary a reserve parameter r ∈ {0, 1/2, 1} which means that in case of a node or edge failure the flow to be routed for each demand [u, v] is rduv . Our main goal has been the case r = 1, but in the actual planning other values of r are also of importance. Note that when λ < 1 and r = 0, then r can be set to value 1 − λ without losing any feasible solutions. Therefore we only considered cases where r ≥ 1 − λ. The columns contain the following information: • λ: diversification parameter • r: reserve parameter • Lbd: best lower bound on the optimal value • Ubd: best upper bound on the optimal value (normally from INCREASE heuristic) • Gap: (Ubd - Lbd)/Lbd in percent • Time: CPU time in minutes.seconds
19
• LP: number of master LP problems
The first three or four columns show in their header a demand size, and in their body the number of demands of the given size. The test class A consists of 12 instances with the same supply graph having 27 nodes and 51 edges, see Table 4. The cost function has six steps for capacities 6, 63, 252, 1008, 5040 and 11088, and has a clear “concave” structure. The cost function of a cable depends on the distance between the end nodes. The capacity 6 is free (i.e., can be used at zero cost). 200
7 7
100 19 10 6 6 5 5 14 14
50
20
λ
r
Lbd
Ubd
Gap
Time
LP
14 14 5 5
0.5 0.5 1.0 0.5 0.5 0.5 0.5 0.5
1.0 1.0 1.0 1.0 0.5 1.0 0.5 1.0
282.7 279.4 292.9 293.8 234.0 266.6 274.7 279.4
285.5 285.5 328.8 334.9 357.1 267.9 280.1 297.0
1.0 2.1 12.3 13.9 52.6 0.5 2.0 6.3
2.09 2.41 11.11 8.38 3.38 1.32 5.36 4.24
14 20 58 64 6 9 37 35
9 6 6
Table 1: Test set A In Table 4 one finds test class B with the supply graph having 118 nodes and 134 edges. This graph is very sparse, which is the case for many interesting applications. The cost function varies from one edge to another, altogether seven different functions are used. They all have 5 steps and a certain free capacity that ranges from 0 to 70. 74 edges have a free capacity of 0. The supply graph of test class C (Table 4) has 37 nodes and 44 edges. Six different cost functions are used. For instance, one cost function has steps for capacities 5, 63, 252 and 11088 (which is large compared to all demands), while another has steps for 63, 252 and 1004. 40 edges have no free capacity. The test class D (Table 4) is with a supply graph having 45 nodes and 53 edges with cost functions roughly as for class C. Here all 53 edges have free capacity 0. The last test example is taken from Gavish et al. [6]. It is an 8-node, 13-edge example with a very regular cost function with capacity increases mte = 60 for t = 1, . . . , 6. λ is set to 1, and r is 0.9. We made the following changes to the example. The length dependent factor in the cost function is set to 1, not 6. (This must be a typographical error in [6], because the 20
5
2
1 113
5 5 20 20
113 56 56 20 20 5 5
57 57 5 5 5 5
λ
r
Lbd
Ubd
Gap
Time
LP
0.5 0.5 0.5 0.5 1.0 0.5 1.0 0.5
1.0 1.0 0.5 1.0 0.5 1.0 0.5 1.0
54.1 56.5 53.9 55.9 37.7 38.1 37.7 39.8
54.1 56.5 54.1 55.9 37.7 38.1 37.7 40.0
0.0 0.01 0.2 0.0 0.0 0.0 0.0 0.3
0.18 3.05 0.45 1.56 0.05 0.11 0.05 1.01
5 20 2 19 9 12 8 29
Table 2: Test set B
10
2
3 3
25 25 25 11 11
1
λ
r
Lbd
Ubd
Gap
Time
LP
11 11
1.0 0.5 0.5 1.0 0.5
0.0 0.5 1.0 0.0 0.5
12.0 32.9 37.1 11.5 37.1
18.6 37.1 37.1 19.1 37.1
54.5 13.1 0.0 66.8 0.0
0.03 0.03 0.02 0.03 0.02
41 5 5 57 6
Table 3: Test set C
30
3 3 3
10
λ
r
Lbd
Ubd
Gap
Time
LP
7 7 7
1.0 0.5 0.5 1.0 0.5 0.5
0.0 0.5 1.0 0.0 0.5 1.0
14.3 32.3 33.0 11.0 27.3 27.3
17.6 32.3 33.7 11.0 28.0 28.0
22.7 0.0 2.2 0.0 2.6 2.6
0.01 0.01 0.03 0.01 0.01 0.01
14 10 17 7 13 13
Table 4: Test set D
21
original values produce a lower bound exceeding the published upper bound.) We also introduced an artificial high capacity with artificial high cost on each edge. Moreover, we did not limit the number of paths for each demand. The results are in Table 4. This compares to a lower bound of 594.4 and an λ
r
Lbd
Ubd
Gap
Time
LP
1.0
0.9
594.3
642.2
8.0
0.04
10
Table 5: Example from Gavish et al. upper bound of 642.2 of [6]. The upper bound is due to a DECREASE heuristic. INCREASE produced a somewhat larger bound. So the bounds do not improve by our procedure, but our approach is extendable to larger graph sizes, whereas theirs probably is not, due to the exponentially growing number of path variables. They report results only for this one example, so no further conclusions can be drawn. The inequality classes used in [6] are, after projecting away the path variables, metric inequalities, and two classes of inequalities dominated by (strengthened) band inequalities derived from cuts. One additional class of inequalities, with nonzero coefficients on edges in δ({v}), is valid only for cost functions with regular capacity increases. Our guess is that a class of inequalities completely different from metric inequalities and inequalities derived thereof, is needed to improve the lower bound. Our experiences for the other examples may be summarized as follows. The gap is generally very low, and often less than 3 percent. However, this only applies to the survivability case where r > 0. The picture may also change for denser graphs than our test examples. The gap may become very large whenever r = 0, but such problems were not the main goal of this work. This phenomenon may be explained by the fact that our cutting plane algorithm only adds cut inequalities and band inequalities derived from cuts. For connectivity design problems as in [8], we found that cut inequalities give strong relaxations for 2-connectivity problems, but not for 1-connectivity (Steiner) problems. For problems with many demands requiring neither diversification nor reserve capacity, it therefore seems that one needs other types of inequalities, for instance, partition inequalities as described in [19], to reduce the gap. In three cases the INCREASE-heuristic failed to produce a solution, and the algorithm had to resort to a DECREASE-heuristic. This was the case for the fifth example in Table 4, the third example in Table 4, and the second example in Table 4. The reason that INCREASE failed was in all three cases 22
that the feasibility routines detected exactly one violated inequality, namely a diversified metric inequality, which had not been added to the master LP. We also conducted tests on the strength of the classes of inequalities. The results reported in Tables 4 to 4 are with cut inequalities and with band inequalities derived from cut inequalities. The number of violated metric inequalities that were not cut inequalities (and thus were not added to the master LP) is below 10 in almost all examples, whereas the total number of cut inequalities used in the LP is always in the order of 100 to 300. These unused metric inequalities were almost all diversified metric inequalities found during the computation of a diversified routing in the normal state. It seems that better separation procedures for problems requiring diversified routing are needed. We observed furthermore that the cut inequalities alone (without band inequalities) produce extremely bad lower bounds. For example, in the third test of Table 4, the lower bound produced by cut inequalities alone is 27.12, which is less than a hundredth of the lower bound produced by cut and band inequalities together. All metric inequalities were satisfied by the fractional solution. The bad lower bounds are not astonishing, since in a typical fractional solution produced by cut inequalities, a capacity of, say, 100 on an edge e with capacity increments m1e = 10 and m2e = 9990 is represented by x1e = 1/100 and x2e = 1/100. Adding or leaving away cut inequalities does not make a big difference in the lower bounds, as we noticed on several examples. Usually the lower bound was increased in the order of 1% upon addition of cut inequalities. The upper bound did, however, often improve. We also note that the number of LPs solved is “under control”. The computation time varies and most of it is spent in our multicommodity flow routine. It is clear that for solving larger problems one would benefit from developing faster approximation algorithms for multicommodity flows.
5
Conclusions
We have developed a model MULTISUN for the design of survivable networks allowing multicommodity flows. The survivability requirements assure that the network has enough capacity to perform rerouting in case of a single node or edge failure. Furthermore flows are diversified in the nonfailure case. The cost function is a step function with arbitrary step lengths, dependent on the capacity. Based on a strengthened formulation using band inequalities derived from cut inequalities, we described a cutting plane algorithm for MULTISUN. The computational results show that the real world planning 23
problems at hand were solved to near-optimal solutions. The instances were fairly large although the supply graphs were sparse. Further work could be directed towards the network design problem without survivability requirements, which the algorithm could not solve very well. There the development of separation heuristics for the class of partition inequalities (see [19]) is of interest. It seems that also for problems with survivability requirements other types of inequalities besides band and cut inequalities need to be investigated and separated in order to improve the lower bounds. One such other type of inequality was described in [19]. It would also be useful to find fast heuristics for the MULTISUN problem and approximation algorithms for the multicommodity flow feasibility problem. An area of considerable interest to telecommunications is network design under random demands. This direction is pursued in Sen et al. [18] for network design with a budget constraint, with demands of discrete but random sizes, and without survivability constraints. The objective is to extend network capacity so as to minimize the expected number of unrouted demands. The approach of Sen et al. using stochastic optimization seems computationally feasible, so their model can possibly be extended to meet survivability constraints. A last extension extension of the model relates to network reliability. One could introduce probabilities on edges failing (or even, probabilities for different capacity values on the edges), and define the network’s “performance” as “having enough capacity to route all demands”. One could then ask after the expected performance of a given network, or after the cost-minimal network “performing” with a certain high probability. This extension falls into the general framework of performability analysis, as described in Ball et al. [1], but is probably as yet computationally infeasible. Acknowledgements. The authors would like to thank Rune H. Johansen for developing the user interface and some basic algorithms in MULTISUN. We would also like to thank the anonymous referees for their suggestions on improving the presentation.
References [1] M.O. Ball, C.J. Colbourn and J.S. Provan, Network reliability. In Network Models. Handbook in Operations Research and Management Science, (M. O. Ball, T. L. Magnanti, C. L. Monma, G. L. Nemhauser, editors), vol. 7, ch. 10, pp. 673–762. North-Holland, Amsterdam, 1995. 24
[2] C. Berge. Graphs and hypergraphs. North-Holland, 1973. [3] Using the CPLEX callable library and CPLEX mixed integer library. CPLEX Optimization, Inc., 1993. [4] G. Dahl and M. Stoer. MULTISUN — mathematical model and algorithms. Technical Report TF R 46/92, Norwegian Telecom Research, Kjeller, Norway, 1992. [5] L.R. Ford Jr. and D. R. Fulkerson. A suggested computation for maximal multicommodity network flows. Management Science, 5:97–101, 1968. [6] B. Gavish, P. Trudeau, M. Dror, M. Gendreau, and L. Mason. Fiberoptic circuit network design under reliability constraints. IEEE Journal on Selected Areas in Communications, 7(8):1181–1187, 1989. [7] H. Godø, K. O. Mathisen, K. Nordby, B. J. Nymo, and J. P. Sæther. Without telephone: an investigation among the Norwegian Telecom’s subscribers after the fire in Frogner exchange (in Norwegian). Report 50/86, Norwegian Telecom Research, Kjeller, Norway, 1986. [8] M. Gr¨otschel, C. L. Monma, and M. Stoer. Design of survivable networks. In Network Models. Handbook in Operations Research and Management Science, (M. O. Ball et al. editors), vol. 7, ch. 11, pp. 617–672. North-Holland, 1995. [9] M. Iri. On an extension of the maximum-flow minimum-cut theorem to multicommodity flows. Journal of the Operations Research Society of Japan, 13:129–135, 1971. [10] Kyungsik Lee, Kyungchul Park, and Sungsoo Park. Spare channel assignment for DCS Mesh-restorable networks. Proceedings of the 3rd International Conference on Telecommunication Systems, Nashville, March 1995, 296–307. [11] T. Leong, P. Shor, and C. Stein. Implementation of a combinatorial multicommodity flow algorithm. In DIMACS Implementation Challenge Workshop, Algorithms for Network Flow and Matching, (D. S. Johnson and C. C. McGeogh, editors), DIMACS Technical Report 92-4, pp. 202– 224, Jan. 1992. [12] A. Lisser, R. Sarkissian, and J. P. Vial. Survivability in telecommunication networks. Report, France Telecom, CNET, March 1995.
25
[13] M. V. Lomonosov. Combinatorial approaches to multiflow problems, Discrete Applied Mathematics, 11:1–93, 1985. [14] S. Martello and P. Toth. Knapsack problems: Algorithms and computer implementations, Chapter: The multiple-choice knapsack problem, pp. 77–80. Wiley, Chichester, 1990. [15] M. Minoux. Optimum synthesis of a network with non-simultaneous multicommodity flow requirements. In Studies on Graphs and Discrete Programming, (P. Hansen, editor), pp. 269–277. North-Holland Publishing Company, 1981. [16] K. Onaga and O. Kakusho. On feasibility conditions of multicommodity flows in networks. Transactions on Circuit Theory, CT-18(4):425–429, 1971. [17] A. Schrijver. Theory of linear and integer programming. Wiley, Chichester, 1986. [18] S. Sen, R. D. Doverspike and S. Cosares. Network planning with random demand. Telecommunication Systems, 3:11–30, 1994. [19] M. Stoer and G. Dahl. A polyhedral approach to multicommodity network design. Numerische Mathematik, 68:149–167, 1994. [20] L. A. Wolsey. Valid inequalities for 0-1 knapsacks and MIPs with generalised upper bound constraints. Discrete Applied Mathematics, 29:251– 261, 1990. [21] G. Zorpette. Keeping the phone lines open. IEEE Spectrum, 32–36, June 1989.
26