Advertisement

Journal on Vehicle Routing Algorithms

, Volume 2, Issue 1–4, pp 89–107 | Cite as

A dial-a-ride problem using private vehicles and alternative nodes

  • D. Brevet
  • C. Duhamel
  • M. Iori
  • P. LacommeEmail author
Regular Paper
  • 37 Downloads

Abstract

This paper addresses the dial-a-ride problem (DARP) using private vehicles and alternative nodes (DARP-PV-AN). The DARP consists of creating vehicle routes in order to ensure a set of users’ transportation requests. Each request corresponds to a client needing to be transported from his/her origin to his/her destination. Routing costs have to be minimized while respecting a set of constraints like time windows and maximum route length. In the classical DARP, vehicles have to start from a depot and come back to it at the end of their route. In the DARP-PV-AN, the on-demand transportation service can be done either by a public fleet or by clients that use their private vehicles. The use of these vehicles adds more flexibility and unclog the public transportation fleet by allowing clients to organize their own transportation. However, it also raises some privacy concerns. The DARP-PV-AN addresses these concerns and focuses on location privacy, i.e., the ability to prevent the third parties from learning clients’ locations, by keeping both original and final locations private. This is addressed by setting several pickup/delivery nodes for the transportation requests, thus masking the private address. A compact mixed integer linear model is presented, and an evolutionary local search (ELS) is proposed to compute solutions of good quality for the problem. These methods are benchmarked on a modified set of benchmark instances. A new set of realistic instances is also provided to test the ELS in a more realistic way.

Keywords

DARP Privacy Linear model Metaheuristic ELS 

1 Introduction

In our work, we solve a particular dial-a-ride problem where passengers are transported by either a public fleet of vehicles or by means of private vehicles owned by other passengers. Clients that aim at hiding information on their home address can communicate a set of alternative locations where pickup/delivery can be made. The decision problem requires to determine which vehicle is assigned to each client, while satisfying operational constraints such as time windows, maximal route length, maximum riding time and vehicle capacities. The problem models a large variety of real-world situations, from the standard dial a ride, where only the public fleet is given, to the pure carpooling situation, where only private vehicles can be used. The aim of this work is to formally introduce and model the problem and to present an effective evolutionary heuristic for its solution.

The use of private vehicles has been proposed to complete the use of public vehicles that are already in place. We can accept the provider of the public service to know the exact address of the clients (supposing, for example, that these are employees of a company), but we cannot accept this to hold for the owners of private vehicles, as clients might like to preserve their privacy. Therefore, it makes sense not to give her/his address to these private vehicle owners in particular, but rather find places of appointment. Preventing a private driver from accessing the private address of a potential client is one of the purposes of our study.

1.1 Dial-a-ride problem

The problem considered here is related to the vehicle routing problem (VRP) class. The purpose of these problems is to meet the demand of a set of clients by using a fleet of vehicles located at a central depot. Each vehicle performs a route that visits a sequence of clients before returning to the depot, and the aim is to serve all clients with the least-cost set of routes. The Capacitated VRP (CVRP) is the most famous problem in the VRP class and imposes a maximum capacity on the demand loaded on each vehicle. Exact methods can consistently solve CVRP instances with up to 200 clients only [6, 29], and hence, heuristics are required to handle larger instances. Among the metaheuristics, the evolutionary algorithms have obtained good results [31, 36].

The dial-a-ride problem (DARP) is an extension of the CVRP where the clients’ requests do not correspond to deliveries (or pickups) anymore. Instead, each client requires a transportation from an origin node (pickup) to a destination node (delivery) addressing additional constraints including time windows, vehicle maximum riding time and fleet size. A transportation request must be ensured by a single vehicle. In addition, the DARP can be defined in a static or in a dynamic context. In the former, all requests are known in advance; in the latter, requests appear dynamically, while vehicles are already performing their trip. We consider here the static version.

Heuristic approaches for the DARP have been proposed in the 1980s and 1990s. In the last decade, several more efficient approaches, based on metaheuristics, have been developed. A tabu search has been proposed in Cordeau and Laporte [11]. Later, a variable neighborhood search has been presented in Parragh et al. [28]. Masson et al. [26] used an adaptive large neighborhood search to address the DARP with transfers. Chassaing et al. [10] adapted the evolutionary local search (ELS), and recently, Masmoudi et al. [25] have proposed a hybrid genetic algorithm. For further details, we refer the reader to the recent survey on pickup and delivery problems for the transportation of goods [7] and of people [16].

Formally, the DARP is defined on a complete directed graph \( G = \left( {N,A} \right), \) with a heterogeneous fleet \( F \) of \( K \). vehicles and a set \( R = \left\{ {1, \ldots ,n} \right\} \) of transportation requests. \( N = \left\{ {0,1, \ldots ,2n,2n + 1} \right\} \) is the set of nodes. The depot is split into two copies, nodes \( 0 \) and \( 2n + 1 \), for, respectively, the beginning and the end of the trips. Given a transportation request \( i \), its pickup node is node \( i \) and its delivery node is \( n + i \). Thus, \( N^{P} = \left\{ {1, \ldots ,n} \right\} \) and \( N^{D} = \left\{ {n + 1, \ldots ,2n} \right\} \) are, respectively, the pickup and the delivery subsets. For each node \( i \), \( \left[ {e_{i} ;l_{i} } \right] \) is its time windows (\( e_{i} \) is the earliest starting time and \( l_{i} \) is the latest starting time), the service duration is \( d_{i} \), and the demand in persons is \( q_{i} \), such that \( q_{i} > 0 \) and \( q_{n + i} = - q_{i} \). Given an arc \( \left( {i,j} \right) \in A \), \( t_{ij} \) is the transportation time and \( c_{ij} \) is the transportation cost. Vehicle \( k \) of the fleet has capacity \( Q_{k} \). For sake of simplicity, the node associated to a pickup node, resp. a delivery node, will be referred to as pickup, resp. delivery. When no confusion arises, in the following we also use \( i^{ + } \) to denote a pickup node \( i \) and \( i^{ - } \) to denote a delivery node \( n + i \).

Flowing the notation by Cordeau and Laporte [11], five types of variables can used to model the time aspects of the DARP. These are illustrated in Fig. 1 and can be described as follows for a given a node \( i \):
Fig. 1

Variables’ description and notation

  • \( A_{i} \) is the arrival time of the vehicle,

  • \( B_{i} \) is the beginning of the service,

  • \( D_{i} \) is the departure time, such that \( D_{i} = B_{i} + d_{i} , \)

  • \( W_{i} \) is the waiting time, such that \( W_{i} = B_{i} - A_{i} , \)

  • \( R_{i} \) is the riding time, which corresponds to the time between the end of service at pickup node \( i \) and the beginning of service at delivery node \( n + i \) of a client. Thus, \( R_{i} = B_{n + i} - D_{i} . \)

A route can be represented as a node sequence, starting from node 0 and ending with node \( 2n + 1 \), such that the pickup node of any handled request is located before the associated delivery node. A solution \( s \) is then the assignment of a route to each vehicle, such that all transportation requests are handled exactly once. Given a route, the corresponding variables \( A_{i} \), \( D_{i} \) and \( B_{i} \) can be computed easily in order to satisfy all time constraints. To summarize, a solution must satisfy the following set of constraints:
  1. 1.

    the pickup and the delivery of a client \( i \) must be in the same route, the pickup node being visited before the delivery node,

     
  2. 2.

    at any time of the route, the number of persons in a vehicle \( k \) cannot exceed its capacity \( Q_{k} \),

     
  3. 3.

    for each node, the service time \( B_{i} \) fits within the time window on node \( i \), i.e., \( e_{i} \le B_{i} \le l_{i} , \)

     
  4. 4.

    the riding time \( R_{i} \) of client \( i \) must not exceed a maximum limit \( RT_{i} , \)

     
  5. 5.

    the trip duration for a vehicle \( k \) must not exceed the maximum trip duration \( T, \)

     
  6. 6.

    at most \( K \) vehicles are used.

     
Thus, the objective of the DARP is to find a feasible solution \( s \) of minimal total travel cost:
$$ \hbox{min} \;s = \mathop \sum \limits_{k = 1}^{K} \mathop \sum \limits_{i = 0}^{{\left| {n\left( k \right)} \right| - 1}} c_{{n_{i} \left( k \right)n_{i + 1} \left( k \right)}} $$
where \( n\left( k \right) \) is the nodes sequence for vehicle \( k \) and \( n_{i} \left( k \right) \) is the node at position \( i \) in \( n\left( k \right) \).
As stressed by Cordeau and Laporte [11], the quality of a solution is measured through the following three criteria:
  • Total Riding Time: \( {\text{TRT}} = \mathop \sum \limits_{i = 1}^{n} B_{i + n} - D_{i} , \)

  • Total Waiting Time: \( {\text{TWT}} = \mathop \sum \limits_{i = 1}^{2n} W_{i} , \)

  • Total Duration: \( {\text{TD}} = \mathop \sum \limits_{k = 1}^{K} A_{{\left| {n\left( k \right)} \right|}} - D_{{n_{0} \left( k \right)}} , \)

1.2 DARP extensions

A large number of papers dedicated to the DARP focus on providers operation costs minimization (including but not limited to transportation time and route durations for example), and only few papers consider vehicle emissions, with the exception of Atahran et al. [5]. A wide majority of publications propose single-objective approaches. Some articles are dedicated to the multi-objective DARP, often setting a single objective as a weighted sum of objectives. Lexicographic objective function is used in Garaix et al. [22] and is well suited in problems where the first criterion is definitively more important than the second one. The Pareto optimization approaches for the DARP provide a full set of non-dominated solutions and allow one to analyze trade-offs between objectives [27]. Whatever the criteria, the DARP has been first introduced in a static context and has then been extended to the stochastic version, to allow considering decisions to be achieved in contexts of non-perfect data. Thus, problems that are more realistic can be handled this way. Moreover, in the dynamic version of the DARP, requests are received throughout the day and are not known in advance: the purpose is to accept as many requests as possible as explained by Attanasio et al. [4]. The multi-depot variant has been introduced by Detti et al. [14] by solving a transportation problem coming from a real-world healthcare: in this problem, several depots are available and a heterogeneous fleet of vehicle is proposed. The vehicle fleet homogeneity is a classical DARP assumption. It can then be extended to heterogeneous fleets, motivated by clients with specific requirements and services expectations. Such considerations can be modeled by a vehicle–client compatibility matrix, and they have been addressed in several recent publications including Parragh et al. [28] or Detti et al. [14]. Client transfers between vehicles require synchronization between the vehicles. This provides some flexibility, and it can lead to a better system performance [34]. Since all ridesharing systems are based on client–server solution, privacy for both clients and drivers is a key point and should receive a considerable amount of attention.

1.3 Setting privacy in DARP

Traffic congestion and rising oil prices raise the interest for alternative transportation modes in order to save travel costs and reduce travel time and environmental concerns. Currently, most private vehicles are underutilized and contain only one traveler during daily trips, leaving most of the seats available. The growing availability of geographical localization systems, mainly based on GPS information, allows the creation of new kinds of personalized transportation services where a private vehicle can be used as a private shared vehicle.

For instance, Location-Based Services (LBS) [3, 33] and ridesharing services [2, 9, 20] are on a steep rise. Instead of being hired by a company, drivers in a ridesharing system can be seen as private independent entities. These new types of transportation aim at bringing together travelers with similar travel path and time schedule. Yet, the users’ privacy is an important issue in current ridesharing systems [12, 20]. Since these services heavily depend on Web applications, they can be targeted by malwares in order to access private data. Among them, the location data extracted through a privacy breach could allow to guess the user’s home [21] and its potential for burglaries and assaults. Aïvodji et al. [1] presented an overview of the main techniques for enforcing location privacy. In addition, they propose an algorithm to solve the 2 Synchronization Points Shortest Path Problem (2-SP–SP) while respecting users privacy in polynomial time. The purpose of this problem is to compute the optimal pickup and drop-off point as well as the 5 paths linked to these points, in order to set the best trip for the driver and for the rider. However, solving the problem with an unknown number of users in the trip (that can be greater than 2) and without setting the riders and the driver is more difficult as it involves an additional combinatorial complexity. We consider the location data problem too, and we propose a DARP model in which an operation (pickup or delivery) is not represented by a single position—home, for instance—but by a set of potential nodes (for possible pickup and delivery operations).

1.4 Contributions of the paper

The DARP with private vehicles and alternative nodes (DARP-PV-AN) is first presented. Then, an integer compact linear programming formulation is proposed, and an evolutionary local search (ELS) metaheuristic is developed by using dynamic probabilities for neighborhood exploration, as in Chassaing et al. [10]. The trip evaluation is based on the algorithm proposed by Firat and Woeginger [19], but it is extended to automatically select the best alternative node in case this trip is performed by a private vehicle.

The remaining of the paper is organized as follows: Sect. 2 is dedicated to the definition of the DARP-PV-AN and its linear formulation. Section 3 presents the components in the ELS metaheuristic for computing solutions of good quality respecting privacy of users for the DARP-PV-AN. Section 4 reports the numerical results on modified instances from the literature as well as on new realistic instances, showing the interest of private vehicles. Concluding remarks are given in Sect. 5.

2 DARP-PV-AN

2.1 Definition

In the DARP-PV-AN, in addition to the public fleet of vehicles, decentralized car sharing can be organized by the use of a set of private vehicles that are located at a subset of nodes \( R^{\prime} \subseteq R \), each node representing a client that can use his/her car to reach his/her delivery destination possibly transporting other clients. The node-to-node ridesharing system is an alternative to the public transportation system composed of a fleet of vehicles located at the depot node. In the DARP-PV-AN, two types of vehicles are used: (i) the public fleet located at a depot node and (ii) the private vehicles. Public vehicles provide a door-to-door system thanks to a centralized platform in charge of collecting and storing data and which is modeled as a DARP. This can model situations where a company organizes the clients’ transportations by means of a dedicated fleet of vehicles. Yet, the clients can organize the transportation themselves, as it is the case if they are employees of the company.

In case a client \( i \in R^{\prime} \) uses his/her private vehicle, the trip starts at \( i \) and ends at \( i + n \) and its capacity is \( Q_{r} \). A subset of nodes \( N_{i}^{S} \) is defined, where a pickup or a delivery operation for \( i \) is possible considering the client’s habits and motivated by his/her willing to make an acceptable detour.

