1 Introduction
Nowadays, the design of networks is crucial in many fields such as transport, telecommunications or energy. We are interested here in the design of survivable networks [5, 6] able to route a given flow from a root to a set of terminals while respecting capacity constraints. We say that a network is survivable if, after any breakdowns on arcs, it is possible to route the same amount of flow. We also take into account the possibility of protecting a subset of arcs of the graph: those arcs cannot be deleted. The resolution of capacitated spanning and steiner tree problems has been studied in [4, 1].
We introduce here the Capacitated Protected Rooted Survivable Network Problem (). Given a directed graph where and are respectively the cost and the capacity functions on the set of arcs , a set of terminals, a root and two positive integers and with , is to find a subset of selected arcs of minimum cost and a subset with of protected arcs such that there is a feasible flow (i.e. it respects the arc capacities) routing a unit of flow from to each vertex of in the subgraph of induced by , even if a breakdown occurs on any arcs in .
We focus on wiring networks in windfarms, designed to route the energy produced by the wind turbines to the substation with respect to some technical constraints (cable capacities, nonsplitting constraints, etc.) [3, 2].Furthermore, we want those networks to be resilient to cable failures. The wind turbines are identical so we can assume that each one produces one unit of energy. Then is the set of all possible cable locations and where (resp ) is the set of terminal nodes (resp. junction nodes between cables), and is the substation collecting the energy and delivering it to the electric distribution network. In that case, the flow is routed from to . In the case of windfarm wiring, one can see the protected arcs as robust cables or additional parallel cables. We consider a budget of protection such that we can only protect arcs.
We assume without loss of generality that is an integer function. In this paper, we work on the oriented version of the problem, however the results can easily be adapted to the nonoriented one.
2 Formulations of the problem
2.1 Definitions and notations
We add to the input graph a vertex connected to every terminal by a fictive arc with and . Then, is added to and the fictive arcs are added to , and we denote by the set of initial arcs. Finding a flow which routes one unit of flow between and each terminal in the input graph is equivalent to finding a flow of value from to in the transformed graph. For each subset , let be the set of arcs entering . We have . We call and the sets of respectively predecessors and successors of a vertex .
2.2 Cutset formulation
We introduce, for all
, a binary variable
equal to 1 if and only if the arc , and a binary variable equal to 1 if and only if the arc . Consider the cuts with , , and , and let be the set of all the associated cutsets in , i.e. . Notice that if then is a cutset in the selected network. For any set , let be the set of subsets of of size . We define as the maximum capacity of a subset of selected and nonprotected arcs of :(1a) 
corresponds to the maximum capacity that can be lost in the cutset after the deletion of nonprotected arcs. We propose the following cutset formulation:
s.t.  (2a)  
(2b)  
(2c)  
(2d)  
Constraints (2a) ensure that for each cut, the capacity of the cut after the worstcase deletion of nonprotected arcs of the cutset is at least equal to the number of terminals, i.e. the graph is survivable. Constraints (2b) ensure that we have at most protected arcs while (2c) and (2d) guarantee that all fictive arcs are selected and none of them are protected. Notice that we do not have to impose since, from any optimal solution, we can get an equivalent one where this holds.
Constraints (2a) are non linear because of the use of the maximum operator in the definition of . To linearize it, we add the following constraints:
(3a) 
The number of constraints (2a) and (3a) being exponential (and so is the number of variables ), we propose a constraintsandcolumns generation algorithm. We begin with a small subset of in constraints (2a) and (3a). We obtain a lower bound for our problem. Then we select a cutset that does not verify some constraint (2a): given a network induced by the current value of , we find by a using a MIP the cut of minimum residual capacity once we delete its most capacitated nonprotected arcs. If this capacity is inferior to , we add the constraints associated to this cutset, otherwise the algorithm terminates.
2.3 Flow formulation
Now we define as the set of all possible arcfailure scenarios: it corresponds to the set of all combinations in . We introduce the variable which represents the amount of flow routed through the arc when the scenario occurs. The variables and are defined as in the previous formulation (Section 2.2). We propose the following flow formulation:
s.t.  (4a)  
(4b)  
(4c)  
(4d)  
(4e)  
Constraints (4a) and (4b) ensure that there is a flow of value for each arcfailure scenario. Constraint (4c) ensure that we have at most protected arcs. Constraints (4d) are the capacity constraints, for each scenario of failure. Finally, constraints (4e) ensure that in a scenario where , we can route some flow through only if the arc is protected. Notice that w.l.o.g. we can assume that .
The number of variables and constraints (4a) and (4b) being exponential, as in the previous section we propose a constraintsandcolumns generation algorithm to solve the problem. We begin with a small subset of . The separation problem is the problem of the most vital links in a flow network [7]: we search for the nonprotected arcs which, once simultaneously deleted, reduce the most the value of the maximum flow.
2.4 Bilevel formulation
The bilevel formulation proposed here is particular in that the secondlevel is a problem. It can be seen as a game with a defender and an attacker (corresponding respectively to the leader and the follower).
For each , we introduce a variable which corresponds to the amount of flow that the defender chooses to route through the arc . The variables and are defined as in Section 2.2. We also introduce the binary variables , : if and only if the attacker chooses to delete the arc . We define the following polyhedron:
This polyhedron corresponds to the set of possible flows on the subgraph of induced by the arcs such that provided they have not been deleted (thus nonprotected). In there are the flow conservation constraints, the capacity constraints and the constraints imposing a flow equal to 0 on any arc which is nonprotected and deleted. We also define the two following polyhedrons:
The polyhedron defines the set of possible scenarios of arc failures while defines the set of possible selected and protected arcs (there are at most protected arcs in the selected network). Then we propose the following bilevel program:
s.t.  (5a)  
(5b) 
At the upperlevel, the defender selects the set of arcs he wants to add to the network as well as the one he wants to protect, by choosing a couple in . The attacker then deletes some arcs by setting the variable in order to minimize the maximum flow that the defender will compute by setting the variable in the flow polyhedron . The aim of the defender is to ensure that this flow is at least equal to (Constraint (2.4)).
Consider the problem in the lowerlevel: , and are already fixed to , and . The problem is a maxflow problem from to , with two sets of capacity constraints. In our problem, the flow must be integer since it corresponds to a number of terminals. However, it is well known that the matrix of coefficients
in the arcformulation of a maxflow is totally unimodular. Then, adding the second set of capacity constraints is equivalent to appending the identity matrix to
: the matrix remains totally unimodular and the capacities being integer, we ensure that the extreme points of the polyhedron defined by are integer. Thus, we can relax integrality constraints on .There always exists a feasible flow of value 0 and the lowerlevel problem is also trivially upper bounded. Hence, the strong duality holds and we can introduce the dual of the lowerlevel problem, after a slight reformulation due to the totally unimodular matrix:
s.t  (6a)  
(6b)  
(6c)  
This problem is a special formulation of a mincut problem: defines the two parts of the cut (sets of vertices such that either or ). The variable is equal to 1 at least for all the edges in the cutset with and , is equal to 1 for all other edges in the cutset (if an edge is not in the cutset, we have ). We denote the polyhedron defined by the dual constraints by .
As the lowerlevel can be reformulated as a function by using the dual described above, it can then be rewritten as follows:
At this point, is a variable so the objective function is nonlinear. We linearize the terms in a classical way by introducing binary variables verifying the set of constraints , and , which is denoted by . We also define the function . We can then rewrite the bilevel program as:
s.t.  
where  
s.t.  
In this bilevel reformulation, the polyhedron of the lowerlevel defined by , and depends on neither nor . We can then consider the convex hull of the lowerlevel polyhedron and we denote by the set of its extreme points; are respectively the values of at the extreme point . We can then reformulate the bilevel formulation as a singlelevel one as follows:
s.t.  (7a)  
(7b)  
(7c)  
(7d)  
(7e) 
Constraints (7a) ensure that for each extreme point of , is greater than (i.e. the minimum value of over the polyhedron defined by (7b), (7c) and (7e) is greater than ), meaning that the flow cannot be decreased after any breakdowns.
Remark 2.1
In , is nonlinear because of the products and but they can be linearized as it has been done for above.
However, there is an exponential number of constraints (7a) and we do not know how to describe explicitly the convex hull . To tackle this issue, we use a constraints generation algorithm where we relax the set of constraints (7a) and use as the separation problem: while the optimum value of is lower than for the current optimal solution , we generate the constraint (7a) associated to the extreme point corresponding to the optimal values of in .
Let and be two feasible solutions of such that and . If adding a constraint makes any solution with infeasible, then it also makes any solution with infeasible. For any value of , we have since and (as , and are positive). Hence, if then .
To improve the cut obtained by solving , we try to inject better values of variables in it. To get these values, we first solve the following problem, and then we compute the new accordingly (as explained later). Given a starting solution , we want to find a cutset in the support network with a minimum number of arcs such that this cutset is nonvalid in the network induced by (meaning that if we remove nonprotected arcs of the cutset, its remaining capacity is smaller than ). This can be modeled as follows:
s.t  (8a)  
(8b)  
(8c)  
The variables define a cut as in since they belong to (recall that is the set constraints (6) ). However, adding the other constraints makes the constraints matrix not unimodular anymore: we have to set as a 01 variable. Constraint (8a) ensures that the cutset selected is nonvalid (as defined before). Constraint (8b) bounds the number of deleted arcs to at most , while constraints (8c) forbid the deletion of fictive arcs.
Then the new values of are computed as follows: we set to 1 for all with and let the others to their current value. It implies that the new value of will include the previous one and, using Proposition 2.4, we generate a better constraint than the original by calculating the extreme points associated to this new value of .
3 Tests and conclusion
All experiments were performed on a computer with a 2.40GHz Intel(R) Core(TM) i75500U CPU and a 16GB RAM using the solver CPLEX version 12.6.1. We present 3 tables of results. For each table, we present the solving time (limited to 2000 seconds) and the gap if the optimum is not reached. The cutset and flow formulations were solved using an iterative procedure in which after the generation of the constraint, the model is resolved as a MIP.
Table 1 shows the performances of the different formulation on an uniform capacities generated instance (those results reflect the general tendency obtained on tests made on other instances) with no protected arcs. One can see that the cutset formulation is the most efficient one: this can be explained by the fact that the variable is a constant in this case. The bilevel formulation is also efficient here whereas the flow formulation becomes inefficient for .
Instance Bilevel Cutset Flow  k k’ t (s) gap t (s) gap t (s) gap 20590 1 0 5.9 0 2.17 0 21.3 0  2 0 49.3 0 7.8 0 2000 0.25  3 0 22.8 0 21.1 0 2000 0.15 
Table 2 shows the difference of performance between the three different formulations for different values of and on a generated instance with nonuniform capacities. Although the flow formulation competes with the bilevel one for , it seems obvious that the bilevel formulation is the best one to solve when . This can be explained by the fact that the number of variables ( and ) and constraints is exponential in for the two other formulations.
Table 3 shows the results obtained on three different instances of the bilevel formulation for different values of and . We can see that even if the solving time generally grows with and , the formulation is much less sensitive to those two parameters.
I Bilevel Cutset Flow k k’ t (s) gap t (s) gap t (s) gap 1 0 9.3 0 1812.2 0 15.8 0 1 1 11.6 0 658.8 0 5.14 0 1 2 13.0 0 691.3 0 5.3 0 2 0 43.8 0 2000 0.12 2000 0.01 2 1 30.9 0 2000 0.22 2000 0.05 2 2 30.5 0 2000 0.04 112.6 0 3 0 29.0 0 2000 0.19 2000 0.18 3 1 21.0 0 2000 0.24 2000 0.21 3 2 66.5 0 2000 0.2 2000 0.16  Instance  k t (s) gap t (s) gap t (s) gap t (s) gap 205100 1 6.4 0 19.0 0 26.5 0 18.0 0  2 15.2 0 58.9 0 167.2 0 223.7 0  3   58.2 0 315.8 0 822.3 0 258120 1 22.0 0 152.0 0 87.9 0 67.3 0  2 76.4 0 161.1 0 546.3 0 794.4 0  3   34.2 0 158.0 0 1670.3 0 353175 1 35.7 0 101.4 0 82.3 0 159.6 0  2 180.6 0 1077.3 0 2000 0.11 1245.7 0  3 244.3 0 2000 0.03 2000 0.45 2000 0.49 
References
 [1] Cédric Bentz, MarieChristine Costa, and Alain Hertz. On the edge capacitated steiner tree problem. CoRR, abs/1607.07082:1 – 31, 2016.

[2]
Martina Fischetti and Michele Monaci.
Proximity search heuristics for wind farm optimal layout.
Journal of Heuristics, 22(4):459–474, 2016.  [3] Alain Hertz, Odile Marcotte, Asma Mdimagh, Michel Carreau, and Francois Welt. Optimizing the design of a wind farm collection network. INFOR: Information Systems and Operational Research, 50(2):95–104, 2012.
 [4] Raja Jothi and Balaji Raghavachari. Approximation algorithms for the capacitated minimum spanning tree problem and its variants in network design. ACM Transactions on Algorithms (TALG), 1(2):265–282, 2005.
 [5] Hervé Kerivin and A Ridha Mahjoub. Design of survivable networks: A survey. Networks, 46(1):1–21, 2005.
 [6] Thomas L Magnanti and S Raghavan. Strong formulations for network design problems with connectivity requirements. Networks, 45(2):61–79, 2005.
 [7] H Donald Ratliff, G Thomas Sicilia, and SH Lubore. Finding the n most vital links in flow networks. Management Science, 21(5):531–539, 1975.
Comments
There are no comments yet.