A Hybrid Adaptive Iterated Local Search With Diversification Control To The Capacitated Vehicle Routing Problem (Online Appendices)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

A hybrid adaptive Iterated Local Search with diversification control

to the Capacitated Vehicle Routing Problem


(Online Appendices)
Vinı́cius R. Máximoa , Mariá C. V. Nascimentoa,∗
a
Instituto de Ciência e Tecnologia, Universidade Federal de São Paulo - UNIFESP
Av. Cesare G. Lattes, 1201, São José dos Campos, SP, Brasil

Appendix A. AILS to solve the CVRP

This section presents the introduced AILS to approach the CVRP. Each procedure of AILS for
the CVRP is showed in the next sections.

Appendix A.1. Construction of the Initial Solution


This section introduces the proposed heuristic to construct initial solutions to the CVRP. In
preliminary tests with AILS-PR, we observed that the quality of the final solution of AILS-PR
does not vary significantly considering different initial solutions. Therefore, as AILS-PR must
be scalable, we suggest a simple heuristic to this step of the introduced algorithm, described in
Algorithm 1.
According to Algorithm 1, the initial solution has m routes, each of them containing a single
vertex chosen at random. The value of m is calculated according to Equation (A.1), which is a
lower bound on the number of routes.

1X
m=d qi e (A.1)
q̄ i∈V
c

Then, in random order, the other vertices are added to the routes. The insertion heuristic H1a
described in Appendix A.2 decides upon which route to add each vertex as well as its position


Corresponding author
Email addresses: vinymax10@gmail.com (Vinı́cius R. Máximo), mcv.nascimento@unifesp.br (Mariá C. V.
Nascimento)

Preprint submitted to European Journal of Operational Research February 3, 2021


Algorithm 1: Construct initial solution
Data: Instance data
Result: A solution s
1 Va ← Vc
2 for j = 1, . . . , m do
3 s ← Construct R sj = {v0j , v1j , v0j } by randomly choosing v1j from Va
4 Va ← Va \v1j
5 end
6 while Va , ∅ do
7 Pick v ∈ Va at random and make Va ← Va \v
8 Choose route R sj where v will belong considering H1a described in Appendix A.2
9 Add vertex v in route R sj at the lowest cost position
10 end
11 return s

in the route. The resulting solution may not be feasible because the route can violate the capacity
constraints when constructing the solution. For this reason, it is necessary to apply a feasibility
algorithm to the solution afterwards, whose procedure will be discussed in Appendix A.3.1.

Appendix A.2. Perturbation Strategy


The ILS perturbation process consists of producing changes in a solution s by a heuristic to
obtain a neighbor solution s0 different from s. It has two steps. The first, which we call removal
heuristics, consists of deciding which vertices are to be removed from the current solution. The
second step, called insertion heuristics, defines where the vertices removed in the first step are to
be inserted into the solution. In this paper, we adopted three removal heuristics and two inser-
tion heuristics. The perturbation methods adopted in the proposed AILS-PR do not guarantee the
feasibility of the resulting solution.
Concentric removal, H1r : In this heuristic, a randomly selected vertex vr is removed from the
solution as well as the ωH1 − 1 closest vertices to vr . In other words, this heuristic removes a set of
vertices belonging to a coverage radius whose center is represented by vertex vr .
Proximity removal, H2r : This heuristic consists of removing ωH2 vertices from the solution.

2
To select which vertices to remove, the strategy uses the concept of a proximity index. The prox-
imity index is a measure that indicates how close a particular vertex is to its route. To estimate the
proximity, we do not consider the Euclidean distance metric, because it has an intrinsic magnitude
of the distribution of points in the space. Instead, we use a relative proximity metric, which allows
a comparison among all vertices independent of the magnitude of the pairwise distance between
points.
Let ΠR : Vc → {0, . . . , n − 1}|R|−2 be the function that assigns to a given vertex v the order of
the vertices in a given route R\{0, v} according to their Euclidean distance to v. For example, let
R = {0, 1, 4, 6, 7, 0} be a route of a graph with 10 vertices, i.e, V = {0, 1, . . . , 9}. The length of R,
here denoted by |R|, is 5. To calculate ΠR (4), one must consider the distances between 4 and all
vertices in the route. Suppose that vertices 1, 6 and 7 are ranked as 3, 5 and 8 closest vertices to
4 among all vertices in the graph, respectively. Therefore, ΠR (4) = {3, 5, 8}. In addition, consider
minset(a, S ) the sum of the a smallest elements of a set S . Thus, the proximity index of a vertex v
with respect to route R sj where it belongs to in a given solution s is:

