<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Combining Constraint Programming, Lagrangian Relaxation and Probabilistic Algorithms to solve the Vehicle Routing Problem</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Daniel Guimarans</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rosa Herrero</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Riera</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Angel A. Juan</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan Jos</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>e Ramos</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Departament de Telecomunicaci</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Estudis d'Informμatica</institution>
          ,
          <addr-line>Multimμedia i Telecomunicaci</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>o Universitat Oberta de Catalunya (UOC) Barcelona</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper presents a hybrid approach that aims at solving the Capacitated Vehicle Routing Problem (CVRP) by means of combining Constraint Programming (CP) with Lagrangian Relaxation (LR) and Probabilistic Algorithms. After introducing the CVRP and reviewing the main literature in this area, the paper proposes the use of a multistart hybrid Variable Neighbourhood Search (VNS) algorithm. This algorithm uses a randomised version of the classical Clarke and Wright savings heuristic to generate a starting solution to a given CVRP. This starting solution is then improved through a local search process which combines: (a) LR to optimise each individual route, and (b) CP to quickly verify the feasibility of new proposed solutions. Some results on well-known CVRP benchmarks are analysed and discussed.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Road transportation is nowadays the predominant way of transporting goods
in many parts of the world. Direct costs associated with this type of
transportation have experienced a signi¯cant increase since 2000.</p>
      <p>There is a need for developing e±cient models and methods that support
decision-making processes in the road transportation arena so that optimal
(or quasi-optimal) strategies can be chosen. This necessity for optimising
road transportation, which a®ects both the public and private sectors,
constitutes a major challenge for most industrialised regions.</p>
      <p>
        The class of logistic problems dealing with the issues presented in the
previous paragraph are usually known as the Vehicle Routing Problem (VRP).
This is among the most popular research areas in combinatorial
optimisation. It was ¯rst de¯ned by Dantzig and Ramser in 1959 [
        <xref ref-type="bibr" rid="ref2">6</xref>
        ], and several
variants of the basic problem have been proposed and studied later. The
most basic VRP is the CVRP, which assumes a °eet of vehicles of
homogeneous capacity housed in a single depot. It is a generalisation of the
Travelling Salesman Problem (TSP) and is therefore NP-hard [
        <xref ref-type="bibr" rid="ref17">21</xref>
        ]. For such
problems, even ¯nding an initial solution is NP-hard and often requires a
high computational e®ort.
      </p>
      <p>For this paper, the CVRP has been chosen. It is mainly because there
are a huge amount of models, techniques, benchmarks and research | in
general | done before (See Section 3). Hence, results given by the presented
methodology can be compared with a number of previous ones.</p>
      <p>The paper presents a general VNS structure whose local search
process is supported by Constraint Programming (CP) and lagrangian
Relaxation (LR). A probabilistic Clarke and Wright Savings (CWS) constructive
method is used to generate initial solutions.</p>
      <p>The remainder of this article is structured as follows. Next sections
provide a general overview of CVRP formulation and a few words on previous
work.An introduction to the CVRP mathematical model and the
technologies used in this research are presented in sections 4 and 5 respectively.
Section 6 is devoted to the proposed method, based on the VNS
metaheuristic; the general algorithm, moves used within its structure and the
adapted LR-method are introduced in this section. Next, computational
results are presented and discussed. Finally, some conclusions, remarks and
future research topics are outlined in the last section.
2</p>
      <p>The Capacitated Vehicle Routing Problem
The CVRP is de¯ned over a complete graph GfI; Eg connecting the vertex
set I = f1; 2; : : : ; ng | clients to be served and the depot | through a set
of edges E = f(i; j)ji; j 2 Ig | roads, streets, etc. Edges eij 2 E have an
associated a travel cost cij , which is supposed to be the lowest cost route
connecting node i to node j. Usually, to simplify it (not the complexity but
the problem de¯nition), edges cost is assumed as symmetric (cij = cji). Each
vertex i 2 Inf1g has a nonnegative demand qi, while, vertex 1 corresponds
to the depot, which does not have an associated demand.</p>
      <p>A ¯xed °eet of m identical vehicles, each one with capacity Q, is available
at the depot to accomplish the required tasks. Solving the CVRP consists
of determining a set of m routes whose total travel cost is minimised and
such that (a) each customer is visited exactly once by a single vehicle, (b)
each route starts and ends at the depot, and (c) the total demand of the
customers assigned to a route does not exceed the vehicle capacity Q.</p>
      <p>Therefore, a solution to the CVRP is a set of m cycles sharing a common
starting and ¯nishing vertex (i.e. the depot).</p>
      <p>Previous work on the Capacitated Vehicle
Routing Problem
CWS constructive algorithm [4] is probably the most cited heuristic to solve
the CVRP. The CWS is an iterative method that starts out by considering
an initial dummy solution in which each customer is served by a dedicated
vehicle. Next, the algorithm initiates an iterative process for merging some
of the routes in the initial solution.</p>
      <p>
        The CWS algorithm usually provides relatively good solutions, especially
