Keywords

1 Introduction

One of the problems addressed by private chauffeur companies is the design of optimal routes and schedules to pick up, drive, and deliver clients to drop off locations previously scheduled. The optimization has to attend to a large number of parameters and restrictions, e.g.: capacity demands (number of persons, volume of the luggage, large/special sport items etc.) or service restrictions (transportation of children, disabled people, drivers availability, drivers working hours, vehicles availability, etc.). The problem is even more intricate and dynamic when issues like delayed services, absence of workers, traffic congestion, vehicle breakdowns or service cancellations (just to give some examples) are taken into account.

In its general form, the described problem is a variation of the dial a ride problem (DARP), where clients obligatorily provide the pick up and drop off locations and time, and other parameters such as number of passengers and their ages or luggage volume (e.g., see  [6, 26] for formal definition of the problem). DARP consists in, given a characterized fleet of vehicles, designing (optimal) routes and schedules to satisfy clients requests of pick up and deliver in certain time windows, not necessarily using all available vehicles. DARP is known to be NP-hard and has been addressed in many ways including exact and meta-heuristic solutions [14]. For example, to solve a route planning problem at a senior activity center, a heterogeneous DARP with configurable vehicle capacity was solved by Qu and Bard [27], using a branch and price and cut algorithm. A branch and cut algorithm capable of solving small to medium-size instances was developed by Cordeau [5] along with a mixed-integer programming formulation. In [29] a pick up and delivery problem with time windows and a DARP tested a branch and cut algorithms with families of inequalities on several instance sets of the problems. In [31] an ant colony optimization algorithm was applied to minimize the fleet size required to solve a DARP. The study in [9] aimed to develop and test different genetic algorithms to find appropriate encodings and configurations, specifically for the case with time windows. Parallel implementations were also studied as the tabu search variants described and compared in [1] (applied to a static DARP). A two-stage hybrid meta-heuristic method using ant colony optimization and tabu search for the vehicle routing problem with constraints of simultaneous pick up and delivery, and time windows was presented by Lai and Tong [21]. Another parallel approach embedded with a multi-start heuristic for solving the vehicle routing problem with simultaneous pick up and delivery was proposed in [30]. Berbeglia, Cordeau and Laporte presented an hybrid algorithm for the dynamic DARP [2], which combines an exact constraint programming algorithm and a tabu search heuristic.

The DARP was formulated with distinct objectives such as the minimization of the routes’ duration, ride time, waiting time, number of vehicles used, operational cost, etc. (for a more complete list see [7]). In the criteria context, the problem has been addressed in several multiple objective (MO) formulations. In the MO case, several possibly antagonistic objectives are evaluated producing a set of solutions over a partially ordered objective space [12]. For instance, Chevrier et al. [4] addressed the problem of lack of transport service in sparsely inhabited areas as a demand responsive transport problem, comparing the non-dominated sorting genetic algorithm II (NSGA-II), the strength pareto evolutionary algorithm 2 (SPEA2), and the indicator based evolutionary algorithm (IBEA). In the same work, improvements using an iterative local search (ILS), added in the mutation operator, are used to select the best approach in a solution capable of producing answers in a short period of time. Another application of NSGA-II to a multiple objective variation of the DARP problem considering disruptive scenarios (e.g., accidents with the transporting vehicles, vehicle breakdown, and traffic jams) was presented by Issaoui et al.  [19]. A bi-objective formulation of DARP is solved using NSGA-II in [16]. The formulation consists in the determination of routes to be performed by a fleet of vehicles available to serve geographically dispersed customers. For more in-depth surveys on the subject, please refer to the works of Cordeau and Laporte [6] and Ho et al. [18].

