270 likes | 381 Views
Applying a Multi-Start algorithm to solve the CVRP with 2D loading constraints. IN3-Open University of Catalonia OR- Public University of Navarra. Angel Juan, Alba Agustín, Oscar Domínguez, Cesar Cuenca and Javier Faulin. HAROSA, Barcelona, Spain , 13-15 June 2012.
E N D
Applying a Multi-Start algorithm to solve the CVRP with 2D loading constraints IN3-Open University of Catalonia OR-PublicUniversityof Navarra Angel Juan, Alba Agustín, Oscar Domínguez, Cesar Cuenca and Javier Faulin HAROSA, Barcelona, Spain, 13-15 June 2012 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 2/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 3/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. Thenvehicleshaveequalcapacity D, length L and width W. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswithitsweight d, lenght l and width w associated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. Thenvehicleshaveequalcapacity D, length L and width W. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswithitsweight d, lenght l and width w associated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. Thenvehicleshaveequalcapacity D, length L and width W. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswithitsweight d, lenght l and width w associated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. Thenvehicleshaveequalcapacity D, length L and width W. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswithitsweight d, lenght l and width w associated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. Thenvehicleshaveequalcapacity D, length L and width W. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswithitsweight d, lenght l and width w associated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansallclientsserved, withitems no overlap in vehicles, and minimizingdistancecost. 4/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
2LCVRP Problemdescription X DEPOT 4 7 3 2 8 6 1 5 D=10 D=10 D=10 5/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 6/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Background • Clarke G and Wright JW (1964). Scheduling of vehicles from a central depot to a number of delivery points. Operations Research 12:568-81. • Juan A, Faulin J, Jorba J, Riera D, Masip D and Barrios B (2011). On the use of Monte Carlo simulation, cache and splitting techniques to improve the Clarke and Wright saving heuristics. Journal of the Operational Research Society 62(6): 1085-1097. • Burke EK, Kendall G and Whitwell G (2004). A new placement heuristic for the orthogonal stock-cutting problem. Operations Research, 52:655–671. 7/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Clarke and Wright (1964) DistanceMatrix DEPOT 6 8 5 3 2 1 7 4 SavingDistanceMatrix Dummysolution 8/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Juan et al. (2011) Metaheuristic Heuristic Juan et al. (2011): savings are randomly sorted from a quasi-geometric distribution Clarke and Wright (1964): the first edge is the one with the most savings • Merge the routes in the sorted savings list order, if no constraint is violated! 9/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Burke et al. (2004) w1l1+ w2l2 + … + wnln≤ WL d1+ d2 + … + dn≤ D ALSO BIASED RANDOMIZED!! 10/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Pseudo-code procedure MultiStart-BiasedRand (inputs, alpha, beta, maxPackIter, maxSplitIter) 05 while {ending condition is not met} do% time- or iteration-based condition 06 randSavings <- biasedRand(savings, alpha) % biased randomization savings list procedure MultiStart-BiasedRand (inputs, alpha, beta, maxPackIter, maxSplitIter) 01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol 02 savings <- calcSortedSavingsList(inputs) % compute the sorted savings list 05 while {ending condition is not met} do% time- or iteration-based condition 06 randSavings <- biasedRand(savings, alpha) % biased randomization of savings list 07 newSol <- packAndRoute(dummySol, randSavings, beta, maxPackIter) 01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol 02 savings <- calcSortedSavingsList(inputs) % compute the sorted savings list 07 newSol <- packAndRoute(dummySol, randSavings, beta, maxPackIter) 11/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Pseudo-code procedure packAndRoute(dummySol, randSavings, beta, maxPackIter) 01 newSol <- dummySol 02 while {savings list is not empty} do 03 nextEdge <- extractNextEdge(randSavings) 04 iR <- getRoute(origin(nextEdge)) 05 jR <- getRoute(end(nextEdge)) 06 newRoute <- merge(iR, jR) 07 demand <- calcDemand(newRoute) % here demand is measured in terms of weight 08 if {demand <= vehicleCapacity} then 09 reqLength <- Infinite 10 iter <- 1 % iteratively solve the packing problem to determine the required length of the track 11 while {iter <= maxPackIter} do 12 randItems <- biasedRand(getItems(newRoute), beta) 13 reqLength <- bestFit(randItems, vehicleWidth) % Apply Best-Fit with item rotation 14 if {reqLength <= vehicleLength} then 15 newSol <- updateRoute(iR, jR, newRoute) 16 exit while 17 end if 18 iter <- iter + 1 19 end while 20 end if 21 end while 22 returnnewSol end procedure 11/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Pseudo-code procedure MultiStart-BiasedRand (inputs, alpha, beta, maxPackIter, maxSplitIter) 01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol 02 savings <- calcSortedSavingsList(inputs) % compute the sorted savings list 03 cwsSol <- packAndRoute(dummySol, savings, beta, maxPackIter)% reference sol 04 bestSol <- cwsSol 05 while {ending condition is not met} do% time- or iteration-based condition 06 randSavings <- biasedRand(savings, alpha) % biased randomization of savings list 07 newSol <- packAndRoute(dummySol, randSavings, beta, maxPackIter)% new random sol 08 newSol <- cache(newSol)% use the fast cache-based local search 09 if {newSol is a 'promising sol'} then% e.g. cost(newSol) < cost(cwsSol) % use the splitting-based local search 10 newSol <- splitting(newSol, alpha, beta, maxPackIter, maxSplitIter) 11 end if 12 if {cost(newSol) < cost(bestSol)} then 13 bestSol <- newSol 14 end if 15 end while 16 returnbestSol end procedure 08 newSol <- cache(newSol)% use the fast cache-based local search 09 if {newSol is a 'promising sol'} then% e.g. cost(newSol) < cost(cwsSol) % use the splitting-based local search 10 newSol <- splitting(newSol, alpha, beta, maxPackIter, maxSplitIter) 11/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Multi-Startalgorithm D 6 8 5 3 2 1 7 4 12/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Multi-Startalgorithm D 6 8 5 3 2 1 7 4 12/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 14/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Fuellerers’ benchmarks www.or.deis.unibo.it/research.html NAME: E016-03m 16 customers and solution with 3 vehicles CLASS:5 number of items for each customer as uniform from 1 to 5 ORIENTATION: randomly as vertical, homogeneous and horizontal LOADING AREA: H=40 and W=20 CLASS1: each customer demand 1 item 1X1 dimensions 15/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
ComputationalExperience www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM 16/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
ComputationalExperience www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM 16/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 17/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Conclusions TheProposedMulti-Startalgorithm: • isanefficient and simple (parameter-less) method • solves 2LVRP in few minutes • considerssimultaneouslybothrouting and packingproblems • anyefficientpackingmethodisaccepted, i.e. Best-Fit • provides a set of differentsolutionsto be candidatestooptimality • isabletoconsiderparallelizationtoo. 18/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
FutureResearch Facingsomerealistics cases, wewill: • analizemethodologiestoimprovepackingprocess • include 3D items and issues related with the center of gravity of the load • dealwithothervehicleroutingproblemmodels, such as multi-depot, time windows and stochasticsdemands . 19/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin
Applying a Multi-Start algorithm to solve the CVRP with 2D loading constraints IN3-Open University of Catalonia OR-PublicUniversity Of Navarra Angel Juan, Alba Agustín, Oscar Domínguez, Cesar Cuenca and Javier Faulin HAROSA, Barcelona, Spain, 13-15 June 2012 Thanks! 20/20 Multi-Start algorithm to solve the 2LCVRP A. Juan, A. Agustín, O. Domínguez, C. Cuenca, J. Faulin