Introduction and literature review
Problem description
The proposed hybrid metaheuristic
Search space
The initial solution
Neighborhoods of RVNS
-
Remove–insert move each vertex is shifted from its current location to the last position of the same route.
-
Swap-adjacent move two adjacent vertices in the same route are exchanged.
-
Swap move two vertices in the same route are exchanged.
-
2-opt move for each pair of vertices \(v_i, v_j\) in the same route, the edges emanating from them (\(v_i,v^\prime _i\)), (\(v_j, v^\prime _j\)) are removed, two edges (\(v_i, v_j\)), (\(v^\prime _i, v^\prime _j\)) are added.
-
3-opt: for each three vertices \(v_i, v_j, v_k\) in the same route, the edges emanating from them (\(v_i, v^\prime _i\)), (\(v_j, v^\prime _j\)), (\(v_k,v^\prime _k\)) are removed, three adges (\(v_i,v^\prime _j\)), (\(v_j, v^\prime _k\)), (\(v_k,v^\prime _i\)) are added.
-
Exchange-route move the two vertices of two different routes are exchanged.
-
Insert-route move a vertex is shifted from its current position to another position of the other route.
-
Cross-route move two segments \(\{v_i, v_k\}\) and \(\{v_j, v_l\}\) on two different routes are exchanged.
Tabu lists and tabu durations
-
Remove–insert move the position of vertex \(v_i\) just moved at the end of the route cannot be changed by the same type of move while it is tabu;
-
Swap-adjacent, swap move vertices \(v_i\) and \(v_j\) just swapped cannot be swapped again while they are tabu;
-
2-opt move a 2-opt move applied to vertices \(v_i\) and \(v_j\) cannot be applied again to the same vertices.
-
3-opt a 3-opt move applied to vertices \(v_i, v_j\) and \(v_k\) cannot be applied again to the same vertices.
-
Exchange-route move vertices \(v_i\) in route \(R_l\) and \(v_j\) in route \(R_h\) cannot be swapped again by the same type of move while they are tabu.
-
Insert-route move the position of vertex \(v_i\) in the route \(R_l\) just inserted to the position \({\text{jth}}\) of the route \(R_h\) cannot be changed by the same type of move while it is tabu.
-
Cross-route move two segments \(\{v_i, v_k\}\) on \(R_l\) and \(\{v_j, v_l\}\) on \(R_h\) cannot be swapped again by the same type of move while they are tabu.
Intensification and diversification
-
Shaking intra-route: We use the shaking mechanism, called double-bridge, was originally developed by [15]. The structure of the double-bridge move derives from a special 4-opt neighborhood where edges added and dropped need not be successively adjacent. This mechanism can also be seen as a permutation of two disjoint segments of a route. The double-bridge shaking is described in the Algorithm 4.
-
Shaking inter-route: We randomly choose two routes \(R_x\) and \(R_y\) in the solution, then exchange a number of vertices between them. The detailed description of the implementation is given in the Algorithm 5.
Evaluation
Comparison with ADVRP’s algorithms
Dmax(1) | Dmax(2) | Dmax(3) | ||||
---|---|---|---|---|---|---|
VNS | HVT | VNS | HVT | VNS | HVT | |
%opt | 0 | 49.2 | 0 | 19.0 | 0 | 6.9 |
% of no feasible | 0 | 0 | 14.29 | 0 | – | 0 |
\(\hbox {Gap}_1\)[%] | 12.84 | 3.90 | 9.11 | 4.29 | – | 4.52 |
\(\hbox {Gap}_2\)[%] | 0 | 3.1 | 0 | 23.8 | 0 | 17.24 |
Comparison with ACVRP’s algorithms
-
VL: a metaheuristic combines some heuristic concepts with compact mixed-integer linear programming (MILP) formulation, proposed by Valeria Leggieria and Mohamed Haouari in [18].
-
AS: a column generation approach uses metaheuristic to generate columns and a sequence of set partitioning models for the Mixed-Integer Programming solver, proposed by A. Subramanian et al. in [19].
Instances | #vertices | #vehicles | OPT | AS | VL | HVT | |||
---|---|---|---|---|---|---|---|---|---|
Best.Sol | Best.Sol | Best.Sol | Aver.Sol | \(\hbox {Gap}_1\) | Time | ||||
A034-02f | 34 | 2 | 1406 | 1406 | 1406 | 1406 | 1406.00 | 0.00 | 0.27 |
A036-03f | 36 | 3 | 1644 | 1644 | 1644 | 1644 | 1644.00 | 0.00 | 0.31 |
A039-03f | 39 | 3 | 1654 | 1654 | 1654 | 1654 | 1654.00 | 0.00 | 0.44 |
A045-03f | 45 | 3 | 1740 | 1740 | 1740 | 1740 | 1740.00 | 0.00 | 0.52 |
A048-03f | 48 | 3 | 1891 | 1891 | 1891 | 1891 | 1891.51 | 0.00 | 0.59 |
A056-03f | 56 | 3 | 1739 | 1739 | 1739 | 1739 | 1739.00 | 0.00 | 0.63 |
A065-03f | 65 | 3 | 1974 | 1974 | 1974 | 1976 | 1976.21 | 0.10 | 2.61 |
A071-03f | 71 | 3 | 2054 | 2054 | 2121 | 2054 | 2054.51 | 0.00 | 2.80 |
Comparison with MTRPD’s algorithms
Instances | \(MD = 2 \times d_{{{{\text{max}}}}}\) | \(MD = 2.5 \times d_{{{{\text{max}}}}}\) | \(MD = 3 \times d_{{{{\text{max}}}}}\) | |||
---|---|---|---|---|---|---|
\(Gap_1\) | Time | \(Gap_1\) | Time | \(Gap_1\) | Time | |
pr1002_30_x | 0.00 | 0.25 | 0.00 | 0.23 | 0.00 | 0.24 |
brd14051_30_x | 0.00 | 0.25 | 0.00 | 0.24 | 0.00 | 0.25 |
fnl4461_30_x | 0.00 | 0.22 | 0.00 | 0.22 | 0.00 | 0.24 |
d15112_30_x | 0.00 | 0.25 | 0.00 | 0.23 | 0.00 | 0.21 |
nrw1379_30_x | 0.00 | 0.25 | 0.00 | 0.25 | 0.00 | 0.24 |
pr1002_40_x | 0.00 | 0.45 | 0.00 | 0.44 | 0.00 | 0.41 |
brd14051_40_x | 0.00 | 0.44 | 0.00 | 0.42 | 0.00 | 0.41 |
fnl4461_40_x | 0.00 | 0.44 | 0.00 | 0.44 | 0.00 | 0.44 |
d15112_40_x | 0.00 | 0.44 | 0.00 | 0.41 | 0.00 | 0.44 |
nrw1379_40_x | 0.00 | 0.43 | 0.00 | 0.42 | 0.00 | 0.42 |
pr1002_50_x | 0.00 | 0.85 | 0.00 | 0.84 | 0.00 | 0.82 |
brd14051_50_x | 0.00 | 0.81 | 0.00 | 0.82 | 0.00 | 0.81 |
fnl4461_50_x | 0.00 | 0.83 | 0.00 | 0.83 | 0.00 | 0.83 |
d15112_50_x | 0.00 | 0.83 | 0.00 | 0.83 | 0.00 | 0.85 |
nrw1379_50_x | 0.00 | 0.84 | 0.00 | 0.84 | 0.00 | 0.82 |
pr1002_60_x | 0.55 | 1.12 | 0.48 | 1.45 | 0.34 | 1.45 |
brd14051_60_x | 0.67 | 1.13 | 0.46 | 1.45 | 0.54 | 1.45 |
fnl4461_60_x | 0.48 | 1.12 | 0.39 | 1.45 | 0.29 | 1.45 |
d15112_60_x | 0.57 | 1.11 | 0.39 | 1.46 | 0.31 | 1.46 |
nrw1379_60_x | 0.64 | 1.12 | 0.71 | 1.45 | 0.76 | 1.45 |
pr1002_70_x | 0.89 | 1.48 | 0.83 | 1.97 | 0.93 | 1.97 |
brd14051_70_x | 0.51 | 1.49 | 0.54 | 1.84 | 0.51 | 1.84 |
fnl4461_70_x | 0.63 | 1.46 | 0.60 | 1.94 | 0.67 | 1.94 |
d15112_70_x | 0.70 | 1.51 | 0.74 | 1.85 | 0.76 | 1.85 |
nrw1379_70_x | 0.65 | 1.44 | 0.73 | 1.95 | 0.62 | 1.95 |
pr1002_80_x | 0.69 | 3.58 | 0.74 | 4.66 | 0.66 | 4.66 |
brd14051_80_x | 0.58 | 3.56 | 0.63 | 4.62 | 0.57 | 4.62 |
fnl4461_80_x | 0.74 | 3.59 | 0.80 | 4.63 | 0.73 | 4.63 |
d15112_80_x | 0.41 | 3.57 | 0.39 | 4.65 | 0.43 | 4.65 |
nrw1379_80_x | 0.96 | 3.53 | 0.86 | 4.67 | 0.82 | 4.67 |
Average | 0.32 | – | 0.30 | – | 0.30 | – |