280 likes | 360 Views
A Multi-Start Approach for Optimizing R outing Networks with Vehicle Loading Constraints. Angel Juan Oscar Domínguez http://ajuanp.wordpress.com Department of Computer Science Open University of Catalonia, Barcelona, SPAIN. Javier Faulin javier.faulin@unavarra.es
E N D
A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints Angel Juan Oscar Domínguez http://ajuanp.wordpress.com Department of Computer Science Open University of Catalonia, Barcelona, SPAIN Javier Faulin javier.faulin@unavarra.es Department of Statistics and Operations Research Public University of Navarre, Pamplona, SPAIN A. Juan, J. Faulin, and O. Domínguez A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch Multi-Start algorithm to solve the 2LCVRP 2/20
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 3/20
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. ThenvehicleshaveequalcapacityD, lengthL and widthW. • 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
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. ThenvehicleshaveequalcapacityD, lengthL and widthW. • 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
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. ThenvehicleshaveequalcapacityD, lengthL and widthW. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswiththeirweightd, lenghtl and widthwassociated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. ThenvehicleshaveequalcapacityD, lengthL and widthW. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswiththeirweightd, lenghtl and widthwassociated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20
2LCVRP Problemdescription • Wehave a homogeneousfleetlocated in a depot. ThenvehicleshaveequalcapacityD, lengthL and widthW. • Thereis a set of customersto be servedbyonlyonevehicle. • Eachcustomerdemandisdefinedby a set of itemswiththeirweightd, lenghtl and widthwassociated. • Theproposedmetaheuristicmethodwillreachthe (pseudo)-optimalroutes. • Optimalroutesmeansservingallclientsminimizingdistancecost. 4/20
2LCVRP Problemdescription X DEPOT 6 8 5 3 2 1 7 4 D=10 D=10 D=10 5/20
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 6/20
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. • Burke EK, Kendall G and Whitwell G (2004). A new placement heuristic for the orthogonal stock-cutting problem. Operations Research, 52:655–671. • 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. 7/20
Juan et al. (2011) Start • Our approach will be based on the Clarke and Wright’s savings (CWS) algorithm (Clarke & Wright 1964). • This parallel version of the CWS heuristic usually provides ‘acceptable solutions’ (average gap between 5% and 10%), especially for small and medium-size problems. • Reference: Juan, A., Faulin, J., Ruiz, R., Barrios, B., Caballe, S., 2009. The SR-GCWS hybrid algorithm for solving the capacitated vehicle routing problem. Applied Soft Computing, 10, 215-224. savings(i, j) Savings list Initial solution Select first edge & Merge Listempty? End 8/20
Juan et al. (2011) • CWS the first edge (the one with the most savings) is the one selected. • SR-GCWS introduces randomness in this process by using a quasi-geometric statistical distribution edges with more savings will be more likely to be selected at each step, but all edges in the list are potentially eligible. • Notice: Each time SR-GCWS is run, a random feasible solution is obtained. By construction, chances are that this solution outperforms the CWS one hundreds of ‘good’ solutions can be obtained after some seconds/minutes. Good results with 0.10 < α < 0.20 9/20
Juan et al. (2011) Improvement #1: Hash Table • Adding ‘memory’ to our algorithm with a hash table: • A hash table is used to save, for each generated route, the best-known sequence of nodes (this will be used to improve new solutions) • ‘Fast’ method that provides small improvements on the average 2. Splitting (divide-and-conquer)method: • Given a global solution, the instance is sub-divided in smaller instances and then the algorithm is applied on each of these smaller instances • ‘Slow’ method that can provide significant improvements Improvement #2: Splitting 10/20
Burke et al. (2004) w1l1+ w2l2 + … + wnln≤ WL d1+ d2 + … + dn≤ D ALSO BIASED RANDOMIZED!! 11/20
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) 12/20
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 12/20
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) 12/20
Multi-Startalgorithm D 6 8 5 3 2 1 7 4 13/20
Multi-Startalgorithm D 6 8 5 3 2 1 7 4 14/20
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 15/20
FuellererG, Doerner K, Hartl R and Iori M (2009). Ant colony optimization for the two-dimensional loading vehicle routing problem. Computers and Operations Research 36:655–673. 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 16/20
ComputationalExperience Characteristics of the computational results: 10 completed runs (replicas) per instance and class Maximum running time per replica: 500 seconds Each instance-class combination was run for a total maximum time of 83 minutes (1.4 hours) www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM 17/20
ComputationalExperience FuellererG, Doerner K, Hartl R and Iori M (2009). Ant colony optimization for the two-dimensional loading vehicle routing problem. Computers and Operations Research 36:655–673. www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM Maximum running time: 330 sec. 18/20
Table of Contents • 2LCVRP Problemdescription • MetaheuristicMulti-Startalgorithm • Computationalresults • Conclusions and futureresearch 19/20
Conclusions TheProposedMulti-Startalgorithm: • isanefficient and simple (smallnumber of parameters) method • solves 2LVRP in few minutes • considerssimultaneouslybothrouting and packingproblems • anyefficientpackingmethodisaccepted, i.e. Best-Fit • provides a set of differentsolutionsto be candidatestooptimality • isabletoconsiderparallelizationtoo. 19/20
FutureResearch Facingsomerealistics cases, wewill: • analizemethodologiestoimprovepackingprocess • include3D itemsand issues related with the center of gravity of the load • dealwithothervehicleroutingproblemmodels, such as multi-depot, time windows and stochasticsdemands . 20/20
A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints Angel Juan Oscar Domínguez http://ajuanp.wordpress.com Department of Computer Science Open University of Catalonia, Barcelona, SPAIN Javier Faulin javier.faulin@unavarra.es Department of Statistics and Operations Research Public University of Navarre, Pamplona, SPAIN Thank you for your attention! A. Juan, J. Faulin, and O. Domínguez A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints