## 1. Introduction

The problem studied in this paper is motivated by a real-world application at a food distribution company in Chile. This company is one of the leading national producers and marketers of meat and poultry. The company has seventeen distribution centers throughout the national territory. In this paper, we focus on one of their distribution centers. However, this study can be replicated in each distribution center of the company because their operations are quite similar throughout the country. The company has large sales volumes nationwide and the costs associated with distribution activities represent an important component of their total expenditures. Therefore, a reduction of 5 or 10 percent in the routing costs would mean a relevant improvement for the company.

The customers of the company correspond to supermarkets, restaurants, wholesalers and small convenience stores, spread throughout a region of Chile. The set of customers changes on average by 10% from one month to another. Also, the customers are characterized by high variability of service times, and even under perfect conditions the time needed to unload the delivery can differ by about an hour from one customer to another. Additionally, each customer requires that their orders be delivered within a certain time-window.

The company has a fleet of trucks, which are dispatched from the distribution center to their respective customers. Each truck has a fixed subset of customers assigned to it, and each day the trucks serve their corresponding customers.

Due to the high variability in the activity of the customers, the quantities they order and the service times, the company currently experiences significant problems in the fulfillment process during the periods of high activity: the customers time windows may not be respected and, in some cases, the delivery even has to be postponed to another day. In consequence, it is of vital importance for the company to develop a decision support system that would improve the organization and programming of the distribution of products to its customers, seeking a good balance between operational costs and service quality.

### 1.1. Consistency in Vehicle Routing

In the standard version of the vehicle routing problem (VRP), we have a set of customers with a known demand and a set of homogeneous vehicles with a limited capacity based at a depot. The goal is to determine a set of routes to fulfill all orders at minimum cost. The VRP was introduced in [4], and the objective is oriented to increase the profitability of the companies without taking into account customer satisfaction, an important concern in competitive markets.

Solving the vehicle routing problem for each day in an independent way allows companies to minimize operational costs and make efficient use of their vehicle fleet. However, this has some operational disadvantages. Frequent changes in the vehicle’s routes can impact negatively the productivity and job satisfaction of the drivers. Consequently, due to the growing industry competition, it is important to balance the objective of designing routes of low cost with that of providing high-quality service to increase customer satisfaction.

In general, customer satisfaction is directly related to providing a consistent service (see [9]). Service consistency has three different dimensions: i) Time, it refers always to visit a given customer at roughly the same time, ii) Person, it refers always to execute the delivery by the same driver, and iii) Delivery, it refers to decreasing the variability of the quantity delivered when the supplier decides the quantity delivered (vendor-managed inventory systems). The relevance of each one of these three dimensions of consistency changes from one market to another.

From the point of view of distribution companies, consistent routes improve drivers’ satisfaction and productivity, because they let drivers gain knowledge about the territory where they are working, the customers formal receiving procedures and more informal preferences, and get personally acquainted with the persons in charge of coordinating the deliveries on the customers site. All this improves drivers abilities to overcome difficulties resulting from incidents in transit and on customers’ sites.

Companies have to choose between routing plans of minimum cost, which are not consistent, and routing plans of higher cost that consider consistency. In [22], it is argued that a higher total distance in the design of the routes to privilege the service consistency is more than compensated by a greater satisfaction of customers and drivers, and a productivity increase of the drivers. Consequently, we aim to find a set of consistent routes with the lowest operational cost.

### 1.2. Problem Characteristics

In the literature, this kind of situation is often modeled as the Consistent Vehicle Routing Problem (ConVRP). The ConVRP was introduced in [7], motivated by the importance to provide high-quality customer service in the small package shipping industry. It takes into account time and person consistencies.

The small package shipping industry operates in conditions that differ from the ones present at the company under study in several aspects. First, companies in the small package industry admit that it is important for recurring customers to receive service at about the same time over different days. It is not the case at the company under study. Here, the customers appreciate that the deliveries arrive within their time windows, independently of the precise moment within this time-range that the delivery occurs.

Second, small package shipping companies have short and relatively constant service times in most of the cases. However, many customers of the company under study need longer service times and present a considerable risk of extending them even more when an operational incident occurs.

Third, small package shipping companies prefer to have the same service provider for a group of customers to generate familiarity with a single geographical zone and use it to improve travel times. In the case under study, the company wants to generate familiarity between the driver and the person who receives the deliveries in order to reduce the risk of long service time or denial of reception due to some incident.

Finally, the characteristics of the fleet are different. It is common in small package shipping companies that the vehicle fleet is proprietary, the vehicles are small, and there is only one person operating the vehicle. Instead, at the company under study, the vehicle fleet is outsourced from many transportation companies, the vehicles are large (capacity of 5 tons.), and they are operated by a team of one driver and two assistants. Moreover, the vehicles must have a refrigeration system, because of the characteristics of the products delivered. Therefore, it is important for the company to execute the deliveries with a reduced number of vehicles to minimize the operational costs.

### 1.3. Modeling Consistency

One of the most general variants of ConVRP studied in the literature was proposed in [8]. The results of this reference paper offer some flexibility to different operational contexts, but still, it is necessary to do some adjustments in order to solve the real problem of the company under study. Next, we highlight the main differences.

On the one hand, motivated by the small package delivery, the objective of the reference paper is to minimize the weighted sum of total travel times and the maximum variability of arrival times. For our purposes, this objective is not adequate. Our principal concern is to minimize the number of vehicles. On the other hand, the reference paper uses AM/PM time windows motivated by the requirements of companies that hire part-time workers to handle package delivery. Also, the service times considered are the same for all the customers. In contrast, we need to respect the time windows imposed by a variety of customers with service times that are quite dissimilar. Finally, the reference paper lets each customer be served by a limited number of drivers (larger than 1). However, this approach is not convenient for our purposes. Many customers of the company have reception areas where many trucks arrive simultaneously to deliver different products. The queue management tends to be somewhat informal and, if there is some familiarity between the driver and the person coordinating the reception area, the waiting times tend to be shorter and the general efficiency of the process improves.

Consistency requirements link different days in the planning horizon, making it impossible to decompose the multi-period problem into several independent one-period problems. In the literature, most approaches to solve ConVRP problems focus on heuristic methods, because exact methods of mixed-integer linear programming allow only to solve very small instances. For example,

[7, 8] solve instances containing less than twelve customers over three days. The exact methods are computationally intractable for the instances of the company under study, since we need to solve instances with about two thousand customers over a planning horizon of at least 25 days.### 1.4. Our Contribution

The contributions of this paper are three-fold. Firstly, we consider a variant of the ConVRP that incorporates time windows of the customers and tries to minimize the number of vehicles used to form consistent routing plans, under high variability in client activity and quantities ordered. To the best of our knowledge, no literature tackles minimizing the number of routes as the primary objective. We propose an efficient heuristic (inspired by [16]) for reducing the number of routes in the ConVRPTW. This heuristic is based on the holding list strategy (see [14]), and uses a guided local search to guide the ejections. Secondly, we propose a simple and fast heuristic to find a feasible initial solution. Thirdly, in order to evaluate the proposed solution of the ConVRPTW in a real-life context, we analyze the quality of the client-to-driver (tactical) assignments generated by our algorithm run on historical data as the basis for the operational day to day routing under the conditions of uncontrolled variability of demand experienced by the company under study.

