Routing electric vehicles with a single recharge per route

Driven by environmental considerations, regulations on vehicle emissions, and the offer of major subsidies, electric commercial vehicles (ECVs) are receiving ever stronger attention in logistics companies. Route planning for ECV fleets requires consideration of the special characteristics of ECVs, like limited driving range and the potential need to recharge en route at dedicated recharging stations. From a practical viewpoint, the number of recharge operations of each vehicle can very often be restricted to one recharge per route because (i) typical route distances in the most important application areas of ECVs, like small package shipping and food or beverage distribution, do not require more than one recharge given the current driving range of ECVs, and (ii) operations managers are very reluctant to plan vehicle routes with two or more recharges because recharging operations are perceived as unproductive idle times. We develop a simple hybrid of large neighborhood search and granular tabu search to solve the resulting electric vehicle‐routing problem with time windows and single recharge (EVRPTWS), considering the possibility of both full and partial recharge. The heuristic works on routes represented as customer sequences, and recharge operations are implicitly considered by determining the recharging position in the route, the recharging station to visit, and the amount to be recharged in optimal fashion. We discuss how our algorithm can be extended to handle nonlinear recharging times, different recharging times per station, and time‐dependent waiting times at stations. In numerical studies on EVRPTWS instances from the literature, the method provides optimal or near‐optimal solutions for instances with up to 100 customers within reasonable runtimes. Additional studies investigate the cost savings potential of partial recharges in comparison to full recharges in the presence of time‐window constraints, and examine the factors that influence this cost saving potential.


