Presentation is loading. Please wait.

Presentation is loading. Please wait.

A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints Angel Juan Oscar Domínguez Department.

Similar presentations


Presentation on theme: "A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints Angel Juan Oscar Domínguez Department."— Presentation transcript:

1 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

2 2LCVRP Problem description Metaheuristic Multi-Start algorithm Computational results Conclusions and future research 2/20

3 2LCVRP Problem description Metaheuristic Multi-Start algorithm Computational results Conclusions and future research 3/20

4 We have a homogeneous fleet located in a depot. Then vehicles have equal capacity D, length L and width W. There is a set of customers to be served by only one vehicle. Each customer demand is defined by a set of items with its weight d, lenght l and width w associated. The proposed metaheuristic method will reach the (pseudo)- optimal routes. Optimal routes means serving all clients minimizing distance cost. 4/20

5 We have a homogeneous fleet located in a depot. Then vehicles have equal capacity D, length L and width W. There is a set of customers to be served by only one vehicle. Each customer demand is defined by a set of items with its weight d, lenght l and width w associated. The proposed metaheuristic method will reach the (pseudo)- optimal routes. Optimal routes means serving all clients minimizing distance cost. 4/20

6 We have a homogeneous fleet located in a depot. Then vehicles have equal capacity D, length L and width W. There is a set of customers to be served by only one vehicle. Each customer demand is defined by a set of items with their weight d, lenght l and width w associated. The proposed metaheuristic method will reach the (pseudo)- optimal routes. Optimal routes means serving all clients minimizing distance cost. 4/20

7 We have a homogeneous fleet located in a depot. Then vehicles have equal capacity D, length L and width W. There is a set of customers to be served by only one vehicle. Each customer demand is defined by a set of items with their weight d, lenght l and width w associated. The proposed metaheuristic method will reach the (pseudo)- optimal routes. Optimal routes means serving all clients minimizing distance cost. 4/20

8 We have a homogeneous fleet located in a depot. Then vehicles have equal capacity D, length L and width W. There is a set of customers to be served by only one vehicle. Each customer demand is defined by a set of items with their weight d, lenght l and width w associated. The proposed metaheuristic method will reach the (pseudo)- optimal routes. Optimal routes means serving all clients minimizing distance cost. 4/20

9 D=10 685321 DEPOT 74 X 5/20

10 2LCVRP Problem description Metaheuristic Multi-Start algorithm Computational results Conclusions and future research 6/20

11 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

12  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. Start savings(i, j) Savings list Initial solution Select first edge & Merge List empty? End 8/20

13  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 Good results with 0.10 < α < 0.20 9/20

14 1.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 Improvement #1: Hash Table Improvement #2: Splitting 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 10/20

15 d 1 + d 2 + … + d n ≤ D 11/20 w 1 l 1 + w 2 l 2 + … + w n l n ≤ WL ALSO BIASED RANDOMIZED!!

16 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) 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) 12/20 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) 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

17 12/20 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 return newSol end procedure 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 return newSol end procedure

18 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 return bestSol end procedure 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 return bestSol end procedure 12/20 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)

19 13/20 EdgeSaving (1,2) (5,6) (6,7) (4,5) (3,4) … (1,5) (4,8) 685321 D 74

20 14/20 EdgeSaving (1,2) (6,7) (5,6) (4,5) (3,4) … (1,5) (4,8) 685321 D 74 Edge (1,2) (5,6) (6,7) (4,5) (3,4) … (1,5) (4,8)

21 2LCVRP Problem description Metaheuristic Multi-Start algorithm Computational results Conclusions and future research 15/20

22 16/20 NAME: E016-03m CLASS: 5 16 customers and solution with 3 vehicles randomly as vertical, homogeneous and horizontalORIENTATION: number of items for each customer as uniform from 1 to 5 H=40 and W=20LOADING AREA: www.or.deis.unibo.it/research.html CLASS 1: each customer demand 1 item 1X1 dimensions Fuellerer G, 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.