The remainder of this paper is organized as follows. Section 2 introduces the literature review of the ConVRP. Section 3 presents a description of the problem. Section 4 describes the solution framework. Section 5 reports the results of computational experiments. Finally, section 6 presents the conclusions.

## 2. Literature Review

Generating template routes is a common strategy to solve the ConVRP. It was used in [7, 20, 5, 10, 23]. To satisfy the consistency requirements, this strategy uses the precedence principle: if a driver services before on one day, then has to receive service before from the same vehicle on all days that they both require service. Intuitively, routes that follow this precedence principle should tend to comply not only with the person but also the time consistency. The template strategy consists of two stages. In the first stage, the problem is reduced to construct routes for a subset of customers, called frequent customers. A customer that requires service on more than one period during the planning horizon is called frequent, and non-frequent otherwise. Then, the mean demand over the planning horizon is calculated for each frequent customer and used to create a unique VRP instance. The set of resulting routes is called the template. Each route of the template is assigned, one-to-one, to a driver. In the second stage, daily routes are generated by replicating the template for each day, with the original values of customer demands on a respective day. Finally, the daily routes are updated by deleting frequent customers with zero demand and inserting non-frequent customers with positive demand.

The template approach restricts the search space and, therefore, good solutions can be found quickly. Yet, better solutions might be missed (see [8]), and even more, the optimal solution may be unreachable. Instead of working with template routes, there exists a different solution strategy that operates on the entire routing plan (see [8, 11, 13, 1, 19, 3]).

In the following subsections, we describe the main works in the literature to solve the ConVRP and its variants, using these strategies.

### 2.1. Template Based ConVRP

In [7], the authors proposed a variant of the traditional VRP that considers several routing periods with fixed customer demand assigned to each of them, and with consistency considerations in two dimensions: time and person. Thus, they defined the ConVRP as the problem to find a set of minimum cost routes to service a set of customers with known demands over multiple periods considering the classical vehicle routing constraints complemented with time and person consistency requirements, i.e, each customer has a fixed driver assigned, that delivers the orders at roughly the same time on each day that the customer needs service. Therefore, the routes that visit a given customer over different periods have to be all assigned to the same driver. Both time and person consistencies are treated as hard constraints: the maximum arrival time difference of each customer is bounded and only one driver per customer is allowed, respectively. They generated template routes using a multi-start algorithm based on the record-to-record approach to solving the problem.

In [20], a Tabu Search (TS) algorithm was proposed to minimize the total travel time, modifying both the template routes and the actual daily schedules sequentially. In [10], an Adaptative Large Neighborhood Search (ALNS) algorithm was used to solve the problem. Additionally, a relaxed variant of the ConVRP was introduced, in which the departure times from the depot can be delayed to adjust the arrival times at the customers’ sites. The authors demonstrated that this slight relaxation of the starting times leads to improved time consistency, while the travel times remain almost unchanged. In [23], a Variable Neighborhood Search (VNS) algorithm was presented. The proposed algorithm consists of two stages. In the first stage, a VNS is applied to obtain optimized template solutions. The solutions obtained might be infeasible. If a solution is of acceptable quality, the second stage is applied to make it feasible and improve it further. In [5], in contrast to the classical ConVRP, where the maximum arrival time difference of each customer is bounded, the authors proposed to minimize the maximum number of time classes in which a customer is visited. For visits grouped into a single time class, the difference between the earliest and the latest visit is not larger than a given bound. Person consistency is not considered in the proposed solution approach, but the number of drivers per customer is reduced in a post-processing step.

### 2.2. Non-template Based ConVRP and Related Problems

In [8], it was pointed out that the consistency requirements of the ConVRP may be too restrictive. Thus, a relaxed ConVRP, called Generalized ConVRP (GenConVRP), was introduced. Here, a customer may be served by a limited number of drivers instead of only one. The time consistency is not enforced by constraints but is penalized in the objective function. Moreover, the precedence principle is not enforced, so instead of assigning some kind of “a priori” routes to the drivers, they only get fixed customer sets to service (with no precedence constraints) - each day is routed (sequenced) separately, but preserving the time consistency between days. Vehicle departure times may be adjusted to obtain stable arrival times. Apart from the aforementioned relaxations, customers are associated with AM/PM time windows motivated by the requirements of companies that hire part-time drivers to handle package delivery. The authors proposed a Large Neighborhood Search algorithm (LNS) to solve the GenConVRP that is applied to the entire solution.

In [11], a multi-objective optimization approach was proposed. The GenConVRP is extended by considering different objective functions. Routing cost, time consistency, and person consistency are considered as independent objectives of the problem. Two exact approaches based on the -constraint framework were proposed for small test instances. For large instances, the authors proposed a Multi-Directional Large Neighborhood Search (MDLNS) that combines the Multi-Directional Local Search framework and the LNS for the problem. Another multi-objective variant of the ConVRP was presented in [13]. Instead of modeling consistency requirements as hard constraints, they are included as objectives. An improved version of the multi-directional local search (MDLS) was developed to solve the problem.

In [1], person consistency in a multi-period dial-a-ride problem (DC-DARP) was explored. Person consistency is considered by bounding the maximum number of different drivers that transport a user over a multi-period planning horizon. The authors proposed different formulations and assessed their efficiency using a branch-and-cut scheme. Additionally, they proposed an ALNS that generates near-optimal solutions. In [19]

, the ConVRP with Profits was introduced. There are two sets of customers, the frequent customers that are mandatory to service and the non-frequent potential customers that are optional, with known and estimated profits, respectively, both having known demands and service requirements over a planning horizon of multiple days. The objective is to determine vehicle routes that maximize the net profit while satisfying vehicle capacity, route duration and consistency constraints. For addressing this problem, an Adaptive Tabu Search was developed, utilizing both short- and long-term memory structures to guide the search process. In

[3], the ConVRP with different service level agreements was presented. In this variant of the ConVRP, customers have several shipping periods during the day, time windows, and different release dates. A metaheuristic algorithm was developed to solve this problem on larger instances.## 3. The Problem

The ConVRPTW problem is defined on a complete directed graph , where . represents the depot and positive integers represent the customers. is the set of arcs. Each arc is associated with a distance and a travel time , with , for all . We assume that distances and travel times satisfy the triangle inequality. Customers are visited on routes traversed by a homogeneous fleet of vehicles in the set . The number of vehicles is not restrictive (i.e., ).

Each vehicle , with given capacity is located at the depot, from where it departs at time and where it must return to before time . The planing horizon involves days, where is the set of days. On each day , each customer has a demand and service time . We assume that and it is not possible to perform split deliveries (because of the person consistency requirement). We use auxiliary parameters equal to if customer requires service on day (), and equal otherwise.

Person consistency is enforced by assigning each customer to the same vehicle over the entire planning horizon. Time consistency is limited only to respecting the time windows: the service start-time can vary freely within the interval defined as the customer time window, where and are the upper and lower bound of the time window of the customer , . We only require that the service start-time has to fall within the time window, not the sum of service start-time and service times - a truck is allowed to complete the delivery after the time window closes. For the ease of presentation, we identify each vehicle with the set of customers that are assigned to it (we will speak of a vehicle and the set of customers assigned to it interchangeably).

A solution of a ConVRPTW instance is determined by subsets of customers: each one of them, , with an independent route (the order of visits for frequent customers is not preserved from one day to another), , for every day, , when some of the customers in require service. The objective is to minimize the number of non-empty sets of customers, such that i) the total quantity carried by each vehicle on each day does not exceed the capacity , ii) the time windows of all customers and the depot are respected, and iii) each customer is served by exactly one driver over the planning horizon. The customers are not visited on the days when their demand is . Empty subsets of customers are not assigned to drivers, so the number of trucks used over the planning horizon is decided in the model.

We present a MIP formulation for the ConVRPTW in the following model. The model uses the binary decision variables that equal if arc is traversed by vehicle on day , and otherwise. The binary decision variables equal if customer is assigned to vehicle on day , and otherwise. The binary decision variables equal if vehicle is used in any day of the planning horizon, and otherwise. Finally, the continuous decision variables equal the service start-time at customer on day , and if no service for customer is required on day . We define the service start-time at customer on day as , where is equal to the waiting time if the vehicle arrive at customer earlier than , and otherwise.

(1) |

subject to

(2) | ||||

(3) | ||||

(4) | ||||

(5) | ||||

(6) | ||||

(7) | ||||

(8) | ||||

(9) |

(10) | ||||

(11) | ||||

(12) | ||||

(13) | ||||

(14) | ||||

(15) |

The objective function minimizes the number of vehicles. Constraints guarantee that each customer is serviced on each day they require service, and inequalities make sure that the vehicle capacity is not exceeded. Constraints ensure that if customer is served by vehicle on the day , then vehicle must be used during the planning horizon. Constraints ensure that all assigned customers have exactly one predecessor and one successor, and equalities are flow conservation constraints on the depot for each day .

Person consistency is guaranteed in . So, if customer requires service on days and , then , enforcing person consistency by . Inequalities and set the service start-times at the customers. So, if customer is visited after customer for some vehicle and day , then and we obtain from constraints and . Otherwise, the arrival times for two customers are not related.

Inequalities also prevent sub-tours, because they enforce increasing service start-time for customers along a route. For example, consider the subtour of some three customers , for some vehicle and day . Then, . Substituting in and adding the resulted constraints we obtain , which is infeasible for non-negative service, travel times, and waiting times.

Constraints enforce that vehicles return to the depot on time. The time windows of the customers are enforced by inequalities . Finally, the integrality and non-negativity requirements of the decision variables are guaranteed by constraints .

## 4. Solution Framework

We propose an efficient heuristic for minimizing the number of routes in the ConVRPTW. The heuristic is composed of two different steps. In the first step, based on the insertion heuristic proposed in [18], we construct a feasible initial solution for the ConVRPTW. In the second step, inspired by [16], we develop a heuristic focused on reducing the number of routes in the solution obtained in the first step. Finally, we reoptimize the final solution obtained in step two with respect to the total travel distance. This reoptimization process consists of sequentially applying the well-known intra-route 2-opt and inter-route relocation (adapted to the multi-period case) local operators (see [2]). We describe the two steps in detail in the following subsections.

### 4.1. Initial Solution Construction

The algorithm we use to create an initial solution for the ConVRPTW is an extension of the well-know one-period insertion heuristic proposed in [18] to work with multiple periods.

The one-period heuristic is a sequential insertion heuristic for constructing solutions to the vehicle routing problem with time windows (VRPTW). It has low time complexity and tends to generate solutions with a low number of vehicles, compared to other simple construction heuristics (see [2]). Because the main purpose of the first step of our algorithm is to quickly construct a feasible initial solution for the ConVRPTW, a multi-period extension of the aforementioned heuristic seems a good option. To the best of our knowledge, no previous works used this approach.

In the following, we describe both the one-period initial solution construction heuristic for the VRPTW proposed in [18] and our multi-period extension of this heuristic for the ConVRPTW.

#### 4.1.1. One-period Initial Solution Construction Heuristic for the VRPTW

The heuristic starts with a set of customers, each of them with their respective time window requirements and service time , (). Each vehicle has capacity and must leave the depot at time and return before . Finally, from the distance and travel time matrices, we have the distance and the travel time between the customers and , respectively. The output of the heuristic is a feasible initial solution that contains a set of routes for the VRPTW.

Firstly, it is necessary to define a criterion for initializing every new route . Two criteria are tested. The first criterion () chooses the unrouted customer that is farthest from the depot. This criterion assumes that a customer with a larger distance from the depot is more difficult to insert into an already established route, so they are given priority to start a new route. The second criterion () chooses the unrouted customer with the earliest time window closing time. Complementary to the first criterion, this one assumes that a customer with a short time window closing date is more difficult to insert into an established route, so they are also given priority to start a new route.

Secondly, after initializing the current route , considering that some customers are already assigned to routes in the current partial solution , the heuristic uses two criteria and , where is a function of , to insert a unrouted customer into between two adjacent customers. Let , where . For each unrouted customer , we first compute its best feasible insertion place with respect to vehicle capacity and time windows as:

where:

with , and parameters to be adjusted.

is the service start-time at after inserting just before on the route, and the service start-time at without inserting .

Finally, the best customer to be inserted in the route is selected using the second criterion defined as:

where:

with a parameter to be adjusted.

Customer is then inserted in the route between the adyacent customers and , where and . When no more customers with feasible insertions can be found, a new route is started, until all customers have been routed. Once a new route is started, the previously constructed routes are not modified anymore.

This insertion heuristics tries to maximize the benefit derived from servicing a customer on the partial route being constructed rather than on a direct route. The best feasible insertion place for an unrouted customer is the one that minimizes the weighted combination of distance and time insertion costs.

#### 4.1.2. Multiperiod Extension of the Initial Solution Construction Heuristic for the ConVRPTW

Since one-period initial solution construction heuristic for the VRPTW described above can not be used to find an initial solution for the ConVRPTW, we propose a multi-period extension for the ConVRPTW.

In section 3, we described that a solution of a ConVRPTW instance is determined by subsets of customers, and each non-empty subset of customers is assigned to a truck. For each day of the planning horizon, , and truck , , a feasible route has to be created that services all the customers of that are active on . In other words, instead of creating groups of customers with just a single feasible route, as the one-period heuristic does, we must find subsets of customers for which a feasible route exists for each day of the planning horizon, serving all the respective active customers.

In this new context, a feasible (for vehicle capacity and time windows) insertion of a client into a “truck” (subset of customers) corresponds to a set of feasible insertions of into routes , for each day when has positive demand. The best insertion place is computed in a way similar to that of the one-period heuristic: using , but extended for the multi-period case:

where:

Note that the value of these parameters changes depending on the previously computed route for each day of the planning horizon.

Finally, in contrast to the one-period heuristic, we implicitly consider the service frequency of each customer to compute the best customer to be inserted in a subset of customers. In order to accomplish this, we redefine as:

where:

### 4.2. Route Elimination Heuristic

A common characteristic of most approaches for one-period VRPTW problems is to use a route elimination procedure as an independent heuristic component (see [6]). A very powerful route elimination heuristic that outperforms other existing approaches were proposed in [16]. Comparison with other algorithmic approaches shows that this heuristic is one of the most effective and efficient ones, and can obtain, for most groups of problem instances considered in [6], the lowest known cumulative number of vehicles in low total computation time. On the other hand, simplicity and flexibility are both relevant criteria for real-life applications. Simplicity refers to the ease of implementation related to a low number of parameters that need tuning. Flexibility is related to the ability of an algorithm to accommodate various side constraints. The route elimination heuristic proposed in [16] scores high on both. So, we propose to extend it to a multi-period version for the ConVRPTW.

In what follows, we first describe the one-period route minimization heuristic for the VRPTW proposed in [16], and then we explain the way to adapt it for ConVRPTW.

#### 4.2.1. One-period Route Minimization Heuristic for VRPTW

The heuristic starts with a given feasible initial solution that contains a set of routes for the VRPTW. This initial solution can be obtained from the one-period initial solution construction heuristic for the VRPTW described above. From an initial solution, to reduce the number of routes one by one, we repeatedly apply the one-period route elimination heuristic to the incumbent solution . Finally, we obtain a new solution with a lower number of vehicles.

Initially, a route from the current solution is randomly selected. Its customers are temporarily removed from the solution and are transferred to a stack called ejection pool (). Penalty counters , are initialized with value 1. The penalty counter denotes how many times an attempt to insert in a route has failed so far. Intuitively, the value of gives an estimate of how difficult it is to re-insert a customer into . Then, repeated attempts are made to insert the customers from into until is empty or the total computation time reaches a given limit . This procedure is executed in three stages. See Figure 1 for a general picture.

In the first stage, we compute , the set of all partial solutions that can be obtained by inserting at all insertion positions of different routes in . If contains feasible solutions, then one of them is chosen at random. The current partial solution is updated before proceeding to select a new customer from . Otherwise, we move forward to the next stage.

In the second stage, an infeasible insertion is chosen from and temporarily accepted, such that is minimum. is a penalty function defined as the sum of and , the penalty terms for the violation of the capacity and time window constraints, respectively, and is a penalty coefficient whose value is adapted iteratively during the search process. is defined as the sum of the total excess of capacities in all routes. is defined as , where is the total of time window violation in the route . is computed by the sum of the penalties that the vehicle must pay to service the customers and to arrive at the depot without delay.

At the beginning, is set to . Then, if the second stage fails, is updated. If , is divided by to emphasize the penalty term of the time window constraint. Otherwise, is multiplied by . After accepting an infeasible insertion that minimizes , a series of local search moves using the local operator 2-opt, intra- and inter-route relocation, and intra- and inter-route exchange are performed to restore the feasibility of the partial solution. If the feasibility of the partial solution is restored, then we update the partial solution before proceeding to select a new customer from . Otherwise, we move forward to the next stage.

Finally, since could not be inserted easily, its penalty value is updated: . Now, all partial solutions obtained by inserting at some position in some route of , and ejecting at most clients from are evaluated. Let be the set of feasible partial solutions that are obtained in this way, ejecting customers (). Note that also itself can be ejected. The next solution is selected from , such that the sum of penalty counters of the ejected customers, , is minimized. This criterion is motivated by the expectation that ejecting the customers whose sum of penalty counters is the smallest possible will benefit the subsequent insertions, even if the number of the customers in the ejection pool is momentarily increased. The ejected customers are added to and the resulting feasible partial solution is modified by a procedure of diversification, by executing moves selected at random from for a given number of times. is a composite neighborhood defined as the set of the partial solutions that are obtained by applying the move operators 2-opt, intra- and inter-route relocation, and intra- and inter-route exchange. At the end of this third stage, we update the partial solution before proceeding to select a new customer from .

#### 4.2.2. Multiperiod Route Minimization Heuristic for ConVRPTW

The multi-period route elimination heuristic for ConVRPTW requires as input a feasible initial solution , which is obtained with the multi-period extension of the initial solution construction heuristic for the ConVRPTW. Like in the one-period heuristic, stages 1 through 3 are applied repeatedly to the incumbent solution to reduce the number of trucks one by one, until the total computation time reaches a given limit . Finally, we obtain a new solution with a lower number of drivers than the initial solution.

Unlike the original one-period heuristic, the truck to eliminate is not chosen at random, but we select the vehicle with the least sum of numbers of active customers over all periods of the planning horizon. The original idea to chose a truck at random proved not to be as effective, given the complexity of the instances that we need to deal with. We remove temporarily the truck and we initialize the stack with its customers. Then, a repeated attempt is made to insert the customers from the into the remaining subsetsets of customers, avoiding capacity and time window constraint violations, for each day that a selected customer is active.

In the first stage, we define the set of partial solutions that are obtained by inserting into all vehicles at all possible positions as . Now, an insertion of a client into a truck considers an insertion position for each day (route) of the planning horizon. An insertion into a truck is feasible only if the corresponding insertion positions lead to feasible routes over the complete planning horizon. The quality of a feasible insertion into a truck is computed as the sum of the respective qualities over all days of the planning horizon (like in the multi-period initial solution construction). If there exist feasible insertions into a truck, then the next solution is not chosen at random like in the original one-period algorithm, but the best quality insertion into a truck is selected.

In the second stage, we proceed similarly that the one-period heuristic, i.e. accepting temporarily an infeasible insertion into a truck that minimizes , but extended for the multi-period case: . Then, a series of local search moves, 2-opt and inter-route relocation, are performed to restore the feasibility of the partial solution. Not all local search operators used in [16] are adopted here due to the complexity of working with multiple periods. If the feasibility of the partial solution is restored, then we update the partial solution before proceeding to select a new customer from . Otherwise, we move forward to the next stage.

Finally, in the third stage, since could not be inserted easily, its penalty value is updated: . Then, in contrast to the one-period heuristic, we define as the set of feasible partial solutions that are obtained by inserting into a vehicle that is chosen at random at positions that minimize the value of , and ejecting at most customers, () from the resulting infeasible vehicle in all possible ways. Here also itself can be ejected. The next solution is selected from such that the sum of the penalty counters of the ejected customers, , is minimized. The ejected customers are added into and the resulting feasible partial solution is modified by a procedure of diversification. This diversification process consists of applying repeteadly inter-route relocation and intra-route 2-opt local operators until no improvement is found. Then, we update the current partial solution before proceeding to select a new customer from .

## 5. Experimental Results

The proposed algorithm was implemented in Python (see [21]), using NumPy (see [17]) and Numba (see [12]

). We tested the proposed algorithm on instances from the Chilean company. Time and distance matrices were computed using Open Source Routing Machine software (see

[15]) based on Open Street Maps data.### 5.1. Instance Characteristics

A set of thirteen instances was constructed from historical demand data of the company from January 2018 until March 2019, based on moving trimesters (first starting in January 2018 and last in January 2019). Each one of them is characterized by a different number of customers and days. The vehicle fleet is homogeneous, with trucks of 5 tons each.

In Table 1 we present a brief description of these instances. They are characterized by a long planning horizon of 71 days, with 2115 customers, and a total of 24163 orders, on average. Moving from one moving trimester to the next one, on average, there are 71 new customers and 2024 customers are maintained. We highlight that, on average, only 339 customers are active each day, a low proportion of the total number of customers. This situation makes it particularly difficult to design consistent routing plans.

Customers | Active customers per day | |||||||||
---|---|---|---|---|---|---|---|---|---|---|

Id | Instance | Days | Orders | Current | New | Old | Mean | Std. | Min. | Max. |

1 | January2018-March2018 | 65 | 24525 | 2366 | - | - | 377.3 | 81.6 | 159 | 512 |

2 | February2018-April2018 | 64 | 23064 | 2333 | 107 | 2226 | 360.4 | 75.9 | 177 | 505 |

3 | March2018—May2018 | 62 | 22039 | 2254 | 74 | 2180 | 355.5 | 75.7 | 142 | 473 |

4 | April2018-June2018 | 70 | 24688 | 2187 | 76 | 2111 | 352.7 | 71.5 | 142 | 464 |

5 | May2018-July2018 | 71 | 24659 | 2143 | 57 | 2086 | 347.3 | 76.5 | 142 | 464 |

6 | June2018-August2018 | 79 | 27303 | 2140 | 67 | 2073 | 345.6 | 71.3 | 146 | 473 |

7 | July2018-September2018 | 75 | 25412 | 2081 | 42 | 2039 | 338.8 | 77.6 | 136 | 473 |

8 | August2018-October2018 | 73 | 24211 | 2060 | 48 | 2012 | 331.7 | 75.5 | 118 | 473 |

9 | September2018-November2018 | 70 | 22012 | 2020 | 78 | 1942 | 314.5 | 78.0 | 118 | 457 |

10 | October2018-December2018 | 73 | 22908 | 2013 | 89 | 1924 | 313.8 | 74.0 | 118 | 467 |

11 | November2018-January2019 | 75 | 24060 | 2006 | 100 | 1906 | 320.8 | 67.3 | 134 | 467 |

12 | December2018-February2019 | 75 | 24834 | 1963 | 43 | 1920 | 331.1 | 58.2 | 178 | 467 |

13 | January2019-March2019 | 74 | 24405 | 1941 | 71 | 1870 | 329.8 | 48.8 | 224 | 419 |

Average | 71.2 | 24163.1 | 2115.9 | 71.0 | 2024.1 | 339.9 | 71.7 | 148.8 | 470.3 |

In Table 2 we present in a similar way a set of fifteen instances built on individual months.

Customers | Active customers per day | |||||||||
---|---|---|---|---|---|---|---|---|---|---|

Id | Instance | Days | Orders | Current | New | Old | Mean | Std. | Min. | Max. |

1 | January2018 | 26 | 10142 | 2079 | - | - | 390.1 | 85.0 | 159 | 512 |

2 | February2018 | 21 | 7857 | 1958 | 195 | 1763 | 374.1 | 78.2 | 246 | 505 |

3 | March2018 | 18 | 6526 | 1840 | 222 | 1618 | 362.6 | 77.7 | 177 | 473 |

4 | April2018 | 25 | 8681 | 1892 | 304 | 1588 | 347.2 | 70.3 | 217 | 446 |

5 | May2018 | 19 | 6832 | 1776 | 173 | 1603 | 359.6 | 79.4 | 142 | 464 |

6 | June2018 | 26 | 9175 | 1899 | 291 | 1608 | 352.9 | 65.7 | 243 | 439 |

7 | July2018 | 26 | 8652 | 1772 | 146 | 1626 | 332.8 | 82.0 | 146 | 462 |

8 | August2018 | 27 | 9476 | 1859 | 234 | 1625 | 351.0 | 63.3 | 233 | 473 |

9 | September2018 | 22 | 7284 | 1719 | 130 | 1589 | 331.1 | 85.8 | 136 | 457 |

10 | October2018 | 24 | 7451 | 1698 | 192 | 1506 | 310.5 | 72.1 | 118 | 413 |

11 | November2018 | 24 | 7277 | 1641 | 197 | 1444 | 303.2 | 73.6 | 134 | 428 |

12 | December2018 | 25 | 8180 | 1678 | 219 | 1459 | 327.2 | 74.3 | 178 | 467 |

13 | January2019 | 26 | 8603 | 1714 | 219 | 1495 | 330.9 | 48.1 | 224 | 402 |

14 | February2019 | 24 | 8051 | 1622 | 130 | 1492 | 335.5 | 47.9 | 250 | 419 |

15 | March2019 | 24 | 7751 | 1625 | 195 | 1430 | 323.0 | 49.6 | 235 | 414 |

Average | 23.8 | 8129.2 | 1784.8 | 189.7 | 1456.3 | 342.1 | 70.2 | 189.2 | 451.6 |

### 5.2. Experimental Settings

The parameters to be adjusted correspond to the constructive and the route elimination heuristics. To set the values of the constructive heuristic, we solved the ConVRP instances and chose the values that gave the best initial solution concerning the total number of vehicles and total travel time overall the instances. We set , , , and .

For the route elimination heuristics we used the values of parameters proposed in [16] for the maximum computational time , in mitunes. And we set .

The values of these parameters were maintained unchanged for all the instances.

### 5.3. Analysis of ConVRP Results

The performance of the proposed algorithm for the ConVRPTW is compared with the current routing plan used by the company. The company used a one-to-one customer-driver assignment to execute the delivery of the orders. Because of the requirement of customer-driver consistency, knowledge of the orders only one day in advance, and the variability of the active customers every day, it is common that the current routing plan in use by the company has many customers for which the time windows are not respected. We evaluate the performance of the current routing plan of the company in terms of the number of vehicles used for executing the deliveries (NV), the resulting total travel time of the complete routing plan (TT) in minutes, and the percentage of visits for which the time windows are not respected (PTW).

In Table 3 and 4 we describe the performance of the current operation of the company on the trimestral and monthly group of instances, respectively, in contrast to the results generated by our algorithm for the ConVRPTW. In the first three columns of these tables, we report the NV, TT, and PTW of the current routing plan of the company. In the next columns, we report the results obtained by applying the proposed algorithm to ConVRPTW instances, which are evaluated by NV, TT, and the total computational time (CPU) in seconds. We present the obtained results using configuration for maximum computation times of 1, 10 and 60 minutes used for our multi-period route minimization heuristic. The additional execution time corresponds to the sum of the times of our multi-period initial solution construction heuristic and the final process of reoptimization heuristic.

For the trimestral group of instances, in Table 3, analyzing the performance of the current routing plan of the company, we can see the number of vehicles required for executing the deliveries ranges from 21 to 25 vehicles, and there exists an average of 18.4% of customers for which the time windows are not respected. The total travel time required for the complete routing plan is on average 757853.5 minutes. For this group of instances, our algorithm reaches solutions with a low number of vehicles already with the setting of 1 minute. Moreover, the total travel times are improved by 8% on average with respect to the routing plan used by the company, and the customers’ time windows are fully respected. Using the settings of 10 minutes lets reduce further one vehicle on instance 12. In the case of 60 minutes, a solution with one vehicle less is found not only for instance 12, but also for instances 1 and 11. The total travel times at most change on average 0.04 % from one time setting to another. In brief, the routing plan of the company is improved reducing the number of vehicles required for the deliveries on average in seven vehicles, the total travel times are improved by 8% on average, and the customers are serviced within their time windows.

Current Solution | ConVRP | |||||||||||

1min. | 10min. | 60min. | ||||||||||

Id. | NV | TT | PTW | NV | TT | CPU | NV | TT | CPU | NV | TT | CPU |

[min.] | [%] | [min.] | [sec.] | [min.] | [sec.] | [min.] | [sec.] | |||||

1 | 23 | 732268.2 | 26.8 | 17 | 676537.8 | 124.6 | 17 | 676537.8 | 993.2 | 16 | 671308.9 | 3769.8 |

2 | 23 | 695762.8 | 17.4 | 16 | 654290.2 | 115.5 | 16 | 658794.7 | 635.1 | 16 | 651770.6 | 3784.4 |

3 | 25 | 669802.9 | 18.5 | 16 | 613546.8 | 97.7 | 16 | 613546.8 | 635.8 | 16 | 613546.8 | 3696.1 |

4 | 24 | 755906.5 | 21.2 | 16 | 703362.8 | 129.0 | 16 | 703362.8 | 689.6 | 16 | 703362.8 | 3674.1 |

5 | 22 | 772452.2 | 24.9 | 16 | 717129.9 | 103.1 | 16 | 717129.9 | 652.3 | 16 | 717129.9 | 3650.4 |

6 | 22 | 855865.0 | 20.2 | 16 | 777743.6 | 347.9 | 16 | 777743.6 | 650.6 | 16 | 777743.6 | 3718.4 |

7 | 23 | 810982.9 | 17.3 | 16 | 735818.9 | 115.6 | 16 | 735818.9 | 697.5 | 16 | 735818.9 | 3690.6 |

8 | 23 | 768247.2 | 13.6 | 16 | 696673.6 | 552.5 | 16 | 696673.6 | 684.6 | 16 | 696673.6 | 3651.7 |

9 | 23 | 718927.4 | 14.1 | 16 | 671715.8 | 356.1 | 16 | 671715.8 | 777.2 | 16 | 671715.8 | 3704.2 |

10 | 24 | 740795.0 | 13.7 | 15 | 676752.8 | 99.3 | 15 | 673355.4 | 655.0 | 15 | 676822.2 | 3651.1 |

11 | 23 | 773683.6 | 14.7 | 16 | 716213.9 | 343.8 | 16 | 716213.9 | 624.7 | 15 | 715405.6 | 3689.8 |

12 | 23 | 787512.1 | 18.8 | 16 | 714186.1 | 295.5 | 15 | 710525.3 | 641.5 | 15 | 724098.4 | 3983.5 |

13 | 21 | 769890.1 | 17.8 | 15 | 698624.8 | 394.3 | 15 | 698624.8 | 838.7 | 15 | 698624.8 | 3842.1 |

Average | 23.0 | 757853.5 | 18.4 | 15.9 | 696353.6 | 236.5 | 15.8 | 696157.2 | 705.8 | 15.7 | 696463.2 | 3731.2 |

For the monthly group of instances, in Table 4, in the current routing plan, the number of vehicles required for executing the deliveries ranges from 21 to 23 vehicles, and there exists an average of 7.6% of customers for which the time windows are not respected. The total travel time required for the complete routing plan is on average 253989.5 minutes. For this group of instances, our algorithm also reaches good solutions with the setting of 1 minute. Using the setting of 10 minutes lets to reduce further one vehicle on instances 6,7,8,11,12, and 60 minutes gives one vehicle less on almost all of the instances. The total travel times at most range on average 0.04 % from one time setting to another. In brief, the routing plan of the company is improved reducing the number of vehicles required for the deliveries on average in six vehicles, the total travel times are improved by 10% on average, and the customers are serviced within their time windows.

Current Solution | ConVRP | |||||||||||

1min. | 10min. | 60min. | ||||||||||

Id. | NV | TT | PTW | NV | TT | CPU | NV | TT | CPU | NV | TT | CPU |

[min.] | [%] | [min.] | [sec.] | [min.] | [sec.] | [min.] | [sec.] | |||||

1 | 22 | 301469.4 | 16.4 | 16 | 270241.3 | 108.9 | 16 | 270241.3 | 716.9 | 16 | 270241.3 | 3616.4 |

2 | 22 | 234068.8 | 8.3 | 16 | 212429.2 | 121.8 | 16 | 212429.2 | 626.4 | 15 | 210558.8 | 3627.2 |

3 | 23 | 196730.0 | 7.1 | 15 | 178225.2 | 68.6 | 15 | 178225.2 | 614.1 | 14 | 181801.2 | 3610.9 |

4 | 22 | 264964.0 | 6.0 | 14 | 237107.5 | 149.5 | 14 | 235179.9 | 672.2 | 13 | 238203.8 | 3667.2 |

5 | 22 | 208108.9 | 9.8 | 15 | 185387.0 | 81.9 | 15 | 185387.0 | 618.8 | 14 | 191389.2 | 3610.2 |

6 | 22 | 282833.7 | 9.3 | 15 | 253059.4 | 100.4 | 14 | 253098.2 | 627.0 | 14 | 251358.4 | 3625.1 |

7 | 22 | 281509.6 | 10.3 | 16 | 254226.6 | 109.1 | 15 | 251658.3 | 632.0 | 15 | 251449.1 | 3614.2 |

8 | 22 | 291521.7 | 3.9 | 15 | 260751.2 | 126.3 | 14 | 255479.1 | 645.8 | 14 | 254388.8 | 3613.5 |

9 | 23 | 237951.5 | 6.1 | 15 | 210963.3 | 75.2 | 15 | 210963.3 | 622.1 | 15 | 210963.3 | 3624.5 |

10 | 22 | 238774.0 | 6.1 | 14 | 213318.2 | 115.4 | 14 | 213318.2 | 657.0 | 14 | 213318.2 | 3642.7 |

11 | 21 | 242201.9 | 4.7 | 15 | 216079.1 | 115.1 | 14 | 213218.3 | 608.2 | 13 | 220345.2 | 3606.4 |

12 | 23 | 259819.1 | 5.7 | 15 | 235175.9 | 130.0 | 14 | 233921.9 | 614.8 | 14 | 233660.9 | 3607.2 |

13 | 21 | 271662.5 | 7.2 | 14 | 234822.3 | 89.1 | 14 | 234822.3 | 626.5 | 13 | 248838.1 | 3609.7 |

14 | 21 | 256030.5 | 9.3 | 14 | 222034.7 | 73.5 | 14 | 222034.7 | 630.1 | 14 | 222034.7 | 3625.4 |

15 | 21 | 242197.1 | 4.4 | 14 | 211192.6 | 91.8 | 14 | 211192.6 | 620.6 | 14 | 211192.6 | 3606.9 |

Average | 21.9 | 253989.5 | 7.6 | 14.9 | 226334.2 | 103.8 | 14.5 | 225411.3 | 635.5 | 14.1 | 227316.2 | 3620.5 |

### 5.4. Analysis of ConVRP-Operational Results

In this section, we test our ConVRPTW solutions under the operational conditions of the company. The objective of this paper is not to solve the problem dynamically under the uncertainty conditions of changing customer activity and order volumes, but only to evaluate the performance of the proposed solution of the ConVRPTW based on historical data as the basis for the operational day to day routing under unpredictable variability conditions - and to see how the customer-driver consistency is affected.

The quality of operational routing based on a client-to-driver assignment obtained from ConVRPTW solved on historical data degrades as we move away from the period for which ConRPTW was solved. This calls to consider to update the ConVRPTW base solution for further periods regularly, trying to do as few changes as possible at each step. Then, using this recursively updated ConVRPTW solution as the basis for the client-to-driver assignment, we evaluate the performance of the operational daily routing in terms of the driver consistency obtained.

The change from one period to another in customers’ activity patterns and the quantities they order is not known in advance by the company. And the time series of historical data seems to make forecasting very difficult. So, it is impossible to include them a priori in the ConVRPTW solution.

To update the ConVRPTW solution from one period to another, we use the solution from the previous period instance as the initial solution for our multi-period route elimination heuristic described in Subsection 4.2 on the next period instance, putting all new customers into the stack . We evaluate how the consistency of the old customers is affected in order to deliver all the orders within the customers’ time windows. Then, we use the same approach to evaluate the operational daily routing based on the recursively updated ConVRPTW solution.

In Table 5 and 6 we report the results of the experiments on the trimestral and the monthly group of instances, respectively. In the first three columns, we report the results of updating recursively the base instance 1. The new solution obtained is used as the initial solution for the following instance. The next three columns, report the results obtained using the client-to-driver assignment from ConVRPTW as the basis for the daily routing during the month following the period considered for ConVRPTW.

For the trimestral group of instances, in Table 5, we can note that using the client-to-driver assignment obtained on instance 1 as the initial solution for instance 2, it is necessary to use an additional truck in the solution of instance 2. The set of trucks is maintained in posteriors’ updates. Also, we can see that the percentage of inconsistent customers (IC), i.e. the percentage of old customers that are assigned a new driver in the new instance is on average 7.8 %. Concerning the results of operational routing during the following month, we can see that the levels of inconsistency, the percentages of visits that do not respect the base client-to-driver assignment, are quite low.

Updated moving trimester | Operational following month | ||||||

Id | NV | TT | IC | Month | NV | TT | IC |

[min.] | [%] | [min.] | [%] | ||||

1 | 16 | 671308.9 | - | April | 16 | 248233.5 | 1.9 |

2 | 17 | 667029.8 | 8.6 | May | 17 | 194601.6 | 1.2 |

3 | 17 | 655435.3 | 14.5 | June | 17 | 263457.6 | 0.8 |

4 | 17 | 735485.6 | 8.3 | July | 17 | 262247.8 | 0.7 |

5 | 17 | 776512.5 | 10.3 | August | 17 | 277827.5 | 0.5 |

6 | 17 | 822538.8 | 8.4 | September | 17 | 220233.7 | 0.7 |

7 | 17 | 774634.4 | 6.0 | October | 17 | 228850.3 | 0.2 |

8 | 17 | 951710.6 | 10.1 | November | 17 | 228705.6 | 1.1 |

9 | 17 | 922285.7 | 10.8 | December | 17 | 244321.8 | 1.8 |

10 | 17 | 692434.2 | 5.8 | January | 17 | 248706.5 | 0.1 |

11 | 17 | 715155.8 | 1.4 | February | 17 | 234472.7 | 0.3 |

12 | 17 | 727759.7 | 9.3 | March | 17 | 219238.4 | 0.0 |

13 | 17 | 664924.4 | 0.3 | - | - | - | - |

Average | 16.9 | 752093.5 | 7.8 | - | 16.9 | 239241.4 | 0.8 |

For the monthly group of instances, in Table 6, we can note that it is not necessary to use an extra truck to update the ConVRP solution from instance 1 to instance 2. The percentage of inconsistent customers is on average 9 %. Concerning the results of operational routing during the following month, we can see that the levels of inconsistency are still quite low, 1.1 % on average. Therefore, a situation that requires not to respect the base client-to-driver assignment occurs rarely.

Updated moving month | Operational following month | ||||||

Id | NV | TT | IC | Month | NV | TT | IC |

[min.] | [%] | [min.] | [%] | ||||

1 | 16 | 270241.3 | - | February2018 | 16 | 224089.0 | 5.2 |

2 | 16 | 216397.4 | 15.8 | March2018 | 16 | 184579.1 | 1.4 |

3 | 16 | 182618.6 | 10.8 | April2018 | 16 | 248097.0 | 1.3 |

4 | 16 | 248225.0 | 11.1 | May2018 | 16 | 190968.7 | 1.1 |

5 | 16 | 190709.9 | 9.2 | June2018 | 16 | 259520.4 | 0.9 |

6 | 16 | 258250.3 | 11.8 | July2018 | 16 | 253582.3 | 0.6 |

7 | 16 | 257345.8 | 6.3 | August2018 | 16 | 265552.1 | 0.6 |

8 | 16 | 268635.3 | 5.4 | September2018 | 16 | 214787.0 | 1.2 |

9 | 16 | 217155.1 | 12.0 | October2018 | 16 | 221719.9 | 0.4 |

10 | 16 | 218908.8 | 7.4 | November2018 | 16 | 221581.6 | 0.3 |

11 | 16 | 223478.1 | 6.6 | December2018 | 16 | 241394.1 | 1.6 |

12 | 16 | 241545.6 | 12.6 | January2019 | 16 | 243204.7 | 0.5 |

13 | 16 | 244332.8 | 5.0 | February2019 | 16 | 228707.0 | 0.5 |

14 | 16 | 228647.0 | 6.1 | March2019 | 16 | 217746.5 | 0.3 |

15 | 16 | 218080.6 | 6.4 | - | - | - | - |

Average | 16 | 232304.8 | 9.0 | - | 16 | 229680.7 | 1.1 |

## 6. Conclusions

Classical studies on vehicle routing tend to focus on finding routing plans of minimum cost, presenting methods for solving the standard, one-period, Vehicle Routing Problem with Time Windows (VRPTW). However, in competitive markets, it is important to find a balance between operational cost and customer satisfaction to assure long term profitabilities. In this work, we consider the Consistent Vehicle Routing Problem with Time Windows (ConVRPTW) that is an extension of the standard VRPTW to multiple periods, that considers the traditional constraints on the truck capacity and time windows of the customers combined with the requirement of multi-period driver consistency. This problem is motivated by a real-world application at a distribution center of a food company, in which the main objective is to design driver consistent routing plans with a minimum number of vehicles and total travel time as low as possible.

We develop a new heuristic approach to solve the ConVRPTW based on the most successful algorithms in the literature for the one-period VRPTW. The performance of the proposed algorithm is evaluated on instances constructed from the operational data of the company under study. The results show that the proposed algorithm is capable of generating better consistent routing plans than the ones currently used by the company within low computational times. Additionally, we evaluate the solutions of ConVRPTW on historical data as the basis for the client-to-driver assignment for operational routing under the conditions of customer activities and order quantities known only one day in advance. The results show that the proposed algorithm can be used to generate updated client-to-driver assignments that let the daily operational routing be solved with a very high level of driver consistency.

Considering the high variability in the activity of the customers, the quantities they order and the service times, the proposed algorithm represents a basis for the development of a decision support system that would improve the tactical routing plans for serving the customers of the company, obtaining a good balance between operational costs and service quality.

Future work must be concentrated on further developing the proposed algorithm to output client-to-driver assignments that correspond to geographical zones that do not overlap. Such a characteristic would be very valuable for the management of the company, for the ease of establishing service contracts with the transportation companies based on general territories and not on particular sets of clients - a setting that is easier to deal with under the high variability in client activity. For companies this would represent a useful tool to determine the best way to serve and respond quickly to new customer demands, standardize the quality of service, and make an efficient and equitable allocation of customers among their different drivers.

## Acknowledgments

H.L. gratefully acknowledges financial support from CONICYT + PAI/CONCURSO NACIONAL TESIS DE DOCTORADO EN EL SECTOR PRODUCTIVO, 2017 + Folio T7817120007. K.S. gratefully acknowledges financial support from Programa Regional STICAMSUD 19-STIC-05.

## References

- [1] Braekers, K., and Kovacs, A. A. A multi-period dial-a-ride problem with driver consistency. Transportation Research Part B: Methodological 94 (2016), 355–377.
- [2] Bräysy, O., and Gendreau, M. Vehicle routing problem with time windows, part i: Route construction and local search algorithms. Transportation science 39, 1 (2005), 104–118.
- [3] Campelo, P., Neves-Moreira, F., Amorim, P., and Almada-Lobo, B. Consistent vehicle routing problem with service level agreements: A case study in the pharmaceutical distribution sector. European Journal of Operational Research 273, 1 (2019), 131–145.
- [4] Dantzig, G. B., and Ramser, J. H. The truck dispatching problem. Management science 6, 1 (1959), 80–91.
- [5] Feillet, D., Garaix, T., Lehuédé, F., Péton, O., and Quadri, D. A new consistent vehicle routing problem for the transportation of people with disabilities. Networks 63, 3 (2014), 211–224.
- [6] Gendreau, M., and Tarantilis, C. D. Solving large-scale vehicle routing problems with time windows: The state-of-the-art. Cirrelt Montreal, 2010.
- [7] Groër, C., Golden, B., and Wasil, E. The consistent vehicle routing problem. Manufacturing & service operations management 11, 4 (2009), 630–643.
- [8] Kovacs, A. A., Golden, B. L., Hartl, R. F., and Parragh, S. N. The generalized consistent vehicle routing problem. Transportation Science 49, 4 (2014), 796–816.
- [9] Kovacs, A. A., Golden, B. L., Hartl, R. F., and Parragh, S. N. Vehicle routing problems in which consistency considerations are important: A survey. Networks 64, 3 (2014), 192–213.
- [10] Kovacs, A. A., Parragh, S. N., and Hartl, R. F. A template-based adaptive large neighborhood search for the consistent vehicle routing problem. Networks 63, 1 (2014), 60–81.
- [11] Kovacs, A. A., Parragh, S. N., and Hartl, R. F. The multi-objective generalized consistent vehicle routing problem. European Journal of Operational Research 247, 2 (2015), 441–458.
- [12] Lam, S. K., Pitrou, A., and Seibert, S. Numba: A llvm-based python jit compiler. In Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC (New York, NY, USA, 2015), LLVM ’15, ACM, pp. 7:1–7:6.
- [13] Lian, K., Milburn, A. B., and Rardin, R. L. An improved multi-directional local search algorithm for the multi-objective consistent vehicle routing problem. IIE Transactions 48, 10 (2016), 975–992.
- [14] Lim, A., and Zhang, X. A two-stage heuristic with ejection pools and generalized ejection chains for the vehicle routing problem with time windows. INFORMS Journal on Computing 19, 3 (2007), 443–457.
- [15] Luxen, D., and Vetter, C. Real-time routing with openstreetmap data. In Proceedings of the 19th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems (New York, NY, USA, 2011), GIS ’11, ACM, pp. 513–516.
- [16] Nagata, Y., and Bräysy, O. A powerful route minimization heuristic for the vehicle routing problem with time windows. Operations Research Letters 37, 5 (2009), 333–338.
- [17] Oliphant, T. E. Guide to NumPy, 2nd ed. CreateSpace Independent Publishing Platform, USA, 2015.
- [18] Solomon, M. M. Algorithms for the vehicle routing and scheduling problems with time window constraints. Operations research 35, 2 (1987), 254–265.
- [19] Stavropoulou, F., Repoussis, P. P., and Tarantilis, C. D. The vehicle routing problem with profits and consistency constraints. European Journal of Operational Research 274, 1 (2019), 340–356.
- [20] Tarantilis, C. D., Stavropoulou, F., and Repoussis, P. P. A template-based tabu search algorithm for the consistent vehicle routing problem. Expert Systems with Applications 39, 4 (2012), 4233–4239.
- [21] van Rossum, G. Python programming language. In Proceedings of the 2007 USENIX Annual Technical Conference, Santa Clara, CA, USA, June 17-22, 2007 (2007).
- [22] Wong, R. T. Vehicle routing for small package delivery and pickup services. In The Vehicle Routing Problem: Latest Advances and New Challenges. Springer, 2008, pp. 475–485.
- [23] Xu, Z., and Cai, Y. Variable neighborhood search for consistent vehicle routing problem. Expert Systems with Applications 113 (2018), 66–76.

Comments

There are no comments yet.