minset(min{ρ, |R sj | − 2}, ΠRsj (v))


prox(v, ρ, R sj ) = (A.2)
min{ρ, |R sj | − 2}
In this proximity index, we consider only the ρ closest vertices to v. An integer random value
for ρ is chosen randomly at each iteration of the algorithm in the interval [1, bn/mc]. In addition, it
is possible to observe that prox(v, ρ, R sj ) ∈ [1, n − 1].
The proposed vertex removal strategy prioritizes the removal of vertices with the highest prox-
imity indexes. To accomplish this task, we define S as the set of all vertices belonging to the
solution which have not been removed yet. Next, we sort all the elements of S in decreasing order
of proximity index and remove ωH2r vertices from S according to the probability P(v) = 2(|S |−ov )−1
|S |2
,
where ov represents the vertex position v in the sorting of S . This probability distribution returns
the probability of removing a vertex v which belongs to S . The lower the position ov ∈ [0, |S | − 1]
the greater the probability of removing v.
Removal of Vertex Sequences, H3r : In this removal strategy, some vertex sequences be-
longing to a route are removed. The sequences can have different sizes and are chosen randomly
from the sequences of vertices belonging to the solution. The number of vertices to be removed
is controlled by the variable ωH3r and the length of the sequence varies randomly in the interval

3
[1, bn/mc] since the total number of vertices already removed does not exceed ωH3r . Sequences
can contain the depot, however, it will not be removed from the solution. For example, in route
R = {0, 2, 6, 8, 11, 0}, a possible sequence would be (8, 11, 0, 2). In this case, only three elements
could be removed by this heuristic: 8, 11 and 2.
The two insertion heuristics employed in this study are presented next.
Insertion by Proximity, H1a : This heuristic consists of inserting a vertex v in the lowest
proximity index route calculated according to Equation (A.2). Accordingly, vertex v will be inserted
in route R sĵ = arg minRsj ∈R prox(v, ρ, R sj ), in the lowest cost position î according to Equation (A.3).
The insertion position of v will be between the two vertices viĵ and vi+1

that results in the least
insertion cost in the route R sĵ = {v0ĵ , v1ĵ , . . . , vmĵ ĵ }.

î = arg min d(viĵ , v) + d(vi+1



, v) − d(viĵ , vi+1

) (A.3)
i∈{0,1,...,m ĵ }

Insertion by Cost, H2a : In this heuristic, vertices are inserted in the routes that have the lowest
insertion cost, that is, vertex v will be inserted in the route R sĵ = arg minRsj ∈R c(vîj , vî+1
j
, v). The
position of insertion of vertex v in the route R sĵ follows the criterion of lowest cost.

Algorithm 2: Perturbation Procedure


Data: Solution s and Hkr
Result: Solution s0
1 s0 ← s
2 Vary the number of routes m of solution s0 in 1 unity with probability 1/γ as long as m ≥ m
3 Choose an integer number at random within interval [1, bn/mc] and assign to ρ
4 Remove ωHkr vertices from solution s0 according to heuristic Hkr
5 Randomly selected one of the insertion heuristics {H1a , H2a } to add to s0 all vertices removed

0
In Algorithm 2, after s is copied to s , the number of routes of solution s0 is defined. The
number of routes can vary by one unit from the input solution, s, with probability 1/γ – being γ a
parameter of AILS-PR – as long as the resulting m is greater than or equal to m. If from the number
of routes m is subtracted 1, a randomly chosen route must be removed from solution s0 . If m is
incremented by 1, a new empty route will be inserted into the solution. After this step, we choose