for small and medium-size problems. Many variants and improvements of
the CWS have been proposed in the literature [
        <xref ref-type="bibr" rid="ref11">15</xref>
        ].
      </p>
      <p>
        Using constructive heuristics as a basis, metaheuristics became popular
for the VRP during the nineties. Some early examples are the Tabu Route
method by Gendreau et al. [
        <xref ref-type="bibr" rid="ref7">11</xref>
        ] or the Boneroute method of Tarantilis and
Kiranoudis [
        <xref ref-type="bibr" rid="ref19">23</xref>
        ]. Tabu search algorithms, like the one proposed by Toth and
Vigo [
        <xref ref-type="bibr" rid="ref20">24</xref>
        ] is among the most cited metaheuristics. Genetic algorithms have
also played a major role in the development of e®ective approaches for the
VRP (e.g. [
        <xref ref-type="bibr" rid="ref14">18</xref>
        ]). Another important approach to the VRP is given by the
Greedy Randomised Adaptive Search Procedure (GRASP) [
        <xref ref-type="bibr" rid="ref4">8</xref>
        ].
      </p>
      <p>
        Monte Carlo Simulation (MCS) can be de¯ned as a set of techniques that
make use of random numbers and statistical distributions to solve certain
stochastic and deterministic problems [
        <xref ref-type="bibr" rid="ref12">16</xref>
        ]. MCS has proved to be extremely
useful for obtaining numerical solutions to complex problems that cannot be
e±ciently solved by analytical approaches. Buxey [3], in 1979, was probably
the ¯rst author to combine MCS with the CWS algorithm to develop a
procedure for the CVRP. This method was revisited by Faulin and Juan [
        <xref ref-type="bibr" rid="ref3">7</xref>
        ],
who introduced an entropy function to guide the random selection of nodes.
      </p>
      <p>
        Another way to face the VRP has been the use of complete methods,
which ensure not only to ¯nd the solution but also, to prove its optimality.
The main drawback of these techniques is that they may only deal with
small instances, up to 100 customers [
        <xref ref-type="bibr" rid="ref1">5</xref>
        ]. Numerous heuristics and
metaheuristics (like those presented above) have also been studied for di®erent
VRP variants. In most cases, these methods may solve larger instances but
loosing optimality guarantees. Among metaheuristics, Variable
Neighbourhood Search (VNS), introduced for the ¯rst time by Mladenovic and Hansen
[
        <xref ref-type="bibr" rid="ref13">17</xref>
        ], is a quite a recent method with far less application examples in VRP
research. However, interesting results have been obtained even applying
the simplest VNS algorithm (e.g. [
        <xref ref-type="bibr" rid="ref9">13</xref>
        ]). For this reason, VNS has been
selected as the general framework where to embed CP and LR approaches to
the CVRP. By using these two well-known paradigms within the VNS local
search process, calculation time may be reduced with respect to classical
VNS schemes.
      </p>
    </sec>
    <sec id="sec-2">
      <title>Mathematical Model of the CVRP</title>
      <p>In the proposed model, the CVRP has been divided into two subproblems,
concerning customers' allocation and routing optimisation separately. The
¯rst is aimed to assign customers to the minimum number of required
vehicles ful¯lling capacity limitations. The latter is used to solve each
independent route to optimality, giving the best solution for a particular allocation.
4.1</p>
      <p>Capacity problem
The proposed customers' allocation subproblem uses two lists of variables.
A list R of size n, with integer domains Ri 2 [1::m]ji = 1; :::; n, indicates
which vehicle is serving the ith customer. Given a vehicle v, Qv is a list
of m variables with real domain Qv 2 [0::Q] used to trace the cumulative
capacity at each one of the m routes. Therefore, capacity constraints are
enforced through domains de¯nition since Qv cannot get higher values than
the maximum capacity Q.</p>
      <p>A set of m £ n binary variables B has been introduced to relate R and
Qv values. For each vehicle v 2 V , a list of n binary variables Bvi j i 2 I is
de¯ned, taking value 1 whenever customer i is assigned to vehicle v and 0
otherwise. Since each customer i is visited by a single vehicle, for all values
of v the binary variable Bvi can take value 1 only once.</p>
      <p>The binary set B and allocation variables R are related through the
following statement:</p>
      <p>Cumulative capacities can be traced simply by using Eq.2.</p>
      <p>Ri = ri ! Brii = 1 8i 2 I</p>
      <p>Qv =</p>
      <p>X Bviqi 8v 2 V
i2I
(1)
(2)
4.2</p>
      <p>Routing Problem
The routing problem, tackled for each vehicle separately, can be viewed as
a TSP instance. For each vehicle v, the related TSP can be considered as
a complete undirected graph G = (Iv; Ev), connecting assigned customers
Iv = fi 2 IjRi = vg through a set of undirected edges Ev = f(i; j) 2 Eji; j 2
Ivg. The solution is a path connected by edges belonging to Ev that starts
and ends at the depot (i = 1) and visits all assigned customers.</p>
      <p>The proposed mathematical formulation requires de¯ning the binary
variable xe to denote that the edge eij 2 Ev is used in the path. That
is xe = 1 if customer j is visited immediately after i; otherwise xe = 0.
Thus, the formulation for the TSP problem is as follows:
subject to
min</p>
      <p>X cexe
e2Ev
X xe = 2 ;</p>
      <p>8i 2 Iv
e2±(i)</p>
      <p>X
e2Ev(S)
xe ·j S j ¡1 ;</p>
      <p>1
8S ½ Iv ; j S j· 2 j Iv j
(3)
(4)
(5)
where ±(i) = fe 2 Ev : 9j 2 Iv; e = (i; j) or (j; i)g represents the set of arcs
whose starting or ending node is i; Ev(S) = feij 2 Ev : i; j 2 Sg represents
the set of arcs whose nodes is in the subset S of vertices; nv = jIvj; and ce
is the associated cost to the undirected edge eij (eji).</p>
      <p>Constraint (4) states that every node i 2 Iv must be visited once, that
is, every customer must have two incident edges. Subtour elimination
constraint (5) states that the tour must be a Hamiltonian path, so it cannot
have any subcycle. Then a feasible solution of the TSP should, by de¯nition,
also satisfy constraints (a) and (b) of the CVRP, minimising the total travel
cost of the route.
5
5.1</p>
    </sec>
    <sec id="sec-3">
      <title>Technologies Used</title>
      <p>Probabilistic Clarke and Wright Savings Algorithm
CWS is an iterative method that starts out by considering an initial dummy
solution in which each customer is served by a dedicated vehicle. Next, the
algorithm initiates an iterative process for merging some of the routes in the
initial solution. Merging routes can improve the expensive initial solution
so that a unique vehicle serves the nodes of the merged route. The merging
criterion is based upon the concept of savings. Roughly speaking, given
a pair of nodes to be served, a savings value can be assigned to the edge
connecting these two nodes. This savings value is given by the reduction
in the total cost function due to serving both nodes with the same vehicle
instead of using a dedicated vehicle to serve each node.This way, the
algorithm constructs a list of savings, one for each possible edge connecting two
demanding nodes. At each iteration of the merging process, the edge with
the largest possible savings is selected from the list as far as the following
conditions are satis¯ed: (a) the nodes de¯ning the edge are adjacent to the
depot, and (b) the two corresponding routes can be feasibly merged | i.e.
the vehicle capacity is not exceeded.</p>
      <p>The selection process should be done without introducing too many
parameters in the algorithm. To do it, di®erent geometric statistical
distributions during the randomised CWS solution-construction process are
employed: every time a new edge is selected from the list of available edges,
a value ® is randomly selected from a uniform distribution in (a; b), where
0 &lt; a · b &lt; 1. This parameter ® de¯nes the speci¯c geometric distribution
that will be used to assign exponentially diminishing probabilities to each
eligible edge according to its position inside the sorted savings list. That way,
edges with higher savings values are always more likely to be selected from
the list, but the exact probabilities assigned are variable and they depend
upon the concrete distribution selected at each step.
5.2</p>
      <p>
        Constraint Programming
CP is a powerful paradigm for representing and solving a wide range of
combinatorial problems. Problems are expressed in terms of three entities:
variables, their corresponding domains and constraints relating them. The
problems can then be solved using complete techniques such as depth-¯rst
search for satisfaction and branch and bound for optimisation, or even
tailored search methods for speci¯c problems. Rossi et al. present a complete
overview of CP modelling techniques, algorithms, tools and applications [
        <xref ref-type="bibr" rid="ref6">10</xref>
        ].
5.3
      </p>
      <p>
        Lagrangian Relaxation
LR is a well-known method to solve large-scale combinatorial optimisation
problems. It works by moving hard-to-satisfy constraints into the objective
function associating a penalty in case they are not satis¯ed. An excellent
introduction to the whole topic of LR can be found in [
        <xref ref-type="bibr" rid="ref5">9</xref>
        ].
      </p>
      <p>
        LR exploits the structure of the problem, so it reduces considerably
problem's complexity. However, it is often a major issue to ¯nd optimal
Lagrangian multipliers. The most commonly used algorithm is the Subgradient
Optimisation (SO). The main di±culty of this algorithm lays on choosing a
correct step-size ¸k in order to ensure algorithm's convergence [
        <xref ref-type="bibr" rid="ref15">19</xref>
        ].
      </p>
      <p>Therefore, the proposed method combines the SO algorithm with a
heuristic to obtain a feasible solution from a dual solution. It can get a
better upper bound U B, so it improves the convergence on the optimal
solution departing from an initial U B obtained with a Nearest Neighbour
Heuristic. If the optimal solution is not reached at a reasonable number of
iterations, the proposed method is able to provide a feasible solution with a
tight gap between the primal and the optimal cost.
5.4</p>
      <p>
        Variable Neighbourhood search
A general VNS, as explained in [
        <xref ref-type="bibr" rid="ref8">12</xref>
        ], is a recent metaheuristic which exploits
systematically the idea of neighborhood change, both in descent to local
minima and in escape from the valleys which contain them. A
diversi¯cation process (shaking ) ensures that di®erent regions of the search space are
explored. Every time the shaking process generates a new solution, it is
improved by means of a Variable Neighbourhood Descent (VND) method.
      </p>
      <p>The VNS starts from an initial solution x. A new point is generated