The privacy for client \( i \) is ensured by a set of alternative pickup nodes \( N_{{i^{ + } }}^{s} \subset N^{s} \) in addition to its initial pickup node \( i^{ + } \) and by a set of alternative delivery nodes \( N_{{i^{ - } }}^{s} \subset N^{s} \) in addition to its initial delivery node \( i^{ - } \). In this way, it is harder to guess the user’s exact location. Moreover, it is also harder to anticipate where the client will be picked up and dropped. If the client \( i \) is transported by a private vehicle, a node \( \lambda^{ + } \in N_{{i^{ + } }}^{s} \) and a node \( \lambda^{ - } \in N_{{i^{ - } }}^{s} \) have to be selected for the solution; otherwise, the initial pickup (\( i^{ + } \)) and the initial delivery (\( i^{ - } \)) nodes are used. Since two subsets \( N_{i}^{s} \) and \( N_{j}^{s} \) can share some nodes, this model allows the possibility of so-called meeting nodes. Thus, two clients \( i \) and \( j \) can be handled at the same location. These meeting nodes will be automatically used whenever this improves the solution cost. The DARP-PV-AN reduces to the DARP when \( R' \) is empty, and it is thus NP-hard.

Figure 2 illustrates the relation between initial nodes and alternative nodes. The connection is shown with a dashed line. Thus, in this example, nodes \( n_{1} ,n_{2} ,n_{3} \) and \( n_{4} \) have 1 initial node and 4 alternative nodes. Moreover, nodes \( n_{2} \) and \( n_{3} \) share a common alternative node where a private vehicle can pick/drop several clients at the same time.
Fig. 2

Initial nodes with associated alternative nodes

2.2 Mixed integer linear programming compact formulation

In this section, we propose a mixed integer linear programming (MILP) formulation for the DARP-PV-AN. Our MILP simultaneously combines for the first time the use of:
  • both public and private vehicles,

  • a set of alternative nodes available for each client when using a private vehicle,

  • meeting nodes for clients.

2.2.1 Notation

\( N \)

Set of initial nodes, \( N = N^{P} \cup N^{D} \cup \left\{ 0 \right\} \cup \left\{ {2n + 1} \right\} \),

\( N^{P} \)

Set of initial pickup nodes, \( N^{P} \subset N \),

\( N^{D} \)

Set of initial delivery nodes, \( N^{D} \subset N \),

\( N_{i}^{S} \)

Set of alternative nodes linked to an initial node \( i \), \( i \in N \),

\( N_{i}^{T} \)

Total set of nodes for \( i \), containing initial node \( i \) and alternative nodes \( N_{i}^{S} \), i.e.,\( N_{i}^{T} = N_{i}^{S} \cup \left\{ i \right\},\quad i \in N, \)

\( N^{T} \)

Total set of all initial and alternative nodes, i.e.,\( N^{T} = \left( {\mathop {\bigcup }\nolimits_{i \in N} N_{i}^{S} } \right) \cup N \),

\( K \)

Number of public vehicles at the depot,

\( K' \)

Number of private vehicles,

\( K^{T} \)

Total number of vehicles, \( K + K^{\prime} = K^{T} \),

\( n \)

Number of clients,

\( d_{i} \)

Service duration at node \( i \), \( i \in N^{T} \),

\( \left[ {e_{i} ;l_{i} } \right] \)

Time window at node \( i \), \( i \in N^{T} \),

\( q_{i} \)

Client demand at node \( i \), \( i \in N \),

\( RT_{i} \)

Client \( i \) maximum riding time, \( i \in \left\{ {1, \ldots ,n} \right\} \),

\( c_{i,j}^{k} \)

Time between node \( i \) and node \( j \) for vehicle \( k \), \( i,j \in N \),\( k \in K^{T} \),

\( g_{k} \)

Initial node position of the vehicle \( k \), \( k \in K^{T} \),

\( Q_{k} \)

Maximum capacity of vehicle \( k, \)\( k \in K^{T} , \)

\( T \)

Maximum trip length,

\( M \)

A large positive number.

2.2.2 Variables

The MILP uses 6 sets of continuous variables (\( A_{i} \), \( B_{i} \), \( D_{i} \), \( A_{dpt}^{k} \), \( D_{dpt}^{k} \) and \( v_{i}^{k} \)) and 2 sets of binary variables (\( x_{i,j}^{k} \),\( y_{l,m} \)). The continuous variables are related to the arrival time \( A_{i} \) and the departure time \( D_{i} \), as well as the starting service time \( B_{i} \) and the vehicle load \( v_{i}^{k} \). Departure time from the depot and return time to the depot are also continuous. The binary decision variables focus on the arc selection for the trips.
\( A_{i} \)

Arrival time of a vehicle at node \( i \), \( i \in N\backslash \left\{ {0,2n + 1} \right\} \), \( A_{i} \ge 0 \),

\( B_{i} \)

Beginning time of service at node \( i \), \( i \in N\backslash \left\{ {0,2n + 1} \right\} \), \( B_{i} \ge 0 \),

\( D_{i} \)

Departure time of a vehicle at node \( i \), \( i \in N\backslash \left\{ {0,2n + 1} \right\} \), \( D_{i} \ge 0 \),

\( A_{dpt}^{k} \)

Arrival time of a vehicle \( k \) at the final node, \( k \in K^{T} \), \( A_{dpt}^{k} \ge 0 \) (the final node is the depot node for a public vehicle and the node \( g_{k} + n \) for a private vehicle)

\( D_{dpt}^{k} \)

Departure time of a vehicle \( k \) from the starting node, \( k \in K^{T} ,\; D_{dpt}^{k} \ge 0 \) (the starting node is the depot node for public vehicle and the node \( g_{k} \) for a private vehicle)

\( v_{i}^{k} \)

Vehicle \( k \) load when arriving at node \( i \), \( i \in N \), \( k \in K^{T} \), \( v_{i}^{k} \ge 0 \),

xi,jk

\( \left\{ {\begin{array}{*{20}l} 1 \hfill &\quad {{\text{if}}\;{\text{one}}\;{\text{arc}}\;{\text{is}}\;{\text{used}}\;{\text{between}}\;N_{i}^{T} \;{\text{and}}\;N_{j}^{T} \;{\text{by}} } \hfill \\ &\quad {{\text{vehicle}}\;k,\;i,\;j \in N,\; k \in K^{T} ,} \hfill \\ 0 \hfill &\quad {{\text{otherwise}},} \hfill \\ \end{array} } \right. \)

yl,m

\( \left\{ {\begin{array}{*{20}l} 1 \hfill &\quad { {\text{if}}\; {\text{arc}} \left( {l,m} \right) {\text{is}}\;{\text{used}}, \quad l,m \in N^{T} ,} \hfill \\ 0 \hfill &\quad {{\text{otherwise}} .} \hfill \\ \end{array} } \right. \)

2.2.3 Constraints and objective function

The set of constraints can be partitioned into several subsets: each subset of equations represents one type of constraint.

Time constraints the first set of constraints ensures that arrival, beginning and departure variables satisfy the time windows of the corresponding node. Precedence constraints are also considered.

Constraints (1) ensure that the service time \( B_{i} \) for node \( i \) starts in the time window \( \left[ {e_{\alpha } , l_{\alpha } } \right] \) of its visited node \( \alpha \):
$$ \mathop \sum \limits_{{\alpha \in N_{i}^{S} }} e_{\alpha } \mathop \sum \limits_{j,k} x_{\alpha ,j}^{k} \le B_{i} \le \mathop \sum \limits_{{\alpha \in N_{i}^{S} }} l_{\alpha } \mathop \sum \limits_{j,k} x_{\alpha ,j}^{k} ,\quad \forall i \in N^{P} \cup N^{D} . $$
(1)
Constraints (2) ensure that service time \( B_{i} \) starts after the arrival time \( A_{i} \):
$$ B_{i} \ge A_{i} ,\quad \forall i \in N^{P} \cup N^{D} . $$
(2)
Constraints (3) ensure vehicle \( k \) leaves its starting node after its opening time \( e_{0} \) and comes back to its final node before its closing time \( l_{0} \). It also ensures that the departure from its starting node is set before its arrival:
$$ e_{0} \le D_{dpt}^{k} \le A_{dpt}^{k} \le l_{0} ,\quad \forall k \in K^{T} . $$
(3)
Constraints (4) ensure that the departure time \( D_{i} \) for node \( i \) is set after the beginning of service \( B_{i} \) plus the duration of the service \( d_{\alpha } \), depending of the visited node \( \alpha \):
$$ D_{i} \ge B_{i} + \mathop \sum \limits_{{\alpha \in N_{i}^{S} }} d_{\alpha } \mathop \sum \limits_{j,k} x_{\alpha ,j}^{k} ,\quad \forall i \in N^{T} . $$
(4)
Constraints (5) ensure that the beginning of service \( B_{i + n} \) on a delivery cannot start before the departure time of its associated pickup \( D_{i} \) plus the time between them (for instance the shortest possible time between a pickup and its associated delivery). In the DARP-PV-AN, each initial pickup and delivery node has a set of associated alternative nodes. We define \( \gamma_{i} = \hbox{min} c_{l,m}^{k} ,\; \forall l \in N_{i}^{T} , \;\forall m \in N_{i + n}^{T} ,\;\forall k \in K^{T} \) as the arc \( \left( {l,m} \right) \) of minimum length between a pickup of \( i \) and its associated delivery with the vehicle \( k \). We can thus state:
$$ B_{i + n} \ge D_{i} + \gamma_{i} ,\quad \forall i \in N^{P} . $$
(5)
Constraints (6) deal with arrival time. The arrival time \( A_{j} \) is set after the departure time \( D_{i} \) plus the arc length \( c_{l,m} \) if arc \( \left( {l,m} \right) \) is used, with \( l \in N_{i}^{T} \) and \( m \in N_{j}^{T} \). The big \( M \) technique is used here: if arc \( \left( {l,m} \right) \) is used, then \( y_{l,m} = 1 \) and \( A_{j} = D_{i} + c_{l,m} \). Otherwise, \( A_{j} \) is not constrained by \( D_{i} \):
$$ \begin{aligned} & \left( {D_{i} + c_{l,m} } \right) + \left( {y_{l,m} - 1} \right)*M \le A_{j} \le \left( {D_{i} + c_{l,m}^{k} } \right) - \left( {y_{l,m} - 1} \right)*M, \\ & \quad \forall i,j \in N^{P} \cup N^{D} ,\;\forall k \in K^{T} \forall l \in N_{i}^{T} ,\;\forall m \in N_{j}^{T} \\ \end{aligned} $$
(6)
Constraints (7) and (8) deal with arrival times at the depot and from the depot in the same way as constraints (6):
$$ \begin{aligned} & \left( {D_{i} + c_{l,m}^{k} } \right) + \left( {y_{l,m} - 1} \right)*M \le A_{dpt}^{k} \le \left( {D_{i} + c_{l,m}^{k} } \right) - \left( {y_{l,m} - 1} \right)*M, \\ & \quad \forall i \in N^{P} \cup N^{D} ,\;\forall k \in K^{T} , \;\forall l \in N_{i}^{T} ,\;\forall m \in N_{0}^{T} , \\ \end{aligned} $$
(7)
$$ \begin{aligned} & \left( {D_{\text{dpt}}^{k} + c_{l,m}^{k} } \right) + \left( {y_{l,m} - 1} \right)*M \le A_{i} \le \left( {D_{\text{dpt}}^{k} + c_{l,m}^{k} } \right) - \left( {y_{l,m} - 1} \right)*M, \\ & \quad \forall i \in N^{P} \cup N^{D} ,\;\forall k \in K^{T} ,\;\forall l \in N_{0}^{T} ,\;\forall m \in N_{i}^{T} . \\ \end{aligned} $$
(8)
Constraints (9) ensure that the total trip duration is upper bounded by \( T \):
$$ A_{\text{dpt}}^{k} - D_{\text{dpt}}^{k} \le T,\quad \forall k \in K. $$
(9)
Constraints (10) limit the maximum riding time for a client:
$$ B_{i + n} - D_{i} \le RT_{i} ,\quad \forall i \in \left\{ {1, \ldots , n} \right\}. $$
(10)

Load constraints the second set of constraints ensures that the vehicle load does not exceed the capacity at any node of the trip.

Constraints (11) are the MTZ formulation where the vehicle load is updated at each node \( i \). These constraints do not need to be set to equality because the vehicle load will be automatically set to meet the number of available places:
$$ v_{j}^{k} \ge \left( {v_{i}^{k} + q_{i} } \right) + \left( {x_{i,j}^{k} - 1} \right)*M,\quad \forall i,j \in N,\; \forall k \in K^{T} . $$
(11)
Constraints (12) ensure that all vehicles are empty at the depot node:
$$ v_{0}^{k} = 0,\quad \forall k \in K^{T} . $$
(12)
Constraints (13) and (14) ensure that the capacity of a vehicle \( k \) is always positive and does not exceed its limit \( Q_{k} \):
$$ v_{i}^{k} \ge 0,\quad \forall i \in N^{P} \cup N^{D} , \;\forall k \in K^{T} , $$
(13)
$$ v_{i}^{k} \le Q_{k} ,\quad \forall i \in N^{P} \cup N^{D} ,\;\forall k \in K^{T} . $$
(14)

Flow balance constraints The third set of constraints defines flow conservation for each vehicle.

Constraints (15) ensure that a private vehicle \( k \) cannot arrive at its starting position \( g_{k} \) from a node different from the depot, since artificial arc \( \left( {0,g_{k} } \right) \) is used to start the private trip for \( k \). Thus, vehicle \( k \) “virtually” starts from the depot with a 0-travel cost; all arcs between the depot and a node different from its starting position are forbidden. This is ensured by constraints (16). Both of them imply that a private vehicle \( k \) will use the arc \( (0,g_{k} \)) of cost \( 0 \) between the depot and its starting position if \( k \) is used:
$$ x_{{i,g_{k} }}^{k} = 0,\quad \forall i \in N^{P} \cup N^{D} ,\;\;\forall k \in K^{\prime}, $$
(15)
$$ x_{0,i}^{k} = 0,\quad \forall i \in (N^{P} \cup N^{D} )\backslash \left\{ {g_{k} } \right\}, \;\;\forall k \in K^{\prime}. $$
(16)
Constraints (17) and (18) ensure that a private vehicle ends at its delivery node in the same way as in constraints (15) and (16):
$$ x_{{g_{k,} i}}^{k} = 0,\quad \forall i \in N^{P} \cup N^{D} , \;\;\forall k \in K^{\prime}, $$
(17)
$$ x_{i,0}^{k} = 0,\quad \forall i \in (N^{P} \cup N^{D} )\backslash \left\{ {g_{k} } \right\}, \;\;\forall k \in K^{\prime}. $$
(18)
Constraints (19) ensure that a vehicle cannot start and end at the same position:
$$ x_{i,i}^{k} = 0,\quad \forall i \in N^{P} \cup N^{D} ,\;\;\forall k \in K^{T} . $$
(19)
Constraints (20) ensure that an arc \( \left( {i,j} \right) \) is visited by at most one vehicle:
$$ \mathop \sum \limits_{{k \in K^{T} }} x_{i,j}^{k} \le 1,\quad \forall i,j \in N^{P} \cup N^{D} . $$
(20)
Constraints (21), (22) and (23) ensure that only one incoming and leaving arc must be used \( \forall N_{i}^{T} \):
$$ \mathop \sum \limits_{i \in N} \mathop \sum \limits_{{k \in K^{T} }} x_{i,j}^{k} \le 1,\quad \forall j \in N^{P} \cup N^{D} , $$
(21)
$$ \mathop \sum \limits_{j \in N} \mathop \sum \limits_{{k \in K^{T} }} x_{i,j}^{k} \le 1,\quad \forall i \in N^{P} \cup N^{D} , $$
(22)
$$ \mathop \sum \limits_{j \in N} x_{i,j}^{k} = \mathop \sum \limits_{j \in N} x_{j,i}^{k} ,\quad \forall i \in N, \;\;\forall k \in K^{T} . $$
(23)
Constraints (24) ensure that the pickup and the delivery of a client \( i \) are performed by the same vehicle:
$$ \mathop \sum \limits_{i \in N} x_{i,j}^{k} = \mathop \sum \limits_{i \in N} x_{i,j + n}^{k} ,\quad \forall j \in N^{P} \cup N^{D} , \;\;\forall k \in K^{T} . $$
(24)
Constraints (25) ensure that every vehicle is used at most once:
$$ \mathop \sum \limits_{{i \in N^{P} \cup N^{D} }} x_{0,i}^{k} \le 1,\quad \forall k \in K^{T} . $$
(25)
Constraints (26) ensure that exactly one arc is used from \( N_{i}^{T} {\text{to}} N_{j}^{T} \) if they are connected:
$$ \mathop \sum \limits_{{l \in N_{i}^{T} }} \mathop \sum \limits_{{m \in N_{j}^{T} }} y_{l,m} = \mathop \sum \limits_{{k \in K^{T} }} x_{i,j}^{k} ,\quad \forall i,j \in N^{P} \cup N^{D} . $$
(26)
Constraints (27) and (28) ensure that the initial node for client \( i \) is used when \( i \) is handled by a public vehicle (27). On the other hand, if a private vehicle visits \( i \), one of the alternative nodes in \( N_{i}^{S} \) is used (28). This enforces users’ privacy:
$$ y_{i,j} = \mathop \sum \limits_{k \in K} x_{i,j}^{k} ,\quad \forall i,j \in N, $$
(27)
$$ \mathop \sum \limits_{{l \in N_{i}^{S} }} \mathop \sum \limits_{{m \in N_{j}^{S} }} y_{l,m} = \mathop \sum \limits_{{k \in K^{\prime}}} x_{i,j}^{k} ,\quad \forall i,j \in N $$
(28)
Constraints (29) ensure that an alternative node cannot be linked to another alternative node from the same client:
$$ \mathop \sum \limits_{{l \in N_{i}^{T} }} \mathop \sum \limits_{{m \in N_{i}^{T} }} y_{l,m} = 0,\quad \forall i \in N. $$
(29)

Graph reduction constraints The following sets of constraints consist of cuts to reduce the computational time.

Constraints (30) and (31) forbid connections from a pickup node to a depot node and from a depot to a delivery node:
$$ x_{i,0}^{k} = 0,\quad \forall i \in N^{P} , \;\;\forall k \in K^{T} , $$
(30)
$$ x_{0,i}^{k} = 0,\quad \forall i \in N^{D} ,\;\; \forall k \in K^{T} . $$
(31)
Constraints (32) prevent connection from a delivery node to a pickup of the same client:
$$ x_{i + n,i}^{k} = 0,\quad \forall i \in N^{P} , \;\;\forall k \in K^{T} . $$
(32)
For private trips, constraint (33) and (34) forbid the second node to be a delivery and the penultimate node to be a pickup (except the pickup and delivery nodes of the private vehicle itself):
$$ x_{{i,g_{k} + n}}^{k} = 0,\quad \forall k \in K^{\prime}, \;\,\forall i \in N^{P} \backslash \left\{ {g_{k} } \right\}, $$
(33)
$$ x_{{g_{k} ,i}}^{k} = 0,\quad \forall k \in K^{\prime},\;\; \forall i \in N^{D} \backslash \left\{ {g_{k} } \right\}. $$
(34)

Nonnegative and integer constraints All the variables are positive, and binary variables should be set to 0–1 values.

Minimization criteria The objective function in the MILP minimizes the sum of the travelled distances:
$$ \hbox{min} \mathop \sum \limits_{{i \in N^{T} }} \mathop \sum \limits_{{j \in N^{T} }} \mathop \sum \limits_{{k \in K^{T} }} c_{i,j}^{k} *x_{i,j}^{k} $$
(35)

Finally, the MILP consists in optimizing the objective function (35) subject to the constraints (1)–(34) and the variables definition. DARP-PV-AN is NP-hard as an extension of DARP. Most constraints come from classical DARP models and are slightly modified to address our problem. However, constraints (5), (15), (16), (17), (18), (28), (29), (33) and (34) are dedicated to the DARP-PV-AN and solve the problem of private vehicles and privacy.

3 Evolutionary local search metaheuristic

The evolutionary local search (ELS) metaheuristic has been first proposed by Wolf and Merz [37]. It extends the iterated local search (ILS) proposed by Lourenço et al. [24], and it has been then successfully applied to the VRP by Prins [32]. At each iteration of the ELS, several copies of the current solution are done. Each copy is modified by a mutation operator and then improved by a local search. The best resulting solution over the improved copies is kept as new current solution for the next iteration. The rationale behind the ELS algorithmic scheme is to deeply investigate the neighborhood of the current local optimum before leaving it. It is often combined with a wider exploration mechanism, like in GRASP, for instance. It can be even embedded into a simpler multi-start, to manage the diversity during the global solution space exploration. The framework we propose is an extension of the approach in Chassaing et al. [10] that has been enriched and fully tuned to solve the DARP-PV-AN. Indeed, we take into account the use of private vehicles while respecting privacy for users, and this extension is integrated by modifying both the evaluation and the mutation function. In addition, two new operators dedicated to private trips are developed.

The ELS scheme is described in Algorithm 1. The algorithm starts by initializing the operators call probability (line 8) and by creating an initial solution with a randomized heuristic (line 10). This initial solution is improved by a local search (line 11). Then, each of the \( ne \) main ELS iterations consists in:
  • creating a neighborhood set of the current solution by copies and mutation (line 16),

  • improving neighbors using a local search (line 17),

  • keeping the best resulting solution for the next iteration (line 19),

  • updating the neighborhood activation probabilities used in the local search (line 21).
The local search procedure is called at lines 11 and 17 in order to improve the current solution (\( s \) and \( s'' \), respectively). It uses several VRP operators described in Lin and Kernighan [23], Potvin and Rousseau [30], Braekers et al. [8] and Masson et al. [26]. These operators rely on basic moves and correspond to different ways to explore locally the solution space. An activation probability \( P_{i} \) is associated with each operator \( i \) and is updated every \( nr \) iteration of the ELS. The key features are:
  • an indirect representation for the solutions as a sequence of the requests and a decoding function allowing the creation of a feasible solution from this sequence;

  • a constructive heuristic adapted from Chassaing et al. [10], to generate high-quality initial solutions, based on the following steps:
    • for each pair of clients, we check if an order is mandatory because of time windows. If so, this is modeled by precedence constraints in a precedence graph,

    • the graph containing precedence constraints is then partitioned into levels,

    • a graph partition is used to generate a given insertion order for the clients. This order is used to build initial solutions by using an insertion heuristic;

  • an adaptive local search relying on dynamic probabilities. A probability is associated with each neighborhood structure. At each iteration, a neighborhood is selected according to these probabilities. The probabilities are updated with respect to the capability to improve the current solution (or not);

  • an efficient procedure to evaluate trip cost considering the shortest path between node and an iterative minimization of three criteria (the total duration, the total riding time and the total waiting time).

3.1 Trip evaluation

The solution evaluation method consists in evaluating independently each trip. It takes into account the kind of vehicle (public or private) and integrates the privacy of users. The basic trip evaluation technique has been introduced by Firat and Woeginger [19] providing a linear time trip evaluation that improves the quadratic time method proposed in Cordeau and Laporte [11]. Our proposition mainly consists of two steps:
  • Step 1 allow the use of private vehicle by adding zero cost arcs from the depot to the pickup node corresponding to the private vehicle, and from its delivery node to the depot;

  • Step 2 when a vehicle visits a client node, automatically choose the node (initial or alternative) where the client will be picked up or dropped off.

The modifications achieved in step 1 allow a common evaluation function for both public vehicles and private vehicles. This functionality is provided by the insertion of temporary arcs into the evaluated trip. As stressed in Fig. 3, temporary zero cost arcs \( c_{{{\text{DPT}},1^{ + } }} \) and \( c_{{1^{ - } ,{\text{DPT}}}} \) are added (1) from the depot to the initial (\( 1^{ + } \)) and last (\( 1^{ - } \)) position of the private vehicle before a private trip is evaluated. Then, the trip is evaluated (2) as for a public trip. Once the evaluation has been done, these additional arcs are removed (3). This modification allows the algorithm to evaluate public and private trips in linear time.
Fig. 3

Private evaluation trip using temporary arcs

In step 2, we take into account the privacy for the user. Each client \( i \) is associated with an initial pickup/delivery node \( i^{ + } /i^{ - } \) and sets of alternative nodes \( N_{{i^{ + } }}^{S} /N_{{i^{ - } }}^{S} \). Thus, one pickup node and one delivery node must be selected depending on the type of vehicle used to transport \( i \) (public or private). For a public vehicle, the initial pickup and delivery nodes \( i^{ + } /i^{ - } \) are used. Otherwise, a pickup node \( \alpha^{ + } \in N_{{i^{ + } }}^{S} \) and a delivery node \( \alpha^{ - } \in N_{{i^{ - } }}^{S} \) must be chosen. This selection is automatically and optimally done by first building a layered graph in which each layer corresponds to a client node. For each layer, the set of nodes the vehicle is allowed to visit is set. Then, the arcs between each of the successive layers are created. Once the layered graph has been created, a shortest path can be computed, for instance using Dijkstra algorithm [15], in order to minimize the distance for the private vehicle.

The example in Fig. 4 illustrates the way alternative nodes are optimally selected in case a private vehicle is used (the private vehicle of client 1 is selected). It starts its trip at node \( 1^{ + } \) and ends at node \( 1^{ - } \). Temporary arcs of zero cost are added between depot and \( 1^{ + } /1^{ - } \). For this example, the vehicle also performs the request for the client \( 2 \) in the trip. Because a private vehicle performs the trip, initial nodes cannot be used in order to preserve client’s privacy. Thus, an alternative node must be selected for each pickup and delivery position: in our case, alternative nodes \( \left\{ {a,e,.., i,k} \right\} \) are visited in the shortest path.
Fig. 4

Alternative nodes selection for a private trip

It is worth noting the alternative nodes selection is not done explicitly in the ELS. It is performed automatically through the shortest path computation in the private trip evaluation. Here, we are assuming the alternative nodes are not too distant from the initial node, in such a way it is highly unlikely that a private trip where alternative nodes are not selected by shortest path algorithm would be valid, while the private trip with the shortest path used would not. Thus, we can evaluate private trips after choosing alternative nodes with a shortest path algorithm. However, if the problem contains alternative nodes at a significant distance from the initial node, this would break our assumption and both the shortest path and the evaluation should be performed at the same time and not sequentially. In such a case, evaluating the shortest path with time windows is NP-hard [13]. This general case will be considered in a future work.

3.2 Mutation

The mutation is a function initially introduced in the context of genetic algorithms. It is used in ELS and consists in randomly performing a small modification on the current solution \( s \) in order to get a new solution \( s' \) sharing similarities with \( s \). Two operations have been investigated:
  • operation 1: a transportation request is removed from its trip and assigned to a new one,

  • operation 2: a cut and paste move between two trips is achieved.

These two mutations do not have the same probability of being used. The first mutation generates a close neighbor of the original solution with a probability of 0.7. The second mutation generates a more different neighbor but is expensive in terms of computation: the probability of using it is 0.3. These probabilities define a balance between the computation time and the diversification.

The second operation works as follows: we randomly choose in the current solution two trips \( \lambda_{1} \) and \( \lambda_{2} \) of respective length \( n_{{(\lambda_{1} )}} \) and \( n_{{\left( {\lambda_{2} } \right)}} \). Two positions \( p_{1} \) and \( p_{2} \) are randomly chosen in \( \lambda_{1} \) and \( \lambda_{2} \), such that \( 1 \le p_{k} \le n_{{\left( {\lambda_{k} } \right)}} \), \( k = 1,2 \). All transportation requests for which position \( p_{i} \) is between its pickup and its delivery are tagged true in each trip. If a private vehicle is used, the vehicle’s client is set aside. All nodes of \( \lambda_{1} \) before \( p_{1} \), associated with untagged transportation requests, are iteratively inserted into the new trip \( t_{1} \). Then, all nodes of \( \lambda_{2} \) after \( p_{2} \), associated with untagged transportation requests, are iteratively inserted into the new trip \( t_{1} \). The roles of \( \lambda_{1} \) and \( \lambda_{2} \) are swapped to build the other new trip \( t_{2} \). Tagged transportation requests are inserted one by one in one trip at the best position considering the trip cost. If a private vehicle is used, its owner is inserted such as its vehicle is used in the trip: \( t_{1} \) and \( t_{2} \) are tested and the best one is kept.

For instance, consider two trips \( \lambda_{1} \) and \( \lambda_{2} \) in Fig. 5 with respective cut position \( p_{1} = 3 \) and \( p_{2} = 3 \). Nodes \( 5^{ + } ,3^{ + } ,5^{ - } ,3^{ - } \) are tagged because their pickup and their delivery are separated by the cut.
Fig. 5

Initial trips \( \varvec{\lambda}_{1} \) and \( \varvec{\lambda}_{2} \)

Nodes \( 1^{ + } \) and \( 1^{ - } \) are tagged because they correspond to a private vehicle starting and ending node. In Fig. 6, nodes \( 2^{ + } ,2^{ - } ,8^{ + } ,8^{ - } \) are inserted in \( t_{1} \) and nodes \( 7^{ + } ,7^{ - } ,4^{ + } ,4^{ - } ,6^{ + } ,6^{ - } \) in \( t_{2} \). Then, nodes \( 5^{ + } ,5^{ - } ,3^{ + } ,3^{ - } \) are inserted into their best positions in Fig. 7.
Fig. 6

Untagged nodes insertion

Fig. 7

Tagged nodes insertion

The last step is illustrated in Fig. 8: nodes \( 1^{ + } \) and \( 1^{ - } \) that lead to a private vehicle starting and ending position need to be inserted. Both trips are tested and the best one is kept.
Fig. 8

Private trip insertion

3.3 Local search

The local search we developed is an iterative heuristic method that tries to reduce the solution cost by exploring several neighborhoods of the current solution. A set of six basic moves, with a probability for each to be called at each iteration, operates on the DARP layer at the core of the problem:
  • A 4-Opt move as proposed by Lin and Kernighan [23], where 4 arcs are removed from a trip and all possible ways to reconnect the remaining segments are investigated, keeping the best solution;

  • A cut and paste move described in the mutation Sect. (3.2) as “operation 2”;

  • A removal of the worst client in a tour, i.e., a client whose request removal results in the largest cost reduction. Then, it is inserted at its best position in a random trip. Computing the largest detour on a trip is performed by comparing the cost of the trip when each client is removed individually: the trip with the smaller cost will give the client who causes the largest detour;

  • A relocation implementing the method proposed by Braekers et al. [8], where a random trip is removed and each client of this trip is inserted at its best position in another random trip;

  • A 2-Opt* move as proposed by Potvin and Rousseau [30], where an arc is removed from two different trips before recombining the resulting parts;

  • A request exchange as proposed by Braekers et al. [8], swapping two transportation requests from different trips.

These DARP moves are completed by two new moves addressing the nature of the trip, either public or private:
  • removePrivateTrip(): remove a trip performed by a private vehicle and insert all its transportation requests into the other trips.

  • createPrivateTrip(): create a new private trip from a request handled by a public trip.

In createPrivateTrip(), we first find a public trip (\( \lambda \)) and the pickup (\( p_{i}^{ + } \)) and the delivery (\( p_{i}^{ - } \)) positions of a client \( i \) that can perform a private trip. Then, \( i \) is removed from \( \lambda \) and a new private trip \( \lambda ' \) made of only client \( i \) is created. All the transportation requests in \( \lambda \) whose pickup and delivery are located between \( p_{i}^{ + } \) and \( p_{i}^{ - } \) are tagged true. Next, all these transportation requests are tentatively and sequentially inserted into \( \lambda ' \).

For instance, consider the public trip \( \lambda_{5} \) in Fig. 9 with client 5 in position \( p_{5}^{ + } = 2 \) and \( p_{5}^{ - } = 7 \) owns a private vehicle (unused). Nodes \( 1^{ + } ,1^{ - } \) are tagged true since they correspond to a transportation request between \( p_{5}^{ + } \) and \( p_{5}^{ - } \).
Fig. 9

Public trip \( \varvec{ \lambda }_{5} \), at the beginning of createPrivateTrip()

Then, in Fig. 10, client \( 5 \) is extracted from \( \lambda_{5} \) and a new private trip \( \alpha_{5} \) is created with 5. Then, the clients tagged true are tentatively inserted in \( \alpha_{5} \) in Fig. 11. As the insertion is possible, the final trips are shown in Fig. 12.
Fig. 10

Private trip \( \varvec{ \alpha }_{5} \) creation

Fig. 11

Client 1 insertion in private trip \( \varvec{ \alpha }_{5} \)

Fig. 12

Public and private trips at the end of createPrivateTrip()

4 Numerical experiments

Both the MILP model and the ELS have been tested on three sets of instances:
  • The first set contains 20 instances modified from the instances in Ropke et al. [35]. They have been designed with the main scope of evaluating the MILP model. The modification from the original instances consists in adding a set of private vehicles, more precisely the clients able to use their vehicle. In addition, alternative nodes linked to initial nodes have been created. Some clients have been removed too in order to keep the instances small enough for the MILP resolution. Preliminary tests showed that 8 requests are a practical limit in our case. By including alternative nodes, we obtain instances with up to 47 nodes.

  • The second set is composed of 20 instances extending the set proposed by Cordeau and Laporte [11]. These instances are dedicated to evaluate the ELS. As for the first set, these instances have been modified to add private vehicles and positions of alternative nodes linked to initial nodes. Clients have not been removed, as the ELS is able to handle instances with up to 120 transportations requests.

  • The last set is made of 35 realistic instances that we created based on the asymmetric routing graphs generated by Duhamel et al. [18]. These instances contain up to 60 requests. This set is also dedicated to the ELS performance evaluation.

The experiments have been done on an Intel core i7-4790 @ 3.60 GHz with a single thread activated. CPLEX solver 12.6 has been used to compute optimal solutions for our MILP model, and the time limit has been set to 1 h. Considering [17], the speed of our computer is about 4130 MFlops. All the methods have been coded in C++. All instances as well as the best solutions can be downloaded at: http://www.isima.fr/~lacomme/DARP_PV/.

4.1 MILP evaluation

The results of the MILP model solved with CPLEX are gathered in Table 1. Column \( n \) refers to the number of requests,\( N^{T} \) is the total number of nodes (initial and alternative), \( K \) is the number of public vehicles, \( K' \) is the number of private vehicles, and \( {\text{Obj}} \) is the value of objective function, i.e., the sum of travelled distances as defined in (35). \( LB \) is the best lower bound found by CPLEX in the time limit. \( T^{*} \) is the time needed to find the best solution (within the limit of 3600 s), and \( TT \) is the total time. Columns \( \# K \) and \( \# K' \) report, respectively, the number of public and private vehicles used in the solution. The character ‘/’ indicates that no solution has been found within the time limit.
Table 1

Results for the MILP on the modified instances from

[35]

Name

n

\( N^{T} \)

K

K’

Obj

LB

T*(s)

TT (s)

#K

#K’

PCD_2v_10n_0p

5

31

2

0

32.90

32.90

0.84

0.95

2

0

PCD_1v_10n_1p

5

31

1

1

28.92

28.92

1.67

1.89

1

1

PCD_2v_10n_1p

5

31

2

1

28.92

28.92

2.34

2.51

1

1

PCD_0v_10n_2p

5

31

0

2

29.62

29.62

14.45

14.91

0

2

PCD_5v_10n_5p

5

31

5

5

20.10

20.10

5.04

7.11

0

3

PCD_2v_12n_0p

6

37

2

0

32.36

32.36

16.65

20.94

2

0

PCD_1v_12n_1p

6

37

1

1

27.64

27.64

110.25

114.89

1

1

PCD_2v_12n_1p

6

37

2

1

27.64

27.64

273.78

367.58

1

1

PCD_0v_12n_2p

6

37

0

2

25.05

25.05

21.98

38.58

0

2

PCD_5v_12n_6p

6

37

5

6

19.20

19.20

288.34

316.64

0

5

PCD_2v_14n_0p

7

42

2

0

35.98

35.98

195.06

203.47

2

0

PCD_1v_14n_1p

7

42

1

1

32.10

32.10

1682.64

2438.23

1

1

PCD_2v_14n_1p

7

42

2

1

32.10

32.10

984.80

1975.21

1

1

PCD_0v_14n_2p

7

42

0

2

26.50

3600.00

PCD_5v_14n_7p

7

42

5

7

24.37

21.90

3521.21

3600.00

0

6

PCD_2v_16n_0p

8

47

2

0

48.19

48.19

380.57

1485.53

2

0

PCD_1v_16n_1p

8

47

1

1

34.46

3600.00

PCD_2v_16n_1p

8

47

2

1

48.78

34.58

3320.82

3600.00

2

1

PCD_0v_16n_2p

8

47

0

2

33.50

3600.00

PCD_5v_16n_8p

8

47

5

8

31.60

27.65

3316.85

3600.00

0

6

A simple observation relates the number of private and public vehicles used according to the number of private vehicles available. As can be seen from instance PCD_2v_12n_0p to instance PCD_5v_14n_7p (second block of instances), the more the private vehicles are available, the less the public vehicles are used. This leads from a solution cost \( 32.36 \) with two public vehicles to \( 19.20 \) with five private vehicles. We also observe the difficulty of our model to solve instances with more than 7 requests: the time limit of 3600 s is reached and the optimal solutions are not found for six instances. For three out of these six instances (PCD_0v_14n_2p, PCD_1v_16n_1p and PCD_0v_16n_2p), no feasible solution has even been found. This is the reason we proposed a metaheuristic to handle instances with realistic size, as shown in the next section.

One can also note that the addition of a single potential private vehicle, that is changing from \( K' = 0 \) to \( K' = 1 \), can improve substantially the value of the solution. Yet, the required computing time increases sharply as well. We recall that the configuration with no private nodes corresponds to the classical DARP, while the configuration with no public nodes corresponds to the pure car sharing problem. The last instance in each block corresponds to the unrestricted context where, apart from the public vehicles, all clients can also use their own vehicle.

4.2 Mutation operator comparison on ELS

The mutation relies on two operators (see Sect. 3.2) in order to set diversity. The efficiency of the balance between the first and the second operators is evaluated on 5 instances proposed by Cordeau and Laporte [11]. The results are reported in Table 2. In the table, BKS refers to the best published solution cost and the pair \( \left( {\alpha ;1 - \alpha } \right) \) defines the balance between the first and the second operators, \( \alpha \) being the probability to call the first operator. Thus, \( \left( {1;0} \right) \), \( \left( {0;1} \right) \) and \( \left( {0.7;0.3} \right) \), respectively, consist in using only the first operator, the second operator or the chosen balance. For each balance, Obj is the value of the best solution found by the ELS and Gap% is the relative gap to the BKS. These results illustrate the importance of both mutation operators working together.
Table 2

Comparison of mutation operator on the [11] instances

Name

BKS

(1; 0)

(0; 1)

(0.7; 0.3)

Obj

Gap%

Obj

Gap%

Obj

Gap%

R1a

190.02

190.79

0.41

190.79

0.41

190.02

0.00

R2a

301.34

308.42

2.35

308.36

2.33

301.34

0.00

R3a

532.00

539.71

1.45

558.52

4.98

534.28

0.43

R4a

570.25

604.51

6.01

624.09

9.44

572.95

0.47

R5a

626.93

658.71

5.07

689.47

9.98

640.27

2.13

4.3 ELS evaluation on Cordeau and Laporte [11] instances

The first evaluation of the ELS metaheuristic has been performed on 5 instances already used in Table 2, and the results are shown in Table 3. These instances address the classical DARP: no private vehicle is available, and alternative nodes cannot be used. In the table, BKS refers to the best published solution cost obtained by Chassaing et al. [10] and the column \( {\text{Obj}} \) refers to the cost provided by our ELS. Column \( T^{*} \) gives the time in seconds required to reach the best solution and \( TT \) the total time of the metaheuristic. The percentage gap has been computed as:
$$ {\text{GAP}}\% = \frac{{{\text{Obj}}*100}}{\text{BKS}} - 100 $$
where \( {\text{Obj}} \) is the value of the objective function found by our algorithm and \( {\text{BKS}} \) the best known solution cost of the original instance.
Table 3

Results for ELS on the Cordeau and Laporte [11] instances

Type

Name

\( n \)

\( N^{T} \)

K

BKS

Obj

GAP%

T*(s)

TT(s)

#K

DARP

R1a

24

48

3

190.02

190.02

0.00

0.00

15.00

3

R2a

48

96

5

301.34

301.34

0.00

24.00

60.00

5

R3a

72

144

7

532.00

534.28

0.43

53.80

150.00

7

R4a

96

192

9

570.25

572.95

0.47

324.00

456.00

8

R5a

120

240

11

626.93

640.27

2.13

360.00

498.00

11

Solutions equal to BKS were found for instances R1a and R2a; otherwise, solutions with a gap less than 0.5% are provided for instances R3a and R4a. These results illustrate that the ELS also provides good results on the classical DARP, which is a specific version of the DARP-PV-AN.

In Table 4, we use instances from Table 3 modified to include private vehicles and alternative nodes. For each original DARP instance, the number of allowed private vehicles varies from 1 to 3. Column UB refers to the best found solution of the corresponding DARP instance, which is a valid upper bound for the DARP-PV-AN instances. The objective function should decrease with respect to the number of available private vehicles. This can be observed for instance R1a and, to a lesser extent, for instances R2a and R3a. However, for R4a and R5a, the size of the instances (650 and 819 nodes) prevents the method from reaching near-optimal solutions.
Table 4

Results for ELS on the modified instances from

Cordeau and Laporte [11]

Type

Name

\( n \)

\( N^{T} \)

K

K

UB

Obj

GAP%

T*(s)

TT(s)

#K

#K

DARP-PV-AN

R1a-1p-pn

24

168

3

1

190.02

190.02

0.00

0.00

15.00

3

0

 

R1a-2p-pn

24

168

3

2

190.02

190.02

0.00

0.00

15.00

3

0

 

R1a-3p-pn

24

168

3

3

190.02

186.90

− 1.64

7.20

15.00

2

1

 

R2a-1p-pn

48

318

5

1

301.34

299.84

− 0.50

38.40

60.00

5

1

 

R2a-2p-pn

48

318

5

2

301.34

294.39

− 2.31

44.40

60.00

5

2

 

R2a-3p-pn

48

318

5

3

301.34

294.92

− 2.13

32.40

60.00

5

2

 

R3a-1p-pn

72

479

7

1

532.00

529.90

− 0.39

85.20

150.00

7

1

 

R3a-2p-pn

72

479

7

2

532.00

530.39

− 0.30

72.00

150.00

7

2

 

R3a-3p-pn

72

479

7

3

532.00

522.57

− 1.77

76.20

150.00

7

3

 

R4a-1p-pn

96

650

9

1

570.25

574.94

0.82

298.80

438.00

8

0

 

R4a-2p-pn

96

650

9

2

570.25

572.99

0.48

283.80

438.00

8

0

 

R4a-3p-pn

96

650

9

3

570.25

573.10

0.50

256.80

438.00

8

1

 

R5a-1p-pn

120

819

11

1

626.93

629.18

0.36

367.20

498.00

11

1

 

R5a-2p-pn

120

819

11

2

626.93

633.76

1.09

231.00

498.00

11

2

 

R5a-3p-pn

120

819

11

3

626.93

638.50

1.85

190.20

498.00

11

3

4.4 ELS evaluation on new instances

Previous tests on our ELS metaheuristic were done on classical DARP instances, tuned for the DARP-PV-AN. The algorithm has also been benchmarked on a new set of instances dedicated to the DARP-PV-AN, with medium time window extent on each node and common meeting nodes among requests. To our knowledge, test instances with these characteristics were not available in the literature for the version of the DARP that is studied in this paper.

The randomly generated instances use the asymmetric routing graphs generated by Duhamel et al. [18] that are composed of a set of nodes with their positions and of a set of oriented arcs. Based on these graphs, we created 35 new instances that contain from 10 to 60 requests. Each request is composed of one initial pickup and one initial delivery node, and, for each of them, from one to four associated alternative nodes. These alternative nodes are close to their initial one in the graph. For each instance, pickup and delivery locations are generated using a procedure that creates clusters of vertices. This positioning has been set to model daily commuting: pickup nodes (resp. delivery nodes) are chosen in the same area. For each node, the service time \( d_{i} \) is equal to 2 and the load is equal to either 1 or -1 depending on whether the node is a pickup or a delivery. The depot is located in the middle of the graph. For each arc \( \left( {i,j} \right) \in A \), its routing cost \( c_{i,j} \) is equal to the shortest path from \( i \) to \( j \).

A time window \( \left[ {e_{i} ;l_{i} } \right] \) is associated with each node \( i \), with \( 0 \le e_{i} \le l_{i} \le 1440 \). To simulate realistic requests, we assume that each delivery could represent one of the three following possible situations: (i) the beginning of a working day, (ii) the return to home or (iii) an arbitrary displacement. Then, for each delivery, \( l_{{i^{ - } }} \) has 0.4 probability of being in \( \left[ {360;600} \right] \), 0.4 probability in \( \left[ {960;1200} \right] \) and 0.2 probability in \( \left[ {0;1440} \right] \). The shortest path \( {\text{SP}}_{i} \) is computed in the graph between the pickup and the delivery of the request \( i \). Finally, pickup time windows \( \left[ {e_{{i^{ + } }} ;l_{{i^{ + } }} } \right] \) and delivery time window \( \left[ {e_{{i^{ - } }} ;l_{{i^{ - } }} } \right] \) of a request \( i \) are computed as follows:
  • \( e_{{i^{ + } }} = l_{{i^{ - } }} - \alpha * {\text{SP}}_{i} \),

  • \( l_{{i^{ + } }} = l_{{i^{ - } }} - {\text{SP}}_{i} \),

  • \( e_{{i^{ - } }} = e_{{i^{ + } }} + {\text{SP}}_{i} \),

with \( \alpha \in {\mathbb{N}} \) representing the additional time tolerance compared to the shortest path.
In all instances, the maximum route duration is set to 480, the maximum capacity of a vehicle is equal to 10 for a public vehicle and 5 for a private one, and the maximum riding time is equal to 240. For these instances with medium time windows on each node, a large number of public vehicles are provided in order to help the algorithm in finding initial solutions. As we can see in the results in Table 5, few of them are eventually used in the solutions. The number of private vehicles ranges from 0% of clients (classical DARP problem) to 100% of clients, and their positions are randomly chosen.
Table 5

Results for ELS on the new set of instances

Name

\( n \)

\( N^{T} \)

K

K

Obj

Gap%

T*(s)

TT(s)

#K

#K

PCD_20_0VP

10

61

4

0

811.35

0.00

60.00

3

0

PCD_20_2VP

10

61

4

2

730.65

− 9.94

30.00

60.00

3

1

PCD_20_4VP

10

61

4

4

730.65

− 9.94

30.00

60.00

3

1

PCD_20_6VP

10

61

4

6

658.24

− 18.87

30.00

60.00

2

4

PCD_20_10VP

10

61

4

10

435.52

− 46.32

34.80

60.00

0

7

PCD_40_0VP

20

125

8

0

1135.31

6.60

120.00

4

0

PCD_40_2VP

20

125

8

2

1028.41

− 9.42

60.60

120.00

4

2

PCD_40_6VP

20

125

8

6

747.73

− 34.14

118.80

120.00

1

6

PCD_40_8VP

20

125

8

8

667.43

− 41.21

78.00

120.00

1

6

PCD_40_10VP

20

125

8

10

647.31

− 42.98

60.60

120.00

1

8

PCD_40_20VP

20

125

8

20

565.69

− 50.17

88.80

120.00

0

12

PCD_60_0VP

30

191

20

0

1530.00

46.20

180.00

6

0

PCD_60_2VP

30

191

20

2

1493.06

− 2.41

115.80

180.00

4

2

PCD_60_8VP

30

191

20

8

1240.68

− 18.91

165.00

180.00

4

5

PCD_60_10VP

30

191

20

10

1044.67

− 31.72

178.80

180.00

2

8

PCD_60_16VP

30

191

20

16

916.88

− 40.07

146.40

180.00

1

9

PCD_60_30VP

30

191

20

30

961.22

− 37.18

97.20

180.00

0

17

PCD_80_0VP

40

243

20

0

2060.88

2.40

240.00

7

0

PCD_80_2VP

40

243

20

2

2060.88

0.00

2.40

240.00

7

0

PCD_80_10VP

40

243

20

10

1991.44

− 3.37

129.60

240.00

5

2

PCD_80_14VP

40

243

20

14

1840.34

− 10.70

189.00

240.00

4

5

PCD_80_20VP

40

243

20

20

1509.49

− 26.76

240.00

240.00

2

11

PCD_80_40VP

40

243

20

40

1447.02

− 29.79

162.00

240.00

1

18

PCD_100_0VP

50

307

50

0

2415.43

81.60

300.00

7

0

PCD_100_4VP

50

307

50

4

2386.15

− 1.21

163.20

300.00

7

3

PCD_100_14VP

50

307

50

14

2029.22

− 15.99

268.80

300.00

4

8

PCD_100_18VP

50

307

50

18

2078.92

− 13.93

294.60

300.00

4

9

PCD_100_26VP

50

307

50

26

2079.45

− 13.91

292.20

300.00

4

10

PCD_100_50VP

50

307

50

50

1888.48

− 21.82

242.40

300.00

1

21

PCD_120_0VP

60

371

50

0

2928.59

257.40

360.00

10

0

PCD_120_4VP

60

371

50

4

2804.60

− 4.23

268.20

360.00

8

1

PCD_120_16VP

60

371

50

16

2465.74

− 15.80

335.40

360.00

5

5

PCD_120_20VP

60

371

50

20

2407.83

− 17.78

320.40

360.00

6

4

PCD_120_30VP

60

371

50

30

2581.43

− 11.85

269.40

360.00

7

3

PCD_120_60VP

60

371

50

60

2106.29

− 28.08

360.00

360.00

2

20

The use of private vehicles while respecting privacy of users significantly improves solutions of a classical DARP, as stressed on the Gap% column in Table 5. For instance PCD_40, the cost saving goes up to 50.17% when all clients can use their vehicle (even if only 12 are really used). This behavior holds for all instances. Note that the saving also depends on private vehicle capacity, which has been set to 5 here. For a more restricted capacity, the improvement would have been more limited. For all instances, ELS uses all the allowed CPU time. Yet, the time to find the best solution increases when private vehicles can be used, compared to the configuration with no private vehicle (i.e., \( K^{\prime} = 0 \)).

We also evaluated the quality of the solution with the criteria defined by Cordeau and Laporte [11]: TRT (Total Riding Time), TWT (Total Waiting Time) and TD (Total Duration) as defined at the end of Sect. 1.1. Figures 13, 14 and 15 report average values from the solutions in Table 5. As can be seen in Fig. 13, all criteria are improved, and TWT is close to 0% when all the clients can use their private vehicle (which does not necessarily mean that all of them are used).
Fig. 13

Average quality of service

Fig. 14

Average number of arcs used

Fig. 15

Average shortest path deviation

We can also evaluate the impact of private vehicles on the number of arcs used. As stressed in Fig. 14, the number of arcs used goes down from 324 with no private vehicle (0%) to 219 with private vehicles only (100%). Note that the constraints on private vehicle do not include a maximum trip length but only maximal riding times. Private vehicle trips are very time constrained and use less arcs than trips assigned to public vehicles. This is due to the fact that:
  • the riding time is defined between each pickup and delivery nodes,

  • the departure node of private trip is located at a pickup node,

  • the maximal riding time is lower than the maximal total duration.

Our next experiments evaluate the average deviation from the shortest path for each request. It is computed as the ratio between the current trip distance and the distance of the shortest trip from his/her pickup to his/her delivery. Note that some other requests could be handled in the same time by the same vehicle, which would further increase the deviation. Thus, the path from the pickup node to the delivery node may not be the shortest one. We studied this average deviation according to the number of private vehicles used. As shown in Fig. 15, in which 100% means the shortest possible path is used, the average length of a transport request corresponds to 161.44% of the shortest path when no private vehicles are used. With private vehicles, this deviation reduces progressively to 129.29%. This also means an average 18.75% time saving for a request.

Our next observation focuses on the use of meeting nodes by private vehicles. In Fig. 16, some clients share alternative nodes. Thus, these alternative nodes can be used as meeting nodes to handle several requests at the same time in order to optimize the objective function. In this example, a part of a private trip is depicted; the private vehicle trip is shown in bold lines, the initial nodes handled in the trip are in gray, and the alternative nodes visited are dashed. As can be seen, the alternative node 205 is shared by the requests whose initial nodes are 191, 204 and 220. Since the alternative node 205 is visited, the associated three requests can be performed at the same time. In this case, this is a triple drop-off, but it could correspond to any combination of pickup and delivery.
Fig. 16

Node 205 as an alternative node in trip 7 of instance PCD_100_14VP

4.5 ELS evaluation on instances with vehicle dependent cost

The ELS is also evaluated on a set of instances with vehicle dependent cost. To do so, the instances introduced in Sect. 4.4 are extended the following way:

The cost of an arc is the same for all public vehicles. For private vehicles, instead, it is multiplied by a coefficient \( \beta \). For each instance, this coefficient is randomly chosen between \( Min\beta \) and \( Max\beta \) values. This coefficient can be smaller than 1, which means that private vehicles are faster and cheaper than public vehicles, or larger, meaning the opposite.

As shown in Table 6, using coefficients smaller than 1 enforces the use of private vehicle (column \( \# K' \)). It decreases the cost of the objective function as well (column \( {\text{Obj}} \)). On the contrary, coefficients greater than 1 reduce the use of private vehicles. However, private vehicles are still used, until \( \beta \) reaches a large enough value, around 2 in Table 6 and Fig. 17.
Table 6

Results for ELS on vehicle depending cost instances

Name

Min \( \beta \)

Max \( \beta \)

Obj*

Obj

Gap%

#K

#K

PCD_20_2VP

0.80

1.00

811.35

696.92

− 14.10

2

2

1.00

1.20

811.35

736.46

− 9.23

3

1

1.20

1.40

811.35

749.38

− 7.64

3

1

1.40

1.60

811.35

762.31

− 6.04

3

1

1.60

1.80

811.35

775.23

− 4.45

3

1

1.80

2.00

811.35

788.16

− 2.86

3

1

2.00

2.20

811.35

801.08

− 1.27

3

1

2.20

2.40

811.35

811.35

0.00

3

0

PCD_20_4VP

0.80

1.00

811.35

690.43

− 14.90

2

4

1.00

1.20

811.35

736.46

− 9.23

3

1

1.20

1.40

811.35

749.38

− 7.64

3

1

1.40

1.60

811.35

762.31

− 6.04

3

1

1.60

1.80

811.35

775.23

− 4.45

3

1

1.80

2.00

811.35

788.16

− 2.86

3

1

2.00

2.20

811.35

801.08

− 1.27

3

1

2.20

2.40

811.35

811.35

0.00

3

0

PCD_20_6VP

0.80

1.00

811.35

630.86

− 22.25

2

4

1.00

1.20

811.35

672.27

− 17.14

2

4

1.20

1.40

811.35

702.17

− 13.46

2

2

1.40

1.60

811.35

720.53

− 11.19

2

2

1.60

1.80

811.35

738.89

− 8.93

2

2

1.80

2.00

811.35

757.25

− 6.67

2

2

2.00

2.20

811.35

775.61

− 4.41

2

2

2.20

2.40

811.35

793.97

− 2.14

2

2

Fig. 17

Impact of \( \varvec{\beta} \) average value on the solution

5 Concluding remarks

In this paper, we have introduced the dial-a-ride problem with private vehicles and alternative nodes (DARP-PV-AN). This model allows the combination of two fleets: a public fleet of vehicles located at a depot and a set of private vehicles, each one owned by a client. The former fleet leads to a centralized system (transportation company, either public or private) while the latter is decentralized. The pickup and the delivery locations for each transportation request are associated with an initial node as well as with several alternative nodes. These alternative nodes are used to improve the client’s privacy.

The initial node is used by a public fleet, while the alternative nodes are used by private vehicles only. Alternative nodes prevent from learning clients’ locations, i.e., keeping both original and final locations private. As an additional feature, these alternative nodes allow the definition of meeting nodes by sharing some alternative nodes between several transportation requests. A mixed integer linear programming formulation has been proposed and benchmarked as well as an evolutionary local search (ELS) metaheuristic. A new set of instances, dedicated to the DARP-PV-AN, has been created too. Results show that the use of private vehicles can lead to some improvement on several ways. First, the sum of travelled distances is significantly reduced since the private vehicles do not need to leave and return to the depot. The quality of service is improved, and the travel distance for each client is closer to the shortest distance. In addition, the number of arcs used is reduced, which means a lower impact on the global traffic. Coupled with a lower total distance, this could also lead to lower global NOx/CO2 emissions.

This work is currently being extended into the analysis of the economical interplay between both types of services. Namely, given a company, we are looking at the way to set financial incentives for the employees to offer ridesharing opportunities to their colleagues. Moreover, the coupling between ridesharing and multimodal transportation should be further investigated, as well as the generalization of the optimal alternative node selection and trip evaluation. Finally, generalization of the privacy concept to the public trips should also be explored.

Notes

References

  1. 1.
    Aïvodji, U.M., Gambs, S., Huguet, M.-J., Killijian, M.-O.: Meeting nodes in ridesharing: a privacy-preserving approach. Transp. Res. Part C Emerg. Technol. 72, 239–253 (2016)CrossRefGoogle Scholar
  2. 2.
    Agatz, N., Erera, A., Savelsbergh, M., Wang, X.: Optimization for dynamic ride-sharing: a review. Eur. J. Oper. Res. 223(2), 295–303 (2012)CrossRefGoogle Scholar
  3. 3.
    Artigues, C., Deswarte, Y., Guiochet, J., Huguet, M.-J., Killijian, M-O., Powell, D., Roy, M., Bidan, C., Prigent, N., Anceaume, E., Gambs, S., Guette, G., Hurfin, M., Schettini, F. Amores: an architecture for mobiquitous resilient systems. In: Proceedings of the 1st European Workshop on Approaches to Mobiquitous Resilience. ACM (2012)Google Scholar
  4. 4.
    Attanasio, A., Cordeau, J.F., Ghiani, G., Laporte, G.: Parallel tabu search heuristics for the dynamic multi-vehicle dial-a-ride problem. Parallel Comput. 30(3), 377–387 (2004)CrossRefGoogle Scholar
  5. 5.
    Atahran, A., Lenté, C., T’kindt, V.: A multicriteria dial-a-ride problem with an ecological measure and heterogeneous vehicles. J Multi-Criteria Decis Anal 21(5–6), 279–298 (2014)CrossRefGoogle Scholar
  6. 6.
    Baldacci, R., Mingozzi, A., Roberti, R.: Recent exact algorithms for solving the vehicle routing problem under capacity and time window constraints. Eur. J. Oper. Res. 218(1), 1–6 (2012)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Battarra, M., Cordeau, J.-F., Iori, M.: Pickup and delivery problems for goods transportation. In: Toth, P., Vigo, D. (eds.) Vehicle Routing: Problems, Methods, and Applications, 2nd edn, SIAM, Monographs on Discrete Mathematics and Applications, ISBN 978-1-611973-58-7, pp. 161–192 (2014)Google Scholar
  8. 8.
    Braekers, K., Caris, A., Janssens, G.K.: Exact and meta-heuristic approach for a general heterogeneous dial-a-ride problem with multiple depots. Transp. Res. Part B Methodol. 67, 166–186 (2014)CrossRefGoogle Scholar
  9. 9.
    Bruck, P.B., Incerti, V., Iori, M., Vignoli, M.: Minimizing CO2 emissions in a practical daily carpooling problem. Comput. Oper. Res. 81, 40–50 (2017)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Chassaing, M., Duhamel, C., Lacomme, P.: An ELS-based approach with dynamic probabilities management in local search for the dial-a-ride problem. Eng. Appl. Artif. Intell. 48, 119–133 (2016)CrossRefGoogle Scholar
  11. 11.
    Cordeau, J.-F., Laporte, G.: A tabu search heuristic for the static multi-vehicle dial-a-ride problem. Transp. Res. Part B Methodol. 37(6), 579–594 (2003)CrossRefGoogle Scholar
  12. 12.
    Cottrill, C.D., Thakuriah, P.V.: Location privacy preferences: a survey-based analysis of consumer awareness, trade-off and decision-making. Transp. Res. Part C Emerg. Technol. 56, 132–148 (2015)CrossRefGoogle Scholar
  13. 13.
    Desrochers, M., Soumis, F.: A generalized permanent labelling algorithm for the shortest path problem with time windows. INFOR Inf. Syst. Oper. Res. 26(3), 191–212 (1988)zbMATHGoogle Scholar
  14. 14.
    Detti, P., Papalini, F., de Lara, G.Z.M.: A multi-depot dial-a-ride problem with heterogeneous vehicles and compatibility constraints in healthcare. Omega 70, 1–14 (2017)CrossRefGoogle Scholar
  15. 15.
    Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1(1), 269–271 (1959)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Doerner, .K.F., Salazar Gonzalez, J.J.: Pickup-and-delivery problems for people transportation. In: Toth, P., Vigo, D. (eds.) Vehicle Routing: Problems, Methods, and Applications, 2nd edn, SIAM, Monographs on Discrete Mathematics and Applications, ISBN 978-1-611973-58-7, pp. 193–212 (2014)Google Scholar
  17. 17.
    Dongarra, J.: Performance of Various Computers Using Standard Linear Equations Software, (Linpack Benchmark Report), University of Tennessee Computer Science Technical Report, CS-89-85 (2014)Google Scholar
  18. 18.
    Duhamel, C., Lacomme, P., Prodhon, C., Prins, C.: A GRASP × ELS approach for real-life location routing problems. In: Proceedings of the 2009 International Conference on Computers & Industrial Engineering, IEEE (2009)Google Scholar
  19. 19.
    Firat, M., Woeginger, G.J.: Analysis of the dial-a-ride problem of Hunsaker and Savelsbergh. Oper. Res. Lett. 39(1), 32–35 (2011)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Furuhata, M., Dessouky, M., Ordóñez, F., Brunet, M.-E., Wang, X., Koenig, S.: Ridesharing: the state-of-the-art and future directions. Transp. Res. Part B Methodol. 57, 28–46 (2013)CrossRefGoogle Scholar
  21. 21.
    Gambs, S., Killijian, M.-O., Núñez del Prado Cortez, M. Show me how you move and I will tell you who you are. In: Proceedings of the 3rd ACM SIGSPATIAL International Workshop on Security and Privacy in GIS and LBS. ACM (2010)Google Scholar
  22. 22.
    Garaix, T., Artigues, C., Feillet, D., Josselin, D.: Optimization of occupancy rate in dial-a-ride problems via linear fractional column generation. Comput. Oper. Res. 38(10), 1435–1442 (2011)MathSciNetCrossRefGoogle Scholar
  23. 23.
    Lin, S., Kernighan, B.W.: An effective heuristic algorithm for the traveling-salesman problem. Oper. Res. 21(2), 498–516 (1973)MathSciNetCrossRefGoogle Scholar
  24. 24.
    Lourenço, H.R., Martin, O.C., Stützle, T.: Iterated local search. In: Handbook of Metaheuristics. Springer, Boston, pp. 320–353 (2003)Google Scholar
  25. 25.
    Masmoudi, M.A., Braekers, K., Masmoudi, M., Dammak, A.: A hybrid genetic algorithm for the heterogeneous dial-a-ride problem. Comput. Oper. Res. 81, 1–13 (2017)MathSciNetCrossRefGoogle Scholar
  26. 26.
    Masson, R., Lehuédé, F., Péton, O.: The dial-a-ride problem with transfers. Comput. Oper. Res. 41, 12–23 (2014)MathSciNetCrossRefGoogle Scholar
  27. 27.
    Paquette, J., Cordeau, J.-F., Laporte, G., Pascoal, M.M.B.: Combining multicriteria analysis and tabu search for dial-a-ride problems. Transp. Res. Part B Methodol. 52, 1–16 (2013)CrossRefGoogle Scholar
  28. 28.
    Parragh, S.N., Doerner, K.F., Hartl, R.F.: Variable neighborhood search for the dial-a-ride problem. Comput. Oper. Res. 37(6), 1129–1138 (2010)CrossRefGoogle Scholar
  29. 29.
    Pecin, D., Pessoa, A., Poggi, M., Uchoa, E.: Improved branch-cut-and-price for capacitated vehicle routing. Math. Program. Comput. 9(1), 61–100 (2017)MathSciNetCrossRefGoogle Scholar
  30. 30.
    Potvin, J.-Y., Rousseau, J.-M.: A parallel route building algorithm for the vehicle routing and scheduling problem with time windows. Eur. J. Oper. Res. 66(3), 331–340 (1993)CrossRefGoogle Scholar
  31. 31.
    Prins, C.: A simple and effective evolutionary algorithm for the vehicle routing problem. Comput. Oper. Res. 31(12), 1985–2002 (2004)MathSciNetCrossRefGoogle Scholar
  32. 32.
    Prins, C.: A GRASP × evolutionary local search hybrid for the vehicle routing problem In: Bio-inspired Algorithms for the Vehicle Routing Problem. Springer, Berlin, pp. 35–53 (2009)Google Scholar
  33. 33.
    Quercia, D., Lathia, N., Calabrese, F., Di Lorenzo, G., Crowcroft, J.: Recommending social events from mobile phone location data. In: Data Mining (ICDM), Proceedings of the 2010 IEEE International Conference on Data Mining (ICDM ‘10) (2010)Google Scholar
  34. 34.
    Reinhardt, L.B., Clausen, T., Pisinger, D.: Synchronized dial-a-ride transportation of disabled passengers at airports. Eur. J. Oper. Res. 225(1), 106–117 (2013)CrossRefGoogle Scholar
  35. 35.
    Ropke, S., Cordeau, J.-F., Laporte, G.: Models and branch-and-cut algorithms for pickup and delivery problems with time windows. Networks 49(4), 258–272 (2007)MathSciNetCrossRefGoogle Scholar
  36. 36.
    Vidal, T., Crainic, T.G., Gendreau, M., Rei, W., Lahrichi, N.: A hybrid genetic algorithm for multi-depot and periodic vehicle routing problems. Oper. Res. 60(3), 611–624 (2012)MathSciNetCrossRefGoogle Scholar
  37. 37.
    Wolf, S., Merz, O.: Evolutionary local search for the super-peer selection problem and the p-hub median problem. In: International Workshop on Hybrid Metaheuristics. Springer, Berlin (2007)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Laboratoire d’Informatique (LIMOS) UMR CNRS 6158Université Clermont-AuvergneAubièreFrance
  2. 2.Department of Sciences and Methods for EngineeringUniversity of Modena and Reggio EmiliaReggio EmiliaItaly

Personalised recommendations