4
an integer random value for ρ ∈ [1, bn/mc] and start the process of removing and inserting vertices
in the routes. In this way, the strategy removes ωHkr vertices from solution s0 according to heuristic
Hkr . Then, the vertices removed from the solution are inserted by an insertion heuristic.

Appendix A.3. Feasibility and Local Search Strategies


In this section, the feasibility and local search strategies are thoroughly explained. Both feasi-
bility and local search strategies perform moves of vertices between routes. They use the neighbor-
hood structure described next.
Neighborhood structure of moves between routes
The inter-route neighborhood investigated of the strategies is formed by the movements of λ-
interchange proposed by Osman (1993) and 2-opt∗ (Potvin and Rousseau, 1995). The value of λ
establishes the maximum size of adjacent vertices to be moved. After parameter set up experiments,
we adopt λ = 1. Therefore, the neighborhood structure will be composed of movements that swap
positions of two vertices – called Swap – and change the position of a vertex – known as Shift.
Let the set of moves N = {N1 , N2 , N3 } define the neighborhood structure of the proposed
strategy. Each move is described as follows.
Shift, N1 : In this move, given a solution s, a neighbor s0 is obtained by moving a vertex vik from
a certain route Ris to another route R sj , placing it between vertices vlj and vl+1
j
where i , j, k > 0
and l < |R sj |. The objective function value of s0 can be derived by evaluating the variation in the
objective function value of s:

∆Ni 1 j (s, s0 ) = d(vik−1 , vik+1 ) + d(vlj , vik ) + d(vik , vl+1


j
) − d(vik−1 , vik ) − d(vik , vik+1 ) − d(vlj , vl+1
j
) (A.4)
vk ,vl

If ∆Ni 1 j (s, s0 ) is negative, it means that s0 – which is a neighbor of s – is a better solution than s.
vk ,vl
Swap, N2 : In this move, vertices are swapped in a pair of routes. Given a solution s, a neighbor
s0 is obtained by swapping positions between vertices vik from route Ris with vertex vlj from route
R sj . In this case, i , j, k > 0 and l < |R sj |. The objective function value of s0 after this move can be
derived by evaluating the variation in the objective function value of s:

∆Ni 2 j (s, s0 ) = d(vik−1 , vlj ) + d(vlj , vik+1 ) + d(vl−1


j
, vik ) + d(vik , vl+1
j
)
vk ,vl
(A.5)
−d(vik−1 , vik ) − d(vik , vik+1 ) − j
d(vl−1 , vlj ) − d(vlj , vl+1
j
)

5
2 − opt∗ , N3 : This move consists of exchanging two pieces of routes. It has as reference two
edges, one from a different route, which will be exchanged to define a neighbor solution. Let Ris and
R sj be the routes of solution s whose edges (vik , vik+1 ) and (vlj , vl+1
j
), respectively, will be exchanged
to produce solution s0 .

∆Ni 3 j (s, s0 ) = d(vlj , vik+1 ) + d(vik , vl+1


j
) − d(vik , vik+1 ) − d(vlj , vl+1
j
) (A.6)
vk ,vl

In our implementation, all moves are made in O(1).


Neighborhood structure of intra-route moves
In addition to the inter-route moves introduced in the previous section, in AILS, another neigh-
borhood structure defines a strategy called “intra-local search”. The intra-route moves employed
in the intra-local search consist of promoting changes in the position of the vertices that belong
to the same route. The set of moves applied in a route allows to establish the neighborhood
N −
= {N1− , N2− , N3− } composed by 3 moves:
Shift− , N1− : A vertex is relocated to another position of the same route.
Swap− , N2− : This move swaps two vertices in the same route.
2 − opt− , N3− : This move removes a pair of non-adjacent edges and adds two new edges in the
route to guarantee the feasibility of the route.
It is possible to calculate the variation in the solution values to identify the neighboring solution
locally similar to the movements between routes just explained.
Intra-Route Local Search Heuristic
The intra-route local search used in the AILS-PR is performed following the best improvement
strategy according to the neighborhood N − . The algorithm searches for the best neighbor s0 ∈ N −