at random from the kth neighbourhood Nk(x) of x in order to diversify
the search. If the valley surrounding the solution x is large, a thorough
diversi¯cation should be done aiming to avoid getting trapped in a local
optimum. For this reason, the shaking process is repeated.</p>
      <p>The local search process for each neighbourhood Nl(x0) performs an
exhaustive exploration with a best-accept strategy. Finally, the best neighbour
x00 is chosen in terms of its solution value f (x00) = Pv2V U Bv. If its value is
lower than the original f (x0), the solution is updated and neighbourhoods
exploration is restarted.</p>
      <p>When the VND process reaches a local optimum, no solution
improvement may be found according to de¯ned neighbourhoods. If this local
optimum is better than the incumbent, it is accepted as the current solution
x Ã x00 and the search is restarted from the ¯rst shaking neighbourhood.
Otherwise, the algorithm keeps x as the best solution found so far and
continues exploring the next neighbourhood. If there are no remaining
neighbourhoods to be explored, the process is restarted until the stopping condition
is met.
6</p>
    </sec>
    <sec id="sec-4">
      <title>The Proposed Methodology</title>
      <p>
        The described problem has been tackled using a hybrid approach. The
proposed methodology combines CP and LR within a metaheuristics framework
in order to improve algorithm's performance. As mentioned, even the most
basic VNS algorithm, known as VND, has provided promising results when
solving di®erent VRP variants. In the proposed approach, a general VNS
framework has been chosen to embed selected paradigms. Within the VNS
general framework, CP and LR are used in di®erent processes. During
algorithm's initialisation, a Probabilistic CWS method has been used to ¯nd
an initial feasible solution [
        <xref ref-type="bibr" rid="ref10">14</xref>
        ].
      </p>
      <p>CP is used to check solutions feasibility within diversi¯cation and
local search processes. In turn, a tailored LR method is applied to calculate
routes every time a partial solution is generated either during initialisation,
diversi¯cation or local search processes. Using LR allows reducing the
computation time when compared to other routing post-optimisation methods,
such as a VND with single-route classical moves. So, the proposed LR
approach provides optimal routes in very low times and, at the same time,
allows reducing algorithm's de¯nition and complexity.
6.1</p>
      <p>Lagrangian Relaxation Method Applied
The LR-based method is used within the local search process to solve the
routing problem to optimality. It can be considered a speci¯cation of the
Lagrangian Metaheuristic presented on Boschetti and Maniezzo [2]. It uses
the SO algorithm combined with a heuristic. Aiming to improve algorithm's
convergence to the optimum, a heuristic is introduced in order to obtain a
feasible solution from the dual variable. This method tries to improve the
U B with the values of these feasible solutions, so a better convergence is
obtained. Eventually, this solution may be provided as the best solution if
the method is stopped. The stopping criterion is based on the maximum
number of iterations (k &lt; maxiterations) and also on a °oating-point
exception (°k &lt; 10¡15). The proposed LR-based method algorithm is shown in
Table 1.
Calculate the step-size ¸k = ±k L¡k°Lk(ku2k)
Update the multiplier uk+1 = uk + ¸k°k
k Ã k + 1</p>
      <p>The proposed heuristic to improve the U B is applied when the solution
is nearly a route. That is, if it satis¯es k ° k2&lt; » (step 8). As any solution
is a 1-tree, this criterion means that the solution has few vertices without
two incident edges. This heuristic replaces an edge e = (i; j) where j has
some extra edges for an edge e = (i; l) where l has one single edge. Before
applying the exchange, the heuristic checks if the new solution is a 1-tree.
Otherwise, the heuristic can divide it into more trees having some subtours.
The chosen vertices i; j; l minimise the cost of the exchange:
fi; j; lg = argminncil ¡ cij j °j &lt; 0; °l &gt; 0; (i; j) 2 T; (i; l) 2 E r T o (6)</p>
      <p>The parameter » depends on the number of variables. A good estimation
of » value would avoid increasing the computation time excessively. First,
its value may be large, for instance nv=2, but it should be updated whenever
a feasible solution is found according to » =k °k k2 . If this parameter is not
correctly updated, the heuristic becomes time consuming. Eventually, the
heuristic could ¯nd the optimal solution without detecting it, so the method
would continue iterating until LB = U B.</p>
      <p>As mentioned, algorithm's convergence is critically in°uenced by the
step-size ¸k . This value relies on either the LB or the U B, which are
normally unknown or bad estimated. Therefore, convergence may not be
assured for all cases. In order to overcome this limitations, the use of a
parameter L, such that LB · L · U B , is proposed. By de¯nition, this
parameter corresponds to a better estimation of L¤ than those obtained for
LB and U B. The calculation of the step-size turns into:
¸k = ±k</p>
      <p>L ¡ L(uk)</p>
      <p>k °k k2</p>
      <p>Convergence is guaranteed if the term L ¡ L(uk) tends to zero. In turn,
