A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints
A. Juan, J. Faulin, and O. Domínguez 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
Department of Statistics and Operations Research
Public University of Navarre, Pamplona, SPAIN
• 2LCVRP Problem description
• Metaheuristic Multi-Start algorithm
• Computational results
• Conclusions and future research
2/20
Multi-Start algorithm to solve the 2LCVRP
Table of Contents
• 2LCVRP Problem description
• Metaheuristic Multi-Start algorithm
• Computational results
• Conclusions and future research
3/20
Table of Contents
• 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
2LCVRP Problem description
• 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
2LCVRP Problem description
• 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
2LCVRP Problem description
• 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
2LCVRP Problem description
• 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
2LCVRP Problem description
D=10
D=10D=10
6
8
5
32
1
DEPOT
7
4
2LCVRP Problem description
X
5/20
• 2LCVRP Problem description
• Metaheuristic Multi-Start algorithm
• Computational results
• Conclusions and future research
6/20
Table of Contents
• 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
Background
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
Juan et al. (2011)
8/20
11)( kkXP
sk ,...,2,1
s
k
k
sk
k
1
1
1
1 111
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 with0.10 < α < 0.20
Good results with0.10 < α < 0.20
9/20
Juan et al. (2011)
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 #1: Hash Table
1. Select routes on the SE area(area below the diagonal)
2. Consider the new CVRP subproblem
3. Solve the subproblem and re-construct the solution
Improvement #2: SplittingImprovement #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
Juan et al. (2011)
10/20
Burke et al. (2004)
d1 + d2 + … + dn ≤ D
11/20
w1l1 + w2l2 + … + wnln ≤ WL
ALSO BIASED RANDOMIZED!!
Pseudo-code
procedure MultiStart-BiasedRand (inputs, alpha, beta, maxPackIter, maxSplitIter)01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol02 savings <- calcSortedSavingsList(inputs) % compute the sorted savings list
05 while {ending condition is not met} do % time- or iteration-based condition06 randSavings <- biasedRand(savings, alpha) % biased randomization of savings list07 newSol <- packAndRoute(dummySol, randSavings, beta, maxPackIter)
12/20
01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol02 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 condition06 randSavings <- biasedRand(savings, alpha) % biased randomization savings list
Pseudo-code
12/20
procedure packAndRoute(dummySol, randSavings, beta, maxPackIter)01 newSol <- dummySol02 while {savings list is not empty} do03 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 weight08 if {demand <= vehicleCapacity} then09 reqLength <- Infinite10 iter <- 1 % iteratively solve the packing problem to determine the required length of the track11 while {iter <= maxPackIter} do 12 randItems <- biasedRand(getItems(newRoute), beta)13 reqLength <- bestFit(randItems, vehicleWidth) % Apply Best-Fit with item rotation14 if {reqLength <= vehicleLength} then15 newSol <- updateRoute(iR, jR, newRoute)16 exit while17 end if18 iter <- iter + 119 end while20 end if21 end while22 return newSolend procedure
Pseudo-code
procedure MultiStart-BiasedRand (inputs, alpha, beta, maxPackIter, maxSplitIter)01 dummySol <- calcDummySol(inputs) % generate the dummy feasible sol02 savings <- calcSortedSavingsList(inputs) % compute the sorted savings list03 cwsSol <- packAndRoute(dummySol, savings, beta, maxPackIter) % reference sol04 bestSol <- cwsSol05 while {ending condition is not met} do % time- or iteration-based condition06 randSavings <- biasedRand(savings, alpha) % biased randomization of savings list07 newSol <- packAndRoute(dummySol, randSavings, beta, maxPackIter) % new random sol08 newSol <- cache(newSol) % use the fast cache-based local search09 if {newSol is a 'promising sol'} then % e.g. cost(newSol) < cost(cwsSol) % use the splitting-based local search10 newSol <- splitting(newSol, alpha, beta, maxPackIter, maxSplitIter) 11 end if12 if {cost(newSol) < cost(bestSol)} then13 bestSol <- newSol14 end if15 end while16 return bestSolend procedure
12/20
08 newSol <- cache(newSol) % use the fast cache-based local search09 if {newSol is a 'promising sol'} then % e.g. cost(newSol) < cost(cwsSol) % use the splitting-based local search10 newSol <- splitting(newSol, alpha, beta, maxPackIter, maxSplitIter)
Multi-Start algorithm
13/20
Edge Saving(1,2) (5,6) (6,7) (4,5) (3,4)
… (1,5) (4,8)
6
8
5
32
1
D
7
4
Multi-Start algorithm
14/20
Edge Saving(1,2) (6,7) (5,6) (4,5) (3,4)
… (1,5) (4,8)
6
8
5
32
1
D
7
4
Edge(1,2)(5,6)(6,7)(4,5)(3,4)
…(1,5)(4,8)
• 2LCVRP Problem description
• Metaheuristic Multi-Start algorithm
• Computational results
• Conclusions and future research
15/20
Table of Contents
16/20
Fuellerers’ benchmarks
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.
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.
17/20
Computational Experience
Class InstanceBEST10 AVG10
Fuellerer MS Gap Fuellerer MS Gap
1
E016-03m 278.73 278.73 0.00% 278.73 278.73 0.00%
E016-05m 334.96 334.96 0.00% 334.96 334.96 0.00%
E023-05s 568.56 568.56 0.00% 568.56 568.56 0.00%
E031-09h 610.00 610.00 0.00% 611.22 610.00 -0.20%
E033-04g 837.67 837.67 0.00% 837.67 837.67 0.00%
E041-14h 861.79 861.79 0.00% 862.37 861.96 -0.05%
E076-07s 690.20 687.60 -0.38% 691.94 687.60 -0.63%
E101-10c 819.56 819.56 0.00% 819.56 819.56 0.00%
E256-14k 616.69 613.00 -0.60% 632.68 619.39 -2.10%
Averages -0.11% -0.33%
Class InstanceBEST10 AVG10
Fuellerer MS Gap Fuellerer MS Gap
2
E016-03m 278.73 278.73 0.00% 278.73 278.73 0.00%
E016-05m 334.96 334.96 0.00% 334.96 334.96 0.00%
E023-05s 674.19 665.17 -1.34% 674.20 665.17 -1.34%
E031-09h 610.00 610.00 0.00% 611.23 610.00 -0.20%
E033-04g 1032.01 1028.08 -0.38% 1033.53 1028.08 -0.53%
E041-14h 863.27 870.86 0.88% 863.68 872.67 1.04%
E076-07s 978.07 971.88 -0.63% 985.32 975.85 -0.96%
E101-10c 1267.04 1261.61 -0.43% 1267.86 1264.55 -0.26%
E256-14k 1702.33 1646.06 -3.31% 1713.10 1652.73 -3.52%
Averages -0.58% -0.64%
Class InstanceBEST10 AVG10
Fuellerer MS Gap Fuellerer MS Gap
3
E016-03m 284.23 284.52 0.10% 284.46 284.52 0.02%
E016-05m 352.16 352.16 0.00% 352.16 352.16 0.00%
E023-05s 738.43 724.16 -1.93% 739.77 724.16 -2.11%
E031-09h 610.00 610.00 0.00% 613.05 610.00 -0.50%
E033-04g 996.11 1003.08 0.70% 996.26 1003.08 0.68%
E041-14h 862.62 861.79 -0.10% 862.62 861.87 -0.09%
E076-07s 1114.16 1037.63 -6.87% 1116.61 1037.93 -7.05%
E101-10c 1344.32 1360.72 1.22% 1356.53 1362.47 0.44%
E256-14k 1791.54 1743.24 -2.70% 1801.23 1747.46 -2.99%
Averages -1.06% -1.29%
Class InstanceBEST10 AVG10
Fuellerer MS Gap Fuellerer MS Gap
4
E016-03m 282.95 294.25 3.99% 282.95 294.25 3.99%
E016-05m 342.00 342.00 0.00% 342 342.00 0.00%
E023-05s 692.47 697.92 0.79% 692.47 697.92 0.79%
E031-09h 614.24 610.23 -0.65% 614.73 610.23 -0.73%
E033-04g 981.90 982.16 0.03% 981.90 982.16 0.03%
E041-14h 861.79 861.79 0.00% 862.45 861.79 -0.08%
E076-07s 976.48 1055.91 8.13% 983.11 1058.91 7.71%
E101-10c 1414.28 1396.19 -1.28% 1420.62 1401.35 -1.36%
E256-14k 1683.25 1631.11 -3.10% 1691.06 1638.66 -3.10%
Averages 0.88% 0.81%
Class InstanceBEST10 AVG10
Fuellerer MS Gap Fuellerer MS Gap
5
E016-03m 278.73 278.73 0.00% 278.91 278.73 -0.06%
E016-05m 334.96 334.96 0.00% 334.96 334.96 0.00%
E023-05s 609.90 621.85 1.96% 609.90 621.85 1.96%
E031-09h 610.23 610.00 -0.04% 613.43 610.00 -0.56%
E033-04g 889.20 900.25 1.24% 911.42 903.79 -0.84%
E041-14h 861.79 861.79 0.00% 862.02 861.87 -0.02%
E076-07s 888.26 940.34 5.86% 891.58 941.63 5.61%
E101-10c 1231.72 1230.33 -0.11% 1237.27 1233.60 -0.30%
E256-14k 1505.54 1499.07 -0.43% 1522.62 1502.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.htmlIntel Xeon, 2.0 GHz, 4 GB RAM
www.or.deis.unibo.it/research.htmlIntel Xeon, 2.0 GHz, 4 GB RAM
18/20
Computational Experience
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.
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.htmlIntel Xeon, 2.0 GHz, 4 GB RAM Maximum running time: 330 sec.
www.or.deis.unibo.it/research.htmlIntel Xeon, 2.0 GHz, 4 GB RAM Maximum running time: 330 sec.
Base InstanceAverage GAP for 5 classes
BEST10 AVG10
E016-03m 0.82% 0.79%
E016-05m 0.00% 0.00%
E023-05s -0.10% -0.14%
E031-09h -0.14% -0.44%
E033-04g 0.32% -0.13%
E041-14h 0.16% 0.16%
E076-07s 1.22% 0.94%
E101-10c -0.12% -0.30%
E256-14k -2.03% -2.60%
Averages 0.01% -0.19%
• 2LCVRP Problem description
• Metaheuristic Multi-Start algorithm
• Computational results
• Conclusions and future research
19/20
Table of Contents
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
Conclusions
20/20
Future Research
.
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
A Multi-Start Approach for Optimizing Routing Networks with Vehicle Loading Constraints
A. Juan, J. Faulin, and O. Domínguez 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
Department of Statistics and Operations Research
Public University of Navarre, Pamplona, SPAIN
Thank you for your attention!
Thank you for your attention!