INTRODUCTION
Electric commercial vehicles (ECVs) produce only minimal noise and have no local greenhouse gas emissions. Rising energy costs, new regulations concerning the emission of greenhouse gases, and a rising environmental awareness render ECVs an alternative to conventional internal combustion vehicles, although they are currently not competitive with regards to costs. These conditions have triggered green initiatives at companies of the transportation sector, for example, in the field of small-package shipping [20] and the distribution of food [24]. Moreover, governments and private companies have started to provide the required infrastructure to pave the way for this electrification trend [17,36].
The planning of the last-mile delivery operations of ECVs requires models and algorithms for solving vehicle-routing problems (VRPs, [38]) that incorporate the special characteristics of ECVs: a limited driving range and the potential need to recharge en route at dedicated recharging stations. Such VRPs have recently been proposed, covering different subsets of the practically relevant VRP constraints (vehicle capacity, time windows, maximal route duration, heterogeneous vehicle fleet) and different assumptions on energy consumption, recharging infrastructure, and the recharging procedure (for an overview, see [7,19,25,31]). In particular, several real-world features have been studied, among them hybrid propulsion technologies [16], detailed models of charging and discharging processes and their impact on battery lifetime degradation [26,27], uncertainty in energy consumption [28], and capacitated recharging stations [12].
Almost all papers in the literature assume that multiple recharges are possible on each vehicle route (exceptions are the works of Desaulniers et al. [5,6]). However, practical considerations can well motivate to restrict recharge operations to a single recharge per route: major application areas of ECVs lie in the fields of small package shipping and goods distribution in a city logistics context. In these cases, distances of routes are typically rather short, for example, Kleindorfer et al. [20] report that the lengths of the routes of the French national post operator, La Poste, are in the range of 100 to 150 km. Estimates for ECV driving ranges vary significantly in the literature within a range of roughly 100 to 200 km [9,25,39] and external factors like cold temperature, range anxiety, battery age, and grades reduce the originally reported ranges. Nevertheless, from these figures, it can be assumed that a very high percentage of the routes in the typical ECV application areas can be covered with not more than one recharge (see also [8]). New developments in battery technology and steadily decreasing battery prices substantiate this assumption. Moreover, even if fast-charging modes are used, real-life recharging times are relatively long with 30 minutes and above [25]. This renders tours with more than one recharge unattractive in many practical situations because recharging operations are perceived as unproductive idle times. So, although multiple recharges per route are very interesting from a computational viewpoint, they are less important from a practical one.
Motivated by these observations, the paper at hand studies the electric VRP with time windows and single recharge (EVRPTWS), originally introduced by Desaulniers et al. [5]. The EVRPTWS is a variant of the basic EVRPTW proposed by Schneider et al. [32] in which at most one recharge per vehicle route is allowed. Depending on the type of recharge, we distinguish the EVRPTWS with single partial (SP) recharge and with single full (SF) recharge. Using the former policy (SP), the amount of energy to recharge is a decision variable and it is possible to stop the recharging process before the maximal capacity of the battery is reached, while in the latter policy (SF), the battery is always reloaded to its maximal capacity. The EVRPTWS also differs from the original EVRPTW with regard to the objective function. EVRPTWS considers the classical VRP objective of minimizing traveled distance, contrary to the hierarchical objective used in EVRPTW: minimize the number of employed vehicles first, minimize traveled distance second. We made this choice for two reasons. First, to maintain comparability between exact approaches (usually using the classical objective) and our metaheuristic approach. Second, to be better able to quantify the benefits of allowing partial recharges: the two goals of minimizing the number of employed vehicles and the traveled distance are sometimes conflicting. This may lead to distorted results when comparing the solutions with partial and full recharges. Because the EVRPTWS extends the VRPTW, this problem is NP-hard. Thus, the available exact methods consume considerable runtimes and are still not able to consistently solve large-scale instances within acceptable runtimes (see [6]).
The contributions of our paper are: • We present a hybrid of large neighborhood search (LNS) and granular tabu search (GTS), called LNS × GTS, which is, to the best of our knowledge, the first metaheuristic for the EVRPTWS. From a methodological viewpoint, we contribute in the direction of developing simpler heuristics with convincing solution quality, something that the community is advocating in recent years: The design of the LNS × GTS algorithm is kept simple, and several known algorithmic components are combined in a new and successful fashion. Contrary to most existing approaches for routing ECVs, our algorithm uses an implicit representation of recharging visits: recharging visits are not explicitly contained in the encoding of a solution, and no operators are used to change the position of a recharging visit within or between routes. Instead, the operators of our algorithm directly work on sequences of customers, and the position of the recharging visit in a route and the amount of energy to recharge (in case of partial recharges) are determined in optimal fashion. The computational studies show that our method provides optimal or near-optimal solutions for instances with up to 100 customers within reasonable runtimes. • Although several real-life features have recently been studied in EVRP research (see above), we consider a basic EVRP variant to be able to assess the quality of our algorithm by means of a comparison using the results of the exact approaches of Desaulniers et al. [5,6]. However, we provide a detailed explanation of how our approach can be extended to handle the following important real-world extensions: nonlinear charging times [11,22], chargers with different recharging rates [8], and time-dependent waiting times at recharging stations [19].
• Additional studies concentrate on the cost savings of partial recharges in comparison to full recharges in the presence of time windows. We investigate which problem characteristics (size, distribution of customer locations, time window density, and time window width) influence these cost benefits. Note that Desaulniers et al. [5] have studied the effect of partial recharges for the EVRPTWS; however, (i) the results are based only on the subset of the benchmark instances that could be solved to optimality and may therefore be biased towards a certain problem structure, and (ii) no analysis of the factors influencing the benefits of partial recharges is performed. Other works in the literature (e.g., [18]) only address the multiple-recharge version of EVRPTW and use a hierarchical objective that first minimizes the number of employed vehicles.
The remainder of this paper is organized as follows: Section 2 provides a detailed problem description. The tailored LNS × GTS approach for the EVRPTWS is described in Section 3. The numerical studies to investigate the questions raised above are detailed in Section 4. We close the paper with final conclusions in Section 5.