found by applying to s the movement in Ris . If this neighbor is found and ∆vNi ,vi (s, s0 ) < 0, solution

k l
s is updated. The search process repeats until s becomes a local optimum. It is worth pointing out
that the strategy accepts only movements whose costs are lower than zero, which is, accepts only
better quality solutions than the current one.
The feasibility and local search procedures have the same main structure. They differ in some
conditions to be satisfied to a move to be performed. In line with this, the feasibility heuristic
aims at finding a feasible good quality solution. The goal of the local search procedure is to reach
the local optimum. The neighborhood selection strategy follows the best improvement strategy.
Algorithm 3 shows the neighborhood search algorithm that, if the input solution s is infeasible, will

6
work as a feasibility heuristic, otherwise, it will be a local search.

Algorithm 3: Neighborhood Search


Data: Solution s, f easible
Result: Solution s
1 LM ← ∅
2 repeat
3 foreach Ris ∈ R s do
4 Update LM (Ris , LM, s, f easible)
5 end
6 while |LM| > 0 do
7 Find ΘN
vi ,v j
(s, s0 ) ∈ LM
8 s ← s0
9 LM ← LM \ {ΘN
vi ,v j
(s, x) ∈ LM}
10 Apply the intra-route local search to routes Ris and R sj
11 Update LM (Ris , LM, s, f easible) and Update LM (R sj , LM, s, f easible)
12 end
13 if s is infeasible then
14 Add a new route R s ← R s ∪ Rm+1
s

15 end
16 until s is feasible;

In Algorithm 3, the input data are both the solution s and a boolean variable that indicates
whether or not such a solution is feasible. First, the list of movements, referred to as LM, is
initialized as an empty set. The main loop occurs once for the local search, since the input solution
is feasible, and while s is infeasible in the feasibility heuristic. Then, the method performs a search
in the neighborhood of s as described in Algorithm 4. This algorithm returns the set LM which
contains all the movements between vertices vik ∈ Ris and vlj ∈ δ(vik ) | i , j, where δ(vik ) represents
the set of closest vertices to vik according to the proximity index. The size of this set is limited by
parameter ϕ ∈ [1, n − 1], which means that |δ(v)| = ϕ, ∀ v ∈ V. After this first step of verifying the
movements, the algorithm updates the current solution s while there are movements to perform in

7
list LM. In this step, the algorithm updates the current solution in the best neighbor contained in
LM. This neighbor is represented by the movement ΘN
vi ,v j
(s, s0 ). Then, LM is updated, removing
all movements involving the routes Ris and R sj , as there have been changes in these routes. Then, an
intra-local search is applied to s and list LM is updated. If LM is empty and s remains infeasible,
then a new route is added to the solution and the loop is repeated.

Algorithm 4: Update LM
Data: Ris , LM, solution s, f easible
Result: Updated LM
1 foreach vik ∈ Ris do
2 foreach vlj ∈ δ(vik ) | i , j and Ris and R sj meet feasibility condition do
3 foreach Nk ∈ N do
4 if Nk provides a solution s00 that respects feasibility/improvement conditions then
5 if ∃ ΘN
vi ,v j
(s, s0 ) ∈ LM but s00 is better then
6 ΘN
vi ,v j
(s, s0 ) ← ΘNi k j (s, s00 )
vk ,vl

7 end
8 if @ ΘN
vi ,v j
(s, s0 ) ∈ LM then
9 LM ← LM ∪ ΘNi k j (s, s00 )
vk ,vl

10 end
11 end
12 end
13 end
14 end

Next sections present the conditions and criteria employed to the feasibility and local search
procedures, respectively.

Appendix A.3.1. Criteria for the feasibility procedure


In the CVRP, the capacity constraints are the only set of constraints that can be violated in
the search process of the introduced algorithm. Therefore, the feasibility heuristic performs vertex
movements – neighborhood N – between routes to adjust the routes that exceed the limit capacity.