This paper compares six multiple objective evolutionary algorithms (MOEA) applied to solving an instance of the multiple objective dial a ride problem (MO-DARP), namely: Multi-Objective Evolutionary Algorithm based on \(\epsilon \)-dominance (\(\epsilon \)-MOEA), Non-dominated Sorting Genetic Algorithm II (NSGA-II), NSGA-III, \(\epsilon \)-dominance Non-dominated Sorting Genetic Algorithm II (\(\epsilon \)-NSGAII), improved Strength Pareto Evolutionary Algorithm (SPEA2) and Pareto Envelope-based Selection Algorithm 2 (PESA2). Data used to produce the experimental results was retrieved from the working flow of a private chauffeur company with a heterogeneous fleet, which mainly works in the Algarve, Portugal. The objectives were discussed with the company and set to be: (a) the minimization of total distance traveled by the vehicles to serve all requests, (b) the minimization of the drivers’ wages difference, and (c) the minimization of the total number of empty seats while satisfying all requests. Results show that the algorithms can return a very large set of valid solution but, for the tested instances and in general, \(\epsilon \)-MOEA overcomes the other algorithms in indicators such as hypervolume, generational distance, and inverted generational distance.

The added value of this paper is the comparison of the computational performance of the six mentioned state-of-the-art algorithms over a set of DARP instances with different sizes, allowing us to propose \(\epsilon \)-MOEA as a good starting point (since, e.g., computational time was not a major concern) to solve the private chauffeur company’s problem.

The remaining document is structured as follows. The next section deals with the problem’s formulation and multiple objective optimization issues. Section 3 briefly describes the algorithmic solutions tested and discusses the problem’s codification and chosen operators. The next Section, Sect. 4, presents and discusses results obtained with the experimented methods. The last section presents a conclusion and future work.

2 Problem Formulation

The MO-DARP addressed in this paper was formulated in [24] and took up again in [15]. The problem is formulated over a directed network where nodes are pick up, delivery or shift start/end locations, and edges have associated to them distance and traversing time. A request is characterized by a pick up node, a drop off node, the number and type of passengers (load), and pick up (or drop off) time. Driver and vehicles are connected as there are as many depots as drivers, since it is considered that a vehicle starts and ends at the driver’s homes (start/end location). Each vehicle has a capacity and is allocated to one driver. Drivers’ working time window and maximum workload are also parameters of the model. The formulation allows for a vehicle to be shared by more than one driver, given that the driver’s time windows do not overlap with each other, and the end point of one shift coincides with the start point of the next shift. In the algorithm, these cases are solved considering dummy-duplicated cars with the same characteristics of the original ones.

Regarding scheduling issues, the model takes into consideration operational costs, the number of unused vehicle seats while serving a request, and the cumulative salary of the driver regarding the drivers’ average salary (part of the salary of the drivers depends on the number and type of services). Therefore, for a given set of services, the goal of the problem is expressed by a multiple objective function which comprises (a) the minimization of total distance made by the vehicles to serve all services, (b) the minimization of the drivers’ wages difference, and (c) the minimization of the total number of empty seats while satisfying all requests. Being obvious that the first objective minimizes the operational costs, the third one also has the same effect as optimizing the number of seats to the request will reduce the use of larger vehicles, which usually have associated higher costs (e.g., larger consumption) and might be less comfortable for the passengers. The second objective reduces the overload of some of the drivers/vehicles which might represent a security issue, promoting, at the same time, more balanced wages among drivers. Most requests solving issues are more or less common sense as, all requests are satisfied by a single vehicle, the vehicle which picks up the customer is the same that drops him off, a vehicle starts and ends its daily service at its depot, vehicles’ capacity restrictions for each service are verified, none of the requests of a vehicle overlap in time, and workers only works within the defined time window.

As these different objectives are conflicting, when a solution is better in one objective is normally worse in other(s), e.g., a solution will not improve/decrease the total distance traveled by the vehicles to serve all services (objective (a)) without increasing at least one of the other two objectives (drivers’ wages difference (b) or total number of empty seats while satisfying all requests (c)). This means that the problem will not have one best solution, but rather a collection of trade-off solutions, each better in one objective, but worse in other(s). If no decision formula is known (e.g., priority on the objectives), a human decision maker should be presented with this collection of “best solutions”, to decide which one should be used, based on the company’s politics.

To determine these “best solutions”, the Pareto dominance is used: suppose an objective function \(F=(f_1, f_2, \ldots , f_m)\) such that \(f_i:\varOmega \rightarrow R\) (\(i \in \{1, 2, \ldots , m\}\), \(\varOmega \) is the solutions/search space, and R is an ordered set), and, without loss generality, all objectives of our MO problem are to be minimized. The solution \(X\in \varOmega \) dominates solution \(Y\in \varOmega \), \(X \prec Y\), if the following pair of conditions are verified: \(f_i(X) \le f_i(Y)\) for all \(i\in \{1, 2, \ldots , m\}\) and exists \(j\in \{1, 2, \ldots , m\}\) such that \(f_j(X) < f_j(Y)\). The solution of the MO problem is the set of solutions which are not dominated by any other solution in the search space, i.e., \(\mathcal{P} = \{X\in \varOmega | \not \exists _{Y\in \varOmega }: Y\prec X\}\), called Pareto set. The set of images of the solutions in the Pareto set is called Pareto front, \(\mathcal{F} = \{y\in R^m| y = F(X), X \in \mathcal{P}\}\).

However, it is not always possible to compute the Pareto set as, for instance, it can be very large or there are no “efficient” algorithms to compute it. In this case, decision makers might be satisfied when a good approximation set is returned. To measure the quality of approximation set, many indicators can be found in literature [3, 28, 33]. Desirable features of those indicators include convergence (toward the Pareto front), spread (extent of the front, i.e., distance between the front’s extreme solutions), distribution (evenness of the front, i.e., uniformity of the objective distances between pairs of “adjacent” solutions), and Pareto compliance (the ranking established by the indicator does not contradict Pareto optimality, i.e., a front ranked better by one metric must be Pareto preferred over the ones which are ranked worst).

In this work, we will compare the results of the algorithms using the hypervolume (HV), the generational distance (GD) and the inverted generational distance (IGD) indicators. The (i) hypervolume, HV, uses a reference point to measure the size of the objective space covered by the approximation front [35]. HV considers accuracy, diversity and cardinality, being the only known unary metric with this capability. In our case, the hypervolume ratio is computed has the ratio between the hypervolume of the approximation front and the hypervolume of a reference front (i.e., best know approximation set, computed as the non-dominated elements of all known solutions) will be used. The (ii) generational distance, GD, of an approximation front A is computed as the sum of the distance between each solution in A to the closest objective vector in a reference front, averaged over the size of A. The reference front can be the Pareto front or the best known approximation of it. GD only estimates the convergence of the approximation set toward the reference front, and the results can be biased toward approximation sets of poor quality having large cardinality. The (iii) inverted generational distance, IGD, which compared with GD, reverses the order of the fronts considered as input, i.e., IGD is computed as the sum of the distances between the elements of the reference front to the closest element the approximation front, averaged over the size of the reference front. This makes IGD less sensitive to the size of the approximation set and intuitively measures more effectively convergence, spread, and distribution. It should be mentioned that, while the hypervolume is Pareto compliant, GD and IGD are not.

3 Algorithmic Solutions

This section presents the adopted solution encoding, general genetic algorithms (GA) flow and briefly introduces the six algorithms used to solve the MO-DARP problem presented in Sect. 2.

3.1 Solution Encoding and General GA

The solution of the MO-DARP problem corresponds to the assignment of drivers/vehicles to services. E.g., considering a set of services \((S_1, S_2, S_3, S_4)\), ordered for instance by pick up time, a solution could be something like (1, 2, 1, 3) meaning that services \(S_1\) and \(S_3\) are to be served by driver/vehicle 1, \(S_2\) is to be served by driver/vehicle 2, and service \(S_4\) for by driver 3.

Given this representation using vectors of integers, the basic implementation of the based-GA is quite straightforward and can be summarized as follows [14]: (i) initialize the population by randomly attributing drivers/vehicles to services. (ii) Use the objective function values and number of violated restrictions to compute the fitness of each individual. (iii) Select parents supported on their rank and apply the crossover operator with probability, \(p_{c}\). Figure 1 – left exemplifies a k-point crossover operation [32] where Parent 1 and Parent 2 are combined to generate Offspring 1 and Offspring 2. In the example, the operator randomly chooses \(\kappa =3\) (a parameter of the algorithm) cutting points which is followed by a swap between the blocks defined by those cutting points. (iv) In the next step, offspring suffer a mutation with probability \(p_{m}\). In our case, the mutation operator randomly changes the vehicle/driver assigned to a service, e.g., see Fig. 1 – right. (v) As an optional step, not applied in our experiments, we can use a local search operator and/or solution correction. For instance, the local search can apply “neighbor” operator to improve offspring, generally improving the convergence in terms of fitness and time/number of iterations/number of objective function evaluations. Solution correction can also improve the algorithm performance by applying operations to ensure that solutions going to the next generation are feasible. (vi) Finally, the offspring are evaluated for their fitness (and possibly crowding distance, distance to reference points, etc.) and between parents and offspring, a new population, with the same size of the original one, is returned. This population moves to the next generation, returning to step (iii), or if the stopping criteria are met, the feasible non-dominated solutions in the last population are returned as the proposed solution.

As seen, GA evolve a population of solutions through a number of generations, using two main operators: crossover and mutation. In short, the first operator passes the parents lineament to the offspring and the second implements diversity on the population, preventing it from becoming trapped in some local minima and avoiding the stagnation of the population. Given a population and its offspring, in a greedy manner, the best individuals will be part of the next generation, maintaining a fixed population size (N). If everything goes well, the new population has moved towards the optimal solution, while maintaining its diversity.

One crucial difference between a generic (single objective) GA and a multiple objective GA, is the selection of the individuals that move to the next generation, as in a multiple objective problem, generally there is not a single best solution for the problem and therefore the selection of elements moving to the next generation is done using the Pareto dominance.

Another thing worth mention is that, as the representation used allows for invalid solutions (e.g., a vehicle has two services that overlap in time), these are treated in the algorithm by implementing a restriction-violation policy, meaning that each solution will have assigned to it the number of restrictions it violates, and solutions that do not violate any restriction will always be considered “better” than those that violate any restriction, this means that the former will always be moved to the next generation (regardless of their fitness values) prior to any of the latter, and if any of these last will survive, the ones with less violations are preferred.

Fig. 1.
figure 1

Solution representation using vectors of integers. Example of the crossover (left) and mutation (right) operators.

3.2 Algorithms Overview

NSGA-II. As the name suggests, Non-dominated Sorting Genetic Algorithm II, NSGA-II, proposed by Deb et. al. [11], is a genetic algorithm specially adapted for the optimization of multiple objective problems. NSGA-II uses Pareto dominance to rank solutions to their respective “layer” in the approximation set, i.e., non-dominated solutions are in rank 1, solutions dominated by first rank solutions are in rank 2, solutions dominated by solutions in rank 1 and 2 are placed in rank 3, and so on. The individuals that pass to the next generation are consecutively selected from the lowest rank layers. When not all individuals in a given rank can pass to the next generation, NSGA-II uses the notion of crowding distance to maintain diversity, so that the solutions discarded are those in a more crowded space.

NSGA-III. Another algorithm is NSGA-III [10], characterized by the authors as “a reference-point-based many-objective evolutionary algorithm following NSGA-II framework that emphasizes population members that are non-dominated, yet close to a set of supplied reference points”. In this algorithm, the maintenance of diversity among population is aided by supplying and adaptively updating a number of well-spread reference points (r), replacing the crowding distance operator. Equal to NSGA-II, “lowest” layers’ elements are added while not surpassing the population’s size. When adding a layer that surpasses the population size then some elements are selected taking into consideration a set of reference points which can either be predefined in a structured manner or supplied (preferentially) by the user. Worth mentioning that the population size is not a parameter, but is determined automatically using the number of reference points.

PESA2. Proposed by Corne et al. [8] the Pareto Envelope-based Selection Algorithm 2, PESA2, uses a selection technique in which the unit of selection are hyper-boxes located in the objective space. The selective fitness is made over the hyper-boxes populated by at least one individual of the current approximation set. The selected individual is then randomly chosen from the elected hyper-boxes. The method was proven to return solutions which are better spread along the Pareto frontier than individual based selection tested methods.

SPEA2. Proposed by Zitzler, Laumanns, and Thiele [34], the improved Strength Pareto Evolutionary Algorithm, SPEA2, starts by initializing the population with a set of candidate solutions. Then, the best solutions are stored in an archive, insulated from the population. Non-dominated individuals are featured by combining dominance count and dominance rank methods. In other words, for each individual the number of dominated individuals and the number of dominating individuals in the population allows to compute a fitness value. In each iteration, non-dominated individuals from the union of the archive and the current population are updated, maintaining archive’s size, either by including dominated individual from the current pool or removing individual from the archive, basing the decision on the nearest neighbor Euclidean distance. The mating pool used to generate the next population is filled by the individuals of the archive and the offspring are then generated by a set of variation operators.

  Deb, Mohan and Mishra [13] proposed a steady-state Multi-Objective Evolutionary Algorithm, \(\epsilon \)-MOEA, based on the \(\epsilon \)-dominance, concept introduced in [22]. This algorithm uses a two co-evolving populations: an EA population, and an archive population. The former starts with an random population, and the later gets the non-dominated solutions from the former. In each generation, two solutions, one from each population, are mated to create offspring, which are then checked for inclusion in both population and archive, using the \(\epsilon \)-dominance concept. Worth mention that, while the population has a fixed number of individuals, meaning that an individual must be removed in order to incorporated an offspring in the population, the archive can grow as large as needed, to incorporate all non-dominated solution. A detailed explanation can be found in [13].

  Kollat and Reed [20] have extended the NSGA-II algorithm, by adding \(\epsilon \)-dominance [22], archiving and adaptive population sizing. The \(\epsilon \)-dominance allows the user to specify the precision with which they want to quantify each objective. The \(\epsilon \)-NSGA-II uses a series of “connected runs”, and, as the search progresses, the population size is adapted based on the number of \(\epsilon \)-non-dominated solutions found and stored in the archive, which are then used to direct the search using an injection scheme, where 25% of the subsequent population are composed by \(\epsilon \)-non-dominated solutions from the archive, and the other 75% will be generated randomly.

As seen, the last two algorithms use the \(\epsilon \)-dominance concept to maintain the diversity of the population. Basically, this means that the search space is divided in a number of grids (or hyper-boxes) of \(\epsilon \)-size, and in each grid (or hyper-box) only one solution in allowed (see [22] for a detailed explanation), guaranteeing this way the inexistence of any area for the solutions to converge.

Table 1. Tuned algorithms’ parameters.

4 Experimental Results

Starting by a brief characterization of the private chauffeur company’s testing data, this section compares the algorithms presented in Sect. 3. So, data used in this section is part of the dataset of the services requested between January 2012 and December 2019 to a private chauffeur company of Algarve. Data is characterized by a seasonal variation where the summer months, in particular July, August, and September, have the largest number of services. The number of services per hour also varies during a tipical day. As a curiosity, the peak number of services in a single hour was reached in a Saturday of September 2019 with 70 services requested between 8 and 9 a.m. On the other other hand, the peak number of services for a single day was also reached in September 2019 with 552 requests.

The code was developed is Python, using the Platypus framework for evolutionary computing, which includes optimization algorithms and analysis tools for MO optimization [17]. To compute the distance between the different service locations, the Open Source Routing Machine (OSRM) [23] was used, which is a C++ routing engine for shortest paths in road networks, supported on Open Street Maps cartography [25]. Implementations were run on an Intel i7-5820K at 3.3 GHz, 32 GB RAM, running Microsoft Windows 10. To simplify the presentation, algorithms’ parameters were previously tuned varying their values over large predetermined sets, being the final values summarized in Table 1. The stopping criteria was set as 50,000 evaluations of the objective function and the algorithms were run 10 times for each instance. Furthermore, given the large number of days/problem instances available and in order to represent the seasonality of this type of service, 4 scenarios with different degrees of complexity were selected, namely, by order of scenario, with 40, 99, 300 and 526 requests, and 14, 25, 52 and 70 vehicles, respectively. As a note, the vehicle set used in each scenario was limited to the vehicles used by the company on the selected day.