convergence e±ciency can be improved as long as the new L parameter gets
closer to the (unknown) optimal solution. The main idea is very simple:
as the algorithm converges to the solution, new better lower bounds are
known and new better upper bounds estimations can be obtained by using
the heuristic designed to get feasible solutions. Therefore, the parameter
L is updated according to the following conditions: It is initialised L =
L(u0) + ®L(U B ¡ L(u0)) with 0 &lt; ®L &lt; 1; if L(uk) &gt; L, it is updated
L = L(uk) + ®L(U B ¡ L(uk)), and if L &gt; U B, then L = U B.</p>
      <p>Finally, the parameter ±k is initialised to the value 2 and is updated as
Zamani and Lau [25] suggest. If the lower bound is not improved, ±k is
decreased, using the formula ±k+1 = ±k½ with 0 &lt; ½ &lt; 1. On the other
hand, if the lower bound is improved, then its value is increased according
to the formula ±k+1 = ±k 3¡2 ½ .
6.2</p>
      <p>
        Inter-route Moves
VNS metaheuristic is based on exploring alternatively di®erent
neighbourhoods around a known feasible solution. In order to establish these
neighbourhoods, di®erent moves are to be de¯ned. In the presented approach,
four di®erent inter-routes classic moves [
        <xref ref-type="bibr" rid="ref18">22</xref>
        ] have been de¯ned so they can
be used within diversi¯cation and local search processes: (a) Relocate moves
a customer from one route to a di®erent one, (b) Swapping exchanges two
customers belonging to two di®erent routes, (c) Chain is a specialisation
of 3-opt that swaps sections of two contiguous customers from two
di®erent routes, and (d) Ejection chain swaps the end portions of two di®erent
routes. In the implemented approach, the relative percentage of customers
modi¯ed has been arbitrarily set to 40%.
      </p>
      <p>
        As mentioned, using LR for solving the routing subproblems allows
avoiding the de¯nition of intra-route moves. Since results provided by the
LR method are optimal, no routing optimisation process is needed.
Usually, a post-optimisation method based on intra-route moves is applied to
improve each single route quality [
        <xref ref-type="bibr" rid="ref16">20</xref>
        ].
6.3
      </p>
      <p>
        Variable Neighbourhood Search Framework
A general VNS framework, as explained in Hansen and Mladenovic [
        <xref ref-type="bibr" rid="ref8">12</xref>
        ], has
been implemented embedding the described methods. A simpli¯ed scheme
of the method is presented in Table 2. At each iteration, a local minimum is
reached departing from an initial solution. A diversi¯cation process
(shaking) ensures that di®erent regions from the search space are explored by
changing the initial solution at each iteration.
      </p>
      <p>10
0 Initialisation. Select the set of neighbourhood structures
Nk, for k = 1; : : : ; kmax, that will be used in the shaking phase,
and the set of neighbourhood structures Nl for l = 1; : : : ; lmax
that will be used in the local search; ¯nd an initial solution x;
choose a stopping condition;
1 Repeat the following sequence until the stopping condition is met:
2 Set k Ã 1;
3 Repeat the following steps until k = kmax :
4 (a) Shaking. Generate a point x0 at random from the kth
neighbourhood Nk(x) of x;
5 (b) Local search by VND.
6 (b1) Set l Ã 1 ;
7 (b2) Repeat the following steps until l = lmax ;
8 - Exploration of neighbourhood. Find the best</p>
      <p>neighbour x00 of x0 in Nl(x0);
9 - Move or not. If f (x00) &lt; f (x0) set x0 Ã x00 and l Ã 1;
otherwise set l Ã l + 1;
(c) Move or not. If this local optimum is better than the
incumbent, move there (x Ã x00), and continue the search
with N1(k Ã 1); otherwise, set k Ã k + 1;</p>
      <p>In step 0, neighbourhood structures to be used within shaking (Nk) and
local search (Nl) processes are selected. In this case, all four described
moves have been selected to be used in both neighbourhoods. Furthermore,
a randomised CWS algorithm is used in order to ¯nd a good initial solution
for the search.</p>
      <p>In step 4, a new point is generated at random from the kth neighbourhood
Nk(x) of x in order to diversify the search. Its feasibility is immediately
checked using CP. Solutions' values are ignored until the last iteration, when
routes are recalculated using LR to provide a complete solution.</p>
      <p>Steps 5 to 9 contain the VND algorithm used to perform the local search.</p>
      <p>Within the VND algorithm, an exhaustive exploration of the lth
neighbourhood Nl(x0) of x0 is performed in step 8. Departing from the solution
x0, the lth move is applied and new solution's feasibility is checked using
CP. Whenever it is proved feasible, LR is used to recalculate only modi¯ed
routes. This approach permits to consider only two routes per solution,
reducing the computation time. Finally, the best neighbour x00 is chosen in
terms of its solution value f (x00) = Pm
v=1 U Bv.
7</p>
    </sec>
    <sec id="sec-5">
      <title>Results</title>
      <p>The methodology described in the present paper has been implemented in