8
Let R = {R1s , R2s , . . . , Rms } be the routes of a solution s. Consider slack(R sj ) the slack in the load
constraints of route R sj which can be calculated by Equation (A.7). R sj is feasible iff slack(R sj ) ≥ 0.

X
slack(R sj ) = q̄ − qi (A.7)
i∈R sj

The moves of vertices/edges between routes Ris , R sj ∈ R where Ris is infeasible and R sj is feasible
can provide a neighbor solution s0 ∈ N (s) with reduction in the violation of the load constraints.
The reduction occurs in two particular cases:
0
1. When the slack in the load constraints in route Ris is greater than the slack of route Ris and
the route R sj is feasible. In other words, when slack(Ris ) > slack(Ris ) and slack(R sj ) ≥ 0.
0 0 0

0 0
2. When route Ris becomes feasible and the slack in the load constraints in R sj is greater than
the slack of Ris . In other words, when slack(Ris ) ≥ 0 and slack(R sj ) > slack(Ris ).
0 0

Let Ω(s, s0 ) be the “feasibility gain” after a move applied to solution s to obtain neighbor s0 ∈
N (s). The value of Ω(s, s0 ) is calculated according to Equation (A.8). Therefore, if Ω(s, s0 ) > 0,
the move provided a s0 with load constraints violation lower than the load constraints violation in
s.

0 0
Ω(s, s0 ) = min{0, slack(Ris )} + min{0, slack(R sj )} − min{0, slack(Ris )} − min{0, slack(R sj )} (A.8)

The decision on which moves to perform follows a pair of criteria: i) the cost of the movement
– this criterion is considered when the cost of the movement is less than or equal to 0; ii) the cost of
the movement and the feasibility gain – when the cost of the movement is greater than 0. To meet
these two criteria, we evaluate the value of ΛNi k j (s, s0 ) considering a given move Nk from route Ris
vk ,vl
to route R sj according to Equation (A.9). Thus, the lower the value of ΛNi k j (s, s0 ), the better is the
vk ,vl
move.

∆Ni k j (s, s0 ), if ∆Ni k j (s, s0 ) ≤ 0





vk ,vl vk ,vl






ΛNi k j (s, s0 ) = 

(A.9)

vk ,vl N
∆ k j (s,s0 )



vi ,v
if ∆Ni k j (s, s0 ) > 0

