A Tabu Search Algorithm for the Split Delivery Vehicle

TRANSPORTATION SCIENCE
informs
Vol. 40, No. 1, February 2006, pp. 64–73
issn 0041-1655 eissn 1526-5447 06 4001 0064
®
doi 10.1287/trsc.1040.0103
© 2006 INFORMS
A Tabu Search Algorithm for the
Split Delivery Vehicle Routing Problem
C. Archetti, M. G. Speranza
Dipartimento Metodi Quantitativi, Università degli Studi di Brescia, Contrada Santa Chiara 50, 25122 Brescia, Italia
{[email protected], [email protected]}
A. Hertz
Département de Mathématiques et de Génie Industriel, École Polytechnique,
CP 6079, succ. Centre-ville, Montréal, Canada H3C 3A7, [email protected]
W
e describe a tabu search algorithm for the vehicle routing problem with split deliveries. At each iteration,
a neighbor solution is obtained by removing a customer from a set of routes where it is currently visited
and inserting it either into a new route or into an existing route that has enough residual capacity. The algorithm
also considers the possibility of inserting a customer into a route without removing it from another route.
The insertion of a customer into a route is done by means of the cheapest insertion method. Computational
experiments are reported for a set of benchmark problems, and the results are compared with those obtained
by the algorithm proposed by Dror and Trudeau.
Key words: split delivery vehicle routing problem; triangle inequality; metaheuristics; tabu search
History: Received: April 2003; revision received: October 2003; accepted: October 2003.
1.
Introduction
no pair of tours has two or more vertices in common. Valid inequalities for the SDVRP are described
in Dror, Laporte, and Trudeau (1994), while real applications of the problem are studied in Mullaseril, Dror,
and Leung (1997) and Sierksma and Tijssen (1998).
In Belenguer, Martinez, and Mota (2000) a lower
bound is proposed for the SDVRP where the demand
of each customer is lower than the capacity of the
vehicles, and the quantity delivered by the vehicles when visiting a customer is an integer number.
Frizzell and Giffin (1995) present a mathematical formulation and a heuristic algorithm for the SDVRP
with grid network distances and time window constraints. The authors have analyzed the k-SDVRP
where each vehicle has a capacity equal to a given
integer k, and where the demands of the customers
as well as the quantity delivered by a vehicle when
visiting a customer are integer numbers (Archetti,
Mansini, and Speranza 2005). They have proved that
the problem is NP-hard when k ≥ 3 and shown that,
under specific conditions on the distances, the problem is reducible in polynomial time to a new problem in which each customer has a demand that is
lower than the capacity of the vehicles, with a possible reduction in the number of customers.
A direct trip in a k-SDVRP is a tour in which a vehicle starts from the depot, goes directly to a customer,
where it delivers k units, and then turns back directly
to the depot. Given an instance I of the k-SDVRP,
We consider the split delivery vehicle routing problem (SDVRP), where a fleet of homogeneous vehicles has to serve a set of customers. Each customer
can be visited more than once, contrary to what is
usually assumed in the classical vehicle routing problem (VRP), and the demand of each customer can be
greater than the capacity of the vehicles. No constraint
on the number of available vehicles is considered.
There is a single depot for the vehicles and each vehicle has to start and end its tour at the depot. The objective is to find a set of vehicle routes that serves all the
customers such that the sum of the quantities delivered in each tour does not exceed the capacity of the
vehicles and the total distance travelled is minimized.
The SDVRP is a variant of the capacitated vehicle routing problem (CVRP), which is well known in
the literature (for a survey of vehicle routing problems, see Toth and Vigo 2002). In Gendreau, Hertz,
and Laporte (1994) the authors have described a tabu
search algorithm for the capacitated VRP showing
that this heuristic works well on this problem.
The SDVRP was introduced in the literature only
a few years ago. Dror and Trudeau (1989, 1990)
have analyzed the savings generated by allowing
split deliveries in a VRP and presented an heuristic algorithm for the problem. They have shown that
when the distances satisfy the triangle inequality,
there exists an optimal solution for the SDVRP where
64
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
65
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
one can build a reduced instance, denoted IR , by modifying the demand di of each customer to di − kdi /k.
A solution sR for IR can then be transformed into a
solution s for I by adding di /k direct trips for each
customer i. Now, given an instance I of the k-SDVRP,
consider the algorithm that first determines an optimal solution sR∗ for the reduced instance IR and then
builds the associated solution s ∗ for I.
In this article we consider the k-SDVRP. We describe a tabu search algorithm to solve this problem
that overcomes the typical problem of the tabu search
algorithms: the tuning of the parameters. Actually,
our algorithm is very simple and easy to implement,
and there are only two parameters to be set: the length
of the tabu list and the maximum number of iterations the algorithm can run without improvement of
the best solution found.
The article is organized as follows. In §2 we show
that there always exists an optimal solution where
the quantity delivered by each vehicle to a customer
is an integer number. In §3 we describe the tabu
search algorithm for the k-SDVRP. In §4 Dror and
Trudeau’s algorithm (1990) is described, and computational results as well as comparisons with Dror and
Trudeau’s algorithm are reported in §5.
2.
A Mathematical Formulation and
Some Properties
The k-SDVRP can be defined over a graph G = V E
with vertex set V = 0 1 n, where 0 denotes the
depot while the other vertices are the customers, and
E is the edge set. The traversal cost (also called length)
cij of an edge i j ∈ E is supposed to be nonnegative. An integer demand di is associated with each
customer i ∈ V − 0. An unlimited number of vehicles is available, each with a capacity k ∈ Z + . We will,
however, consider an upper bound m on the number
of vehicles needed to serve the customers. For exam
ple, one can use m = ni=1 di . Each vehicle must start
and end its route at the depot. The demands of the
customers must be satisfied, and the quantity delivered in each tour cannot exceed k. The objective is to
minimize the total distance travelled by the vehicles.
Below we give a mixed integer programming formulation P for the k-SDVRP. We use the following notations: xijv is a boolean variable equal to 1 if vehicle v
travels directly from i to j and to 0 otherwise, and yiv
is the quantity of the demand of i delivered by the
vth vehicle.
The k-SDVRP can now be formulated as follows:
Min
n m
n i=0 j=0 v=1
cij xijv
(1)
subject to:
m
n i=0 v=1
n
i=0
xijv ≥ 1
xipv −
i∈S j∈S
v=1
n
i=1
j=0
xpjv = 0
xijv ≤ S − 1
yiv ≤ di
m
n
j = 0 n
n
j=0
xijv
(2)
p = 0 n v = 1 m
(3)
v = 1 m S ⊆ V − 0
(4)
i = 1 n v = 1 m
(5)
yiv = di
i = 1 n
(6)
yiv ≤ k
v = 1 m
(7)
xijv ∈ 0 1
i = 0 n j = 0 n
v = 1 m
yiv ≥ 0
i = 1 n v = 1 m
(8)
(9)
Constraints (2)–(4) are the classical routing constraints; constraints (2) impose that each vertex is
visited at least once; (3) are the flow conservation
constraints and (4) are the subtours elimination constraints. Constraints (5)–(7) concern the allocation of
the demands of the customers among the vehicles;
constraints (5) impose that customer i can be served
by vehicle v only if v passes through i. Constraints (6)
ensure that the entire demand of each vertex is satisfied, while constraints (7) impose that the quantity delivered by each vehicle does not exceed the
capacity.
We now show that there always exists an optimal
integer solution to P .
Theorem 1. If P has feasible solutions, then there
always exists an optimal solution in which variables
yiv ∈ Z + .
Proof. Let s ∗ denote an optimal solution of (P), let
∗
∗
z be its value, and let xijv and yiv
be the corresponding optimal values of the variables. If all variables
∗
yiv
have an integer value, then there is nothing
to prove. Otherwise, let A denote the set of pairs
i
i ∈ V − 0, v ∈ 1 m, and such that
nv with
v∗
+
j=0 xij ≥ 1. For each customer i, define N i = v i v ∈ A. Similarly, define for each vehicle v the set
N − v = i i v ∈ A. Now, consider the following
set of constraints:
yiv = di i = 1 n
(10)
∗
v∈N + i
i∈N − v
yiv ≤ k
yiv ≥ 0
v = 1 m
i v ∈ A
(11)
(12)
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
66
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
• Phase 3: final improvement of the solution found
by the tabu search phase
r1
3.1.
i1
i2
1
r3
r2
i3
Figure 1
A 3-Split Cycle
Constraints (10)–(12) are the classical ones of an
∗
values define a feaassignment problem, and the yiv
sible assignment. Because the right-hand side of constraints (10)–(12) is made of integer numbers, it is well
known that there exists a feasible assignment a where
each variable yiv gets an integer value. By replacing
∗
values in s ∗ by those in a, one gets a feasible
the yiv
solution to (P ) that also has value z∗ , because variables yiv do not appear in the objective function. Dror and Trudeau (1989) have shown another interesting property on optimal solutions to the SDVRP.
To understand their result we first need to give the
following definition.
Definition 1. Consider a set C = i1 i2 it of customers and suppose that there exist t routes
r1 rt , t ≥ 2 such that rw contains customers iw
and iw+1 , w = 1 t − 1, and rt contains customers i1
and it . Such a configuration is called a t-split cycle.
Dror and Trudeau have shown that, if the distances
satisfy the triangle inequality, then there always exists
an optimal solution to the SDVRP that does not contain t-split cycles, t ≥ 2. In particular, for t = 2, this
implies that there exists an optimal solution where
each pair of tours has at most one vertex in common.
Figure 1 shows a solution of a SDVRP which contains
a three-split cycle.
3.
A Tabu Search Algorithm for
the k-SDVRP
In this section we present a tabu search algorithm for
the k-SDVRP, called SPLITABU. It is a very simple
algorithm, easy to implement, with only two parameters to be set: the length of the tabu list and the
maximum number of iterations the algorithm can run
without improving the best solution found. The algorithm is composed of the three following phases.
• Phase 1: construction of an initial feasible solution
• Phase 2: tabu search phase
Phase 1: Construction of an Initial
Feasible Solution
For constructing an initial feasible solution, we first
reduce the instance by making as many direct trips
as possible to each vertex (see §1). We then solve
a traveling salesman problem (TSP) on the reduced
instance and cut this giant tour into pieces so that the
capacity constraints are satisfied. For building a giant
TSP tour, we use the GENIUS algorithm proposed
by Gendreau, Hertz, and Laporte (1992). GENIUS is
composed of two procedures: The first one, GENI,
is a generalized insertion procedure and the second one, US, is a postoptimization routine. These
authors show that this algorithm is a very efficient
solution method for the traveling salesman problem.
A detailed description of Phase 1 is given below.
Phase 1
(1) Create di /k direct trips for each customer i,
and consider the reduced instance IR , where each customer i has a demand equal to di − kdi /k.
Remove all customers having no demand in IR .
(2) Construct a TSP tour T for the reduced instance
IR by means of the GENIUS algorithm.
(3) Choose an orientation for T and label the customers so that T = 0 = v0 v1 vb−1 vb = 0.
(4) If the total demand on T is smaller than or equal
to k, then stop.
Determine the smallest index i such that the
demand on T up to vi is strictly larger than k.
Build a route 0 v1 vi−1 0, set T '= 0 vi vb−1 0 and go to 3.
3.2. Phase 2: Tabu Search Phase
The tabu search algorithm uses two procedures called
ORDER ROUTES and BEST NEIGHBOR. Each procedure has a customer i as input parameter. In what
follows we denote by dir the quantity delivered to i
on route r, by (r the residual capacity on route r
(i.e., (r = k − ni=1 dir ) and by f s the total travelled
distance in solution s. Given a customer i, the first
procedure constructs an ordered list Oi of the routes
visiting i, the routes being ordered according to the
saving obtained by removing i. This is performed as
follows.
ORDER ROUTES(i)
(1) Determine the set Oi of routes that visit
customer i.
(2) For each route u in Oi compute su = cpi +ciq −cpq ,
where p and q are the predecessor and the successor
of i on u, respectively.
(3) Order the routes in Oi by nonincreasing value
of su .
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
In our tabu search algorithm, a move from a solution s to a neighbor solution s is performed by including a customer i into a route r and removing i from
a subset U ⊆ Oi − r of routes visiting i. The subset U is determined on the basis of the ordered list
established by ORDER ROUTES(i). The insertion of
a customer i in a route r is made with the classical
cheapest insertion method.
When a customer i is added to a route r, we consider as tabu for . iterations the removal of i from r,
and we will say that route r is tabu for i. Also, when
a customer i is removed from a route u, then it is tabu
for . iterations to reinsert i into u, and we will also
say that u is tabu for i. We have observed that values
of . that depend on the number n of customers and
on the number g of routes in the current solution s
produce better solutions. According to preliminary
experiments, we have decided to set . equal
to a ran√
dom integer number in the interval [ 10 10 + p],
where p = n + g if n + g < 100 and p = 32 n + g if
n + g ≥ 100, because this interval generates values of .
that are high enough to prevent cycling and not too
high to prevent the algorithm from obtaining good
solutions.
The tabu restrictions defined above may be too
strong and forbid a good neighbor solution. For this
reason, we also consider the possibility of removing a
customer i from routes that are tabu for i and inserting i into a route r that is tabu for i. However, such a
neighbor is only accepted if it leads to a better solution than the best one encountered so far.
Given a customer i to be inserted in a route r, it
may happen that each route u in Oi − r with diu ≤ (r
is tabu for i. In such a case, we consider the first
nontabu route u for i in Oi − r, we decrease by (r
units the quantity delivered to i in u, and we insert
customer i in r, setting dir = dir +(r . Hence, part of the
demand of i is removed from route u, and customer i
is inserted into r. This cannot lead to a solution of
better value than s, which is why we do not allow
such a move if u or r is tabu for i.
Given a customer i, procedure BEST NEIGHBOR(i)
described below determines a candidate neighbor si .
In Phase 2, this procedure is called for each customer
in V − 0, and a move is performed from the current solution s to the best neighbor among s1 sn .
In what follows we denote by R the set containing
all routes plus a new route (i.e., a route that does not
visit any customer) and UiT = u ∈ Oi u is tabu for i.
BEST NEIGHBOR(i)
Input: a solution s and the best solution s ∗ encountered so far.
Output: a neighbor solution si , a route r ∗ and a subset of routes U ∗ ⊆ Oi − r ∗ ; solution si is obtained
from s by inserting i into r ∗ and by either setting
67
dir ∗ '= dir ∗ + (r ∗ and diu '= diu − (r ∗ if U ∗ contains a single route u with diu > (r ∗ , or else by removing i from
all routes in U ∗ .
(1) Set BestValue '= and construct the ordered list
Oi by means of ORDER ROUTES(i).
(2) For each route r in R do the following:
(2.1) Removal from nontabu routes and insertion into
a nontabu route
(1) If r is not tabu for i, then set ( '= (r and
U '= ; or else go to 2.2.
(2) Consider all routes u ∈ Oi − r according to
the order defined in Oi and do the following: if u is
not tabu for i and diu ≤ (, then set U '= U ∪ u and
( '= ( − diu .
(3) If U = , then set F '= ; or else let s be
the solution obtained from s by removing i from all
routes in U and by inserting i into r setting dir '=
dir + u∈U diu , and let F = f s .
(4) If U = , let u be the first nontabu route
for i in Oi − r: set U '= u and consider the solution
s obtained by inserting i into r and by setting diu '=
diu − ( and dir '= dir + (, and let F '= f s .
(5) If F < BestValue, then set U ∗ '= U , r ∗ '= r,
BestValue '= F and si '= s .
(2.2) Removal from tabu routes or/and insertion into
a tabu route
(1) If r is tabu for i or UiT contains a route u
with diu ≤ (r , then set ( '= (r ; otherwise return to
2.1 with the next route r ∈ R. If r is tabu for i, then
set U '= , or else determine the first route u in UiT
(according to the ordering in Oi) such that diu ≤ (r ,
and set U '= u and ( '= (r − diu .
(2) Consider all routes u ∈ Oi − U ∪ r
according to the order defined in Oi , and do the following: if diu ≤ (, then set U '= U ∪u and ( '= (−diu .
(3) If U = , then set F '= ; or else let s be
the solution obtained from s by removing i from all
routes in U and by inserting i into r setting dir '=
dir + u∈U diu , and let F = f s (4) If F < BestValue and F < f s ∗ , then set
∗
U '= U , r ∗ '= r, BestValue '= F and si '= s .
(5) Return to 2.1 with the next route r ∈ R.
We can now describe the tabu search phase. It is a
standard tabu search algorithm that stops when nmax
iterations have been performed without improvement
of the best solution encountered so far. According to
preliminary experiments, we have fixed nmax equal
to 400n.
Phase 2
(1) Let s be the solution produced by Phase 1.
Set s ∗ '= s and counter '= 0;
(2) Set Best '= For i =1 to n do
Call BEST NEIGHBOR(i)
If f si < Best, then set BestI '= i,
68
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
BestU '= U ∗ , Bestr '= r ∗ , BestS '= si , and
BestF '= f si .
(3) Set s '= BestS;
Consider Bestr as well as all routes in BestU as
tabu for BestI during . iterations.
If BestF < f s ∗ , then set s ∗ '= s and
counter '= 0; or else
set counter '= counter + 1;
If counter < nmax , then go to 2; else stop.
3.3. Phase 3: Final Improvement
As mentioned in §2, Dror and Trudeau have shown
that, if the distances satisfy the triangle inequality,
then there always exists an optimal solution to the
SDVRP that does not contain t-split cycles with t ≥ 2.
A t-split cycle can easily be removed from a solution as follows. Suppose that there exists a t-split
cycle with routes r1 rt and such that rw contains
customers iw and iw+1 , w = 1 t − 1, and rt contains customers i1 and it . Let w ∗ be an index such
that diw∗ rw∗ ≤ diw rw , w = 1 t: one can transfer diw∗ rw∗
units of demand of each customer iw , w = 1 t − 1,
from rw to rw+1 as well as the same quantity for
customer it from rt to r1 . Customer iw∗ will thus be
removed from route rw∗ . If the distances satisfy the
triangle inequality, then this new solution is possibly
better than the one with the t-split cycle.
The final improvement phase performs this kind
of improvements. It also tries to reduce the length of
each route by applying the GENIUS algorithm.
Phase 3
(1) Let s be the solution resulting from Phase 2.
If the distances satisfy the triangle inequality, then
delete all t-split cycles from s (if any).
(2) Improve each individual route of s by means of
the GENIUS algorithm.
4.
Dror and Trudeau’s Algorithm
We give in this section a short description of the algorithm proposed by Dror and Trudeau for the SDVRP
(1989). They consider the case where the demand of
each customer is lower than the capacity of the vehicles. Their heuristic is a local search algorithm and is
composed of the following two main procedures.
k-SPLIT INTERCHANGE
Consider a vertex i and its total demand di :
(1) Remove vertex i from all the routes where it is
visited.
(2) Consider all subsets R of routes such that the
total residual capacity r∈R (r is greater than or equal
to di For each such subset R compute the total insertion cost of i into all routes of R. Choose the subset R
that leads to the least insertion cost and insert i into
all routes of R.
ROUTE ADDITION
Consider a customer i that appears in at least two
routes r1 and r2 . Eliminate the split of i on these
two routes and create a new route in the following
way:
(1) Preserve the four principle route segments on r1
and r2 (from the depot to the vertex preceding i and
from the vertex succeeding i to the depot).
(2) Create three routes considering all the possible
combinations between the principle route segments
and i (which must not be split) and choose the best
one.
There are nine possible combinations (for details
see Dror and Trudeau 1989). The same procedure is
considered when customer i is split among three different routes. In this case there are 19 possible combinations to be considered. If a vertex is visited by
more than three routes, the algorithm considers all the
possible combinations of two and three routes.
Moreover, Dror and Trudeau use the following
classical improvement procedures, which have been
developed for the capacitated VRP.
NODE INTERCHANGES
This procedure is based on one-node moves and twonodes swaps between routes and is described in detail
in Dror and Levy (1986).
2-OPT
This is the classical 2-opt procedure for the TSP (Lin
1965).
Defining boolean variables split_impr and add_impr,
the main algorithm works as follows:
(1) Construct a feasible VRP solution.
(2) NODE INTERCHANGES: execute all node
interchange improvements.
(3) 2-OPT: execute all 2-opt route improvements.
(4) Set split_impr = “false” and add_impr = “false.”
(5) k-SPLIT INTERCHANGE: execute all k-split
interchange improvements. If there is at least one
improvement, then set split_impr = “true.”
(6) ROUTE ADDITION: execute all route addition
improvements. If there is at least one improvement,
then set add_impr = “true.”
(7) If add_impr = “true,” then go to Step 5. Otherwise, if split_impr = “true,” go to Step 2 or else stop.
We close this section by showing that there exist
instances for which the above algorithm has no
chance to find an optimal solution. Consider the
instance of Figure 2a, which is a 4-SDVRP with symmetrical distances that satisfy the triangle inequality.
Each of the four customers has a demand equal to
three. In Figure 2b we have represented the unique
feasible VRP solution (where no split is allowed),
which is therefore the initial solution of Dror
and Trudeau’s algorithm (and also of SPLITABU).
This solution has a cost of 16. Procedures NODE
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
69
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
3
1
j
3
3
z
1
2
2
3
i
r2
1
2
3
t 3
2
r3
i
3
3
z
j
t
3
3
r1
i
r1
1
3
3
r3
r3
i
t
(b) VRP solution
z
j
3
1
(a) a problem instance
3
t
r4
r1
2
1
r4
r4
1
(c) split solution
Figure 2
3
2
2
3
z
j
(d) optimal solution
An Instance of the 4-SDVRP for Which Dror and Trudeau’s Algorithm Cannot Find the Optimal Solution
INTERCHANGES and 2-OPT cannot improve this
solution. As the demand of each customer is three
while the residual capacity of each route is one, the
only feasible k-split interchange consists in splitting
the demand of one customer among the three other
routes, as shown in Figure 2c (where the demand of
customer j is split into routes r1 , r3 and r4 ). Such a
k-split interchange produces a solution of value 16
(if the demand of customers j or z is split) or 17
(if the demand of customers i or t is split). Hence,
no improvement can be obtained with procedure
k-SPLIT INTERCHANGE, and one therefore enters
Step 6 with the initial VRP solution. Since there is no
split vertex, the ROUTE ADDITION procedure cannot
perform any change on this solution, and Dror and
Trudeau’s algorithm therefore stops at Step 7 without
finding the optimal solution of value 15, which is represented in Figure 2d (where r1 delivers three units
to i and one unit to j, route r3 delivers two units to j
and to z and route r4 delivers one unit to z and three
units to t).
With the neighbourhood defined in SPLITABU, it
is possible to reach the optimal solution. Indeed, one
can first move one unit of demand of customer j from
route r2 to route r1 (Figure 3a). One can then move one
unit of demand of customer z from route r3 to route r4
(Figure 3b). One can finally remove customer j from
route r2 and insert it into r3 with dj3 = 2 (Figure 2d).
It is in fact easy to build such instances for any value
of k (not only for k = 4).
5.
Computational Results
This section contains computational experiments to
evaluate the performance of SPLITABU. The algorithm was implemented in C++ on a PC Pentium 4,
256 MB RAM, CPU 2.40 GHz. We have first generated problems of small size as follows. We have considered the n first customers of the benchmark VRP
problems described in Gendreau, Hertz, and Laporte
(1994), with n = 6 7 15. All these problems have a
fixed vehicle capacity, which was reduced to a smaller
value so that at least three vehicles are needed in a
VRP solution. These small problems were solved using
CPLEX 6.6. While problems with up to 10 customers
could be solved in a few seconds, larger problems with
n = 11 15 required between 1 hour and 4 days
of computation. For comparison, SPLITABU has produced the same optimal solutions for all these problems in less than 1 second.
Larger problems with more than 15 customers
can hardly be solved to optimality. To evaluate the
performance of SPLITABU on larger instances we
compare the results produced by SPLITABU with
those obtained using Dror and Trudeau’s algorithm
(DT for short). Algorithm DT was implemented in
C++ on the same PC. We have considered problems
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
70
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
3
z
j
3
3
z
j
r2
3
r2
r3
r3
3
i
t
r1
Figure 3
3
3
i
t
r1
r4
3
r4
1
1
(a)
(b)
Solutions Visited by SPLITABU for the Same Instance as in Figure 1
1–5, 11, and 12 from Gendreau, Hertz, and Laporte
(1994). These problems have between 50 and 199 customers. As proposed by Dror and Trudeau (1989), the
demands of the customers have been modified as follows. Let 3 and 4 be two parameters chosen in the
interval [0, 1], with 3 ≤ 4. The demand di of customer
i is set equal to
di = 3k + 54 − 3k
where 5 is a random number in [0, 1]. In words, the
demand di of customer i is chosen randomly in the
interval 63k 4k7. As in Dror and Trudeau (1989), we
have considered the following combinations 3 4 of
parameters: (0.01, 0.1), (0.1, 0.3), (0.1, 0.5), (0.1, 0.9),
(0.3, 0.7), and (0.7, 0.9). We have also considered the
case where the original demands are not changed.
This gives a total of 49 instances (since there are
7 instances with different demands for each of the
7 VRP problems taken from Gendreau, Hertz, and
Laporte 1994).
Preliminary experiments with SPLITABU have
shown that some solutions can easily be improved by
applying the 2-OPT and the NODE INTERCHANGES
procedures each time the best solution s ∗ encountered
so far is improved (Step 3 of Phase 2). This variant of SPLITABU is called SPLITABU-DT. We have
also implemented another variant of SPLITABU where
the GENIUS algorithm (Gendreau, Hertz, and Laporte
1992) is applied on each route of s ∗ each time s ∗ is
improved. The results for this last variant are not
reported here because SPLITABU-DT has always produced solutions that are better both in terms of quality
and CPU time. Finally, since algorithm DT is much
faster than our tabu search (see Table 1), we have
considered a variant of SPLITABU-DT, called FASTSPLITABU, where Phase 2 is run for at most 1 minute.
Computational results are given in Tables 1 and
2. Each variant of SPLITABU was run five times on
each instance (two executions on a same instance
may differ due to the randomness of the length
of the tabu list). Computing times are reported in
Table 1, where CPUav , CPUmin , and CPUmax represent the average, the minimum and the maximum
CPU times in seconds calculated over the five tests
made for each of the 49 instances. When no value
is given for parameters 3 and 4, this means that
we used the original demands taken from Gendreau,
Hertz, and Laporte (1994). We observe that algorithm
DT is very fast since it requires less than one second for 35 of the 49 instances. In average, SPLITABU
and SPLITABU-DT require less than 10 minutes for
35 and 31 instances, respectively. They both require
more than one hour in only two cases. We can observe
in Table 1 that CPU times increase not only with the
number of customers but also with their demands.
Indeed, an instance with (3, 4) = (0.01, 0.1) is typically solved much faster than the same instance with
(3, 4) = (0.7, 0.9). The reason is that more vehicles are
needed when the demands become larger, and this
induces an increase in the number of neighbor solutions to be considered at each step of the tabu search.
Table 2 indicates the improvement in quality obtained by using the variants of SPLITABU instead
of algorithm DT. For each algorithm, we give the
average zav the smallest zmin , and the largest zmax
improvements (in %) over DT. The best results are
indicated with bold numbers. For each set of parameters the average results are reported as well as the
average over all the 49 instances in the last line of
the table. It can be observed that SPLITABU-DT finds
better solutions than DT on all 49 instances. The
improvement even reaches 17.34% on Instance 7 with
(3, 4) = (0.01, 0.1). Algorithms SPLITABU and FASTSPLITABU both outperform DT on 43 instances. The
advantage of the three variants of SPLITABU over
algorithm DT is particularly visible on instances with
small demands. We have observed in Table 1 that
high demands induce large neighborhoods for tabu
search, since more vehicles are needed. Hence, the
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
71
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
Table 1
Computational Times
SPLITABU
Problem
SPLITABU-DT
n
D&T CPU
CPUmin
CPUav
CPUmax
CPUmin
CPUav
CPUmax
1
2
3
4
5
6
7
50
75
100
150
199
120
100
—
—
—
—
—
—
—
—
—
—
—
—
—
—
0
0
0
0
0
1
0
13
23
31
193
665
39
65
17
64
60
440
1900
40
86
22
175
93
809
4170
41
105
7
21
34
135
281
38
41
13
36
58
389
386
38
49
24
70
120
573
465
39
68
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0
0
0
0
0
1
0
5
17
27
107
224
39
23
9
42
59
258
754
61
71
14
86
89
810
1513
102
118
4
10
23
107
319
37
23
5
13
31
173
526
42
58
7
16
45
233
858
52
92
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0
0
0
0
1
1
0
9
27
60
221
660
214
67
27
78
122
545
1224
516
85
44
180
193
900
2399
1117
119
12
25
66
265
630
110
67
22
45
96
393
755
143
146
33
71
121
596
1061
198
440
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.5
0.5
0.5
0.5
0.5
0.5
0.5
0
0
0
0
1
1
0
21
38
92
381
1023
206
94
56
71
206
564
3811
259
188
141
89
562
730
7994
428
478
13
70
97
397
882
177
87
28
123
136
739
2668
268
293
62
204
271
1512
4767
465
924
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
0.9
0.9
0.9
0.9
0.9
0.9
0.9
0
0
0
0
2
1
0
22
99
197
696
1883
389
187
34
311
412
1822
2598
1037
523
59
627
980
2570
3162
2514
1098
19
134
194
725
2066
316
174
61
193
649
2278
3297
878
260
97
354
963
4760
4204
2739
413
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.3
0.3
0.3
0.3
0.3
0.3
0.3
0.7
0.7
0.7
0.7
0.7
0.7
0.7
0
0
0
1
2
1
0
18
120
182
800
1886
368
188
52
184
454
1512
2279
477
411
97
301
730
2535
3573
830
748
28
74
174
839
2067
451
350
49
129
810
3008
3566
659
778
99
219
1638
5533
6799
1264
1321
1
2
3
4
5
6
7
50
75
100
150
199
120
100
0.7
0.7
0.7
0.7
0.7
0.7
0.7
0.9
0.9
0.9
0.9
0.9
0.9
0.9
0
0
0
2
7
1
0
61
210
1497
4329
4494
1150
928
160
437
1891
8783
11347
2033
1865
267
625
2160
17565
31516
2909
3074
83
582
762
4837
10285
1189
506
106
869
1398
10223
21849
1826
1004
144
1530
2686
14005
39401
2674
1426
optimization process in SPLITABU is more time consuming for such kind of instances, and this explains
why FAST-SPLITABU (that stops after one minute)
produces results of relatively bad quality on most
instances with (3, 4) = (0.7, 0.9). Notice however that
SPLITABU-DT is able to gain up to 5% on these
instances. From the average results we can see that,
except for the case where (3, 4) = (0.7, 0.9), the tabu
search performs better than the DT algorithm. The
total average clearly shows that all tabu search algorithms improve on algorithm DT, even in the worst
case (column zmax ).
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
72
Table 2
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
Percentage Improvement over Dror and Trudeau’s Algorithm
SPLITABU
Problem
SPLITABU-DT
FAST-SPLIT
n
zmin
zav
zmax
zmin
zav
zmax
zmin
zav
zmax
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
—
—
—
—
—
—
—
—
—
—
—
—
—
—
1006
608
755
652
134
073
1389
659
965
482
621
606
057
−005
1357
583
911
395
448
512
016
−064
1344
509
955
548
763
587
260
283
1389
683
906
506
738
538
239
260
1328
645
799
453
675
479
204
237
1234
583
955
548
763
491
246
283
1389
668
906
506
737
375
213
260
1328
618
799
453
675
229
158
237
1234
541
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.01
0.01
0.01
0.01
0.01
0.01
0.01
01
01
01
01
01
01
01
575
831
620
734
880
359
1671
810
512
777
427
645
632
073
1384
636
470
745
166
558
385
−152
1005
454
575
868
865
781
857
251
1734
847
514
814
682
687
784
173
1567
746
465
762
511
602
726
098
1344
644
575
868
865
747
755
251
1646
815
514
814
682
659
675
173
1502
717
465
762
511
602
551
098
1344
619
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
03
03
03
03
03
03
03
672
528
144
109
101
319
902
396
502
392
075
046
068
153
791
290
262
268
010
−017
048
086
673
190
661
489
141
214
240
107
997
407
540
425
103
161
215
092
847
340
376
346
066
117
194
062
635
257
661
489
122
162
199
099
995
390
540
425
094
128
176
084
814
323
376
346
066
086
148
062
635
246
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
05
05
05
05
05
05
05
535
332
178
220
144
472
713
371
405
269
131
156
078
372
539
279
262
185
106
076
014
256
489
198
505
389
142
250
232
454
765
391
396
313
095
161
120
281
539
272
334
273
074
117
−028
017
318
158
505
344
142
150
151
248
615
308
396
272
082
094
031
152
427
208
334
202
011
039
−028
017
310
126
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.1
0.1
0.1
0.1
0.1
0.1
0.1
09
09
09
09
09
09
09
412
286
279
172
190
037
363
248
332
249
227
103
124
−044
243
176
220
203
197
022
062
−166
057
085
656
313
503
490
716
416
699
542
487
234
339
342
488
−081
418
318
283
178
214
−020
394
−371
134
116
656
195
293
390
223
−227
645
311
484
152
188
149
114
−305
394
168
283
104
001
−020
−049
−411
134
006
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.3
0.3
0.3
0.3
0.3
0.3
0.3
07
07
07
07
07
07
07
369
176
349
240
−039
099
411
229
272
134
285
183
−107
−116
233
126
137
090
211
087
−236
−488
119
−011
415
253
787
609
585
523
1263
633
352
204
433
437
394
218
791
404
283
160
184
298
241
−068
438
219
415
223
361
302
172
267
485
318
351
187
261
202
−001
−061
336
182
285
160
184
140
−277
−216
147
060
1
2
3
4
5
6
7
AVERAGE
50
75
100
150
199
120
100
0.7
0.7
0.7
0.7
0.7
0.7
0.7
09
09
09
09
09
09
09
076
−049
−065
−063
−128
−173
095
−044
063
−083
−081
−094
−297
−413
040
−124
034
−139
−095
−168
−624
−585
009
−224
190
202
127
310
528
058
416
262
114
069
072
156
196
−170
227
095
070
−041
029
088
047
−358
119
−007
190
−076
−120
−238
−478
−860
138
−206
101
−122
−196
−347
−596
−864
030
−285
064
−172
−288
−419
−770
−1037
−077
−386
381
281
172
538
403
281
372
276
173
TOTAL AVERAGE
Archetti, Speranza, and Hertz: A Tabu Search Algorithm for the Split Delivery Vehicle Routing Problem
Transportation Science 40(1), pp. 64–73, © 2006 INFORMS
6.
Conclusions
We have described in this article several variants of
a tabu search algorithm, called SPLITABU, for the
k-SDVRP. SPLITABU is a very simple algorithm, easy
to implement, with only two parameters. Computational experiments confirm that optimal solutions
can be obtained in a practically null time for small
instances having up to 15 customers. Comparison
with algorithm DT (the only existing heuristic algorithm for the k-SDVRP) shows that the variants of
SPLITABU provide almost always better solutions on
the tested instances even when computational times
are limited to one minute.
Acknowledgments
The authors thank Jean-François Cordeau and Oli Madsen
for providing the code for GENIUS, and Moshe Dror for
useful information on the code of his algorithm for the
SDVRP.
References
Archetti, C., R. Mansini, M. G. Speranza. 2005. Complexity and
reducibility of the skip delivery problem. Transportation Sci.
Forthcoming.
Belenguer, J. M., M. C. Martinez, E. Mota. 2000. A lower bound
73
for the split delivery vehicle routing problem. Oper. Res. 48
801–810.
Dror, M., L. Levy. 1986. A vehicle routing improvement algorithm
comparison of a “greedy” and a matching implementation for
inventory routing. Comput. Oper. Res. 13 33–45.
Dror, M., P. Trudeau. 1989. Savings by split delivery routing. Transportation Sci. 23 141–145.
Dror, M., P. Trudeau. 1990. Split delivery routing. Naval Res. Logistics 37 383–402.
Dror, M., G. Laporte, P. Trudeau. 1994. Vehicle routing with split
deliveries. Discrete Appl. Math. 50 239–254.
Frizzell, P. W., J. W. Giffin. 1995. The split delivery vehicle scheduling problem with time windows and grid network distances.
Comput. Oper. Res. 22 655–667.
Gendreau, M., A. Hertz, G. Laporte. 1992. New insertion and
postoptimization procedures for the traveling salesman problem. Oper. Res. 40 1086–1094.
Gendreau, M., A. Hertz, G. Laporte. 1994. A tabu search heuristic
for the vehicle routing problem. Management Sci. 40 1276–1290.
Lin, S. 1965. Computer solutions of the traveling salesman problem.
Bell System Tech. J. 44 2245–2269.
Mullaseril, P. A., M. Dror, J. Leung. 1997. Split-delivery routing in
livestock feed distribution. J. Oper. Res. Soc. 48 107–116.
Sierksma, G., G. A. Tijssen. 1998. Routing helicopters for crew
exchanges on off-shore locations. Ann. Oper. Res. 76 261–286.
Toth, P., D. Vigo, eds. 2002. The Vehicle Routing Problem. SIAM
Monographs on Discrete Mathematics and Applications. SIAM,
Philadelphia, PA.