THE ELECTRIC VEHICLE-ROUTING PROBLEM WITH TIME WINDOWS AND SINGLE RECHARGE
We define the two variants SP (partial recharges allowed) and SF (full recharges required) of the EVRPTWS. An instance of the EVRPTWS can be defined with the help of a directed graph G = (V, A), where the vertex set V comprises the customers N = {1, …, n}, the recharging stations R, and the depot 0. For each customer i ∈ N, let d i be the demand, [e i , i ] the time window describing the possible service start time, and s i the service duration. The planning horizon is given by the depot time window [e 0 , 0 ]. For the depot and all recharging stations, we assume service times and demands of zero, that is, The arcs (i, j) ∈ A represent the possible travel connections with a travel time t ij and a routing cost c ij . The battery-capacity constraint is modeled with the help of the time b ij required to recharge the consumed energy when traveling between locations i and j for each arc (i, j) ∈ A (see [5]). Let B be the battery capacity, expressed in time units needed to fully recharge an empty battery. We assume that the triangle inequality holds true for the costs c ij and travel times t ij as well as recharging times b ij .
A fleet of homogeneous vehicles each with capacity Q is hosted at the depot 0. A feasible route in the general EVRPTW is a cycle through 0 satisfying the recharging, vehicle-capacity, time-window, and battery-capacity constraints. To make feasibility conditions explicit, let the route be = (i 0 , i 1 , …, i p ) for some p > 1 and i 0 = i p = 0. For the single-recharge policy, at most one of the vertices i 0 , i 1 , …, i p can be a recharging station, say i q = r ∈ R, while i 1 , …, i q − 1 , i q + 1 , …, i p − 1 ∈ N, that is, the vertices are customers. Obviously, the route fulfills the capacity constraint if ∑ p j=0 i j ≤ Q. For the two other constraints, one must decide on the schedule and the amount to recharge at every visited recharging station. In particular, the corresponding recharging times need to be incorporated into the time-window constraints. A necessary condition for a route to be feasible is that there exists a schedule ( 0 , 1 , …, p ) and a (battery-)recharging plan (y 0 , y 1 , …, y p ) that fulfill the following conditions: First, recharging is only possible at a recharging station, that is, y j = 0 if i j ∈ N ∪ {0} and 0 ≤ y j ≤ B for i j ∈ R. Second, the time-window constraints are fulfilled, that is, j ∈ [e i j , i j ] for all j = 0, …, p as well as j−1 + s i j−1 + y j−1 + t i j−1 ,i j ≤ j for all j = 1, …, p assuming that there are no service times at recharging stations, that is, s i j = 0 for i j ∈ R. Third, the recharging plan must be feasible, that is, For the EVRPTWS with SP policy, the given conditions are sufficient. For the EVRPTWS with SF policy, the battery must always be completely recharged at stations, that is, Note that we have intentionally given a slightly more abstract but also universal definition than needed for the EVRPTWS. Indeed, definitions also hold true for the multiple-recharge policies (MP, MF), in which several visits to recharging stations are allowed, that is, i 1 , …, i p − 1 ∈ R ∪ N (see [5]). In all cases, a feasible solution to the EVRPTW (with any policy SP, SF, MP, MF) is a set of feasible routes that together visit and serve all customers i ∈ N exactly once. A feasible solution is optimal if it minimizes the total cost of the routes, where the cost of a route = (i 0 , i 1 , …, i p ) is ∑ p j=1 c i j−1 ,i j . For the EVRPTWS variants, the feasibility check can be simplified as follows: for routes that do not contain a recharging station, time-window and capacity constraints are like in the VRPTW, while the battery-capacity check is that ∑ p j=1 b i j−1 ,i j ≤ B holds. For routes that do contain a single recharging station r ∈ R at position q, that is, a route (i 0 , …, i q = r, …, i p ) with 0 < q < p, the battery-capacity check is that For the time-window feasibility, we can first determine the recharging time y q at station i q = r, which is exactly for SP and SF, respectively. Then, any (standard) time-window check known for the VRPTW can be applied using new service times s i j + y j for all j = 0, …, p (defining y j = 0 for all j ≠ q).

LNS × GTS FOR SOLVING EVRPTWS
In a very first step, our method preprocesses EVRPTWS instances by removing all infeasible arcs, that is, arcs that cannot be contained in a solution that is feasible with respect to load capacity and time windows, using rules analogous to the ones presented in Schneider et al. [32]. Algorithm 1 shows a pseudocode of the LNS × GTS algorithm: Initially, we use an insertion heuristic to generate an initial solution Σ, which is feasible with respect to time windows, vehicle capacity, and battery capacity. The heuristic iteratively either inserts a customer into an existing route by evaluating all insertion points for every remaining customer or creates a new route with a single customer, depending on which alternative leads to the smaller increase in cost. In the improvement phase, LNS and GTS alternate. For this phase, we use the implicit representation of recharging visits that we detail in Section 3.1. Solutions in the improvement phase may be infeasible with respect to time-window and vehicle-capacity constraints but have to be feasible regarding battery capacity. Infeasible solutions are handled by a dynamic penalty mechanism which uses the generalized cost function f (Σ) explained in Section 3.2. The main purpose of the LNS phase is diversification (see Section 3.3), while the GTS phase is used for intensification of the search (see Section 3.4).

Implicit recharging decision
Our algorithm uses an implicit representation of the recharge decisions, that is, the objects manipulated by our search operators are vertex sequences (cycles through 0) in the induced graph G[N ∪ {0}]. From now on, we explicitly distinguish between vertex sequences and their associated routes = ( ), which result from inserting (if necessary) a recharging station visit in an optimal manner. For every vertex sequence, we can easily determine whether a recharge is necessary. If so, optimal decisions need to be made regarding (i) the recharging position in the sequence, (ii) the recharging station to use, and (iii) the amount of energy to recharge. These optimal decisions have to be carried out for feasibility checks and for computing the costs of a vertex sequence .
The idea of an implicit representation used together with a decoder is not new (see, e.g., [29]) and has been applied before in the context of VRPs with intermediate stops (see, e.g., [14,21]). A dynamic programming component for determining the recharging decision for a given customer sequence in optimal fashion has been introduced by Hiermann et al. [15] for a variant of the EVRPTW and has been used by many algorithms for related problems since then.
To efficiently compute the optimal recharging decisions, we can restrict the set of potential recharging stations that we have to consider for recharging between the tail and head vertex of a given arc. For a given vertex sequence, we can also restrict the positions in the sequence where we have to test for a feasible recharge option. These steps are detailed in the following.

Restrict relevant recharging stations for a given arc
For each arc (v, w) ∈ A with v, w ∉ R that is not deemed infeasible by the preprocessing, we can determine the set of potential recharging stations at the position between vertices v and w. First, a visit of the station has to be possible without causing a constraint violation. A recharging station r ∈ R is feasible for (v, w) if the route = (0, v, r, w, 0) does not violate the battery-capacity, time-window, or vehicle-capacity constraints. Second, a recharging station only has to be considered for a visit between v and w if it is not dominated by any other recharging station.
Formally, a recharging station r 1 ∈ R dominates a station r 2 ∈ R if all of the following conditions hold: where (2a) compares the cost of detours, (2b) the battery consumption to station, (2c) the battery consumption from station, (2d) the earliest start time of service at w, and (2e) the latest start time of service at v. In the two latter formulas, the values y r 1 and y r 2 are computed via (1) for the routes (0, v, r 1 , w, 0) and (0, v, r 2 , w, 0), respectively. In the following, the set of all feasible, nondominated potential recharging stations for the arc (v, w) ∈ A is denoted by R(v, w).

Restrict the recharge positions for a given vertex sequence
holds: in the first case the route is certainly infeasible due to a total energy consumption that is too large, and in the second case, no recharging is required. Otherwise, we can restrict the potential positions j in the sequence at which a feasible recharge between i j−1 and i j can take place. For this purpose, we define as the minimal and maximal positions, respectively. Note that even if ∑ p j=1 b i j−1 i j ≤ 2B (neither of the conditions in (3) may be fulfilled), the detour caused by a potential recharging station can lead to a route that is battery-capacity infeasible at the end. A more precise check is therefore needed, as explained in the following.

Generalized cost function
The purpose of the generalized cost function is 2-fold: first, it exactly distinguishes between battery-feasible and infeasible routes. Recall that battery-infeasible routes are not permitted in LNS × GTS (see Algorithm 1). However, solutions in the improvement phase may be infeasible with respect to time-window and vehicle-capacity constraints. Therefore, the second purpose of the generalized cost function is the computation of a penalty value for solutions that do not adhere to the capacity or time-window constraints.
Regarding the vehicle-capacity constraints, a route = (i 0 , i 1 , …, i p ) serving customers i 1 , …, i p − 1 overloads the vehicle by where is a dynamic penalty factor, explained in Section 3.2.
Regarding the time-window constraints, the penalty mechanism is much more sophisticated. We again distinguish between routes (containing a specific recharging station at a fixed position) and vertex sequences.
At the route level, that is, when the recharging station, its position, and the amount to recharge are known, we use a time-warp like penalty function (see, e.g., [40]) summarized in Algorithm 2. More precisely, we assume for a route = (i 0 , i 1 , …, i p ) that service times at customers and the recharging time at the recharging station (if any) are given by the values (S 0 , S 1 , …, S p ). An as-early-as-possible schedule is constructed (propagating schedule times in forward direction), where in case of a time-window violation the actual violation is recorded, and the schedule time is reduced to the time-window upper bound (last feasible point in time). The final penalty is the sum of the violations weighted with a second dynamic penalty factor .  (3) is not precise enough.
It should be noted that the implicit recharging decision depends on the value of . For a sufficiently small , even a recharging decision which leads to a violation of the time-window constraints might be preferred over a recharging decision which completely maintains feasibility with respect to time windows at the expense of a longer detour. Figure 1 demonstrates this effect with an example for the case of partial recharges. The arc labels denote the routing cost, and we assume c ij = t ij = b ij . The time window of customer i is given in square brackets as [e i , i ], and all customers have a service time s i = 0. The vertex sequence in the example is (0, v 1 , v 2 , v 3 , v 4 , v 5 , 0) and is assumed to be capacity feasible. We set the battery capacity B to 7, so that a recharge is necessary. In the given sequence, recharging decision 1, corresponding to route (0, v 1 , r 1 , v 2 , v 3 , v 4 , v 5 , 0), causes time-window violations of 1 unit at customer v 2 and 2 units at customer v 4 , implying f gen = 9 + 3 . Recharging decision 2, corresponding to route (0, v 1 , v 2 , v 3 , v 4 , r 2 , v 5 , 0), is time-window feasible and has a generalized objective value of f gen = 12. Thus, if < 1, decision 1 is chosen because the detour via r 2 is more costly than the penalty for the time-window violations at customers v 2 and v 4 . Otherwise, if > 1, recharging decision 2 leads to a smaller objective value.

Penalty mechanism
Infeasible solutions with respect to vehicle capacity and time windows are evaluated based on the generalized cost function where and are the penalty factors for weighting the violations. The LNS × GTS heuristic dynamically updates the penalty factors based on the course of the search. Both penalty factors are initially set to = = 1 and are restricted to the interval [0.01, 100]. At every iteration, the respective penalty factor is multiplied (divided) by 1.1 in case the solution is infeasible (feasible) with regard to the respective resource. From then on, the update is repeated after every iteration until the feasibility status changes. The utilized parameter values are predetermined values, which are similar to those found in the literature for related problems. No fine tuning of this parameters was conducted, and we rely on the adaptive nature of this technique to guide the search into promising directions.

LNS component
LNS was originally introduced by Shaw [34] and extended to ALNS by Ropke and Pisinger [30]. The idea is to iteratively destroy and repair larger parts of an initial solution to gradually improve the solution. (A)LNS has successfully been applied to many hard routing problems.
In our algorithm, the main purpose of the LNS step is diversification. First, we remove a randomly drawn number of customers from the solution, where is uniformly distributed over the interval [0.2n, 0.8n]. Contrary to many LNS implementations (see, e.g., [4,30]), we insert all removed customers in each LNS step. The resulting infeasible solutions are handled by the penalty mechanism described above (see also [3,13]). Due to the implicit recharging decision, no EVRPTWS-tailored operators for handling recharging visits are necessary. The search runs until no improving solution has been found for lns = 10 consecutive iterations.
As repair operator, a combination of Regret-2 and GRASP (introduced in [10]), called Regret/GRASP repair, is used. Analogous to Regret-2 insertion (see, e.g. [30]), the difference in cost increase for the insertion of all remaining vertices at their best and at their second best position is calculated, and the vertices are stored in a list in descending order of this regret value. Instead of selecting the first vertex in the list for insertion, one of the first three vertices is randomly drawn with uniform probability.

GTS component
At each main iteration, LNS × GTS tries to improve the solution returned by the LNS by a GTS that is run for gts = 2000 consecutive iterations. GTS uses a composite neighborhood of the operators 2-opt*, relocate, split-0, and split-1. Moves are realized by means of the generator-arc principle introduced by Toth and Vigo [37]. Again, no specialized operators addressing recharging visits are necessary due to the implicit representation. Figure 2 illustrates the different neighborhood operators, where the respective generator arc is given by (v, w). Relocate and 2-opt* are well-known operators; relocate is applied for intra-and inter-route moves, and 2-opt* is only defined for inter-route moves. The split-0 operator removes one arc from an existing vertex sequence and reconnects the loose ends to the depot; the split-1 operator creates a new vertex sequence containing a single customer. 2-opt* and relocate are able to close a route if v + and w − or v + and v − are depot nodes, respectively, while both split operators always increase the number of routes by one. For a given solution, the 2-opt* and relocate neighborhoods both contain (n 2 ) elements, whereas the split neighborhoods contain (n) elements.
Reinsertion of a removed arc is tabu for a random tenure out of the interval [5,10] (based on Schneider et al. [33]). We keep the granularity features of the GTS as simple as possible but make use of the insights on the design of granular solution methods for routing problems with time windows described by Schneider et al. [33]: • As sparsification criterion to obtain a reduced list of possible generator arcs, we solve the network relaxation of VRPTW (see, e.g., [1]) using time-adjusted costs (TAC) as cost matrix. TAC are defined as c ′ = max{e j − ( i + s i ); c }, thus favoring arcs with low travel cost and small waiting time. We solve the network relaxation by means of the Hungarian algorithm [23] and sort the arcs according to nondecreasing values of the reduced costs. In the base setting, we keep the 10% of arcs with the smallest reduced costs, that is, we use a sparsification threshold of 0.1. • All arcs from the best solution found so far are added to the set of generator arcs.
• We use dynamic sparsification, that is, we adapt the strength of the sparsification to diversify and intensify the search: the sparsification threshold in the kth iteration since the last improvement is given by 0.1 + 0.9 ⋅ ( k ) 2 . As soon as an improving solution is found, we reset the sparsification threshold to 0.1.
GTS uses a continuous diversification mechanism similar to that of Cordeau et al. [2]. Let Δ A (Σ, Σ ′ ) denote the arcs which are not traversed in solution Σ but are traversed in solution Σ ′ . Moreover, let Λ(a) be a function that counts the number of times that an arc a ∈ A has been inserted into the incumbent solution by the GTS. For a nonimproving move that leads from solution Σ to solution Σ ′ , that is, in case that f gen (Σ ′ ) ≥ f gen (Σ), we add a diversification penalty to the objective function value as follows:

Straightforward extensions
This section describes how some of the recently proposed extensions studied in the EVRP literature (see Section 1) could be incorporated into our LNS × GTS algorithm to arrive at more detailed and then perhaps more realistic EVRPTWS variants. We briefly sketch three possible extensions-namely nonlinear charging times, chargers with different recharging rates, and time-dependent waiting times at recharging stations-and the necessary modifications of our algorithmic components. First, our approach could easily incorporate nonlinear charging times, that is, recharging times that depend of the current state of charge (SoC) as considered by Montoya et al. [22] and Froger et al. [11]. For this extension, we have to strictly distinguish between energy and time/duration so that a direct time-energy correspondence using Equation (1) is no longer possible. The nonlinear charging times in the cited works are represented by a monotone function Φ : R + → [0, B] that models the interdependency between an SoC S and the duration Δ of the charging operation as depicted in Figure 3A. Given the SoC S when arriving at a recharging station r ∈ R and a duration Δ to spend on recharging, the value Φ(Φ −1 (S) + Δ) is the resulting SoC when departing from the recharging station. Conversely, to reach the SoC S + b for b ≤ B − S, a loading time of Δ = Φ −1 (S + b) − Φ −1 (S) time units is required. Hence, the only required modifications in Algorithm 3 are that in Step 13 the loading plan must be computed with a modified Equation (1) that uses the inverse function Φ −1 . The essential point is that with a single recharge, the amount consumed before reaching the recharging station (and therefore also the SoC) as well as the amount that must be recharged is known in Step 13. In Step 14, we then set (S j ) = (s i • j + Δ j ), where Δ j is the new computed recharging duration.
Second, the incorporation of heterogeneous stations with chargers having different recharging rates (e.g., [8]) is possible by using station-specific functions Φ r for r ∈ R instead of a single recharging function.
Third, it is also straightforward to consider time-dependent waiting times at recharging stations as suggested by Keskin et al. [19]. The station-specific function Ψ r ( ) defined over possible arrival times models that, due to congestion at recharging station r, an ECV arriving at time must wait there for an (expected) waiting time of Ψ r ( ). Keskin et al. [19] derive an approximate function from expected time-dependent arrival rates and the corresponding expected waiting times resulting from a queueing model. A key assumption is that the FIFO property 1 + Ψ r ( 1 ) ≤ 2 + Ψ r ( 2 ) for all stations r ∈ R and arrival times with 1 ≤ 2 holds, that is, arriving later at recharging station r never leads to an earlier departure, see Figure 3B. A consequence of this assumption is that an as-early-as-possible schedule, as used in our Algorithm 2, leads to minimal time-window violations and penalties P tw (if any).

COMPUTATIONAL EXPERIMENTS AND RESULTS
In this section, we report our computational results on LNS × GTS for the EVRPTWS. All results were obtained using a computing cluster running CentOS 7.6 with Intel Xeon E5-2430v2 processors clocked at 3.0 GHz, where 1 GB of RAM was available to a single process. The LNS × GTS algorithm was implemented in C++ and compiled into 64-bit single-thread release code with GCC 9.1.
We would like to stress that the quality of our approach does not depend on an extensive fine-tuning of parameters. Indeed, parameters of the algorithm are set according to values from the literature for similar algorithmic components (as described above) or based on a rough tuning during the development of the algorithm. Therefore, we do not present a study on choosing parameter values for LNS × GTS.
The remainder of this section is structured as follows: The benchmark instances from the literature are described in Section 4.1. The results of a performance analysis of LNS × GTS on EVRPTWS are reported in Section 4.2. We investigate the cost savings potential of partial recharges in comparison to full recharges in the presence of time-window constraints in Section 4.3. On the basis of a systematic examination, we highlight factors that influence this cost saving potential.

Benchmark instances
The performance of LNS × GTS is investigated on the EVRPTWS benchmark instances of Desaulniers et al. [5]. They were derived from the EVRPTW benchmark set with multiple recharges of Schneider et al. [32], which in turn is based on the original VRPTW instances from Solomon [35]. The instance set features instances with 25, 50, and 100 customers, which are geographically distributed in three different ways: clustered distribution (C), uniform random distribution (R), and a mixture of both random and clustered (RC). Furthermore, instances C1, R1, and RC1 (type 1) have a shorter scheduling horizon and smaller vehicle capacities compared to instances C2, R2, and RC2 (type 2). As a consequence, type 1 instances require a larger number of routes compared to those of type 2. Recharging times b ij depend linearly on the amount of energy that is recharged, which is in turn proportional to the traveled distance c ij . All EVRPTWS test instances are available as supplemental download at INFORMS, doi: 10.1287/opre.2016.1535.

Performance of LNS × GTS
We first analyze the performance of LNS × GTS on the basis of the best-known solutions (BKS), which are given by the best of the solutions found either by Desaulniers et al. [5,6], or LNS × GTS during the complete course of its development. Aggregated results are given in Table 1, where instances are grouped by size, recharge type, and customer distribution. For each instance, we conducted five runs of LNS × GTS. Columns Δ b and Δ a show the best and average gap to the BKS over the five runs, respectively. Column t denotes the average runtime over five runs in seconds. In the Appendix, the same results are given on an instance basis in Tables A1 to A3. In addition, Table A4 shows the results of LNS × GTS compared to the previous BKS (i.e., the best of the results of Desaulniers et al. [5,6]) on the instances with 100 customers. The aggregated results in Table 1 show that LNS × GTS finds the optimal solution of each of the 25-customer instances in each individual run. For the instances with 50 and 100 customers, the gaps of LNS × GTS stay quite low, and no significant difference can be found comparing the partial and full recharge policies. In addition, LNS × GTS shows a robust performance, that is, the difference between best and average solution quality is relatively small. Due to the implicit representation of recharges used by the algorithm, computation times increase significantly with instance sizes. However, an average runtime of less than 7 minutes for instances with 100 customers remains adequate for most application scenarios. We find that LNS × GTS on average matches 222 of the previous BKS provided by Desaulniers et al. [5,6], and it matches 253 of the 328 when considering the best out of five runs. Further, with the best out of five runs, LNS × GTS is able to improve the previous BKS on 35 instances, 33 of which are 100-customer instances (see Table A4). The amount of improvement is substantial on many of the large instances, resulting in average gaps of −1.13% and − 0.81% for the F and P policies, respectively. Table 1 also includes a brief comparison of LNS × GTS against a plain GTS and a plain LNS heuristics (rows "GTS only" and "LNS only"). In order to arrive at comparable computations times, in particular for the 100-customer instances, gts = 25 000 iterations are allowed in the GTS and lns = 1500 iterations in the LNS. The results for the instances with |N| = 50 and 100 customers clearly prove that the combination of GTS and LNS is beneficial.

Cost benefits of the partial recharge option
We investigate the cost benefits of allowing partial recharges (P) instead of forcing full recharges (F), and the influence of

Influence of problem size and geographical customer distribution
We base our comparison between partial and full recharges on the BKS for each individual instance and recharge type. To analyze the influence of the problem size and geographical distribution of customers on the BKS, Table 2 groups the instances according to customer distribution type and instance size |N|. The values in the table report the average decrease in routing cost when allowing partial recharges (P) compared to requiring full recharges (F) in percent. We first observe that the improvement in objective function value by allowing P on type 2 instances is negligible except for the instances of group C2 with 100 customers. On these particular instances, we found that with the F policy, the time required for the full recharge and the time-window constraints prevent the routes from naturally following the given clusters, which leads to an average detour of almost 2% compared to the P policy. For type 1 instances, we observe an average improvement of the objective value of 1.16% by allowing P. This result is consistent with the observations of Desaulniers et al. [5], who report an average improvement of 0.97% for those instances of type 1 for which a feasible solution was found by their exact approach. We find that the benefit is correlated to the instance size: for 25 customers, the benefit amounts to approximately 0.5%, whereas for 50 and 100 customers, we achieve benefits of approximately 0.65% and 1%, respectively. Indeed, with more customers, the routes are more productive, that is, there are more customers per route and less waiting time before the opening of the time windows. Consequently, partial recharges become more useful.

Influence of time-window density
We next evaluate the influence of different time-window densities (TWDs), where the TWD of instances is the percentage of customers that have a constraining time window. For this purpose, we modify existing instances to get additional test instances with different TWDs. In order to eliminate effects caused by different customer distribution, we restrict ourselves to instances of classes R1 and R2 with a TWD of 100%. These are the 11 instances R101, R105, R109, R110, R111, R112, R201, R205, R206, R207, and R208. From each of these 33 base instances (11 instances with 25, with 50, and with 100 customers), we generate five new instances with a TWD of 80%, 60%, 40%, 20%, 0%, respectively, by consecutively removing customer time windows in 20% steps in random fashion. Aggregated results are given in Table 3. The reported values are the routing cost benefits of policy P compared to F in percent, based on the BKS for each instance. We can observe the rough tendency that the benefit of partial recharges increases with TWD. The relationship is not entirely consistent and the effect is rather small.
Moreover, without any time windows (a TWD of 0%), one would expect that there is no difference between the P and F solutions. However, we observe a small difference of −0.16%. Two factors may explain this difference: First, the overall time horizon still constrains the duration of the routes, stronger for the policy F than for P. Second, the LNS × GTS heuristic may perform slightly better for the P policy. The definite reason for the difference remains unclear.

Influence of time-window width
To analyze the effect of time-window width, we use the EVRPTWS R1 instances with a 100% TWD as base instances. From each of these 6 instances, we generate four new instances by multiplying the time-window width (TWW) by a factor ∈ {2, 3, 5, 10}. More precisely, if a customer originally has a time window beginning at a and ending at b of width w = b − a centered around c = 0.5 ⋅ (a + b), then the customer has a time window beginning at a ′ = c − 0.5 ⋅ ⋅ w and ending at b ′ = c + 0.5 ⋅ ⋅ w on the modified instance. Thus, the TWW given by = 1 corresponds to the original instance. The planning horizon, that is, the time window of the depot remains unchange. Table 4 reports the routing cost benefit of the P policy compared to the F policy in percent, again based on the BKS. We observe the clear tendency that the benefit of partial recharges decreases with wider customer time windows although the relationship is not entirely consistent, that is, for the instance classes with different sizes it happens frequently that an increase of TWW also leads to an increase in benefits of the partial recharge. However, recall that the latter is a relative measure that relates the costs of the P and F policies.

CONCLUSION
This paper presents a hybrid of LNS and GTS, called LNS × GTS, to address the EVRPTW with single recharge and partial as well as full recharge. LNS × GTS handles the recharging decisions implicitly, that is, the search operators work on customer sequences and the recharging is always carried out in an optimal fashion. LNS × GTS shows a convincing performance on EVRPTWS instances from the literature. The computational experiments also reveal that allowing partial recharges allows us to notably reduce routing cost, an effect that increases with growing instance size. In addition, we find that partial recharges tend to be more beneficial compared to full recharges if many customers have time-window requirements and if the customer time windows are narrow.

APPENDIX A
We provide computational results for each individual EVRPTWS instance. Results are grouped by instance size (25, 50, and 100) in Tables A1-A3. The following information is given:

Instance
Name of the problem instance

BKS Best known solution Underlined
Optimality proven by either [5] or [6] Δ b Best gap relative to BKS in percent over five runs Δ a Average gap relative to BKS in percent over five runs t Average computation time over five runs in seconds Note that the BKS values are given by the best of the solutions found by Desaulniers et al. [5,6], and LNS × GTS during the complete course of its development. Table A4 compares the performance of LNS × GTS on the 100-customer instances to the previous BKS, that is, only the solutions from Desaulniers et al. [5,6] are considered.