Abstract
Major advances were recently obtained in the exact solution of vehicle routing problems (VRPs). Sophisticated branch-cut-and-price (BCP) algorithms for some of the most classical VRP variants now solve many instances with up to a few hundreds of customers. However, adapting and reimplementing those successful algorithms for other variants can be a very demanding task. This work proposes a BCP solver for a generic model that encompasses a wide class of VRPs. It incorporates the key elements found in the best existing VRP algorithms: ng-path relaxation, rank-1 cuts with limited memory, path enumeration, and rounded capacity cuts; all generalized through the new concepts of “packing set” and “elementarity set”. The concepts are also used to derive a branching rule based on accumulated resource consumption and to generalize the Ryan and Foster branching rule. Extensive experiments on several variants show that the generic solver has an excellent overall performance, in many problems being better than the best specific algorithms. Even some non-VRPs, like bin packing, vector packing and generalized assignment, can be modeled and effectively solved.
Similar content being viewed by others
References
Achterberg, T.: Constraint integer programming. Ph.D. thesis, Technische Universitat Berlin (2007)
Archetti, C., Bianchessi, N., Speranza, M.: Optimal solutions for routing problems with profits. Discrete Appl. Math. 161(4–5), 547–557 (2013)
Avella, P., Boccia, M., Vasilyev, I.: A computational study of exact knapsack separation for the generalized assignment problem. Comput. Optim. Appl. 45(3), 543–555 (2010)
Baldacci, R., Bartolini, E., Mingozzi, A.: An exact algorithm for the pickup and delivery problem with time windows. Oper. Res. 59(2), 414–426 (2011)
Boost C++ libraries (2019). https://www.boost.org/
Baldacci, R., Christofides, N., Mingozzi, A.: An exact algorithm for the vehicle routing problem based on the set partitioning formulation with additional cuts. Math. Program. 115, 351–385 (2008)
Baldacci, R., Mingozzi, A.: A unified exact method for solving different classes of vehicle routing problems. Math. Program. 120(2), 347–380 (2009)
Baldacci, R., Mingozzi, A., Roberti, R.: New route relaxation and pricing strategies for the vehicle routing problem. Oper. Res. 59(5), 1269–1283 (2011)
Balinski, M., Quandt, R.: On an integer program for a delivery problem. Oper. Res. 12(2), 300–304 (1964)
Bartolini, E., Cordeau, J.F., Laporte, G.: Improved lower bounds and exact algorithm for the capacitated arc routing problem. Math. Program. 137(1), 409–452 (2013)
Beasley, J.E.: OR-Library: Distributing test problems by electronic mail. J. Oper. Res. Soc. 41(11), 1069–1072 (1990)
Belenguer, J., Benavent, E.: The capacitated arc routing problem: Valid inequalities and facets. Comput. Optim. Appl. 10(2), 165–187 (1998)
Belov, G., Scheithauer, G.: A branch-and-cut-and-price algorithm for one-dimensional stock cutting and two-dimensional two-stage cutting. Eur. J. Oper. Res. 171(1), 85–106 (2006)
Benavent, E., Corberán, Á., Desaulniers, G., Lessard, F., Plana, I., Sanchis, J.M.: A branch-price-and-cut algorithm for the min-max k-vehicle windy rural postman problem. Networks 63(1), 34–45 (2014)
Bianchessi, N., Mansini, R., Speranza, M.G.: A branch-and-cut algorithm for the team orienteering problem. Int. Trans. Oper. Res. 25(2), 627–635 (2018)
Bode, C., Irnich, S.: Cut-first branch-and-price-second for the capacitated arc-routing problem. Oper. Res. 60(5), 1167–1182 (2012)
Archetti, C., Feillet, D., Hertz, A., Speranza, M.G.: The capacitated team orienteering and profitable tour problems. J. Oper. Res. Soc. 60(6), 831–842 (2009)
Brandão, F.: Pedroso, JaP: bin packing and related problems—general arc-flow formulation with graph compression. Comput. Oper. Res. 69, 56–67 (2016)
Bulhoes, T., Hà, M.H., Martinelli, R., Vidal, T.: The vehicle routing problem with service level constraints. Eur. J. Oper. Res. 265(2), 544–558 (2018)
Bulhões, T., Pessoa, A., Protti, F., Uchoa, E.: On the complete set packing and set partitioning polytopes: properties and rank 1 facets. Oper. Res. Lett. 46(4), 389–392 (2018)
Bulhoes, T., Sadykov, R., Uchoa, E.: A branch-and-price algorithm for the minimum latency problem. Comput. Oper. Res. 93, 66–78 (2018)
Caprara, A., Toth, P.: Lower bounds and algorithms for the 2-dimensional vector packing problem. Discrete Appl. Math. 111(3), 231–262 (2001)
Chao, I.M., Golden, B.L., Wasil, E.A.: The team orienteering problem. Eur. J. Oper. Res. 88(3), 464–474 (1996)
Christofides, N., Eilon, S.: An algorithm for the vehicle-dispatching problem. Oper. Res. Q. 20, 309–318 (1969)
Christofides, N., Mingozzi, A., Toth, P.: Combinatorial Optimization, chap. The Vehicle Routing Problem, pp. 315–338. Wiley, Chichester (1979)
Clautiaux, F., Hanafi, S., Macedo, R., Émilie Voge, M., Alves, C.: Iterative aggregation and disaggregation algorithm for pseudo-polynomial network flow models with side constraints. Eur. J. Oper. Res. 258(2), 467–477 (2017)
Contardo, C., Martinelli, R.: A new exact algorithm for the multi-depot vehicle routing problem under capacity and route length constraints. Discrete Optim. 12, 129–146 (2014)
Cordeau, J.F., Gendreau, M., Laporte, G.: A tabu search heuristic for periodic and multi-depot vehicle routing problems. Networks 30(2), 105–119 (1997)
Dantzig, G., Ramser, J.: The truck dispatching problem. Manage. Sci. 6(1), 80–91 (1959)
Delorme, M., Iori, M.: Enhanced pseudo-polynomial formulations for bin packing and cutting stock problems. INFORMS J. Comput. 32(1), 101–119 (2020)
Delorme, M., Iori, M., Martello, S.: Bin packing and cutting stock problems: Mathematical models and exact algorithms. Eur. J. Oper. Res. 255(1), 1–20 (2016)
Desaulniers, G., Desrosiers, J., loachim, I., Solomon, M.M., Soumis, F., Villeneuve, D., et al.: A unified framework for deterministic time constrained vehicle routing and crew scheduling problems. In: Fleet Management and Logistics, pp. 57–93. Springer (1998)
Desaulniers, G., Lessard, F., Hadjar, A.: Tabu search, partial elementarity, and generalized k-path inequalities for the vehicle routing problem with time windows. Transp. Sci. 42(3), 387–404 (2008)
Dunning, I., Huchette, J., Lubin, M.: JuMP: a modeling language for mathematical optimization. SIAM Rev. 59(2), 295–320 (2017)
Eglese, R.W., Li, L.Y.O.: Efficient routeing for winter gritting. J. Oper. Res. Soc. 43(11), 1031–1034 (1992)
El-Hajj, R., Dang, D.C., Moukrim, A.: Solving the team orienteering problem with cutting planes. Comput. Oper. Res. 74, 21–30 (2016)
Falkenauer, E.: A hybrid grouping genetic algorithm for bin packing. J. Heuristics 2, 5–30 (1996)
Fukasawa, R., Longo, H., Lysgaard, J., Aragão, MPd, Reis, M., Uchoa, E., Werneck, R.F.: Robust branch-and-cut-and-price for the capacitated vehicle routing problem. Math. Program. 106(3), 491–511 (2006)
Gehring, H., Homberger, J.: Parallelization of a two-phase metaheuristic for routing problems with time windows. J. Heuristics 8(3), 251–276 (2002)
Gélinas, S., Desrochers, M., Desrosiers, J., Solomon, M.M.: A new branching strategy for time constrained routing problems with application to backhauling. Ann. Oper. Res. 61(1), 91–109 (1995)
Gouveia, L., Leitner, M., Ruthmair, M.: Extended formulations and branch-and-cut algorithms for the black-and-white traveling salesman problem. Eur. J. Oper. Res. 262(3), 908–928 (2017)
Gschwind, T., Irnich, S., Rothenbächer, A.K., Tilk, C.: Bidirectional labeling in column-generation algorithms for pickup-and-delivery problems. Eur. J. Oper. Res. 266(2), 521–530 (2018)
Gurobi Optimization, L.: Gurobi optimizer reference manual, version 7.5 (2017). http://www.gurobi.com
Held, S., Cook, W., Sewell, E.C.: Maximum-weight stable sets and safe lower bounds for graph coloring. Math. Program. Comput. 4(4), 363–381 (2012)
Heßler, K., Gschwind, T., Irnich, S.: Stabilized branch-and-price algorithms for vector packing problems. Eur. J. Oper. Res. 271(2), 401–419 (2018)
Irnich, S.: Resource extension functions: Properties, inversion, and generalization to segments. OR Spectrum 30(1), 113–148 (2008)
Irnich, S., Desaulniers, G., Desrosiers, J., Hadjar, A.: Path-reduced costs for eliminating arcs in routing and scheduling. INFORMS J. Comput. 22(2), 297–313 (2010)
Jepsen, M., Petersen, B., Spoorendonk, S., Pisinger, D.: Subset-row inequalities applied to the vehicle-routing problem with time windows. Oper. Res. 56(2), 497–511 (2008)
Kallehauge, B., Larsen, J., Madsen, O.: Lagrangian duality applied to the vehicle routing problem with time windows. Comput. Oper. Res. 33(5), 1464–1487 (2006)
Kullmann, O.: Handbook of Satisfiability, chap. Fundaments of branching heuristics, pp. 205–244. IOS Press, Amsterdam (2009)
Laporte, G., Nobert, Y.: A branch and bound algorithm for the capacitated vehicle routing problem. Oper. Res. Spektrum 5(2), 77–85 (1983)
Le Bodic, P., Nemhauser, G.: An abstract model for branching and its application to mixed integer programming. Math. Program. 166(1), 369–405 (2017)
LEMON: Library for Efficient Modeling and Optimization in Networks (2014). https://lemon.cs.elte.hu/trac/lemon
Li, H., Lim, A.: A metaheuristic for the pickup and delivery problem with time windows. Int. J. Artif. Intell. Tools 12(02), 173–186 (2003)
Longo, H., De Aragão, M.P., Uchoa, E.: Solving capacitated arc routing problems using a transformation to the cvrp. Comput. Oper. Res. 33(6), 1823–1837 (2006)
Lysgaard, J.: CVRPSEP: A package of separation routines for the capacitated vehicle routing problem. Technical report 03-04 Department of Management Science and Logistics, Aarhus School of Business (2003)
Lysgaard, J., Letchford, A.N., Eglese, R.W.: A new branch-and-cut algorithm for the capacitated vehicle routing problem. Math. Program. 100(2), 423–445 (2004)
Marques, G., Sadykov, R., Deschamps, J.C., Dupas, R.: An improved branch-cut-and-price algorithm for the two-echelon capacitated vehicle routing problem. Comput. Oper. Res. 114, 104833 (2020)
Nauss, R.M.: Solving the generalized assignment problem: An optimizing and heuristic approach. INFORMS J. Comput. 15(3), 249–266 (2003)
Parmentier, A.: Algorithms for non-linear and stochastic resource constrained shortest path. Math. Methods Oper. Res. 89(2), 281–317 (2019)
Pecin, D., Contardo, C., Desaulniers, G., Uchoa, E.: New enhancements for the exact solution of the vehicle routing problem with time windows. INFORMS J. Comput. 29(3), 489–502 (2017)
Pecin, D., Pessoa, A., Poggi, M., Uchoa, E.: Improved branch-cut-and-price for capacitated vehicle routing. In: Proceedings of the XVII IPCO, Lecture Notes in Computer Science, vol. 8494, pp. 393–403. Springer (2014)
Pecin, D., Pessoa, A., Poggi, M., Uchoa, E.: Improved branch-cut-and-price for capacitated vehicle routing. Math. Program. Comput. 9(1), 61–100 (2017)
Pecin, D., Pessoa, A., Poggi, M., Uchoa, E., Santos, H.: Limited memory rank-1 cuts for vehicle routing problems. Oper. Res. Lett. 45(3), 206–209 (2017)
Pecin, D., Uchoa, E.: Comparative analysis of capacitated arc routing formulations for designing a new branch-cut-and-price algorithm. Transp. Sci. 53(6), 1501–1799 (2019)
Pessoa, A., Poss, M., Sadykov, R., Vanderbeck, F.: Branch-and-cut-and-price for the robust capacitated vehicle routing problem with knapsack uncertainty. Oper. Res. (Forthcoming) (2020)
Pessoa, A., Sadykov, R., Uchoa, E.: Enhanced branch-cut-and-price algorithm for heterogeneous fleet vehicle routing problems. Eur. J. Oper. Res. 270, 530–543 (2018)
Pessoa, A., Sadykov, R., Uchoa, E., Vanderbeck, F.: Automation and combination of linear-programming based stabilization techniques in column generation. INFORMS J. Comput. 30(2), 339–360 (2018)
Pessoa, A., Sadykov, R., Uchoa, E., Vanderbeck, F.: A generic exact solver for vehicle routing and related problems. In: Lodi, A., Nagarajan, V. (eds.) Integer Programming and Combinatorial Optimization, vol. 11480, pp. 354–369. Springer, Berlin (2019)
Petersen, B., Pisinger, D., Spoorendonk, S.: Chvátal-gomory rank-1 cuts used in a dantzig-wolfe decomposition of the vehicle routing problem with time windows. In: Golden BL, Raghavan S, Wasil EA, (eds) The Vehicle Routing Problem: Latest Advances and New Challenges, pp. 397–419. Springer, Berlin (2008)
Poggi de Aragão, M., Uchoa, E.: Integer program reformulation for robust branch-and-cut-and-price. In: L. Wolsey (ed.) Annals of Mathematical Programming in Rio, pp. 56–61. Búzios, Brazil (2003)
Posta, M., Ferland, J.A., Michelon, P.: An exact method with variable fixing for solving the generalized assignment problem. Comput. Optim. Appl. 52, 629–644 (2012)
Righini, G., Salani, M.: Symmetry helps: Bounded bi-directional dynamic programming for the elementary shortest path problem with resource constraints. Discrete Optim. 3(3), 255–273 (2006)
Roberti, R., Mingozzi, A.: Dynamic ng-path relaxation for the delivery man problem. Transp. Sci. 48(3), 413–424 (2014)
Røpke, S.: Branching decisions in branch-and-cut-and-price algorithms for vehicle routing problems. Presentation in International Workshop on Column Generation, Bromont, Canada (2012)
Ropke, S., Cordeau, J.F.: Branch and cut and price for the pickup and delivery problem with time windows. Transp. Sci. 43(3), 267–286 (2009)
Ryan, D.M., Foster, B.A.: An integer programming approach to scheduling. In: Wren, A. (ed.) Computer Scheduling of Public Transport: Urban Passenger Vehicle and Crew Scheduling, pp. 269–280. North-Holland, Amsterdam (1981)
Sadykov, R., Uchoa, E., Pessoa, A.: A bucket graph based labeling algorithm with application to vehicle routing. Transp. Sci. (Forthcoming) (2020)
Sadykov, R., Vanderbeck, F., Pessoa, A., Tahiri, I., Uchoa, E.: Primal heuristics for branch-and-price: the assets of diving methods. INFORMS J. Comput. 31(2), 251–267 (2019)
Schoenfield, J.E.: Fast, exact solution of open bin packing problems without linear programming. Technical report, US Army Space and Missile Defense Command (2002)
Solomon, M.M.: Algorithms for the vehicle routing and scheduling problems with time window constraints. Oper. Res. 35(2), 254–265 (1987)
Uchoa, E., Pecin, D., Pessoa, A., Poggi, M., Subramanian, A., Vidal, T.: New benchmark instances for the capacitated vehicle routing problem. Eur. J. Oper. Res. 257(3), 845–858 (2017)
Vanderbeck, F., Sadykov, R., Tahiri, I.: BaPCod — a generic Branch-And-Price Code (2018). https://realopt.bordeaux.inria.fr/?page_id=2
Vanderbeck, F., Wolsey, L.A.: Reformulation and decomposition of integer programs. In: 50 Years of Integer Programming 1958-2008, pp. 431–502. Springer (2010)
Wei, L., Luo, Z., Baldacci, R., Lim, A.: A new branch-and-price-and-cut algorithm for one-dimensional bin-packing problems. INFORMS J. Comput. 32(2), 428–443 (2020)
Acknowledgements
We would like to thank Teobaldo Bulhoes and Guillaume Marques for a large part of the implementation of the Julia–JuMP interface to the solver; Teobaldo Bulhoes, Guillaume Marques and Eduardo Queiroga for implementing, over that interface, the models corresponding to the examples of this paper; and Laurent Facq for a general support of the computing environment. Experiments presented in this paper were carried out using the PlaFRIM (Federative Platform for Research in Computer Science and Mathematics), created under the Inria PlaFRIM development action with support from Bordeaux INP, LABRI and IMB and other entities: Conseil Régional d’Aquitaine, Université de Bordeaux, CNRS and ANR in accordance to the “Programme d’Investissements d’Avenir”. This study was financed in part by the Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq), Grant 313601/2018-6 (Produtividade 1B), and by the Fundação de Amparo à Pesquisa do Estado do Rio de Janeiro (FAPERJ), Grant E-26/202.887/2017 (Cientista do Estado).
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
A short version of this work was already published in [69].
Rights and permissions
About this article
Cite this article
Pessoa, A., Sadykov, R., Uchoa, E. et al. A generic exact solver for vehicle routing and related problems. Math. Program. 183, 483–523 (2020). https://doi.org/10.1007/s10107-020-01523-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10107-020-01523-z