Java and linked to the open-source CP software system ECLiPSe 6.0 [1].
All tests have been performed on a non-dedicated server with an Intel i5
processor at 2.66GHz and 16GB RAM. In general, ¯ve to seven processes
were launched in parallel to solve di®erent problems.</p>
      <p>A total of 93 CVRP benchmark instances from www.branchandcut.org
have been used to test the e±ciency of the proposed approach. Only those
instances whose distance is de¯ned as Euclidean or Geographic have been
selected, in order to ensure triangular inequality's ful¯lment. Table 3 shows
the total number of problems chosen from each class, as well as for how
many the best known solution has been reached. This table also shows the
average gap (% Aver. Gap) from best published values for those problems
where the best known solution could not be reached after 40 iterations. A
low deviation, under 1 %, is observed for most problem sets, comparable to
results obtained by means of other metaheuristics.</p>
      <p>Class
A
B
E
F
G
M
P
TSPLib</p>
      <p>The use of LR ensures the partial optimality of all solutions from the
routing perspective. The reason is that the proposed approach can optimally
solve all TSP instances, due to the number of associated customers is always
low. LB and UB converge rapidly, keeping their gap between 0 and 10¡10
and guaranteeing so the solution optimality. In addition, LR solves all routes
in negligible times. Thus, LR has demonstrated to be an e±cient alternative
for intra-route optimisation processes.</p>
      <p>The initial solution may be obtained by means of di®erent methods.
Table 4 presents a comparative of results for some problems of class A using
di®erent techniques to get an initial solution. First, it may be obtained
by solving separately capacity and routing problems, using the proposed
problem's decomposition in a CP/LR scheme (2). This approach is able to
provide a low-quality quick solution, since both subproblems are easily solved
but variables are unlinked. This solution may be highly improved applying
a VND method, providing an initial solution whose value is usually close to
the ¯nal result (1). The initial solution may also be obtained by means of
the presented RCWS algorithm (3). This algorithm provides a good initial
solution in negligible times, but the maximum number of available vehicles
might not be always respected. For this reason, it may be forced to execute
iteratively until a solution ful¯lling this requirement is reached (4).</p>
      <p>It can be stated from results presented in Table 4 that RCWS is clearly
faster than the other methods to get a good initial solution. Even when
it is forced to iterate to reach a given number of vehicles, it may provide
a solution quickly. It is remarkable that this algorithm eventually ¯nds
a better initial solution than the CP/LR + VND in a much lower time,
becoming so a better alternative. For small problems, the RCWS + VNS
scheme outperforms the CP/LR + VNS method, reaching best known values
in lower times. On the other hand, times are comparable for larger problems.
The reason might be found in the use of exhaustive local search for all
de¯ned moves. This fact also justi¯es the time spent on calculating the initial
solution when the CP/LR + VND method is used. For small problems,
feasible points around a given solution may be usually low, while the solution
space may grow dramatically as the problem size increase, and so it does the
time needed to explore it. Probably, the use of heuristics within local search
processes would reduce the total time needed to solve problems signi¯cantly.</p>
      <p>Using RCWS to get an initial solution allows solving to the best known
value 15 of 27 problems from class A. The same number of problems are
solved departing from an initial solution obtained by means of the CP/LR
scheme without VND. Instead, CP/LR + VND allows solving only 13
problems. This method uses all four de¯ned moves to reach a minimum. As they
are also used in the VNS algorithm, the initial solution is a local optimum
for all moves de¯ned in its local search processes. Thus, a more thorough
shaking would be mandatory to get a better algorithm's performance and
avoid getting trapped in local minima. Moreover, the algorithm fails to
successfully solve the same problems, regardless which method is used to get
the initial solution. Again, a poor shaking might be the main reason for this
behaviour. Table 4 also shows the gap between the ¯nal solution and the
best known value, when it is not reached. It can be observed it is usually
lower when a good initial solution is provided.</p>
      <p>RCWS has been used to get the initial solution for all tested instances
due to its performance. Table 5 shows results obtained using RCWS
combined with VNS for some representative instances of di®erent sizes.</p>
      <p>This methodology performs similarly both for small and large instances.
It is remarkable that the algorithm eventually reaches the optimal solution
for smaller problems (50 customers or less), but it stops near the optimum for
larger instances. Thus, its applicability is not restricted. Nevertheless, the
time required to solve all instances is prohibitive when compared to
stateof-art methodologies. For this reason, some research needs to be addressed
to improving local search processes in order to get competitive results.</p>
      <p>
        Notice that results for the largest selected test instance G-n262-k25 is
1.95% lower than its best value published in [
        <xref ref-type="bibr" rid="ref9">13</xref>
        ]. This reduces the gap for
this problem from 10.92% to 9.15%. The solution found for the test instance
P-n55-k8 becomes an alternative to its best known value. since a solution
with cost 583 using only 7 vehicles has been found, instead of the original
of 588 with 8 vehicles.
8
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>Use of multiple agents or algorithm's instances | each of them initiated
with a di®erent random-generator seed or a di®erent value for the statistical
distribution parameter | can signi¯cantly diminish computational times to
obtain pseudo-optimal solutions. Larger problems might need either more
computation resources or larger computational times to be solved.</p>
      <p>In such scenarios, one possible approach to allow for real-time