23 17/20 ClassInstance BEST10AVG10 FuellererMSGapFuellererMSGap 1 E016-03m278.73 0.00%278.73 0.00% E016-05m334.96 0.00%334.96 0.00% E023-05s568.56 0.00%568.56 0.00% E031-09h610.00 0.00%611.22610.00-0.20% E033-04g837.67 0.00%837.67 0.00% E041-14h861.79 0.00%862.37861.96-0.05% E076-07s690.20687.60-0.38%691.94687.60-0.63% E101-10c819.56 0.00%819.56 0.00% E256-14k616.69613.00-0.60%632.68619.39-2.10% Averages -0.11% -0.33% ClassInstance BEST10AVG10 FuellererMSGapFuellererMSGap 2 E016-03m278.73 0.00%278.73 0.00% E016-05m334.96 0.00%334.96 0.00% E023-05s674.19665.17-1.34%674.20665.17-1.34% E031-09h610.00 0.00%611.23610.00-0.20% E033-04g1032.011028.08-0.38%1033.531028.08-0.53% E041-14h863.27870.860.88%863.68872.671.04% E076-07s978.07971.88-0.63%985.32975.85-0.96% E101-10c1267.041261.61-0.43%1267.861264.55-0.26% E256-14k1702.331646.06-3.31%1713.101652.73-3.52% Averages -0.58% -0.64% ClassInstance BEST10AVG10 FuellererMSGapFuellererMSGap 3 E016-03m284.23284.520.10%284.46284.520.02% E016-05m352.16 0.00%352.16 0.00% E023-05s738.43724.16-1.93%739.77724.16-2.11% E031-09h610.00 0.00%613.05610.00-0.50% E033-04g996.111003.080.70%996.261003.080.68% E041-14h862.62861.79-0.10%862.62861.87-0.09% E076-07s1114.161037.63-6.87%1116.611037.93-7.05% E101-10c1344.321360.721.22%1356.531362.470.44% E256-14k1791.541743.24-2.70%1801.231747.46-2.99% Averages -1.06% -1.29% ClassInstance BEST10AVG10 FuellererMSGapFuellererMSGap 4 E016-03m282.95294.253.99%282.95294.253.99% E016-05m342.00 0.00%342342.000.00% E023-05s692.47697.920.79%692.47697.920.79% E031-09h614.24610.23-0.65%614.73610.23-0.73% E033-04g981.90982.160.03%981.90982.160.03% E041-14h861.79 0.00%862.45861.79-0.08% E076-07s976.481055.918.13%983.111058.917.71% E101-10c1414.281396.19-1.28%1420.621401.35-1.36% E256-14k1683.251631.11-3.10%1691.061638.66-3.10% Averages 0.88% 0.81% ClassInstance BEST10AVG10 FuellererMSGapFuellererMSGap 5 E016-03m278.73 0.00%278.91278.73-0.06% E016-05m334.96 0.00%334.96 0.00% E023-05s609.90621.851.96%609.90621.851.96% E031-09h610.23610.00-0.04%613.43610.00-0.56% E033-04g889.20900.251.24%911.42903.79-0.84% E041-14h861.79 0.00%862.02861.87-0.02% E076-07s888.26940.345.86%891.58941.635.61% E101-10c1231.721230.33-0.11%1237.271233.60-0.30% E256-14k1505.541499.07-0.43%1522.621502.69-1.31% Averages 0.94% 0.50% Characteristics of the computational results: 1)10 completed runs (replicas) per instance and class 2) Maximum running time per replica: 500 seconds 3)Each instance-class combination was run for a total maximum time of 83 minutes (1.4 hours) Characteristics of the computational results: 1)10 completed runs (replicas) per instance and class 2) Maximum running time per replica: 500 seconds 3)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 www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM

24 18/20 Fuellerer G, 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. www.or.deis.unibo.it/research.html Intel Xeon, 2.0 GHz, 4 GB RAM Maximum running time: 330 sec. Base Instance Average GAP for 5 classes BEST10AVG10 E016-03m0.82%0.79% E016-05m0.00% E023-05s-0.10%-0.14% E031-09h-0.14%-0.44% E033-04g0.32%-0.13% E041-14h0.16% E076-07s1.22%0.94% E101-10c-0.12%-0.30% E256-14k-2.03%-2.60% Averages0.01%-0.19%

25 2LCVRP Problem description Metaheuristic Multi-Start algorithm Computational results Conclusions and future research 19/20

26 The Proposed Multi-Start algorithm: is an efficient and simple (small number of parameters) method solves 2LVRP in few minutes considers simultaneously both routing and packing problems any efficient packing method is accepted, i.e. Best-Fit provides a set of different solutions to be candidates to optimality is able to consider parallelization too. 19/20

27 20/20. Facing some realistics cases, we will: analize methodologies to improve packing process include 3D items and issues related with the center of gravity of the load deal with other vehicle routing problem models, such as multi-depot, time windows and stochastics demands

28 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!


Download ppt "A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints Angel Juan Oscar Domínguez Department."

Similar presentations


Ads by Google