0) ,


 k l
 Ω(s,s

v ,v k l

9
In summary, the particularities of the feasibility procedure in Algorithms 3 and 4 are:

• In line 7 of Algorithm 3, the move ΘN


vi ,v j
(s, s0 ) chosen is arg minΘ(s,s00 )∈LM Λ(s, s00 );

• The feasibility condition of routes Ris and R sj in line 2 of Algorithm 4 is: (slack(Ris ) ≥
0 XOR slack(R sj ) ≥ 0);

• Condition in line 4 of Algorithm 4 is ΩNi k j (s, s00 ) > 0;


vk ,vl

• Condition in line 5 of Algorithm 4 is ∃ ΘN


vi ,v j
(s, s0 ) ∈ LM | ΛNi k j (s, s00 ) < ΛN
vi ,v j
(s, s0 ).
vk ,vl

The next section presents the criteria employed for the local search of the proposed method.

Appendix A.4. Criteria for the local search procedure


The difference between the feasibility and local search criteria of AILS-PR resides in the chosen
movements. In the local search are evaluated considering every pair of routes since they are all
viable. In addition, in local search, only the costs of the optimization process are considered.
In line with this, the particularities of the local search procedure in Algorithms 3 and 4 are:

• In line 7 of Algorithm 3, the move ΘN


vi ,v j
(s, s0 ) chosen is arg minΘ(s,s00 )∈LM ∆(s, s00 );

• There is no feasibility condition of routes Ris and R sj in line 2 of Algorithm 4, so, the search
considers every pair of routes;

• Condition in line 4 of Algorithm 4 is ΩNi k j (s, s00 ) ≥ 0 and ∆Ni k j (s, s00 ) < 0;
vk ,vl vk ,vl

• Condition in line 5 of Algorithm 4 is ∃ ΘN


vi ,v j
(s, s0 ) ∈ LM | ∆Ni k j (s, s00 ) < ∆N
vi ,v j
(s, s0 ).
vk ,vl

Both the feasibility heuristic and the local search algorithm have O(nϕ) complexity. To sum up,
we present in Algorithm 5 the AILS proposed to solve the CVRP.

10
Algorithm 5: AILS
Data: Instance data
Result: The best solution found s∗
1 sr ← Construct initial solution – Algorithm 1
2 sr , s∗ ← Neighborhood Search(sr ,0) – Algorithm 3
3 it ← 1
4 repeat
5 H r ← Choose one removal heuristic H r ∈ {H1r , H2r , H3r }, explained in Appendix A.2
6 s ← Perturbation Procedure(sr , H r ) — Algorithm 2
7 s ← Neighborhood Search(s,0) – Algorithm 3
8 s ← Neighborhood Search(s,1) – Algorithm 3
9 Update the diversity control parameter ωHkr considering the distance between s and sr
10 sr ← Apply acceptation criterion to s
11 Update the acceptance criterion
12 Assign s to s∗ if f (s) < f (s∗ )
13 it ← it + 1
14 until it ≥ itmax ;

Appendix B. Calculating Priority pv to perform PR

The priority pv represents the priority of vertex v ∈ NF to be moved to another route. The
calculation of the priority depends on the criterion C ∈ C and the states of v considering its origin
and destination routes, respectively, Rosi and Rdsi . The states are determined according to the feasi-
bility of these origin and destination routes. Let Rosi (v+ ) and Rosi (v− ) be the route Rosi before and after
removing v, respectively. Consider also Rdsi (v− ) and Rdsi (v+ ) the route Rdsi before and after receiving
vertex v a route Rdsi , respectively. Both Rosi and Rdsi have 3 possible states regarding feasibility. These
states are presented in Table B.1 which also indicates how to calculate the priority of vertex v.
States 1, 2 and 6 have an increased priority because we consider that these conditions are favor-
able to find a feasible solution by PR. States 3, 4 and 5 have their priority decreased.
Let C = {C1 , . . . , C10 } be the set of criteria used in PR. Each criterion represents a specific
combination of active states. In this way, the priority pv can be calculated in different ways, thus al-

11
Table B.1: List with the six states used to calculate priority pv .
Origin route (O) Destination route (D)
State Rosi (v+ ) Rosi (v− ) Priority factor State Rdsi (v− ) Rdsi (v+ ) Priority factor
1 Infeasible Feasible +1 4 Feasible Infeasible −1
2 Infeasible Infeasible +1 5 Infeasible Infeasible −1
3 Feasible Feasible −1 6 Feasible Feasible +1

Table B.2: Description of the states employed in each criterion.


Criterion
State
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10
1 x x x x x
2 x x x x x
3 x x x x x x x x x
4 x
5 x x x x x
6 x

lowing the PR to go through different paths between the solutions. Considering all possible combi-
nations of the six states, there are 26 = 64 possible different criteria. However, after computational
experiments, we chose to use only the 10 criteria presented in Table B.2.
We define O = {1, 2, 3} and D = {4, 5, 6} as being the sets containing the states of the origin and
destination routes, respectively. Therefore, to calculate the priority pv , it is necessary to consider
the state pair (o, d), where o ∈ O and d ∈ D. The priority calculation as indicated in Table B.1
will be performed if, and only if, the state is active in the chosen criterion. Each priority value
of a move will be the result of 0, 1, or 2 operations of decrement/increment. Considering the
available updating possibilities, the priority may have the following values: {−2, −1, 0, 1, 2}. Table
B.3 presents the priority values for each state pair (o, d). These values were derived considering the
operations contained in Table 2, starting the priority values at zero.

12
Table B.3: Priority value of each criterion considering every combination of states.
Criterion
Pair of states
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10

(1, 4) 1 0 1 1 1 1 0 0 0 0

(1, 5) 0 0 1 0 0 1 -1 -1 0 -1

(1, 6) 1 0 1 1 1 1 0 0 0 1

(2, 4) 0 0 0 1 1 1 0 1 1 0

(2, 5) -1 0 0 0 0 1 -1 0 1 -1

(2, 6) 0 0 0 1 1 1 0 1 1 1

(3, 4) -1 -1 -1 -1 0 -1 -1 -1 -1 -1

(3, 5) -2 -1 -1 -2 -1 -1 -2 -2 -1 -2

(3, 6) -1 -1 -1 -1 0 -1 -1 -1 -1 0

Appendix C. Additional Experiment

This appendix presents an experiment carried out with AILS-PR to solve the instances in
(Christofides, 1979).
The values reported in the Table C.4 are:

• BKS: the objective function value of the best-known solutions. The values highlighted with ∗
are optimal solutions according to the information available in the repository http://vrp.
atd-lab.inf.puc-rio.br1 .

• Avg: reports the average objective function value of the solutions obtained in 10 rounds.

• gap: represents the mean gap of the values of the Avg column relative to the BKS and is
calculated according to Equation (C.1).

gap = 100( f (s) − BKS)/BKS (C.1)

• Best: objective function value of the best solution obtained in 10 runs.

• Time: represents the average time in seconds that the algorithm took to find the best solution
in each run.

1
Most recent data as of 14 november 2020 - 18.00GMT.

13
The background of the top results for each instance is highlighted in dark gray; the second best
results in medium gray; and the third best results in light gray. The configuration of the computer
where the experiments of the reference algorithms were run are provided in the end of Table C.4.
The best solutions obtained in 10 runs by the previous version of UHGS, named HGSADC, are not
reported in (Vidal et al., 2012), the reason why just the average results and computational times are
presented in the table.

14
Table C.4: Results of experiments with instances proposed in (Christofides, 1979) and Golden et al. (1998).
ILS-SP (Subramanian et al., 2013) HGSADC (Vidal et al., 2012) SISRs (Christiaens and Vanden Berghe, 2020) AILS-PR
1 2 3
Instance BKS Avg (gap) Best Time Avg (gap) Time Avg (gap) Best Time Avg (gap) Best Time4

CMT1 524.61 524.61 (0.0000) 524.61 1.48 524.61 (0.0000) 25.8 524.61 (0.0000) 524.61 0.00 524.61 (0.0000) 524.61 0.30

CMT2 835.26 835.26 (0.0000) 835.26 13.52 835.26 (0.0000) 57.6 835.4 (0.0168) 835.26 57.60 835.26 (0.0000) 835.26 4.70

CMT3 826.14 826.14 (0.0000) 826.14 12.49 835.26 (1.1039) 76.2 826.14 (0.0000) 826.14 69.60 826.14 (0.0000) 826.14 24.86

CMT12 819.56 819.56 (0.0000) 819.56 5.23 819.56 (0.0000) 50.4 819.56 (0.0000) 819.56 4.80 819.56 (0.0000) 819.56 0.03

CMT11 1042.12 1042.12 (0.0000) 1042.12 20.66 1042.12 (0.0000) 69.0 1042.12 (0.0000) 1042.12 108.00 1042.12 (0.0000) 1042.12 0.58

CMT4 1028.42 1028.73 (0.0301) 1028.42 53.48 1028.42 (0.0000) 172.2 1030.68 (0.2198) 1028.42 427.80 1028.42 (0.0000) 1028.42 46.01

CMT5 1291.29 1293.18 (0.1464) 1291.45 625.17 1294.06 (0.2145) 356.4 1292.5 (0.0937) 1291.5 768.00 1291.45 (0.0124) 1291.45 90.62

Golden17 707.76 707.81 (0.0071) 707.76 937.59 708.09 (0.0466) 423.6 708.06 (0.0424) 707.79 1770.60 707.76 (0.0000) 707.76 194.76

Golden13 857.19 860.00 (0.3278) 857.19 910.35 859.64 (0.2858) 561.6 862.95 (0.6720) 861.02 1749.60 858.34 (0.1342) 857.19 330.77

Golden9 579.71 585.21 (0.9488) 583.24 1720.76 581.79 (0.3588) 973.2 584.88 (0.8918) 583.48 1427.40 580.70 (0.1708) 580.06 1434.62

Golden18 995.13 997.85 (0.2733) 995.65 2297.62 998.44 (0.3326) 864.0 997.53 (0.2412) 996.1 3447.60 997.22 (0.2100) 995.14 428.27

Golden14 1080.55 1082.15 (0.1481) 1080.55 1513.32 1082.41 (0.1721) 847.2 1084.78 (0.3915) 1082.08 3148.20 1082.78 (0.2064) 1080.55 393.38
15

Golden10 735.43 744.17 (1.1884) 741.96 3229.35 739.86 (0.6024) 1551.6 743.57 (1.1068) 739.6 2406.60 739.05 (0.4922) 736.86 1662.97

Golden19 1365.6 1367.25 (0.1208) 1366.29 2917.31 1367.83 (0.1633) 1674.6 1367.62 (0.1479) 1366.36 5731.20 1366.33 (0.0535) 1365.60 412.98

Golden15 1337.27 1349.23 (0.8944) 1347.13 3265.68 1343.52 (0.4674) 2349.0 1347.79 (0.7867) 1343.55 6049.80 1339.96 (0.2012) 1338.00 1244.74

Golden11 911.98 922.93 (1.2007) 921.46 5978.97 916.44 (0.4890) 2736.6 920.72 (0.9584) 917.24 4755.00 916.10 (0.4518) 913.38 2188.99

Golden20 1817.59 1823.52 (0.3263) 1821.16 4997.31 1822.02 (0.2437) 2293.8 1820.64 (0.1678) 1820.11 7380.60 1819.18 (0.0875) 1818.11 1033.22

Golden16 1611.28 1627.76 (1.0228) 1624.55 4835.12 1621.02 (0.6045) 3496.2 1624.47 (0.8186) 1616.13 9621.00 1615.19 (0.2427) 1612.44 3005.96

Golden12 1101.5 1116.52 (1.3636) 1113.30 10410.70 1106.73 (0.4748) 5740.2 1112.26 (0.9768) 1108.78 7251.00 1106.18 (0.4249) 1102.64 3751.89

1
Intels CoreTM i7 with 2.93 GHz and 8 GB of RAM running under Ubuntu Linux 64 bits.
2
Pentium IV 3.0 Ghz
3
Xeon E5-2650 v2 CPU at 2.60 GHz.
4
Intel Xeon E5-2680v2 processor with 2.8 GHz, 10 cores and 128 GB DDR3 1866 MHz RAM.
The results indicate that, except for instance Golden14, which it found the third best result,
AILS-PR obtained best average solutions (gaps) in all tested instances. Moreover, it achieved the
top best solutions in all instances. The computational time was also the best in almost all instances,
being slower than SISRs, ILS-SP and HGSADC in one, two and two instances, respectively.

References

Christiaens, J., Vanden Berghe, G., 2020. Slack induction by string removals for vehicle routing
problems. Transportation Science 54, 417–433.

Christofides, N., 1979. The vehicle routing problem. Combinatorial Optimization .

Golden, B.L., Wasil, E.A., Kelly, J.P., Chao, I.M., 1998. The impact of metaheuristics on solv-
ing the vehicle routing problem: algorithms, problem sets, and computational results, in: Fleet
Management and Logistics. Springer, pp. 33–56.

Osman, I.H., 1993. Metastrategy simulated annealing and tabu search algorithms for the vehicle
routing problem. Annals of Operations Research 41, 421–451.

Potvin, J.Y., Rousseau, J.M., 1995. An exchange heuristic for routeing problems with time win-
dows. Journal of the Operational Research Society 46, 1433–1446.

Subramanian, A., Uchoa, E., Ochi, L.S., 2013. A hybrid algorithm for a class of vehicle routing
problems. Computers & Operations Research 40, 2519 – 2531.

Vidal, T., Crainic, T.G., Gendreau, M., Lahrichi, N., Rei, W., 2012. A hybrid genetic algorithm for
multidepot and periodic vehicle routing problems. Operations Research 60, 611–624.

16

You might also like