beyond vehicle routing a general purpose branch cut and
play

Beyond Vehicle Routing: a General Purpose Branch-Cut-and-Price Code - PowerPoint PPT Presentation

Beyond Vehicle Routing: a General Purpose Branch-Cut-and-Price Code for Applications with Resource Constrained Shortest Path (RCSP) Pricing Artur Pessoa 3 Ruslan Sadykov 1 , 2 Eduardo Uchoa 3 Franois Vanderbeck 2 , 1 1 2 3 Inria Bordeaux,


  1. Beyond Vehicle Routing: a General Purpose Branch-Cut-and-Price Code for Applications with Resource Constrained Shortest Path (RCSP) Pricing Artur Pessoa 3 Ruslan Sadykov 1 , 2 Eduardo Uchoa 3 François Vanderbeck 2 , 1 1 2 3 Inria Bordeaux, Université Bordeaux, Universidade Federal France France Fluminense, Brazil ISCO 2018 Marrakesh, Morocco, April 11 1 / 26

  2. Modern Branch-Cut-and-Price for Vehicle Routing ◮ Bucket graph-based labelling algorithm for the RCSP pricing [Righini and Salani, 2006] [Sadykov et al., 2017] ◮ (Dynamic) partially elementary path ( ng -path) relaxation [Baldacci et al., 2011b] [Roberti and Mingozzi, 2014] [Bulhoes et al., 2018b] ◮ Automatic dual price smoothing stabilization [Wentges, 1997] [Pessoa et al., 2017] ◮ Reduced cost fixing of (bucket) arcs in the pricing problem [Ibaraki and Nakamura, 1994] [Irnich et al., 2010] [Sadykov et al., 2017] ◮ Rounded Capacity Cuts [Laporte and Nobert, 1983] [Lysgaard et al., 2004] ◮ Limited-Memory Rank-1 Cuts [Jepsen et al., 2008] [Pecin et al., 2017b] [Pecin et al., 2017c] [Pecin et al., 2017a] ◮ Enumeration of elementary routes [Baldacci et al., 2008] ◮ Multi-phase strong branching [Pecin et al., 2017b] ◮ Generic (strong) diving heuristic [Sadykov et al., 2018] 2 / 26

  3. Motivation An expert team needs several months of work to implement a state-of-the-art Branch-Cut-and-Price algorithm Our objective A framework and a modelling tool which can be used to develop modern Branch-Cut-and-Price algorithms for specific problems faster and more easily 3 / 26

  4. Set partitioning formulation over constrained path variables, with additional constraints and variables p = 1 iff resource constrained path p ∈ P k in directed ◮ λ k graph G k = ( V k , A k ) , k ∈ K , participates in the solution. ◮ x p , k ∈ { 0 , 1 } | A k | — characteristic vector of path p ∈ P k � � min ( c k x p , k ) λ k p + f y k ∈ K p ∈P k � � � x p , k λ k 1 , = ( ≤ ) j ∈ J a p k ∈ K a ∈ E j p ∈P k p + D 0 y � � ( D k x p , k ) λ k ≥ d k ∈ K p ∈P k L k ≤ � λ k U k ≤ ∀ k ∈ K p p ∈P k N n I × R n F y ∈ λ k ∀ k ∈ K , p ∈ P k ∈ N p 4 / 26

  5. Elementarity (or packing) sets � A k , E j ⊆ ∀ j ∈ J k ∈ K For each j ∈ J , at most one arc a ∈ E j can appear in the global solution of the problem. Knowledge about elementarity sets allows us to apply important techniques, critical for obtaining the state-of-the-art performance: ◮ Partially elementary paths ( ng -paths) relaxation ◮ Limited-memory rank-1 packing cuts ◮ Enumeration of elementary routes 5 / 26

  6. Information about the graphs in the model For each graph G k , k ∈ K ◮ Sets of vertices, arcs, resources V k , A k , R k ◮ Source and the sink: v k source , v k sink ◮ Non-negative resource consumption of main resources M k ⊆ R k on arcs: q k a , r ∈ R + , a ∈ A k , r ∈ M k ◮ Cycles of zero consumption of all main resources should not exist ◮ Unrestricted resource consumption of other resources on a , r ∈ R , a ∈ A k , r ∈ R k \ M k arcs: q k ◮ Resource consumption bounds on vertices: [ l k v , r , u k v , r ] , v ∈ V k , r ∈ R k 6 / 26

  7. Example 1: Generalized Assignment Problem The problem data ◮ set J of tasks, set K of machines of capacity Q k , k ∈ K ◮ assignment cost c k j and size w k j , j ∈ J , k ∈ K Graph G k a k a k a k a k v k v k v k v k v k v k 1 + 2 + 3 + | J | + | J |− 1 0 3 | J | 1 2 . . . . . . a k a k a k a k 1 − 2 − 3 − | J |− ◮ One resource with consumption: q k j , q k j − = 0, j ∈ J j + = w k a k a k ◮ Consumption bounds: [ l k j , u k j ] = [ 0 , Q k ] , j ∈ J ∪ { 0 } . v k v k 7 / 26

  8. Generalized Assignment: formulation � � min ( c k x p , k ) λ k p k ∈ K p ∈P k � � x p , k j + λ k 1 , j ∈ J = p a k k ∈ K p ∈P k � λ k 1 ≤ ∀ k ∈ K p p ∈P k λ k ∀ k ∈ K , p ∈ P k ∈ N p Elementarity sets � � a k j ∈ J E j = k ∈ K , j + 8 / 26

  9. Example 2: Bin Packing and Vector Packing The problem data ◮ set J of items, bin capacity Q 1 (and Q 2 ) ◮ item weights w j , 1 (and w j , 2 ) Graph G ◮ | J | + 2 nodes : v source = v 0 , v 1 , . . . , v | J | , v sink = v | J | + 1 ◮ O ( | J | 2 ) arcs : a j ′ j = ( v j ′ , v j ) , j ′ , j ∈ J ∪ { 0 , | J | + 1 } , j ′ < j . ◮ One (two) resources with consumption q a j ′ j , 1 = w j 1 ( q a j ′ j , 2 = w j 2 ) ◮ Consumption bounds: [ l v j , 1 , u v j , 1 ] = [ 0 , Q 1 ] , [ l v j , 2 , u v j , 2 ] = [ 0 , Q 2 ] , j ∈ J ∪ { 0 , | J | + 1 } 9 / 26

  10. Bin Packing and Vector Packing: formulation x p � � min a 0 j λ p p ∈P j ∈ J x p � � 1 , = j ∈ J a j ′ j λ p p ∈P j ′ ∈ J : j ′ < j ∈ ∀ p ∈ P λ p N , Elementarity sets � � j ∈ J E j = a j ′ j j ′ ∈ J , j ′ < j , 10 / 26

  11. Example 3: Team Orienteering Problem The problem data ◮ Set J of locations, start and end points, m team members ◮ Profits c j , j ∈ J , maximum tour length Q . Graph G ◮ | J | + 2 nodes : v source = v 0 , v 1 , . . . , v | J | , v sink = v | J | + 1 . ◮ O ( | J | 2 ) arcs : a j ′ j = ( v j ′ , v j ) , j ′ ∈ J ∪ { 0 } , j ∈ J ∪ {| J | + 1 } . ◮ One resource: q a j ′ j = Euclidean distance between j ′ and j ◮ Consumption bounds: [ l v j , u v j ] = [ 0 , Q ] , j ∈ J ∪ { 0 , | J | + 1 } . Variants ◮ Capacitated Team Orienteering Problem (CTOP) ◮ Capacitated Profitable Tour Problem (CPTP) 11 / 26

  12. Team Orienteering Problem: formulation � min c j y j j ∈ J x p � � 1 , j ∈ J a j ′ j λ p + y j = j ′ ∈ J ∪{ 0 } p ∈P � = m , λ p p ∈P { 0 , 1 } y j ∈ ∀ j ∈ J ∈ ∀ p ∈ P λ p N Elementarity sets � � E j = a j ′ j j ′ ∈ J ∪{ 0 } , j ∈ J 12 / 26

  13. Example 4: Pickup and Delivery with Time Windows The problem data ◮ Set J of requests, set I of pickup ( I p ), delivery ( I d ) and depot ( j = 0 , | I | − 1) points, distances d i ′ i , i ′ , i ∈ I ◮ m vehicles with capacity Q and fixed cost f ◮ Request sizes w j , j ∈ J . ◮ Time windows [ b i , e i ] and service times s i , i ∈ I . Graph G ◮ | I | nodes : v source = v 0 , v 1 , . . . , v sink = v | I |− 1 . ◮ O ( | I | 2 ) arcs : a j ′ j = ( v j ′ , v j ) , j ′ ∈ I \ {| I | − 1 } , j ∈ J \ { 0 } . ◮ 2 + | J | resources : ◮ Time (main) resource: q a i ′ i , 1 = s i ′ + d i ′ i � w i , i ∈ I p , ◮ Capacity resource: q a i ′ i , 2 = i ∈ I d . − w i −| J | , ◮ One binary resource for every request 13 / 26

  14. Pickup and Delivery with Time Windows: formulation   �  � f · x p � min  λ p a 0 i + d i ′ i x a i ′ i i ∈ I \{ 0 } p ∈P i ′ , i ∈ I � � x p 1 , i ∈ I p = a i ′ i λ p p ∈P i ′ ∈ I \{ i } � ≤ λ p m , p ∈P ∈ ∀ p ∈ P λ p N Elementarity sets i ∈ I p E i = { a i ′ i } i ′ ∈ I \{ i } , 14 / 26

  15. Non-robust rank-1 cuts [Jepsen et al., 2008] [Pecin et al., 2017c] Each cut η ∈ N is obtained by a Chvátal-Gomory rounding of a set C η ⊆ J of set packing constraints using a vector of multipliers ρ η (0 < ρ η j < 1 , j ∈ C η )         x p � � � � �  ρ η  λ p ≤   ρ η  a  j j k ∈ K p ∈P k j ∈C η a ∈ E j j ∈C η ◮ Each active cut η ∈ N adds one resource in the RCSP pricing ◮ Limited-memory technique [Pecin et al., 2017b] is critical to reduce the impact on the pricing problem difficulty: for each E j , j ∈ C η , a memory (on vertices or on arcs) is defined at the separation, making the resource local 15 / 26

  16. Enumeration of elementary paths [Baldacci et al., 2008] ◮ We try to enumerate all elementary paths with reduced cost smaller than the current primal-dual gap in each graph G k ◮ A labelling algorithm is used for enumeration ◮ If G k is enumerated, the pricing can be done by inspection ◮ If all graphs are enumerated and the total number of paths is “small”, the problem can be finished by a MIP solver Sufficient condition to apply ◮ Arcs in the same elementarity set should have the same coefficients in the “core” master constraints (excluding cuts and branching constraints) ◮ Arcs not in an elementarity set should not participate in the “core” master constraints 16 / 26

  17. Pricing: structure of RCSP problem instances ◮ A directed graph G = ( V , A ) . ◮ Unrestricted in sign reduced costs ¯ c a on arcs a ∈ A ◮ Main resources with non-negative resource consumption d a , r ∈ R + , a ∈ A , r ∈ M ◮ Possibly other resources with unrestricted resource consumption d a , r ∈ R , a ∈ A , r ∈ R \ M . ◮ Up to ≈ 500 − 1000 of (more or less) local binary or (small) integer resources We want to Find a walk from the source to the sink minimizing the total reduced cost respecting the resource constrains, as well as many other (up to 1000) different near-optimal feasible walks 17 / 26

  18. Pricing: original graph v = 1 v = 3 source sink v = 2 v = 4 18 / 26

  19. Pricing : the bucket graph [Sadykov et al., 2017] Example with two main resources v = 1 v = 3 source sink v = 2 v = 4 u 2 resource 2 l 2 resource 1 l 1 l 2 19 / 26

  20. Pricing : the bucket graph [Sadykov et al., 2017] Example with two main resources ˜ d 1 bucket v = 1 v = 3 steps ˜ d 2 source sink v = 2 v = 4 u 2 resource 2 l 2 resource 1 l 1 l 2 19 / 26

Recommend


More recommend