Table 2 shows the achieved mean values (standard deviation values inside parenthesis) for HV, GD, and IGD indicators. In bold are the best achieved indicator’s values. Required to calculate the indicators’ values, the reference front for each scenario was computed as the best know approximation front, i.e., it was computed has the non-dominated elements of all known solutions in the objective space. From the table’s analysis and over the introduced arrangement, it is deductible that \(\epsilon \)-MOEA achieves the best results. Only on Scenario 4, NSGA-II had best HV but with a difference of 0.002 units. This results allows us to believe that \(\epsilon \)-MOEA has better convergence, spread, and distribution when compared with the others, again over this set of instances. We should also point out that in general, algorithms achieved a population of non-dominated solutions in every case, i.e., all solutions/population elements belong to their approximation set. This fact allowed us to avoid taking measures relative to feasibility of the solution (e.g., implementing post optimization/feasibility operators), maintaining the purity of the algorithms.

Table 2. Hypervolume, generational distance, and inverted generational distance mean (standard deviation) values for the 4 scenarios.

To better illustrate the difference in the solutions, only extreme solutions (those with the minimum values in each objective) will be examined next. This does not mean that a decision maker will select on of those. Figure 2 shows three typical scheduling solutions for Scenario 1 obtained with \(\epsilon \)-MOEA, where each line represents a vehicle’s scheduling (red bars for service time and blue bars the connection time, i.e., moving without passengers). The plots shows the extreme solutions for each objective, namely: (top) minimal total distance, (middle) minimal difference in drivers’ wages, and (bottom) minimal number of empty seats. Argumentably, although expectable, it is possible to assert that the top solution (with a total of 2745 Km) has less transit without passengers (blue bars) than the others (with 3088 Km and 2900 Km, respectively). Easy to observe is the fact that, the bottom solution has 3 vehicles without any service, as these were vehicle with more seats and were not scheduled. This last solution shows that is conceivable for the company to diminish the number of large vehicles, at least in the low season.

As an example of a larger instance, Fig. 3 presents the scheduling for Scenario 4 considering the minimal distance (extreme) solution, obtained with \(\epsilon \)-MOEA. The presented solution accounts for 38987 Km and 924 empty seats. If the number of empty seats was to be minimized (solution is not presented), the number of empty seats extreme solution accounted for 41660 Km and 844 empty seats. As conclusion, these solutions require a decision maker which, in accordance with the company policy, must decide, for instance, if saving 2673 Km is better or worse than using larger vehicles (with, probably, higher fuel consumption). Or simply choose a more “balanced” solution between the ones returned by the elected algorithm.

Fig. 2.
figure 2

Examples of scheduling obtained with \(\epsilon \)-MOEA for scenario 1, considering the objective-extreme: (top) total distance, (middle) drivers’ wages difference, and (bottom) number of empty seats.

Fig. 3.
figure 3

Examples of scheduling obtained with \(\epsilon \)-MOEA for Scenario 4, considering the objective-extreme total distance

5 Conclusion

This paper studies algorithmic solutions for the scheduling operation of a private chauffeur company. The problem was previously formalized as a multiple objective dial a ride problem, with three objectives: (a) minimization of total distance traveled by the vehicles to serve all requests, (b) minimization of the drivers’ wages difference, and (c) minimization of the total number of empty seats while satisfying all requests. Six algorithms (\(\epsilon \)-MOEA, NSGA-II, NSGA-III, \(\epsilon \)-NSGA-II, SPEA2, and PESA2) were compared using hypervolume, generational distance, and inverted generational distance indicators over 4 different size instances of the problem. Over this arrangement, \(\epsilon \)-MOEA could be considered the best solution as it presented the best indicator values, except for one indicator in one scenario.

As future work an analysis on the usage of this and other algorithms online (or quasi-online) is due. Another not yet studied issue is the problem’s dynamic, where new requests or vehicles are inserted/removed during or after optimization process finished.