decisionmaking could be to employ modern GPUs. This is one of the most promising
research lines we are currently exploring. However, use of GPUs requires
advanced algorithmic and programming skills, since developing e±cient code
in CUDA is not a trivial task and, in the case of our algorithm, some
problems related to memory management must be addressed yet before obtaining
competitive results. An alternative approach is to use a distributed
problemsolving approach. This way, pseudo-optimal solutions for large and complex
real-life problems might be obtained in nearly real time at an inexpensive
monetary cost.</p>
      <p>In e®ect, a standard small and medium enterprises (SMEs) use a large
number of commodity computers distributed among their di®erent
departments and/or facilities. Most of these personal computers o®er more
computing capabilities than required to complete their daily activities (i.e. text
processors, spreadsheets, e-mail, etc.). Moreover, they happen to be
underutilized during nightly hours. Our proposal gathers the spare resources
from each computer and aggregates them into a computational environment
where hundreds or even thousands of instances of our algorithm can be run
simultaneously. These cloned agents can either use a global collaborative
memory or several local collaborative memories, depending on the
characteristics of the distributed system.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work was supported in part by the IN3-UOC Knowledge Community
Program under grant HAROSA09.</p>
    </sec>
    <sec id="sec-8">
      <title>References</title>
      <p>[1] K. Apt and M. Wallace. Constraint Logic Programming using ECLiPSe.</p>
      <p>Cambridge University Press, 2007.
[2] M. Boschetti and V. Maniezzo. Benders decomposition, lagrangean
relaxation and metaheuristic design. Journal of Heuristics, 15:283{312,
2009.
[3] G. Buxey. The vehicle scheduling problem and monte carlo simulation.</p>
      <p>Journal of Operational Research Society, 30:563{573, 1979.
[4] G. Clarke and J. Wright. Scheduling of vehicles from a central depot to
a number of delivering points. Operations Research, 12:568{581, 1964.
[25] R. Zamani and S. Lau. Embedding learning capability in lagrangean
relaxation: An application to the travelling salesman problem. European
Journal of Operational Research, 201(1):82{88, 2010.
Problem
A-n32-k5
A-n33-k5
A-n33-k6
A-n45-k6
A-n46-k7
A-n54-k7
A-n55-k9
A-n65-k9
A-n69-k9
A-n80-k10
Problem
A-n32-k5
A-n33-k5
A-n33-k6
A-n45-k6
A-n46-k7
A-n54-k7
A-n55-k9
A-n65-k9
A-n69-k9
A-n80-k10
Problem
A-n32-k5
A-n33-k5
A-n33-k6
A-n45-k6
A-n46-k7
A-n54-k7
A-n55-k9
A-n65-k9
A-n69-k9
A-n80-k10
Problem
B-n44-k7
B-n45-k5
B-n50-k7
E-n51-k5
E-n76-k8
E-n101-k8
F-n45-k4
F-n135-k7
G-n262-k25
M-n101-k10
M-n151-k12
P-n40-k5
P-n50-k7
P-n55-k8
P-n65-k10
P-n70-k10</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Cordeau</surname>
          </string-name>
          , G. Laporte,
          <string-name>
            <given-names>M.</given-names>
            <surname>Savelsbergh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Vigo</surname>
          </string-name>
          .
          <article-title>Vehicle routing</article-title>
          . In C. Barnhart and G. Laporte, editors,
          <source>Handbook in Operations Research and Management Science</source>
          , volume
          <volume>14</volume>
          , pages
          <fpage>367</fpage>
          {
          <fpage>428</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          , Amsterdam, The Netherlands,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Dantzig</surname>
          </string-name>
          and
          <string-name>
            <surname>J. Ramser.</surname>
          </string-name>
          <article-title>The truck dispatching problem</article-title>
          .
          <source>Management Science</source>
          ,
          <volume>6</volume>
          :
          <fpage>80</fpage>
          {
          <fpage>91</fpage>
          ,
          <year>1959</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Faulin</surname>
          </string-name>
          and
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Juan</surname>
          </string-name>
          .
          <article-title>The algacea-1 method for the capacitated vehicle routing problem</article-title>
          .
          <source>International Transactions in Operational Research</source>
          ,
          <volume>15</volume>
          :1{
          <fpage>23</fpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Festa</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Resende</surname>
          </string-name>
          .
          <article-title>An annotated bibliography of grasp- part i: Algorithms</article-title>
          . International Transactions in Operational Research,
          <volume>16</volume>
          :1{
          <fpage>24</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fisher</surname>
          </string-name>
          .
          <article-title>The lagrangean relaxation method for solving integer programming problems</article-title>
          .
          <source>Management Science</source>
          ,
          <volume>27</volume>
          :1{
          <fpage>18</fpage>
          ,
          <year>1981</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>E.</given-names>
            <surname>Freuder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bessiere</surname>
          </string-name>
          , P. van Beek,
          <string-name>
            <given-names>H.</given-names>
            <surname>Hoos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Tsang</surname>
          </string-name>
          , W. van Hoeve,
          <string-name>
            <surname>I. Katriel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dechter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Jeavons</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Messeguer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Schiex</surname>
          </string-name>
          , I. Gent,
          <string-name>
            <given-names>K.</given-names>
            <surname>Petrie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Puget</surname>
          </string-name>
          , S. B.M,
          <string-name>
            <surname>K. Marriot</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Stuckey</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Wallace</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Fruhwirth</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Michel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Schulte</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Carlsson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Hooker</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Benhamou</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Granvilliers</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Gervet</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Gomes</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Walsh</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Koubarakis</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Faltings</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Brown</surname>
            , I. Miguel,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Baptiste</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Laborie</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Le Pape</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Nuijten</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Kilby</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Shaw</surname>
            , U. Junker,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Simonis</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Backofen</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Gilbert</surname>
          </string-name>
          . In F. Rossi, P. van Beek, and T. Walsh, editors,
          <source>Handbook of Constraint Programming</source>
          , pages
          <volume>29</volume>
          {
          <fpage>83</fpage>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gendreau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hertz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Laporte</surname>
          </string-name>
          .
          <article-title>A tabu search heuristic for the vehicle routing problem</article-title>
          .
          <source>Management Science</source>
          ,
          <volume>40</volume>
          :
          <fpage>1276</fpage>
          {
          <fpage>1290</fpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Hansen</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Mladenovic</surname>
          </string-name>
          .
          <article-title>A tutorial on variable neighborhood search</article-title>
          .
          <source>Technical Report G-2003-46</source>
          , Groupe d'E¶ tudes et de Recherche en
          <article-title>Analyse des D¶ecisions (GERAD</article-title>
          ), Montreal, Canada,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Hasle</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Kloster</surname>
          </string-name>
          . Industrial vehicle routing, pages
          <volume>397</volume>
          {
          <fpage>435</fpage>
          . Springer-Verlag, Berlin, Germany,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Juan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Faulin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Jorba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Riera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Masip</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Barrios</surname>
          </string-name>
          .
          <article-title>On the use of monte carlo simulation, cache and splitting techniques to improve the clarke and wright savings heuristics</article-title>
          .
          <source>Journal of the Operational Research Society</source>
          , To be published.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>G.</given-names>
            <surname>Laporte</surname>
          </string-name>
          .
          <article-title>What you should know about the vehicle routing problem</article-title>
          .
          <source>Naval Research Logistics</source>
          ,
          <volume>54</volume>
          :
          <fpage>811</fpage>
          {
          <fpage>819</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A. Law. Simulation</given-names>
            <surname>Modeling</surname>
          </string-name>
          &amp;
          <string-name>
            <surname>Analysis. McGraw-Hill</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>N.</given-names>
            <surname>Mladenovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Hansen</surname>
          </string-name>
          .
          <article-title>Variable neighborhood search</article-title>
          .
          <source>Computers &amp; Operations Research</source>
          ,
          <volume>24</volume>
          (
          <issue>11</issue>
          ):
          <volume>1097</volume>
          {
          <fpage>1100</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Nagata</surname>
          </string-name>
          .
          <article-title>Edge assembly crossover for the capacitated vehicle routing problem</article-title>
          .
          <source>Lecture Notes in Computer Science</source>
          , (
          <volume>4446</volume>
          ),
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [19]
          <string-name>
            <surname>G. Reinelt.</surname>
          </string-name>
          <article-title>The traveling salesman: computational solutions for tsp applications</article-title>
          .
          <source>Lecture notes in computer science</source>
          ,
          <volume>840</volume>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>L.</given-names>
            <surname>Rousseau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gendreau</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Pesant.</surname>
          </string-name>
          <article-title>Using constraint-based operators to solve the vehicle routing problem with time windows</article-title>
          .
          <source>Journal of Heuristics</source>
          ,
          <volume>8</volume>
          :
          <fpage>43</fpage>
          {
          <fpage>58</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M.</given-names>
            <surname>Savelsbergh</surname>
          </string-name>
          .
          <article-title>Local search in routing problems with time windows</article-title>
          .
          <source>Annals of Operations Research</source>
          ,
          <volume>4</volume>
          :
          <fpage>285</fpage>
          {
          <fpage>305</fpage>
          ,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Savelsbergh</surname>
          </string-name>
          .
          <article-title>Computer aided routing</article-title>
          .
          <source>Technical report, Centrum voor Wiskunde en Informatica</source>
          ,
          <year>1988</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>C.</given-names>
            <surname>Tarantilis</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Kiranoudis</surname>
          </string-name>
          .
          <article-title>Boneroute: an adaptative memorybased method for e®ective °eet management</article-title>
          .
          <source>Annals of Operations Research</source>
          ,
          <volume>115</volume>
          :
          <fpage>227</fpage>
          {
          <fpage>241</fpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>P.</given-names>
            <surname>Toth</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Vigo</surname>
          </string-name>
          .
          <article-title>The granular tabu search and its application to the vehicle routing problem</article-title>
          .
          <source>INFORMS Journal on Computing</source>
          ,
          <volume>15</volume>
          :
          <fpage>333</fpage>
          {
          <fpage>346</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>