27 Congreso Nacional de Estadística e Investigación Operativa Lleida, 8 11 de abril de 2003 AN EXACT ALGORITHM FOR A LOCATION-ROUTING PROBLEM Martine Labbé 1, Inmaculada Rodríguez Martín 2, Juan José Salazar González 2 1 ISRO and SMG, Université Libre de Bruxelles, C.P. 210/01, B-1050, Bruxelles, Belgium E-mail: mlabbe@smg.ulb.ac.be 2 Departamento de Estadística, Investigación Operativa y Computación Universidad de La Laguna, 38271 Tenerife, España E-mail: irguez@ull.es, jjsalaza@ull.es ABSTRACT In this paper we address a combinatorial problem, the Plant-Cycle Location Problem (PCLP), with applications in routing and telecommunications. For this N P-hard problem we propose an integer linear programming formulation, and we develop an exact branch-and-cut algorithm. Preliminary computational results on randomly generated instances are presented. Key words: routing, location, branch-and-cut. AMS code: 90B06, 90B80 1 Introduction We present the Plant-Cycle Location Problem (PCLP), related with the well-known Capacitated Facility Location Problem (CFLP) (see Cornuejols et al. (1990)), and defined as follows. Let us consider two sets of locations, one with customers and another with potential plants (or depots). The travel distance between two locations is assumed to be known and symmetric. The opening of each potential plant has a given known cost. Moreover, each potential plant has a capacity that limits the number of customers it can serve. As in the CFLP, PCLP consists of choosing the plants to be opened and the assignment of customers to opened plants minimizing the cost. The novelty respect to the CFLP is that in PCLP the customers assigned 1
to a plant must be served with a cycle, thus the cost of a solution also includes the routing cost. Therefore, the PCLP looks for a set of disjoint cycles covering all the customers, each one containing exactly one plant, and minimizing the total sum of cost of opening the selected plants, cost of customer-plant assignments, routing cost. The problem considers capacity constraints limiting the number of customers that can be served by an open plant. In a more general case, a different demand could be associated to each customer and the constraint would limit the total demand served by each plant. Nevertheless, this extension was not present in the application motivating the PCLP. When there is only one plant and there are not assignment costs, the uncapacitated PCLP reduces to the Traveling Salesman Problem (TSP). Moreover, the PCLP reduces to the Vehicle Routing Problem with unit demand (VRP) when all the plants have the same location. Hence, PCLP is N P-hard in the strong sense and has several applications in the routing context. See, e.g., Toth and Vigo (2001) for a survey on the CVRP. We present a 0-1 integer linear programming model, and describe a branch-and-cut algorithm for the exact solution based on several families of inequalities strengthening the LP-relaxation of the model. We also provide computational results showing the good performance of our approach on random instances. 2 Mathematical Model Let V = I J be the set of locations, where I represents the locations of the customers and J the potential plant locations. Let E be the set of undirected edges linking all possible pairs of locations in V and G = (V, E) the graph on which the PCLP is defined. Each potential plant location j J has an associated cost f j, and can serve at most q j customers. Associated to each customer i I and each potential depot j J there is an assignment cost d ij, and associated to each edge e E there is a routing cost c e. The PCLP can be mathematically formulated by defining the following variables. For each plant j J, let y j be a binary variable that takes value 1 if the plant j is open in the solution and 0 otherwise. Every edge e E has an associated integer variable x e taking value 2 if one of its extreme vertices is a plant and the other is a customer, and they are the only points in a cycle; value 1 if the edge e is part of a cycle visiting other costumers besides its extremes; and value 0 otherwise. For each i I and each j J a binary variable z ij takes value 1 if the customer i I is assigned to the plant j J, and value 0 otherwise. 2
In addition, for each set of vertices S V we define δ(s) := {[u, v] E : u S, v / S}, E(S) := {[u, v] E : u S, v S}, and for any v V we write δ(v) instead of δ({v}). Moreover, for each F E we write x(f ) instead of e F x e. Then the model is the following: subject to: minimize j J i I j J f j y j + e E c e x e + i I j J d ij z ij (1) z ij = 1 for all i I, (2) z ij q j y j for all j J, (3) x(δ(i)) = 2 for all i I, (4) x(δ(j)) = 2y j for all j J, (5) x(δ(s)) 2 z ij for all S V, i S I, (6) j J\S x ij 2z ij for all i I, j J, (7) x ii + z ij + z i j 2 for all i, i I, j, j J, (8) y j {0, 1} for all j J, (9) z ij {0, 1} for all i I, j J, (10) x ij {0, 1, 2} for all [i, j] E. (11) Constraints (2) enforce each customer i to be assigned to exactly one plant j. Capacity constraints (3) limit to q j the number of customers a plant j J can serve, and prevent customers to be assigned to a plant not open. Constraints (4) and (5) are degree constraints, and they ensure that the degree of every customer is 2, and that the degree of every potential plant is 2 if and only if it belongs to a cycle. Constraints (6) are connectivity constraints. They state that each set of vertices S V must be connected to its complement by at least 2 edges whenever there is pair of vertices i and j such that i is a customer in S, j is a plant not in S, and i is assigned to j. Constraints (7) state that if customer i is not assigned to plant j then the edge [i, j] can not be routed. Constraints (8) state that if customers i and i are assigned to different depots j and j, then they cannot be in the same cycle. Finally, Constraints (9) (11) are the integrality constraints for the different kind of variables. 3
3 Branch-and-cut algorithm and computational results A branch-and-cut algorithm is a branch-and-bound algorithm in which cutting planes are generated throughout the search tree (see Padberg and Rinaldi (1991)). The idea is to try to close as much as possible the gap between the LP-relaxation optimal value and the integer optimal value of each subproblem in order to significantly reduce the number of nodes in the search tree. An important point within this scheme is to be able to develop efficient separation routines to generate cuts in the separation phase. In fact, the different families of valid inequalities that strengthen the LP-relaxation are not of practical use unless their associated separations problem, i.e., the problem of identifying some of them that are violated by a given fractional solution, can be easily solved. We have found the following families of valid inequalities for the PCLP, and designed the corresponding separation procedures. Logical constraints: Path inequalities: z ij y j for all i I, j J, (12) x(p ) + j Q z ij + j / Q z i j P + 1, (13) for each Q J, {i, i } I and P := {[i, i 1 ], [i 1, i 2 ],..., [i k, i ]} a path from i to i. Generalized connectivity constraints: x(δ(s)) 2( for each S V, i S I, i I \ S. 2-matching constraints: j J\S x(e(h)) + x(t ) H I + v j H z ij + j J S y j + z i j), (14) v j T J y j + ( T I 1)/2 (15) for each H V and T δ(h), where T = T I T J, being T I the set of edges in T linking customers and T J the set of edges of T that have a plant in one extreme, and H and T satisfying: (i) {i, j} {k, l} = for [i, j], [k, l] T and [i, j] [k, l], (ii) T 3 and odd. 4
The branch-and-cut algorithm was implemented in the C++ programming language. ABACUS 2.3 linked with CPLEX 6.0 was used as a branch-and-cut framework. See Jünger and Thienel (1997) for details on this software. The implementation was run on a PC Pentium IV 1.5 Ghz under Linux. In Table (1) we present preliminary computational results on a set of randomly generated instances, with vertices coordinates in [0, 1000] [0, 1000]. For each value of I, five different instances were generated, and the results are shown on average over the successful instances, i.e., those solved in less than three hours. 4 Acknowledgements This work was partially supported by Ministerio de Ciencia y Tecnología (TIC2000-1750-C06-02) and by Gobierno de Canarias (PI2000/116), Spain. References Ehrenberg, A. C. S. (1982): Writing technical reports and papers. Amer. Statist. 36, 326 329. Lamport, L. (1986). LATEX A Document Preparation System. Addison-Wesley. Cornuejols G., Nemhauser G.L., Wolsey L.A (1990): The Uncapacitated Facility Location Problem. In P.B. Mirchandani, R.L. Francis (eds.), Discrete Location Theory, John Wiley and Sons, 119-172. Jünger, M., Thienel, S. (1997): Introduction to ABACUS - A Branch-And-CUt System. Technical Report No. 97.263, Universitat zu Köln. Padberg M.W., Rinaldi. G.(1991): A branch-and-cut algorithm for the resolution of large-scale symmetric traveling salesman problems, SIAM Review 33, 60 100. Toth P., Vigo D. (2001). The Vehicle Routing Problem. SIAM Monographs on Discrete Mathematics and Applications. 5
I J q j f j succ nodes time open %-LB %-UB (12) (7) (13) (15) (6) (14) 50 50 3 1 4 530.00 0:31:30 25.75 98.62 101.75 16292.00 28225.25 26748.25 1162.50 29538.50 32127.25 50 50 3 250 1 453.00 0:48:05 19.00 98.79 103.12 29751.00 16782.00 33345.00 425.00 32779.00 77227.00 50 50 5 1 5 4.20 0:00:11 24.00 99.81 100.07 206.40 150.20 155.20 28.40 177.60 164.20 50 50 5 250 5 25.80 0:02:47 15.20 99.36 100.72 3523.60 797.20 1858.00 183.40 1833.40 4856.80 50 50 5 rnd 4 94.50 0:07:31 13.00 99.11 101.12 7471.75 2303.25 4937.25 89.50 5189.00 13656.00 50 50 5 500 2 410.00 0:47:52 12.00 98.39 100.10 55485.00 12661.00 30814.00 1400.00 32029.00 93690.50 50 50 10 1 5 1.00 0:00:02 23.80 100.00 100.00 117.20 52.00 53.00 10.00 54.00 9.00 50 50 10 250 5 2.20 0:00:56 13.80 99.97 100.23 1652.20 244.40 644.60 145.60 600.00 1520.80 50 50 10 rnd 5 1.40 0:00:23 11.40 99.99 100.66 960.20 81.00 296.20 104.80 301.80 397.20 50 50 10 500 5 49.00 0:07:19 9.40 99.59 100.51 8285.80 568.40 3933.80 360.40 3856.80 18187.80 50 50 10 1000 5 173.80 0:30:47 6.40 98.78 103.80 29481.40 1725.20 15007.80 1854.40 14112.00 78274.20 50 50 10 5000 4 40.50 0:09:20 5.00 99.40 112.96 11509.75 320.25 4460.25 497.00 3975.25 18749.75 50 50 15 1 5 1.00 0:00:02 24.00 100.00 100.00 114.20 48.00 48.40 16.40 48.80 7.20 50 50 15 250 5 2.20 0:00:54 13.80 99.97 100.23 1486.40 236.80 588.20 175.60 547.40 1623.60 50 50 15 rnd 5 1.40 0:00:24 11.40 99.98 100.62 974.20 72.40 295.00 123.20 306.20 507.40 50 50 15 500 5 8.20 0:01:59 8.80 99.85 100.36 2915.00 169.80 1081.40 304.80 1025.00 4682.00 50 50 15 1000 5 43.00 0:04:34 5.00 99.50 101.36 5879.40 124.60 2073.00 470.00 2012.00 10731.80 50 50 50 1 5 1.00 0:00:02 23.80 100.00 100.00 113.80 53.80 48.80 21.00 49.20 11.80 50 50 50 250 5 2.20 0:00:53 13.80 99.97 100.17 1582.40 208.20 598.60 176.00 572.20 1552.40 50 50 50 rnd 5 1.40 0:00:27 11.40 99.98 100.35 1013.00 79.00 308.60 94.80 331.20 534.60 50 50 50 500 5 7.80 0:02:06 8.80 99.85 100.49 3037.20 145.60 1196.80 290.80 1133.80 4379.20 50 50 50 1000 5 12.60 0:02:16 5.00 99.66 100.61 3415.40 58.20 1032.80 375.00 920.80 5983.00 50 50 50 5000 5 4.20 0:00:15 1.20 99.98 100.63 1453.60 18.00 54.20 199.20 52.60 335.40 50 50 50 20000 5 3.40 0:00:09 1.00 99.99 109.89 1285.00 17.60 25.20 172.20 33.20 38.00 Tabla 1: Computational results for random instances