branch cut and price algorithms for the vehicle routing
play

Branch-cut-and-price algorithms for the vehicle routing problem with - PowerPoint PPT Presentation

Branch-cut-and-price algorithms for the vehicle routing problem with backhauls Eduardo Queiroga 1 Yuri Frota 1 Ruslan Sadykov 2 Anand Subramanian 3 Eduardo Uchoa 1 Thibaut Vidal 4 1 2 3 4 Univ. Federal Inria Bordeaux, Univ. Federal PUC-Rio


  1. Branch-cut-and-price algorithms for the vehicle routing problem with backhauls Eduardo Queiroga 1 Yuri Frota 1 Ruslan Sadykov 2 Anand Subramanian 3 Eduardo Uchoa 1 Thibaut Vidal 4 1 2 3 4 Univ. Federal Inria Bordeaux, Univ. Federal PUC-Rio Fluminense France da Paraíba Brazil Brazil Brazil VeRoLog 2019 Seville, Spain, June 5 1 / 21

  2. Motivation 1 Perspectives in the survey by [Koç and Laporte, 2018] : ◮ “Our belief that further studies should focus on developing effective and powerful exact methods, such as branch-and-cut-and-price, to solve all available standard VRPB instances to optimality.” ◮ “No exact algorithm has yet been proposed for the time windows extension of the VRPB. This type of effective algorithms could be applied to the VRPB with time windows.” Koç, Ç. and Laporte, G. (2018). Vehicle routing with backhauls: Review and research perspectives. Computers and Operations Research, 91:79 – 91. 2 / 21

  3. Motivation 2 Generic Branch-Cut-and-Price (BCP) state-of-the-art solver for Vehicle Routing Problems (VRPs) [Pessoa et al., 2019] . vrpsolver.math.u-bordeaux.fr Non-trivial modelling allows us to solve VRPB more efficiently using the solver. Pessoa, A., Sadykov, R., Uchoa, E., and Vanderbeck, F. (2019). A generic exact solver for vehicle routing and related problems. In Lodi, A. and Nagarajan, V., editors, Integer Programming and Combinatorial Optimization, volume 11480 of Lecture Notes in Computer Science, pages 354–369, Springer International Publishing. 3 / 21

  4. Plan of the talk Generic Model for Vehicle Routing Problems Models for the Vehicle Routing Problem with Backhauls Results and Conclusions 4 / 21

  5. Generic Model: Graphs for Resource Constrained Shortest Path (RCSP) generation Define a set R of resource indices, partitioned into main resources R M and secondary resources R N Define directed graphs G k = ( V k , A k ) , k ∈ K : ◮ Special vertices v k source , v k sink ◮ Arc consumption q a , r ∈ R + , a ∈ A k , r ∈ R ◮ cycles with zero main resource consumption should not exist ◮ secondary resources may be of a special type that allow negative consumption ◮ Accumulated resource consumption intervals [ l a , r , u a , r ] , a ∈ A k , r ∈ R ◮ May also be defined on vertices ( [ l v , r , u v , r ] , v ∈ V k , r ∈ R ) Let V = ∪ k ∈ K V k and A = ∪ k ∈ K A k 5 / 21

  6. Generic Model: Graphs for RCSPs generation (2) Resource Constrained Path (disposable resources) A path p = ( v k source = v 0 , a 1 , v 1 , . . . , a n − 1 , v n − 1 , a n , v n = v k sink ) over G k is resource constrained iff for every r ∈ R , the accumulated resource consumption t j , r at visit j , 0 ≤ j ≤ n , does not exceed u a j , r , where � 0 , j = 0 , t j , r = max { l a j , r , t j − 1 , r + q a j , r } , j > 0 6 / 21

  7. Generic Model: Variables and Mappings Define continuous and/or integer variables: 1. Mapped x variables ◮ Each variable x j , 1 ≤ j ≤ n 1 , is mapped into a non-empty set M ( j ) ⊆ A . ◮ The inverse mapping of arc a is M − 1 ( a ) = { j | a ∈ M ( j ) } . 2. Additional (non-mapped) y variables U k ] for the number of paths in P k in a feasible 3. Bounds [¯ L k , ¯ solution. Define also ◮ For each k ∈ K , P k is the set of all resource constrained paths in G k ◮ P = ∪ k ∈ K P k ◮ λ p = how many times path p ∈ P is used in the solution. ◮ h p a = how many times arc a is used in path p 7 / 21

  8. Generic Model: Formulation n 1 n 2 Min � c j x j + � f s y s (1a) j = 1 s = 1 n 1 n 2 S.t. � α ij x j + � β is y s ≥ d i , i = 1 , . . . , m , (1b) j = 1 s = 1 � � h p x j = � � � j = 1 . . . , n 1 , (1c) λ p , a k ∈ K p ∈ P k a ∈ M ( j ) L k ≤ � ¯ λ p ≤ ¯ U k , k ∈ K , (1d) p ∈ P k λ p ∈ Z + , p ∈ P , (1e) x j ∈ N , y s ∈ N j = 1 , . . . , n 1 , s = 1 , . . . , n 2 . (1b) may be separated on demand through callback routines 8 / 21

  9. Generic Model: Collection of Packing Sets Define a collection S of mutually disjoint packing sets , each one being a subset of A , such that the constraints: � � h p a λ p ≤ 1 , S ∈ S , (2) p ∈ P a ∈ S are satisfied by at least one optimal solution ( x ∗ , y ∗ , λ ∗ ) of Formulation (1). ◮ The definition of a proper S is part of the modeling ◮ Packing sets can be defined on vertices (each one is a subset of V ) Packing sets generalize customers in the classical CVRP 9 / 21

  10. Why we need Packing Sets? Knowledge about packing sets allows the solver to use state-of-the-art techniques in a generalized form: ◮ ng -paths [Baldacci et al., 2011] ◮ Distance matrix for packing sets is expected from the user to obtain initial ng -neighbourhoods ◮ Limited Memory Rank-1 Cuts [Pecin et al., 2017] ◮ Elementary path enumeration [Baldacci et al., 2008] ◮ Additional condition to use enumeration: Two partial paths ending in the same vertex and mapped to different columns in (1b) should correspond to different collection of packing sets 10 / 21

  11. Rounded Capacity Cuts (RCC) Separators Interface for separating RCCs [Laporte and Nobert, 1983] . CVRPSEP code [Lysgaard, 2003] is used by the solver Each separator is characterized by a triple ◮ sub-collection S ′ ⊆ S of packing sets, ◮ a demand d S for each S ∈ S ′ , ◮ capacity Q . Conditions to use ◮ Collection of packing sets is defined on vertices. h p ◮ For every S ⊆ S ′ , � � v λ p = 1. p ∈ P v ∈ S h p ◮ For every path p ∈ P , � S ∈S ′ d S · � v ≤ Q . v ∈ S 11 / 21

  12. Vehicle Routing Problem with Backhauls Data Feasible solution K vehicle routes ◮ Depot 0 ◮ start and finish at the depot ◮ Set L = { 1 , . . . , n } of ◮ serve at least one linehaul linehaul vertices customer ◮ Set B = { n + 1 , . . . , n + m } ◮ serve backhaul customers of backhaul vertices strictly after linehaul ones ◮ Graph G = ( V , A ) , ◮ total demand of linehaul V = { 0 } ∪ L ∪ B , A = { ( i , j ) : i , j ∈ V , i � = j } . customers ≤ Q ◮ Travelling cost c a , a ∈ A . ◮ total demand of backhaul customers ≤ Q ◮ Demands d i , i ∈ L ∪ B . ◮ K homogeneous vehicles Objective of capacity Q . Minimize the total travelling cost 12 / 21

  13. Standard model with one graph ◮ Graph G 1 = ( V , A 1 ) , v 1 source = v 1 sink = 0, A 1 = A \ { ( 0 , j ) : j ∈ B } \ { ( j , i ) : j ∈ B , i ∈ L } , ◮ One main capacity resource : � d j ,  [ d v , Q ] , v ∈ L , j ∈ L ∪ B ,  q ( i , j ) = [ l v , u v ] = [ Q + d v , 2 Q ] , v ∈ B , 0 , j = 0 . [ 0 , 2 Q ] , j = 0 .  0 [ d 1 , Q ] [ Q + d 3 , 2 Q ] 0 d 3 1 3 0 d 5 d 5 d 1 d 3 d 3 d 3 d 4 [ 0 , 2 Q ] d 1 d 2 5 [ Q + d 5 , 2 Q ] 0 d 4 d 2 d 5 d 5 0 d 4 d 4 2 4 [ d 2 , Q ] [ Q + d 4 , 2 Q ] 0 13 / 21

  14. Standard model with one graph: formulation ◮ Variable x a is mapped to arc a , a ∈ A 1 . ◮ [¯ L 1 , ¯ U 1 ] = [ K , K ] ◮ Formulation: � Min c a · x a a ∈ A 1 � S.t. x a = 1 , ∀ j ∈ L ∪ B , ( i , j ) ∈ A 1 ∀ a ∈ A 1 . x a ∈ { 0 , 1 } , ◮ Packing sets are defined on vertices: S = S L ∪ S B , � � � � S L = { v } : v ∈ L , S B = { v } : v ∈ B . ◮ Distance matrix is based on travelling costs ◮ First RCC separator: ( S L , { d v } v ∈ L , Q ) ◮ Second RCC separator: ( S B , { d v } v ∈ B , Q ) ◮ Branching on variables x 14 / 21

  15. New model with two graphs ◮ Graph G 1 = ( V 1 , A 1 ) , V 1 = { 0 } ∪ L , A 1 = V 1 × V 1 ◮ Graph G 2 = ( V 2 , A 2 ) , V 2 = { 0 ′ } ∪ L ′ ∪ B , A 2 = � ( 0 , j ) : j ∈ L ′ � � � � � � � ( i , j ) : i ∈ L ′ , j ∈ { 0 } ∪ B ( i , j ) : i ∈ B , j ∈ { 0 } ∪ B . ◮ One main capacity resource :  [ d v , Q ] , v ∈ L ∪ B , � d j , j ∈ L ∪ B ,  q ( i , j ) = [ l v , u v ] = [ 0 , 0 ] , v ∈ L ′ , 0 , j ∈ { 0 } ∪ L ′ . [ 0 , Q ] , j ∈ { 0 , 0 ′ } .  [ d 1 , Q ] 0 [ 0 , 0 ] [ d 3 , Q ] 0 1 ′ 1 3 d 3 d 1 0 d 5 d 5 d 3 0 0 d 3 d 3 d 4 [ 0 , Q ] 0 d 1 d 2 [ 0 , Q ] 0 ′ 5 [ d 5 , Q ] d 4 d 5 d 2 0 d 5 d 4 0 0 d 4 2 2 ′ 4 [ 0 , 0 ] [ d 4 , Q ] 0 [ d 2 , Q ] 15 / 21

  16. New model with two graphs: formulation ◮ Variable x a is mapped to arc a , a ∈ � ( i , j ) : j ∈ L ∪ B ∪ { 0 ′ } � ◮ Variable z j is mapped to arc ( j , 0 ) ∈ A 1 , j ∈ L ◮ Variable w j is mapped to arc ( 0 ′ , j ) ∈ A 2 , j ∈ L ′ ◮ [¯ L 1 , ¯ U 1 ] = [¯ L 2 , ¯ U 2 ] = [ K , K ] ◮ Formulation: � c a · x a Min a ∈ A 1 � S.t. x a = 1 , ∀ j ∈ L , ( i , j ) ∈ A 1 � x a = 1 , ∀ j ∈ B , ( i , j ) ∈ A 2 z j = w j , ∀ j ∈ L , ∀ a ∈ A 1 ∪ A 2 , x a ∈ { 0 , 1 } , z j , w j ∈ { 0 , 1 } , ∀ j ∈ L . ◮ Branching on variables x and y 16 / 21

  17. New model with two graphs: packing sets We modify graph G 1 by duplicating vertices in L to L ′′ : 0 [ 0 , 0 ] 0 [ d 3 , Q ] 0 0 [ d 1 , Q ] 1 ′′ 1 ′ 1 3 d 3 [ d 1 , Q ] d 1 0 d 5 d 5 0 d 3 d 3 d 3 d 4 [ 0 , Q ] 0 d 1 d 2 [ 0 , Q ] 0 ′ 5 [ d 5 , Q ] d 4 d 5 0 d 5 d 2 0 d 4 [ d 2 , Q ] d 4 0 [ d 2 , Q ] 2 2 ′′ 2 ′ 4 0 [ d 4 , Q ] [ 0 , 0 ] 0 ◮ Packing sets are defined on vertices: S = S L ∪ S L ′ ∪ S L ′′ ∪ S B . ◮ Packing sets in S L ′ ∪ S L ′′ are artificial and serve to satisfy condition to use enumeration ◮ Distance to an artificial packing set is ∞ ◮ Same two RCC separators as for the first model 17 / 21

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend