Professional Documents
Culture Documents
art ic l e i nf o a b s t r a c t
Article history: This paper addresses the Dial-A-Ride Problem (DARP) which is used to model on-demand transportation
Received 2 May 2015 services. This kind of transportation is quickly becoming an essential service for modern public mobility
Received in revised form or logistics providers. In the DARP, a set of transportation requests has to be handled by a fleet of vehicles.
21 September 2015
Each request corresponds to a client to be transported from a pickup point to a delivery point. The
Accepted 13 October 2015
routing costs have to be minimized, while respecting a set of constraints including time windows on
nodes, maximum riding time per client and a maximal total duration of trips.
Keywords: An Evolutionary Local Search (ELS) based approach is proposed to solve this problem. A new greedy
DARP randomized heuristic to compute initial solutions is developed. A dynamic probabilities management
ELS
mechanism is used in the local search to improve the convergence. The method is benchmarked on a
Metaheuristic
classic set of instances from the literature and it is compared against state of the art methods. The
Heuristic dynamic probabilities
numerical results show the effectiveness of this approach.
& 2015 Elsevier Ltd. All rights reserved.
1. Introduction the total demand of the customers served by one vehicle must
fit its capacity.
1.1. Vehicle Routing Problems
The VRP is NP-hard and exact methods require a large com-
The generic problem under consideration in this paper is putational time and can practically handle instances with up to
related to the class of Vehicle Routing Problems (VRP), whose aim 100 customers (Baldacci and Mingozzi, 2009). Among the current
is to meet the demand of a set of clients. Trips are performed by best heuristic approaches for the VRP, hybrid genetic algorithms
vehicles initially located at a central depot and travels between are a good approach (Prins, 2004; Nagata and Bräysy, 2009; Vidal
clients or from/to the depot use the least-cost routes. The basic et al., 2014). Furthermore, Mester and Bräysy (2007) propose a
very efficient metaheuristic that combines guided local search
version of the VRP, the Capacitated VRP (CVRP), is often defined on
with evolutionary strategies. Extensive research has been pro-
a complete undirected graph G ¼ ðX; EÞ. The node set X contains
posed to solve this NP-hard problem, see the survey of Golden
n þ 1 nodes, one depot (node 0) and n customers indexed from 1 to
et al. (2008).
n. An unlimited fleet of identical vehicles with capacity Q is based
at the depot to deliver the demand qi of each customer i. The cost 1.2. Dial-A-Ride Problem
cij to travel from node i to node j corresponds to the cost of a
shortest path from i to j in the real road network. The objective of The Dial-A-Ride Problem (DARP) is a well-known extension of
the VRP consists in finding a set of minimal cost trips to serve all the VRP. Thus, it is NP-hard. Instead of a delivery, each client
the customers taking into account the following constraints: demand corresponds to a transportation request from a pickup
point to a destination point. Additional constraints such as time
deliveries cannot be split (each customer must be visited by a windows on the pickup and delivery points, riding time for the
single vehicle); clients, total travel time and fleet size are also considered. Earliest
each route starts and ends at the depot; relevant publications date back from the 80s, focusing on the
special case with a single vehicle. Heuristic approaches have been
proposed including Bodin and Sexton (1986), Dumas et al. (1991),
n
Corresponding author.
Madsen et al. (1995), Psaraftis (1980) and Toth and Vigo (1996).
E-mail addresses: maxime.chassaing@isima.fr (M. Chassaing), Yet, few publications focus on real-life instances. One can note the
christophe.duhamel@isima.fr (C. Duhamel), placomme@isima.fr (P. Lacomme). contribution of (Rekiek et al., 2006) addressing Dial-A-Ride
http://dx.doi.org/10.1016/j.engappai.2015.10.002
0952-1976/& 2015 Elsevier Ltd. All rights reserved.
120 M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133
Problems in Bologna and (Borndörfer et al., 1999) which considers A solution s can be defined as the assignment of a permutation
the transportation of disabled persons in Berlin. Two main varia- node list λk to each vehicle k used such that every node i ¼ 1; …; 2n
tions on DARP can be found in the literature: transportation belongs to a permutation list and, for any transportation request ,
requests known in advance define the static DARP while the nodes i þ and i belong to the same permutation list. Let nλ be the
dynamic DARP is dedicated to online transportation requests. The number of non-depot nodes of the permutation node list λ. Then,
later differs from the real-time DARP since the network does not if λðiÞ is the ith visited node, λð0Þ ¼ λðn þ 1Þ ¼ 0 is the depot node,
evolve over the time and decisions are not applied immediately. λð1Þ resp. λ nλ is the first resp. last visited node. Moreover Bλ is
We focus here on the static version of DARP.
the departure time from the depot and Eλ is the return time to the
More formally, the static DARP is defined on a complete
depot. Once permutation node lists are properly set, the arrival
weighted digraph G ¼ ðV; AÞ with a homogeneous fleet of K vehi-
cles and a set of n transportation requests. V ¼ f0; 1; …; 2n; 2n þ 1g times Ai and departure times Di can be computed. Let mðsÞ be the
is the set of nodes, including the depot, the pickup nodes and the number of vehicles used in the solution s. For convenience, let us
delivery nodes. The depot is split in two copies, 0 and 2n þ 1 for note λk the permutation list corresponding to the kth vehicle.
the depot respectively at the beginning and at the end of a trip. Thus, the objective of the DARP is to find a solution s of minimal
Given a transportation request i, its pickup point is referred as i P
mðsÞ P
ni
total travel cost cðsÞ ¼ cλk ðiÞλk ði þ 1Þ . Moreover, the following
and its delivery point is n þ i. Thus f1; …; ng is the subset of pickup k¼1i¼0
nodes and fn þ1; …; 2ng is the subset of delivery nodes. Note that criteria are associated measure the quality of a solution s:
i þ , resp. i , are also used to denote the pickup point, resp. the P n
P
n
delivery point, of transportation request i. For each node i, ei ; li is the total riding time TRT ðsÞ ¼ Ri ¼ Bi þ n Di ;
i¼1 i¼1
the time windows: ei is the earliest starting time and li is the latest P
m ðsÞ
starting time. The service duration is di and qi is the number of the total duration TDðsÞ ¼ E λk B λk ;
k¼1
persons to transport. Given an arc ði; jÞ A A, t ij is the transportation P
2n P
2n
time and cij is the transportation cost. The capacity Q is the same the total waiting time TWT ðsÞ ¼ Wi ¼ ðBi Ai Þ.
i¼1 i¼1
for all the vehicles (homogeneous fleet).
Five main types of variables are used; their connection is illu- A solution must satisfy the following constraints:
strated in (Fig. 1). Given a node i, Ai is the arrival time of a vehicle,
Bi is the beginning of service and Di ¼ Bi þ di is the departure time (1) at any point of the trip, the number of persons transported by
of the vehicle. The waiting time W i is given by W i ¼ Bi Ai . For a the vehicle is limited by its capacity Q ;
transportation request , the riding time Ri is the time duration (2) the beginning of service at node i fit the node's time window,
between the end of service at pickup node i þ () and the beginning i.e. ei r Bi r li ;
of service at delivery node i (n þ i). Thus Ri ¼ Bn þ i Di . Note that, (3) the riding Li for any client i does not exceed L;
as shown in Fig. 1, a service at node i may not begin at the earliest (4) the trip duration for any vehicle does not exceed the maximal
possible starting time ei , even if Ai oei , in order to satisfy the trip duration MaxTD ;
riding time constraints and the total duration constraint. (5) at most K vehicles must be used.
Each customer must be picked up at the pickup node and dropped
off at the delivery node. Each trip starts and ends at the depot. The As stressed by Cordeau and Laporte (2003), the constraints –
vehicle capacity constraint must hold anytime in the trip. Thus, for any especially (C2) and (C3) – can be tight. This limits the ability of
node , the number of persons qi to transport must not exceed the local searches to explore the solution space S. Thus, in several
vehicle available capacity. The beginning of service must satisfy the approaches, a partial relaxation has been proposed in order to
time windows, i.e. Bi A ei ; li . Waiting time is allowed before any allow the search in regions of non-feasible solutions. Given a
beginning of service and is forbidden after the end of service. For every solution s A S; the four following feasibility measures are defined:
node, the end of a service also corresponds to the departure time. The
riding time Ri of transportation request corresponds to the time spent qðsÞ, total load violation;
by the associated clients in the vehicle. It cannot exceed a given upper sðsÞ , total duration violation;
limit Li , i.e. Ri r Li . Such restriction models the quality of service from wðsÞ, total time window violation;
the clients point of view. t ðsÞ, total riding time violation.
tion. Since the heuristic does not take the fleet size into account,
nd
S’’’ (solution)
the solution it provides may violate constraint (C5). Thus, Rando-
mized_constructive_heuristic() may be called until a solution
feasible wrt. (C5) is built. Those iterations are not mentioned to
keep readability but should be set line 10.
update the set of solutions (T’’)
Algorithm 1: ELS()
1. Input
2. nd: nb of neighbors best solutions
representing a search direction. One activation probability is al., 1990) and it uses the total duration of the solution s with a
associated to each operator and it is stored in the array P. Initially, coefficient α along with the customers in first position and last
P[i] ¼ 0.25 is set as initial probability at step 8. As mentioned position of each trip. Note that Bi , the beginning service time of the
before, the probabilities are updated every iterations. The update customer i at the middle of the trip, is also used in the hash
takes into account the ability of an operator to improve the current computation. Thus the hash formula is as follows:
!
solution at the current iteration. Dynamically updating these mðsÞ
X
probabilities allows a strong convergence rate for each instance. keyðsÞ ¼ α:cðsÞ þ λk ð1Þ:λk ðnk Þ þ Bλk ðnk =2Þ mod M
k¼1
Efficient clone detection is set in order to prevent unprofitable
exploration in a region of the solution space already visited. Such a M is a large integer, for example M ¼ 999999. The computation of
mechanism is often used in practice by iterative search processes the key can be done during the solution evaluation without any
(including genetic algorithm, tabu search, GRASP, etc.). Since full impact on the algorithm complexity. Each key is stored in an array
clone detection can be time consuming, we propose a faster – yet Clone such that Clone½α gives the number of visited solutions whose
approximate – policy. It relies on hashing techniques (Cormen et key is α. Thus the clone detection can be performed in Oð1Þ. Using this
array, it is possible to control how many times the ELS is allowed to
Table 1 consider a solution previously visited. This number is typically 1 or 2. A
Example of scheduling problem. check_Clone() function is used at each step of the algorithm.
-50 -12
-36
-30 -6
-29
0
* 0 1 1+ 2
2+ 3 1- 2 2- 1
5
27 28 30 33 36 37
1
15 -5
26
36
Fig. 5. Example of graph (Cordeau and Laporte, 2003).
M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133 123
0 its cost
is eλðiÞ ;
1+ 2+ 1- 2 2-
2 3 1
* 0 1 5 Arcs λðiÞ; correspond to the latest starting time at node λðiÞ,
0 1 15 26 36 37
is lλðiÞ;
its cost
1 Arcs λ βðiþ nÞ ; λðiÞ correspond to the maximal riding time of
i, its cost is –L;
15 transport request
The arc λ nλ þ1 ; λð0Þ models the maximal trip duration, its
26
cost is MaxTD .
36
Given a node iA H, let Γ i ¼ jA V j ðj; iÞ A A be its set of pre-
þ
Fig. 6. Second step with constraints on ei and conjunctive arcs. decessor nodes and let Γ i ¼ j A V j ði; jÞ A A be its set of successor
nodes. For sake of simplicity, let vij be the value of the arc ði; jÞ A A as
defined before. Evaluating λ corresponds to compute a feasible start-
-50 ing service time Bi for every node iA H, with respect to all the con-
-36 straints represented by the arcs. This can be done by computing the
longest path from node 0 to any other node in G, using for instance a
-30 Bellman–Ford algorithm. Initially B0 ¼ B ¼ 0. Due to the maximal
-29 time lags, a longest path algorithm must be used to compute Bi . Given
0
* 0 1 1+ 2 2+ 3 1- 2 2- 1
5 the specific structure of the graph, the backward and forward time
27 28 30 33 36 37 slacks introduced by Savelsbergh (1992) allow a more efficient algo-
1 rithm than Caumond et al. (2008). This algorithm is fully described in
15 Cordeau and Laporte (2003). It provides the earliest Bi on nodes which
minimize the total riding time if a feasible solution exists.
26 This algorithm will be referred as Cordeau_evaluation(λ,A,D,B,W,F)
in the following. The sequence λ is the only input parameter. The
36
output parameters include the starting service times B, the waiting
Fig. 7. Third step with constraints on ei and conjunctive arcs. time on nodes W and the maximal delay on nodes F. Also note that f
(λ):¼Cordeau_evaluation(λ,A,D,B,W,F) is the solution cost f λ .
Example:
constraint between two operations on the same machine is modeled In the example, i þ being the pickup node associated to client i and
by an edge. The cost of an arc is set to the duration of the beginning i its delivery node, λ ¼ f0; 1; 2; 3; 4; 5Þ is identical to λ ¼ f0; 1 þ ;
operation. A solution consists in setting an orientation for each edge 2 þ ; 1 ; 2 ; 5Þ. Consider the permutation node list λ ¼ f0; 1 þ ; 2 þ ;
such that the resulting digraph is acyclic. 1 ; 2 ; 5Þ assigned to a vehicle and the following transportation
Let us consider the scheduling problem Table 1. The disjunctive times: t 0;1 þ ¼ 2; t 1 þ ;2 þ ¼ 2; t 2 þ 1 ¼ 3; t 1 2 ¼ 2; t 2 ;5 ¼ 1. For
graph of a solution is illustrated in Fig. 3. This graph is acyclic, all pairs simplicity, service times are set to 0. The maximal riding times are
of operations requiring the same machine (for instance 01;2 and 01;3 ) l1 ¼ 5 and l2 ¼ 6 for transport requests 1 and 2 respectively. The
have been oriented. Thus, the sequence of operations on any machine maximal trip duration is MaxTD ¼ 12.
is set. In this graph, an arc (in full line) between two consecutive According to the previous definitions, the graph of Fig. 5
models the disjunctive graph of the problem. The bold numbers
operations Oi;j ; Oi;j þ 1 represents the routing constraint of the job i
(Table 1). It is evaluated by the minimal distance between the start near the nodes are the starting service times. Thus, the beginning
times of these two operations: i.e. the duration of Oi;j . A simplified times on nodes are restricted by the arcs ; λðiÞ A A : B1 þ ¼
version of Dijkstra shortest path algorithm is used to compute the 1; B2 þ ¼ 15; B1 ¼ 26; B2 ¼ 36. The total trip duration is Bλð6Þ
Bλð0Þ ¼ 10 units of time.
earliest starting time of each operation.
The technique relying on disjunctive graphs has been extended
2.1.3. Cordeau and Laporte (2003) algorithm
over the years to handle minimal time lag and more recently
The tuned algorithm (see Algorithm 2) introduced by Cordeau
maximal time lag between operations (Caumond et al., 2008).
and Laporte (2003) contains four steps and computes the shortest
path minimizing the total riding time of the customers.
2.1.2. Application to the DARP
A dedicated disjunctive graph is used to evaluate a trip from a Algorithm 2: Cordeau_evaluation ()
solution. This is a special case of the previous approach since a 1. Input
single machine (the vehicle) is used. The permutation nodes list λ 2. λ: ordered set of nodes
corresponds to the sequences of nodes visited by the vehicle. 3. Output
Remember that λðiÞ is the ith visited node, λ nλ is the
last node on 4. A: arrival time at nodes
which to perform an operation and λð0Þ ¼ λ nλ þ 1 is the depot 5. D: departure time at nodes
node. A function βðiÞ is defined on λ to give the position of element 6. B: earliest beginning of service time at nodes
i, such that λ βðiÞ ¼ i. The relative order between pickup and 7. W: waiting time at nodes
delivery nodes is assumed to hold, i.e. βði þnÞ 4 β ðiÞ. 8. F: forward time slack at nodes
The procedure proposed by Cordeau and Laporte (2003) for 9. Begin
evaluating a trip consists in first building an auxiliary acyclic graph 10. // Step 1: initialization
G ¼ ðH; AÞ. Given the sequence of nodes λ, H ¼ λð0Þ…λ nλ þ 1 ; 11. B0 : ¼ 0
where is an additional dummy node. A contains arcs with the 12. // Step 2.
following definitions (Fig. 4): 13. Build G using the precedence constraints and ei
14. for i:¼ 1 to nλ þ 1 do
Arcs λðiÞ; λði þ 1Þ correspond to the vehicle trip from node λðiÞ
15. BλðiÞ : ¼ max Bj þ vjλðiÞ
λði þ 1Þ, its cost is dλðiÞ þt λðiÞ;λði þ 1Þ ;
to node
j A Γ λðiÞ
Arcs ; λðiÞ correspond to the earliest starting time at node λðiÞ, 16. end do
124 M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133
17. // Step 3. step, considering only nodes from positions β i þ to nλ . At the end
18. for i: ¼ nλ to 0 do of the process, if the starting time complies with the maximal time
19. BλðiÞ : ¼ minþ Bj vλðiÞj lag, the arc modeling the maximal time lag is added into the graph
j A Γ λðiÞ line 37. Otherwise, a new maximal time lag corresponding to the
20. end do time gap between nodes i þ and i is created. This value is the
21. for i:¼ 1 to nλ do smallest value of the maximal time lag which ensures an acyclic
22. BλðiÞ : ¼ max Bj þ vjλðiÞ graph. The riding time violation is the difference between the max-
j A Γ λðiÞ imal time lag added in the graph and the customer maximal riding
23. end do time. This violation helps updating
t ðsÞ at the end of the algorithm.
24. // Step 4. The algorithm runs in O nλ 2 .
25. for each time lag Ri þ do Example:
26. //new beginning time The second step of the algorithm consists in considering the
27. for i:¼ nλ to β i þ do precedence constraints and the earliest starting time and to
compute a longest path. The earliest beginning of service at nodes
28. BλðiÞ : ¼ minþ Bj vλðiÞj
j A Γ λðiÞ is computed considering BλðiÞ : ¼ max
Bj þ vjλðiÞ which leads to
j A Γ λðiÞ
29. end do the solution Fig. 6.
30. // update earliest beginning time The third step of the algorithm consists in fixing the value Bλð5Þ
31. for i:¼ β i þ þ 1 to nλ do on the last node (5) then updating labels in the graph considering
32. BλðiÞ : ¼ max Bj þ vjλðiÞ the maximal time lag between each operation and the dummy
j A Γ λðiÞ node (). These maximal time lags model the latest starting time li
33. end do of each operation i. This is done by computing the latest starting
34. if (Bi Bi þ 4 Ri þ ) then time, starting from the last node (5) back to the second node (0).
35. Ri þ : ¼ Bi Bi þ The beginning of service at nodes is updated considering first
36. end if BλðiÞ : ¼ minþ Bj vλðiÞj , then BλðiÞ : ¼ max Bj þ vjλðiÞ . This leads to
j A Γ λðiÞ j A Γ λðiÞ
37. Build G : ¼ G þRi þ
38. end do the solution Fig. 7.
39. update qðsÞ; dðsÞ; wðsÞ; t ðsÞ At the end of this part, the violation of constraints on the
40. update A; D; B; W ; F maximum duration can be computed. If the difference between
41. return cðsÞ the earliest starting time at node 5 and the latest starting time at
42. End node 0 is larger than TDmax then no feasible solution with respect
to the sequence λ exists. In Fig. 7, the service time at node 5 is 37
and the service times at node 0 is 27. This corresponds to a total
The first step (line 11) is the initialization phase. The second one duration of 10 units of time.
(lines 13–16) consists in computing the beginning of service con- The last step of the algorithm is a riding time enforcement
sidering only the precedence constraints and the earliest time win-
procedure where all time lags are iteratively added into the graph.
dows of operations. This is done in O nλ time from dummy node At each insertion of one maximal time lag, the beginning time of
to node nλ þ1, i.e. BλðiÞ : ¼ max
Bj þ vjλðiÞ . Eλ ¼ Bλðnλ þ 1Þ is the ear- transportation requests is updated to minimize the customer rid-
j A Γ λðiÞ
liest return time to the depot. The third step (lines 18–23) relies on a ing time. The updates are propagated over G. The maximal time
graph in which latest time windows are modeled by maximal time lags which model the maximal riding times are iteratively intro-
lags. The values of the beginning times are computed by duced into the graph using an approach similar to Caumond et al.
(2008). They are set to the lowest maximal time lag leading to an
BλðiÞ : ¼ minþ Bj vλðiÞj , starting from the node nλ (step 19). Thus,
j A Γ λðiÞ acyclic graph if a constraint violation occurs. The label propagation
BλðiÞ is the latest starting time of the service at node λi . It complies can be performed from the origin node of the arc to avoid a costly
with the earliest return time to the depot Bλðnλ þ 1Þ . Similarly, the and unproductive scan of G.
earliest starting time of service which complies to the latest starting The time lag from 1 þ to 1 does not update any label because
time of service at node 0 is computed step 22. The fourth step the maximal delay between the beginning time of 1 þ (B1 þ ¼ 28)
consists in solving the longest path on the full graph, sequentially and the beginning time of 1 (B1 þ ¼ 33) is 5, which is the max-
adding lines (25–38) the time lags which model the customer imal time lag. Similar remark holds for the second maximal
maximal riding time. Lines 27–33 use a process similar to the third time lag.
E +1) ( +1 )
l − π (2)
−π ( +1 )
0 0 0 0 0 … 0
* λ(0) λ(1) λ(2) … λ(2)+n λ( +1)
2.2. Improved trip evaluation (Firat and Woeginger, 2011) Arcs λðiÞ; , with cost π λðiÞ eλðiÞ , correspond to the earliest
starting time at nod λðiÞe. The beginning time BλðiÞ must be lar-
Taking advantage of interval graph properties, the technique ger than the earliest starting time eλðiÞ , leading to the following
introduced by Firat and Woeginger (2011) provides an evaluation constraint: BλðiÞ Z eλðiÞ . Since BλðiÞ ¼ xλðiÞ þ π λðiÞ , this constraint
in linear time. This complexity is achieved by using the special becomes: xλðiÞ Z eλðiÞ π λðiÞ ;
Union-Find structure as explained in Atallah et al. (1995). The Arcs ; λðiÞ , with cost lλðiÞ π λðiÞ , correspond to the latest
algorithm is composed of two steps: starting time at node λðiÞ;
Arcs λðiÞ; λðjÞ , with j ¼ βði þnÞ, correspond to the maximal
Step 1: compute the maximal sum of waiting times on nodes, riding time of transportation request i. Since BλðjÞ DλðiÞ Z L and
while ending the trip at the earliest date; DλðiÞ ¼ BλðiÞ þ dλðiÞ ¼ xλðiÞ þ π λðiÞ þdλðiÞ , the following constraint
Step 2: use the maximum waiting time to compute the begin- holds: xλðjÞ xλðiÞ Z L πλðjÞ þ π λðiÞ þ dλðiÞ ;
ning of service Bi , the maximum forward time slack F i and the
The arc λðnk þ 1Þ; λð0Þ , with cost MaxTD π λðnk þ 1Þ , models the
other variables Ai ; W i ; Di for each node i. maximal trip duration. Using Bλðnk þ 1Þ ¼ xλðnk þ 1Þ þ π λðnk þ 1Þ and
Bλð0Þ ¼ xλð0Þ , the constraint Bλðnk þ 1Þ Dλð0Þ r MaxTD becomes
Step 1 also checks the trip feasibility. Given the sequence λ ¼ xλðnk þ 1Þ xλð0Þ r MaxTD π λðnk þ 1Þ ;
The arc ; λðnk þ 1Þ corresponds to the largest time in the last
0; 1; …; nλ ; nλ þ 1 of visited nodes, it consists in first building an
node of the trip. This arc is used to get the unique solution
auxiliary acyclic graph G ¼ ðH; AÞ. H is the set of nodes, it contains
which finishes at the earliest time. If the trip is feasible, such a
the nλ þ 2 nodes from λ as well as an additional dummy node . As
solution exists. The cost of this arc is Eλðnk þ 1Þ π λðnk þ 1Þ , where
mentioned before, nodes 0 and nλ þ 1 correspond to the depot Eλðnk þ 1Þ is the earliest arrival time at the last node, considering
node at the beginning, respectively the end of the trip (Fig. 8). The only precedence and smallest time constraints. Eλðnk þ 1Þ can be
following two extra notations are used: computed in Oðnk Þ using Step 2 of Cordeau_evaluation().
P
i
xλðiÞ ¼ W λðjÞ is the sum of the waiting times for the first i þ 1 In Step 1, G is first created. A variant of the shortest path
nodes visited by the vehicle in λ;
j¼0
algorithm using the Union-Find data structure is applied. Setting
iP
1
π λðiÞ ¼ sλðjÞ þ t λðjÞλðj þ 1Þ is the sum of the service time and
j¼0
transportation time for all nodes before is the sum of the service
time and of the transportation time for all customers before λðiÞ.
37-9=28
12-9=3
50-8=42
36-6=30
30-3=27 (6-5) = 1
29-1=28
0
1+ 2+ 1- 2-
0 0 0 0
* 0 0 5
27 27 27 27 28 28
-(1-1)=0 5-5=0
-(15-3)=-12
-(26-6)=-20
Fig. 12. Scan for creation of t 1 .
-(36-8)=-28
Fig. 10. D-partition on the example. Fig. 13. Scan for creation of t 2 .
126 M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133
Algorithm 3: Randomized_constructive_heuristic()
1. Input
2. Λ: permutation pickup nodes list
Fig. 15. Probabilities update scheme. 3. Output
4. s: solution
5. Begin
x ¼ 0; it computes xλðiÞ for any node λðiÞ A H. This corresponds to 6. s:¼ ∅
the latest possible starting time for each while ending the trip at 7. for all i A Λ do
the earliest time thanks to the arc ; λðnk þ 1Þ . If G contains a 8. E:¼ ∅
negative cost cycle, no solution to the shortest path exists, which 9. for k:¼1 to mðsÞ do
means no compatible arrival time can be set on the nodes. In Step 10. for p:¼P ðkÞ þ 1 to nλk do
2, xλðiÞ is used to compute the starting service time BλðiÞ ¼ xλðiÞ þ 11. λ0 :¼insert(i,λk ,p)
π λðiÞ , as well as the other variables, in Oðnk Þ. 12. for q: ¼p þ1 to nλ0k do
In the following, this algorithm is referred as Firat_evaluation
13. λ0 : ¼ insert(iþ n,λ0 ,q)
(λ,A,D,B,W,F). Note that c λ is given by f(λ):¼Firat_evaluation(
λ,A,
D,B,W,F) if λ is a feasible nodes ordering and f λ ¼ þ 1 otherwise. 14. f:¼Firat_evaluation(λ0 ,A,D,B,W,F)
Example 15. if (f a þ 1) then
0
Fig. 9 illustrates a graph generated according to the (Firat and 16. E : ¼ E [ λ ; k; f
Woeginger, 2011) algorithm on the same instance that lead to 17. end if
Fig. 5. Given the node order ; λð0Þ…λðnk þ1Þ ¼ ; 0; 1 þ ; 2 þ ; 18. end do
1 ; 2 ; 5g, the computation of π gives π ¼ f0; 0; 1; 1 þ 2 ¼ 3; 1 þ 2 19. end do
þ 3 ¼ 6; 1 þ 2 þ3 þ 2 ¼ 8; 1 þ 2 þ 3 þ2 þ 1 ¼ 9g and the arc costs can 20. end do
be set. Then, given G, the shortest path from node to all the other 21. if (E ¼ ∅)
nodes (Step 1) gives x ¼ f0; 27; 27; 27; 27; 28; 28 g. Step 2 leads to 22. λ: ¼new_trip(i,i þn)
B ¼ f0; 27 þ 0 ¼ 27; 27 þ 1 ¼ 23. s : ¼s [ λ
28; 27 þ 3 ¼ 30; 27 þ 6 ¼ 33; 28 þ 8 ¼ 36; 28 þ 9 ¼ 37g. 24. else
25. randomly select e ¼ λ; k; f A E
2.3. Randomized constructive heuristic 26. λk : ¼ λ
27. end if
We propose a two steps procedure to randomly generate fea- 28. end do
sible solutions to the static DARP. In the first step, a permutation 19. return s
list of the pickup nodes is built. Then, the construction scans the 20. End
list and iteratively schedules the transportation request corre-
sponding to the current pickup node to the best possible place.
Thus the main part is the second step. Its algorithmic scheme is
shown in Algorithm 3, while the construction of a randomized 2.3.2. Randomized generation of a permutation list Λ
permutation list is presented in Algorithm 4. As mentioned before, the constructive heuristic relies on a
permutation list Λ of the pickup nodes. It is built by the procedure
2.3.1. Constructive heuristic generate_sequence(), see Algorithm 4, and the construction is
Given a permutation list Λ of the pickup nodes f1; …; ng, the done in three steps. The first step consists in checking precedence
heuristic iteratively build a feasible solution s as shown in constraints between pickup nodes. Considering the set N ¼
M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133 127
f1; …; ng of pickup nodes, the algorithm scans all pairs in N and return value is set, depending on test1 and test2 (1 if i must be
calls check_constraint() line 9 to determine those constraints. This before j, 2 if j must be before i and 3 otherwise).
procedure returns 1 if the pickup node i must be set before the
Algorithm 5: check_constraint()
pickup node j, 2 if j must be set before i and 3 if i and j are 1. Input
not bound. 2. i: pickup node
This step corresponds to building a graph G ¼ ðV; EÞ with V ¼ 3. j: pickup node
N [ f0; g the set of pickup nodes plus two dummy nodes, 0 and . 3. Output
E is the set of arcs, an arc ði; jÞ A E modeling a precedence from 4. res: status (1-4 (i,j), 2-4(j,i), 3 otherwise)
pickup node i to j. Arcs ð0; iÞ and ði; Þ are first set for any node i A N. 5. Begin
6. // Part 1
Algorithm 4: generate_sequence()
7. test1: ¼ false
1. Input
8. i: ¼1;
2. N: set of pickup nodes
9. while (test1 ¼false) and (i o4) do
3. Output
10. f(λi):¼ Firat_evaluation(λi,A,D,B,W,F)
4. Λ: ordered set of pickup nodes
5. Begin 11. if (f(λi ¼ þ 1) then
6. // Step 1 12. i:¼iþ 1
7. for all i A N do 13. else
8. for all j A N do 14. test1:¼true
9. res:¼ check_constraint(i,j) 15. end if
10. if (res¼ 1) then 16. end do
11. add_arc(G,i,j) 17. // Part 2
12. else if (res¼2) then 18. test2:¼false
13. add_arc(G,j,i) 19. i:¼4;
14. end if 20. while (test2¼false) and (io 7) do
15. end do 21. f(λi):¼Firat_evaluation(λi,A,D,B,W,F)
16. end do 22. if (f(λi ¼ þ1) then
17. // Step 2 23. i:¼ iþ1
18. V0 : ¼compute_partition(G) 24. else
19. // Step 3 25. test2: ¼true
20. Λ:¼ random_generation(V0 ) 26. end if
21. return Λ 27. end do
22. End 28. // Part 3
29. if (test1¼ true) and (test2 ¼false) then
30. return 1
Step 2 consists in computing a partition V 0 of V, that is a set 31. end if
0
V ¼ fV 1 …V r g of r pairwise disjoint non-empty subsets of V such 32. if (test1¼false) and (test2 ¼true)then
that V ¼ [ ri ¼ 1 V i . This partition is computed by the procedure 33. return 2
compute_partition() line 18. V 0 is then used Step 3 to randomly 34. end if
build a permutation list Λ of pickup nodes. This is done by the 35. return 3
procedure random_generation() line 20. 36. End
2.5. Local search The moves in the neighborhood structures have been adapted
to the DARP the same way it has been done in the mutation. The
The local search is an iterative improvement process. It mainly procedure 4_Opt() implements the operator proposed by Lin and
tries to reduce the solution cost f ðsÞ by exploring neighborhoods of Kernighan (1973). In the original k-opt operator, k arcs are
the current solution and selecting an improving solution. It relies removed from a trip and all possible ways to reconnect the
on the first improvement selection strategy and uses classical remaining segments are investigated. In the restricted version
moves first proposed for the VRP. It is limited to nls iterations or used here, only four successive arcs of a trip are removed at a time.
npi iterations without any improvement. The procedure Local_- The procedure cut_and_paste() uses the same trip modifications
mutation uses in order to remove a bloc of consecutive transpor-
Search(), shown in Algorithm 8, is composed of two parts. It
tation request from a trip an insert it into another trip. The pro-
includes the following features:
cedure worst_customer_ejection() consists in first removing the
transportation request from one trip, responsible of the largest
A set of six basic moves are used with a given probability from
detour. Then it is inserted into another trip, at the best position.
lines 16–33;
This move is the combination of the Worst Removal and Best
More than one move can be done in each iteration, since the
Insertion operators introduced by Masson et al. (2014). The pro-
probability checks are done sequentially;
The arrays Succ[] and Fail[] are updated in order to keep the cedure relocate() implements the relocate operator (Braekers
et al., 2014). It removes a transportation request from its trip and
respective number of times each move has contributed to an
reinserts it into another trip, at the best possible position. Thus,
iteration with an improvement or not.
worst_customer_ejection() is a special case of relocate(). The
procedure 2_Opt*() implements the operator proposed by Potvin
Algorithm 8: local_search()
and Rousseau (1993). It removes an arc from two trips and
1. Input
recombines the resulting parts. It can be seen as a special case of
2. s: solution
the mutation presented earlier. The procedure exchange() swaps
3. P: array of probabilities
two transportation requests from different trips (Braekers et al.,
4. Output
2014).
5. s: solution
6. global parameters
2.6. Probability update scheme
7. nls: maximal number of iterations
8. npi: number of consecutive iterations without
The procedure update() takes into account the arrays Succ[]
improvement
and Fail[] in order to compute the new probability P[]. The number
9. Succ: array of success
of times move i has been called is n½i ¼ Succ½i þ Fail½i. Then, q½i
10. Fail: array of fail
11. Begin ¼ Succ½i=n½i is the ratio of calls which contributed to an
12. j:¼0; na: ¼ 0 improvement during the local search. Let qmax ¼maxðqi Þbe the
i
13. while ðj o nlsÞ and ðna rnpiÞ loop largest ratio. The new probability for each move is defined as:
14. s0 : ¼s
P 0 ½i ¼ max 0:05; 95qi =qmax
15. T½i : ¼ 0; 8 i ¼ f1; :::; 7 g
16. with probability P[1] The update is illustrated in Fig. 15.
17. s0 :¼4_Opt(s0 )
18. T[1]: ¼ 1
19. with probability P[2] 3. Numerical experiments
20. s0 :¼cut_and_paste(s0 )
21. T[2]:¼1 The method is benchmarked over the 20 instances introduced
22. with probability P[3] by Cordeau and Laporte (2003) and 42 instances of Ropke et al.
23. s0 :¼worst_customer_ejection(s0 ) ( 2007). To provide a fair comparative study, the computational
24. T[3]: ¼1 time of each method has been scaled by the speed factor pre-
25. with probability P[4] sented Table 3. This coefficient takes into account the MIPS per-
26. s0 :¼relocate(s0 ) formance of each processor. Table 3 reports the information
27. T[4]:¼ 1 available about the last publications, including the operating sys-
28. with probability P[5] tem, the language and the processor used. Using Dongarra (2014)
29. s0 :¼2_Opt*(s0 ) one can estimate the computational power in terms of MFlops and
30. T[5]:¼ 1 to evaluate each speed factor. No MFlops are reported in Table 3
31. with probability P[6] for Masson et al. (2014) and Braekers et al. (2014) because no
32. s0 :¼exchange(s0 ) information could be found in Dongarra (2014) or on the web site
33. T[6]: ¼1 of the Linpack (www.roylongbottom.org.uk).
34. if (f(s0 )4f(s)-epsilon) then All methods use the instances from Cordeau and Laporte, with
35. na:¼na þ 1; the exception of Ropke et al. (2007) which used another set of
36. 8 i ¼ f1; :::; 7 g suchthat T ½i ¼ 0; Fail½i : ¼ Fail½i þ 1 instances. Only Parragh et al. (2010) and Parragh and Schmid
37. else (2013) reports result on both instances sets. In the remaining, to
38. na:¼0; s:¼s0 favor fair comparative study, the method we promote is bench-
39. 8 i ¼ f1; :::; 7 g suchthat T ½i ¼ 1; Succ ½i] :¼ Succ ½i]þ 1 marked on those two sets (Table 2). Note that the set of Ropke
40. end if et al. (2007) is usually split in two; part A and part B. Part A
41. j:¼j þ1 contains instances with smaller vehicle capacity (Q ¼ 3Þ while
42. end loop vehicles have a larger capacity (Q ¼ 6Þ in part B.
43. End In Tables 4–8, results are reported with 5 runs for each method.
The column gap corresponds to the average (over the 5 runs)
130 M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133
Table 3
Relative performances of computers (http://www.roylongbottom.org.uk/linpack%20results.htm).
Cordeau and Laporte Ropke et al. Parragh et al. Parragh and Schmid Masson et al. Braekers et al. Proposition
(2003) (2007) (2010) (2013) (2014) (2014)
s s
Computer PIV 2 GHz Opteron Pentium D Xeon CPU at 2.67 GHz Intel CoreTM i3- 2.6 GHz Intel Core Intel CoreTM i7-3770 CPU @
2.4 GHz 3.2 GHz 530 laptop 3.40 GHz
OS / Linux / / Linux / Windows 7
Language / Cþ þ Cþ þ Cþ þ Cþ þ Cþ þ Cþ þ
MFlops 533 1291 630 1144 ? ? 2529
Speed 0.21 0.51 0.24 0.45 / / 1
factor
Table 4 Table 7
Comparative study with Parragh and Schmid (2013). Comparative study on Ropke et al. (2007) part A instances.
gap Avg. time Scale. time gap Avg. time Scale. time
Parragh and Schmid (2013) 1.58 21.84 9.88 Ropke et al. (2007) 0.01 63.30 13.38
Our method 0.85 9.87 9.87 Parragh and Schmid (2013) 0.17 2.26 1.02
Our method 0.07 1.02 1.02
Table 5
Relative performance of computers.
Table 8
gap Avg. time Scale. time Comparative study on Ropke et al. (2007) part B instances.
Cordeau and Laporte (2003) 1.11 338.82 71.63 gap Avg. time Scale. time
Parragh et al. (2010) 1.58 133.30 33.24
Parragh and Schmid (2013) 1.58 21.84 9.88 Ropke et al (2007) 0.00 56.30 11.90
Masson et al. (2014) 1.15 40.12 – Parragh and Schmid (2013) 0.12 2.25 1.02
Braekers et al. (2014) 0.97 1.39 – Braekers et al. (2014) 0.12 0.51 /
Our method 0.85 9.87 9.87 Our method 0.05 1.02 1.02
Table 6 complexity in O nλ . On the other hand, the algorithm from Cor-
Number of best solutions found. deau and Laporte behaves sublinearly. Its theoretical time com-
plexity is O n2λ .
Nb. of best solutions found on average
About the probability update scheme, the initial probability of
(column gap)
each move in the local search has been set to 0.25, according to a
Cordeau and 7 calibration test done on a subset of instances. Such an approach
Laporte (2003) means that the probabilities are not tuned for one instance
Parragh et al. (2010) 3
although a careful assignment of values to these probabilities
Parragh and Schmid 2
(2013) could have a significant impact on the convergence rate. The ori-
Masson et al. (2014) 2 ginality of the approach consists in including a dynamic prob-
Braekers et al. 8 ability management to self-adjust them during the iterations of
(2014)
the metaheuristic.
Our method 12
Fig. 17 gives a graphical comparison of two trajectories of the
ELS. The first one does not include any dynamic probabilities
management while the second one uses it. For convenience, the
probabilities were set to 0.25 in the ELS without probability
relative gap of the solution found by one method with respect to management.
the best known solution. The detailed results are available on the The two curves are nearly identical in the first third of the
website: http://fc.isima.fr/ chassain/Phd/ELSapproachDARP.php. evolution. A significant difference appears after 15 s and the con-
vergence rate appears to be better for the ELS with probability
3.1. Impact of the evaluation from Firat and Woeginger (2011) and of management. At the end of the run, the result it obtains in 20 s is
the probability update scheme better than the result the ELS with no probability management
gets in 1 min. The probability curves with respect to the time are
We first report a comparison (Fig. 16) of the time efficiency for quite similar for all instances of the same benchmark. For example,
the algorithms proposed respectively by Cordeau and Laporte Fig. 18 illustrates the probabilities for the instance r10a (Cordeau
(2003) and by Firat and Woeginger (2011) on instance 6 from and Laporte, 2003). As stressed on Fig. 19, the probability P ½1
Cordeau and Laporte. Trips have randomly generated and checked associated to move 4-opt rises to 0.95 after less than 10 s, while
separately on each method. Those can be feasible or infeasible. the probability P ½6 for the exchange (2 customers swap) drops to
This covers every cases in the algorithms. 0.05. The global evolution looks similar for Fig. 20.
For a moderate number of transportation requests, the differ- For the instances r10a, the probabilities P2, P3, P4 seem to have
ence is quite marginal. However, the later approach performs an asymptotic convergence to about 0.1, 0.35 and 0.7 respectively.
better as the number of transportations requests increases. Its These probabilities are 0.1 higher for the instances r4a but have a
practical performance is linear and matches the theoretical time very similar global trend. Similar remark holds for Fig. 21 about
M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133 131
the instance r4b. The stationary probabilities are quite different for 3.3. Comparative study with previous articles: Cordeau and Laporte'
the instance of Ropke et al. (2007): in these instances, the higher instances
probability is for P5 (i.e. 2 opt move) and the relative order of P2,
P3 and P4 is different. Note that the low influence of move About the average gap of methods over 5 runs, the average
deviation of the ELS is around 0.85. This is the best average
exchange (customer swap) holds for all instances considered.
To conclude, these experiments allows us to consider the deviation over the five methods. With the exception of the method
from Braekers et al. (2014), the ELS is one of the most time-
dynamic probabilities management as a strong feature to improve
efficient method. Note that the average time of 1.39 s for Braekers
the convergence. Moreover, it reduces the impact of the tuning
et al. (2014) cannot be fairly compared since their speed factor is
during.
unknown. However, note that the methods introduced by Masson
et al. (2014) and Braekers et al. (2014) are no dedicated to the
DARP and can address a wider spectra of problems.
3.2. Comparative study with Parragh and Schmid (2013): Cordeau
On average our method appears to be slightly more efficient
and Laporte' instances
than Braekers et al. (2014) with a gap of 0.85%, even if the times
cannot be compared. Furthermore our ELS approach provides 13
We report the performances of the ELS considering the same
times the best gap (Table 6) on the 20 instances compared to the
total computational time than (Parragh and Schmid, 2013) in order
five other methods. Considering the number of best solutions
to provide a fair comparative study with the previously published found on average (column gap), the method we propose outper-
methods. Considering the speed factor of 0.45 for the computer forms all previous methods.
used in Parragh and Schmid (2013), a computational time of
21.84 min is equivalent to 9.88 min on the computer used for this 3.4. Comparative study with previous articles: Ropke et al. (2007)
study (9:89 min ¼ 21:84 0:45). (part A)
Assigning 10 min of computational time to the ELS leads to an
average gap about 0.80% which is quite better than the 1.58% The instances of (Ropke et al., 2007) part A are all solved to
deviation from Parragh and Schmid (2013). optimality as stressed in Parragh et al. (2010).
132 M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133
4. Concluding remarks
Fig. 21. Probability evolution for (Ropke et al., 2007) a7-84.
References
Atallah, M.J., Chen, D.Z., Lee, D.T., 1995. An optimal algorithm for shortest paths on
weighted interval and circular-arc graphs, with applications. Algorithmica 14,
429–441.
Baldacci, R., Mingozzi, A., 2009. A unified exact method for solving different classes
of vehicle routing problems. Math. Program. 120, 347–380.
Bodin, L.D., Sexton, T., 1986. The multi-vehicle subscriber Dial-A-Ride Problem.
TIMS Stud. Manag. Sci. 22, 73–86.
Borndörfer, R., Grötschel, M., Klostermeier, F., Küttner, C., 1999. Telebus Berlin:
Vehicle Scheduling in a Dial-a-Ride System. In: Wilson, P.N.H.M. (Ed.), Com-
puter-Aided Transit Scheduling, Lecture Notes in Economics and Mathematical
Systems. Springer, Berlin, Heidelberg, pp. 391–422.
Braekers, K., Caris, A., Janssens, G.K., 2014. Exact and meta-heuristic approach for a
general heterogeneous Dial-A-Ride Problem with multiple depots. Transp. Res.
Part B 67, 166–186.
Caumond, A., Lacomme, P., Tchernev, N., 2008. A memetic algorithm for the job-
shop with time lags. Comput. Oper. Res. 35, 2331–2356.
Cordeau, J.F., Laporte, G., 2003. A tabu search heuristic for the static multi-vehicle
Dial-A-Ride Problem. Transp. Res. Part B 37, 579–594.
Fig. 19. Probability evolution for (Cordeau and Laporte, 2003) r4a. Cormen, T.H., Leiserson, C.L., Rivest, M.L., 1990. Introduction to algorithms. MIT
Press, Cambridge, MA.
Dongarra, J., 2014. Performance of Various Computers Using Standard Linear
Equations Software, (Linpack Benchmark Technical Report, CS-89-85). Uni-
versity of Tennessee, Computer Science Department, http://www.netlib.org/
benchmark/performance.pdf.
Dumas, Y., Desrosiers, J., Soumis, F., 1991. The pickup and delivery problem with
time windows. Eur. J. Oper. Res. 54, 7–22.
Firat, M., Woeginger, G.J., 2011. Analysis of the Dial-A-Ride Problem of Hunsaker
and Savelsbergh. Oper. Res. Lett. 39, 32–35.
Golden, B., Raghavan, S., Wasil, E., 2008. The Vehicle Routing Problem: Latest
Advances and New Challenges (Operations Research/Computer Science Inter-
faces), 43. Springer, US.
Lin, S., Kernighan, B.W., 1973. An effective heuristic algorithm for the traveling-
salesman problem. Oper. Res. 21 (2), 498–516.
Lourenço, H.R., Martin, O.C., Stützle, T., 2003. Iterated local search. In: Glover, F.,
Kochenberger, G. (Eds.), Handbook of Metaheuristics, 57. Springer, US New
York, pp. 320–353.
Madsen, O.B.G., Ravn, H.F., Rygaard, J.M., 1995. A heuristic algorithm for the Dial-A-
Ride Problem with time windows, multiple capacities, and multiple objectives.
Ann. Oper. Res. 60, 193–208.
Masson, R., Lehuédé, F., Péton, O., 2014. The Dial-A-Ride Problem with transfers.
Comput. Oper. Res. 41, 12–23.
Mester, D., Bräysy, O., 2007. Active-guided evolution strategies for large-scale
capacitated vehicle routing problems. Comput. Oper. Res. 34, 2964–2975.
Nagata, Y., Bräysy, O., 2009. Edge assembly-based memetic algorithm for the
Fig. 20. Probability evolution for (Cordeau and Laporte, 2003) r4b. capacitated vehicle routing problem. Networks 54 (4), 205–215.
M. Chassaing et al. / Engineering Applications of Artificial Intelligence 48 (2016) 119–133 133
Parragh, S.N., Schmid, V., 2013. Hybrid column generation and large neighborhood Ropke, S., Cordeau, J.-F., Laporte, G., 2007. Models and branch-and-cut algorithms
search for the Dial-A-Ride Problem. Comput. Oper. Res. 40 (1), 490–497. for pickup and delivery problems with time windows. Networks 49 (4),
Parragh, S.N., Doerner, K.F., Hartl, R.F., 2010. Variable neighborhood search for the 258–272.
Dial-A-Ride Problem. Comput. Oper. Res. 37 (6), 1129–1138. Roy, B., Sussmann, B., 1964. Les problèmes d'ordonnancement avec contraintes
Potvin, J.Y., Rousseau, J.M., 1993. A parallel route building algorithm for the vehicle disjonctives. SEMA, Paris, Note DS no. 9 bis.
routing and scheduling problem with time windows. Eur. J. Oper. Res. 66 (3), Savelsbergh, M.W.P., 1992. The vehicle routing problem with time windows:
331–340. minimizing route duration. ORSA J. Comput. 4 (2), 146–154.
Prins, C., 2004. A simple and effective evolutionary algorithm for the vehicle Toth, P., Vigo, D., 1996. Fast local search algorithms for the handicapped persons
routing problem. Comput. Oper. Res. 31 (12), 1985–2002. transportation problem. In: Osman, I.H., Kelly, J.P. (Eds.), Meta-Heuristics:
Prins, C., 2009. A GRASP evolutionary local search hybrid for the vehicle routing Theory and Applications. Springer, US, Boston, pp. 677–690.
problem. In: Pereira, F.B., Tavares, J. (Eds.), Bio-inspired Algorithms for the Vidal, T., Crainic, T.G., Gendreau, M., Prins, C., 2014. Implicit depot assignments and
Vehicle Routing Problem, Studies in Computational Intelligence, vol. 161. rotations in vehicle routing heuristics. Eur. J. Oper. Res. 237 (1), 15–28.
Springer, Berlin, pp. 35–53 2009. Wolf, S., Merz, P., 2007. Evolutionary local search for the super-peer selection
Psaraftis, H.N., 1980. A dynamic programming solution to the single vehicle many- problem and the p-hub median problem. Lect. Notes Comput. Sci. 4771, 1–15.
to-many immediate request Dial-A-Ride Problem. Transp. Sci. 14, 130–154.
Rekiek, B., Delchambre, A., Saleh, H.A., 2006. Handicapped person transportation
problem: an application of the grouping genetic algorithm. Eng. Appl. Artif.
Intel. 19, 511–520.