International Journal of Industrial Engineering Computations

In this paper, we consider the multi depot heterogeneous vehicle routing problem with time windows in which vehicles may be replenished along their trips. Using the modeling technique in a new-generation solver, we construct a novel formulation considering a rich series of constraint conditions and objective functions. Computation results are tested on an example comes from the real-world application and some cases obtained from the benchmark problems. The results show the good performance of local search method in the efficiency of replenishment system and generalization ability. The variants can be used to almost all kinds of vehicle routing problems, without much modification, demonstrating its possibility of practical use


Introduction
The vehicle routing problem (VRP) is a well-known combinatorial optimization problem, which focuses on the optimal arrangement or schedule of a fleet of vehicles while serving scattered customers.The interest on VRP is indeed motivated by its practical relevance and considerable difficulty.Since first proposed in Dantzig (1959), hundreds of papers have considered all the main variants of this problem for which both exact and heuristic approaches are proposed: the capacitated VRP (CVRP), the VRP with time windows (VRPTW), the multi-depot VRP (MDVRP), the VRP with Backhauls (VRPB), the open VRP (OVRP), the pickup and delivery problem (PDPTW) and the site-dependent VRP (SDVRP), just to mention the most important ones.A complete overview of the state-of-the-art on VRP is given in the book by Toth and Vigo (2001), for a comprehensive survey of both construction method and heuristic approaches, see Bräysy andGendreau (2005a, 2005b).
However, some aspects that arise in real application have not received much attention in the Operations Research literature.For instance, vehicles may perform more than one trip during a given work shift.This may happen when either customer demands are relatively large with respect to vehicle capacity, hence few customers may be served in a single route, or when tight time windows or short duration are imposed.In addition, in many cases the number of available vehicles is supposed to be limited, and there may be multi-depots so that vehicles may be replenished along their trips.When the vehicle capacity is small or when the planning period is large, replenishment may be the only practical solution.In urban areas, where travel times are rather small, is often the case that after performing short tours vehicles are reloaded and reused.
In recent years, there has been an increasing interest towards so-called "rich" VRP models.For example, Pisinger and Ropke (2007) demonstrated that all problem variants, including VRPTW, CVRP, MDVRP, SDVRP and OVRP, could be transformed into a rich pickup and delivery model and solved in the adaptive neighborhood search (ALNS) framework and the implementations were discussed by Ropke and Pisinger (2006).Considering the important issues arising in real-world applications, there is not an efficient generalized model dealing with replenishment in the rich VRP cases for the time being.
In this paper, we describe a novel formulation for the generalized multi-depot vehicle routing problem with replenishment and multiple vehicles, and so generate new and interesting families of optimization problems.The next section lists some relevant literatures.The problem definition and mathematical formulation are discussed in section 3, followed by the experimental analysis using a new-generation solver in section 4. Finally, conclusions and future work are considered in section 5.

Relevant Literatures
Some research has focused on the specific and simplified versions of VRP with multiple trips.Azi et al. (2007Azi et al. ( , 2010Azi et al. ( , 2012) ) considered a variant of the VRPTW where each vehicle could perform several routes during its workday.This series of problems are inspired by the home delivery of perishable goods, where routes are of short duration, i.e. the last customer in each route must be served within a given time limit from the route start time.To avoid the high costs associated with the management of a large fleet, a solution is to reuse each vehicle and to allow it to perform multiple delivery routes over the horizon.Azi et al. (2007) considered the identical vehicles and proposed a method based on an elementary shortest path algorithm.Azi et al. (2010) studied a heterogeneous fleet of vehicles.Azi et al. (2012) considered the dynamic case where new customer requests occurred dynamically.They showed the benefits of allowing multiple routes and accounting for future customer requests when deciding the acceptance of a new request.
The vehicle routing problem with multiple uses of vehicles (VRPM) has been addressed through various heuristic means.Fleischmann (1990) proposed a heuristic based on the savings principle for route construction combined with a bin packing procedure for the assignment of routes to vehicles.Taillard et al. (1996) also used the bin packing procedure to assign routes to vehicles and developed an adaptive tabu search heuristic.Other heuristics have also been designed for VRPM, Battarra et al. (2009) proposed an iterative solution approach based on the decomposition method, Olivera and Viera (2007) described a heuristic based on the adaptive memory procedure, Salhi and Petch (2007) addressed a hybrid genetic algorithm using a new non-binary chromosome representation, Lin and Kwok (2006), meanwhile, considered the location of depots and applied metaheuristics of tabu search and simulated annealing, Petch and Salhi (2003) used a multi-phase constructive heuristic, Brandao and Mercer (1998) designed a genetic algorithm, Brandão and Mercer (1997) described a novel tabu search heuristic, Cattaruzza et al. (2012) proposed a hybrid genetic algorithm.All of these problems are solved using heuristic approaches.To the best of our knowledge, only Azi et al. (2010) and Mingozzi et al. (2013) adopted the exact algorithm.Azi et al. (2010) introduced a branch-and-price approach where lower bounds were computed by solving the linear relaxation of a set packing formulation.They were able to routinely solve instances with 25 customers and a few instances with up to 50 customers.Mingozzi et al. (2013) described two set-partitioning-like formulations for the VRPM and studied valid lower bounds based on the linear relaxations.Computational results showed that their proposed exact algorithm could solve instances with up to 120 customers.However, the rich constraints which real-life applications often encountered were not well reflected.
A few literatures also focus on the multi-depot VRPM case.Crevier et al. (2007) studied the Multi-Depot Vehicle Routing Problem with Inter-Depot Routes (MDVRPI) in which vehicles might be replenished at intermediate depots along their route.They proposed a heuristic combining the adaptive memory principle, a tabu search method for the solution of sub problems, and integer programming.Sevilla and de Blas (2003) presented a heuristic algorithm based on neuronal networks and ant colony system.Angelelli and Grazia Speranza (2002) studied the periodic vehicle routing problem with intermediate facilities (PVRP-IF) where the vehicles might renew their capacity at some intermediate facilities.They proposed a tabu search algorithm and extended this method to the waste collection problems, which were the realistic applications.
Collection of waste is part of reverse logistics operations dealing with the flow from the customers to recycling or disposal facilities.The waste collection problem consists of routing vehicles to collect customers waste within given time window while minimizing travel cost.The waste collection vehicle routing problem with time windows (WCVRPTW) concerns with finding cost optimal routes for garbage trucks such that all garbage bins are emptied and the waste is driven to disposal sites while respecting customer time windows.WCVRPTW differs from the traditional VRPTW by that the waste collection vehicles must empty their load at disposal sites and drivers are given the breaks that the law requires.Multiple trips to disposal sites are allowed for the vehicles.
The WCVRPTW has received some attention in recent years.Tung and Pinnoi (2000) considered only one disposal site and formulated the problem into a mixed-integer program, where they modified Solomon's insertion algorithm (Solomon, 1987) and applied it to a waste collection problem in Hanoi, Vietnam.Kim et al. (2006) focused on the commercial waste collection problem with consideration of multiple disposal trips and drivers' lunch breaks.They extended Solomon's well-known insertion approach and a capacitated clustering-based algorithm to improve the route compactness and workload balancing.Ombuki-Berman et al. (2007) studied the same problem using a multi-objective genetic algorithm.Benjamin and Beasley (2010) produced better quality solutions for publicly available waste collection problems using combination of tabu search and variable neighborhood search.Buhrkal et al. (2012) studied the WCVRPTW and gave a linear programming formulation.They proposed an ALNS algorithm and tested it on a set of instances from literature as well as on instances provided by a Danish garbage collection company.Only this paper has a detailed formulation (they didn't solve it), but since each of the disposal sites may be visited more than once, so the decision variable which represents the start time of service at node by vehicle k may be improper.Moreover, none of an exact algorithm is proposed for this problem, which inspires us to establish a generalized formulation for this category of problem.

Why we choose LocalSolver
Current integer or constraint programming solvers are mainly based on Tree Search (branch-and-bound, branch-and-cut, branch-cut-price).Tree-search techniques consist in exploring the solution space by recursively instantiating variables composing a solution vector.Running in exponential time, the main drawback is to be limited to small and medium-scale problems.Moreover, if not terminating, tree search offers no more guarantee on the solution quality than any heuristic approach.
In contrast, Local Search consists in applying iteratively some local changes, called moves, to a solution to improve the objective function.LocalSolver is such a math programming solver that primal feasible solutions are computed by pure & direct local-search techniques (Benoist et al., 2011).Relying on local search, LocalSolver is able to scale up to 10 million binary decision variables.
For ultra-large real-life combinatorial problems, especially highly nonlinear 0-1 models, LocalSolver will provide high-quality solutions in very short running times without any tuning.The perfect performance is easily shown on car sequencing, nurse rostering, job shop scheduling and quadratic assignment.Many real-life VRP involves thousands of 0-1 decisions variables, which are out of tree search scope.Considering the considerable complexity of proposed problem, to produce a high quality solution in a short time, LocalSolver is no doubt a better choice, compared with tree search techniques.
Readers can refer to http://www.localsolver.com/for more information.

Problem Description
This problem is inspired from a real-life VRP related to manufacturing enterprise requirements.This is only for daily vehicle routing optimization.There are several warehouses, which can provide multiple product types and several vehicles with different capacity.Each vehicle parks at one warehouse at the beginning of the day, and rest at the specified warehouse (maybe another one) at the end of day.At the beginning of the day, each warehouse updates its available product inventory and the customer orders are collected.Every vehicle needs to refill at the warehouse, then visit customers for unloading.Refill (at warehouses) and unloading (at customers) requires some time, which is equal to refill/unload quantity * refill/unload speed.Some customers require that only selected vehicles can serve.By default, any vehicle can visit any customer.Each customer needs only one type of product, which can be satisfied by several warehouses that store this product.Moreover, vehicles are allowed and encouraged to re-use, i.e., make multiple trips to warehouse and customers.The overall goal is to maximize the number of customers whose demands are satisfied and minimize the traveling cost (weighted distance).
First, we give the generalized graph representation.This problem is defined on a directed graph , where the set of nodes , where and are the earliest and latest time, respectively, to start the service.Thus, a vehicle has to wait if it arrives at node before .Each node ∈ also has a lunch time , , during which the service (loading or unloading) cannot be proceeded.Each service or dwell time consists of preparation time and corresponding refill/unloading time.With each arc , ∈ is associated a distance .We define as the demand of a customer ∈ .We also have a set of vehicles to deliver goods from the warehouse to customers.It is assumed that each vehicle ∈ has an associated capacity .The duration of each route is limited by forcing the last customer to be served within time units of the route start time.
The objective is threefold, including maximize the number of customers served, minimize the weighted travel distance and maximize the loading rate, while satisfying the time window of each nodes and loading capacity and time duration of each vehicle.

Formulation
Some notations, which will be used in the following sections are listed in Table 1.In this Table , "Nodes" is the common properties of "Customers" and "Warehouses", which means that the customers are put before the warehouses and the first number 0 is reserved, the reason of which will be explained later.
We will give a simple example before the model establishment.Distribution with replenishment is very common in daily transport, especially in perishable goods transportation, where the duration of each trip is very short.So the vehicles need to be replenished at the nearest warehouse to continue serving customers during its work shift.A "trip" is the path starts and ends at two warehouses (whether they are the same or not).The set of all trips assigned to a vehicle is called a "route" whose total duration cannot exceed a preset value .For a system with 2 warehouses and 5 customers, the route of one vehicle may be: This vehicle is replenished twice, first at W1 and then at W2.

Decision variables
In the basic VRP and VRPTW, we often define the binary variable 1 for , ∈ , ∈ iff vehicle drives directly from node to node .However, this definition seems hard to represent our problem, for some nodes (warehouses) may be visited more than once.
The modeling techniques in the basic MDVRP and VRPM seem difficult to formulate this problem.For the former, the depot a vehicle starts from and returns to is fixed and known.By introducing the decision variable , which means that vehicle based at depot travels from node to node , the MDVRP model is easily obtained.While considering our problem from another point of view, as long as a vehicle arrives at a warehouse to be replenished, then it starts a new trip and travels to another warehouse.The trip between any two warehouses can be viewed as the so-called inter-routes.But we don't know exactly the start terminal and end terminal of the vehicle serving this trip.So both the distance and loading time are unknown.
For the latter, we define , which means vehicle travels from node to node on its trip .We don't know exactly how many trips a vehicle can travel per work shift.Meanwhile, the second trip is closely related to its predecessor: the start warehouse and start time both depend on the first one.But it is difficult to represent this relationship by this definition.
Confronted with these difficulties, we try to establish the model with replenishment from a new perspective.We define for each vehicle a route made of a predefined number of sequences (can be interpreted as positions).Each such sequence is assigned a node number.The sequences with index 0 code for "no visit", with indices from 1 to | | code for the visit to this customer and with indices from | | 1 to | | | | code for the visit to a warehouse.Suppose that the maximal number of nodes a vehicle can visit per day is s.The maximal value 2| |, i.e., in extreme cases there is just one customer on each trip.In computation, we often set Binary variable 1, ∀ ∈ , ∀ ∈ , 0,1, ⋯ , iff node i is assigned on sequence n of vehicle k.The vehicle-customer constraint (some customers require that only selected vehicles can serve) and start/end terminal constraint (for each vehicle, start terminal is the warehouse this vehicle starts from at the beginning of the day, end terminal is the warehouse this vehicle returns to at the end of the day) can be both expressed by the definition of easily (Tab.2).

Table 2 Definition of decision variables
This relationship can be simply represented by the "if-else" expression.Boolean decision variables are declared using the operator bool."==" defines a boolean expression which takes value of 0 and 1, as in logic algebra.Note that if we relax the last value when ∀ ∈ , ∀ ∈ , from to bool, then it results as the so called OVRP.

Intermediate variables
Intermediate variables, also called modeling expressions, can be declared using the mathematical operators, such as Decisional, Arithmetic, Logical, Relational and Conditional in LocalSolver.They will help represent constraint conditions and objective functions.means the node assigned to vehicle k on sequence n, denotes as the location of vehicle k on sequence n (because a sequence can be empty so the location is the previous actually assigned).Using the ternary operator ?: as in programming language such as C++, Java, etc., we have min , , 0,1, , Boolean expression signifies whether there is a node assigned on sequence n of vehicle k.
In LocalSolver, we can get the value of an array by the index of an expression.Using this feature, if we want to know the time windows or demand of the node assigned to vehicle k on sequence n, we can simply get the value of corresponding array by index of , for example .

Data Reprocessing
Due to the integration of warehouses and customers as nodes, we need to reprocess the input data before the definition of objective functions and constraint conditions.
From (1), if 0, then 0 whether the value of is 1 or not.In other words, the value of has nothing to do with if current node is 0 0 .Thus we reserve 0 in the element of set and arrange customers and warehouses from index 1.This is the reason why the definition of "sequences" says that index 0 codes for "no visit".
Then we integrate quantity demand, preparation time and time windows.If all the nodes (customers and warehouses) have this attributes, we take the corresponding values; otherwise we fill it with 0. For example, the vector of demand 0, , , ⋯ , | | , 0,0, ⋯ ,0 and the vector of preparation time 0 is the set of warehouses that stores the product that customer i needs.Its value can be obtained simply by comparison in a loop.

Objective Functions (1) Maximize number of customers served
For a distribution system with limited resources, we want to maximize the number of customers served.As denoted in the table, every customer has a priority which takes integer values.The bigger the value, the more urgent the demand is.So want to arrange the customers with higher value of to be served with greater priority.Thus the first objective function usually is 0 max If all customers have the same priority, i.e., 1, ∀ ∈ , formula (3) is equivalent to maximize the number of customers served.
(2) Minimize total travel distance Since in LocalSolver we can use an expression as the index of an array, we need to transform the distance matrix to a one-dimensional array D. The following formula (4) may be an alternative method.Define as the distance between two adjacent nodes assigned on sequence n and on sequence n-1 of vehicle k.
By the introduction of , the total travel distance can be expressed easily.
(3) Maximize loading rate Actually, we should have needed to define a series of decision variables to describe the quantity of product a vehicle refills at a warehouse, which are continuous and highly rely on the subsequent customers this vehicle will serve.In the example introduced in section 3.2, the vehicle needs to pick up 16 at W1, just equal to the sum of demands of C2, C5 and C1.If we don't know which customers this vehicle will serve in advance, the quantity of replenishment is difficult to determine.If these decision variables defined, the optimization maybe time consuming.For simplicity, we assume that as soon as a vehicle arrives at a warehouse, refill to its whole capacity.Such simplification may lead to a suboptimal solution, but it is worth doing because the complexity is lowering down.We just need to adjust the solution (such as change the loading time) a bit in the output.
Back to this example, if the capacity of this vehicle is 20, we suppose that it is replenished to 20 both at W1 and W2.After optimization, we know that when it leaves W1, it serves C2, C5 and C1, so we change the replenishment quantity to 16.Through such simplification, when a vehicle arrives at a warehouse to be replenished, it maybe not empty, which leads to a low loading rate.In other words, to improve the loading rate, we need to minimize the loading before replenishment.
Define _ , _ , _ as the loading of vehicle k before arriving at sequence n (we ignore if this node is a customer since we only want to minimize the quantity before replenishment), changes at sequence n and leaving sequence n, respectively.Here "change" means the variation of the loading of the vehicle._ ( )? : Their initial values are ignored.Customers' demands are changed to their opposite numbers.Boolean expression | | is to determine whether the node on sequence n of vehicle k is a warehouse or not.With these intermediate expressions, to maximize the loading rate, we need to minimize

4) Minimize number of vehicles used
If any customer appears on the sequence (except the first and the last one, which are the terminals), the vehicle is used.We can represent this relationship by the logical OR operator.
If expression is equal to 1, then vehicle k is used.Then Eq. ( 12) is the objective that minimize the number of vehicles used. (

5) Minimize total cost
For each vehicle, the total cost consists of the fixed cost when this vehicle is used and the weighted travel cost.

) Minimize number of replenishment
Finally, on the premise of maximizing the customers served, we want to minimize the number of replenishment.This is done by simply the minimization of the sum of .
In LocalSolver, if multiple objectives are defined, they are interpreted as a lexicographic objective function.The lexicographic ordering is induced by the order in which objectives are declared.The objective that is defined earlier has a higher priority.

Relevant Constraints (1) Internal Constraint
Each customer is served more than once No more than one node per vehicle per sequence.
As mentioned above, | | is the number of customers, if | | is true, the current node is a warehouse, otherwise a customer.In the following algorithm (Tab.3), we construct an array compatible to transform the warehouse-customer relationship to a one-dimensional array.For the case with 5 customers and 2 warehouses, compatible has 2 5 2 14 elements.If the values of the first 7 elements are 1, it means that the corresponding node could be served by the first warehouse.So do the second 7 elements.The construction method can be described as follows: Compatible is an array takes value of 0 and 1.From section 3.1, each customer needs only one type of product, which can be satisfied by several warehouses that store this product.So when a vehicle is reloaded one certain type of product at a warehouse, it can then only serve those customers that need this product, we rename this constraint as the so-called "warehouse-customer constraint".To achieve this goal, we constraint that the value of compatible with index (

3) Vehicle Capacity Constraint
Any time the loading quantity of the vehicle should be greater than 0.
No stock out is allowed in the warehouses. (

5) Time Windows Constraint
Each node ∈ is associated a time window , and lunch time , .Thus, a vehicle has to wait if it arrives at before .And the service must finish before and cannot span over , .So if the service is not able to be finished before , the time to start the service is put off to .
For sequence on vehicle , is the preparation time, is the refill/unload time, denotes as whether the service can be finished before the lunch time or not, and are the corresponding time to start the service and end the service, respectively.
1? : 0 The nonlinearity is shown in Eq. ( 22).Refill speed depends on the warehouses, while unload speed depends on the vehicles.So the ternary operator ?: appears in the denominator.In Eq. ( 23), is the travel time between the nodes assign to sequence n and n-1 of vehicle k.Its value can be determined by the array D which is defined in Eq. ( 4) and the speed of vehicle k.Eqs.(21-27) are series of definition.( 28) is the constraint to ensure the service ends before the time window is closed.

(6) Maximal Duration Constraint
The duration of a route is the time interval between the start time at the first node and the end time at the last node.
The driving time of a vehicle is the sum of all traveling time between two adjacent nodes.
We constraint that a vehicle cannot travel directly from a warehouse to another warehouse, providing that stock out never happens.The following two constraints reduce the solution space.

Real-life VRP
In this section, we give an example which is inspired from a real-life VRP.This example has 3 warehouses, 4 heterogeneous vehicles and 25 customers.At the beginning of the day, the customers' orders are collected (including ones that were unmet the day before).Each vehicle starts from the specific warehouse, serves customers and returns to the given warehouse when its total duration is reached, or the time window of its end terminal will "close".This example has many constraints, to the best of our knowledge, in the static VRP scope no paper has solved such a complex problem.But in LocalSolver, it is a quite easy issue.Given the unit of time in minutes (min) and distance in kilometers (km), we have ,24,25,26,27,28 , 26, 26, 26,27,28 , 28 480, 420,480, ⋯ ,480,360,300,360,300 .Notes: the empty cells in the columns of "Lunch time" refer to "no lunch is required", while in the columns of "Vehicles only" refer to "all vehicles can serve".
Take (3), ( 12), ( 6), ( 10) and ( 14) as the five objective functions, whose priorities decrease in order.Set the time limit of each objective to 10 seconds, the statistical result of the 4 vehicles are: However the last time V3 should return is 19:00.
Actually, the time when V3 arrives at C1 is 20:07, while the time window of C1 is 08:00-17:00.So anyway, the demand of C1 cannot be satisfied.
The advantage of using LocalSolver is that a good solution can be obtained in a very short time, even if the constraint conditions are very complex.

VRPTW with replenishment
A large number of approaches, including exact algorithms and metaheuristics, have been proposed for solving the VRPTW.Most of these methods were applied to the Solomon benchmark problems.This data set contains 56 instances, each of which has 100 customers and a single depot and a homogeneous fleet of vehicles.Most of the proposed algorithms use vehicle minimization as primary objective and travel distance minimization as secondary objective.But to the best of our knowledge, few articles consider the multiple use of vehicles.
To verify the efficiency of our formulation, we halve the vehicles' capacity.Hence the number of customers on a single trip a vehicle can serve is limited.As a consequence, vehicles have to return to the depot to be replenished and continue distribution.We just take the first two instances i.e., C101 and C102, as examples.C101 needs 12 vehicles, while C102 still needs 10 vehicles.The total travel distances are 2017.633and 1984.97,respectively.
The number "0" in the route is marked as bold to represent the replenishment.As an example, we find that "V5" of C102 is replenished two times, the start time to service each node is listed in the brackets to show the feasibility.In these studies, each customer is visited by a vehicle based at one of these depots.To the best of our knowledge, few papers consider the cases that vehicles can perform multiple trips, let alone be replenished in other depots.Jordan et al. (1984Jordan et al. ( , 1987) ) assumed that customer demands were all equal to vehicles' capacity and that vehicles might travel back-and-forth between two depots.Angelelli and Grazia Speranza ( 2002) and Crevier et al. (2007) studied the MDVRP with intermediate facilities and inter-depot routes, respectively, as already introduced in section 2. But they ignored the time windows constraints.
To test the performance of our formulation in the multiple depot case, we construct two instances based on Cordeau et al. (1997) available on website http://www.bernabe.dorronsoro.es/vrp/.
The capacity of each vehicle are divided by 2.5 to make a trip much "shorter".The results are shown below.The characteristic of MDVRP is that each customer is visited by a vehicle based at one depot and each route starts and ends at the same depot.If we allow a vehicle to be reused during its work shift, then replenished at its "own" depot maybe suboptimal.Take V4 of Pr02 as an example.This vehicle starts from W , but is also replenished at W .
The comparison with the solution of the original data is listed in Tab. 9. Since the vehicle capacities are not the same, there is little comparability in fact.The results just show that we can also ensure the feasibility even though vehicles carry much less per trip.

Optimality Test
LocalSolver searches a better solution with heuristic moves, to test the optimality, we examine a set of benchmark instances for VRP with replenishment.Crevier et al. (2007) studied the MDVRPI where the route of a vehicle could be composed of multiple stops at intermediate depots in order for the vehicle to be replenished.They developed a heuristic and designed a set of benchmark instances for this problem.This set contains 12 randomly generated instances.Each instance has multiple depots, a fleet of homogeneous vehicles and several customers whose demands must be satisfied.The coordinates of the central depot, the one each vehicle starts from and ends at, are set equal to the average coordinates of the other depots.Furthermore, the refill time at the depot and the unload time at customers are proportional to the corresponding quantity of goods.The duration to serve each node is the sum of preparation time and refill/unload time.Each vehicle has an associated capacity and maximum duration.They assumed that each customer can be visited by any vehicle and none of the nodes have time windows constraints and lunch time constraints, which are much easier than ours.In our test, the time limit for each objective function is 15 seconds.The results obtained by LocalSolver as well as those by Crevier et al. (2007) are listed in Table 10.

Conclusions
There are several variant types of VRP.The open multi-depot heterogeneous vehicle routing problem with time windows in which vehicles may be replenished along their trips, which combines the MDVRP, VRPTW, OVRP and VRPM has not been addressed in the literature.In this paper, using the modeling features in LocalSolver, we construct a novel formulation considering a rich series of constraint conditions and objective functions.Computation results show that the mathematical model performed effectively in real-world applications.
Further, the formulation can be applied successfully without much modification to other variant VRPs with replenishment, such as VRPTW and MDVRPTW, while those problems imposing replenishment are mostly solved in metaheuristic methodology in literature.Comparative results demonstrate that the proposed formulation can also get a good solution in a very short time.
In future work, we could focus on developing efficient heuristic for solving the generalized VRP with replenishment and multiple trips, and integrate it in decision support system.

Table 3
Procedures to generate the compatible array

Table 4
Data of warehouses

Table 5
Data of vehicles

Table 6
Data of customers

Table 7
Route information

Table 8
Route details Cordeau et al. (1997)1)wherethere are multiple depots.It aims at designing a set of minimum cost routes for a vehicle fleet serving many customers with known demands and predefined time windows.Each vehicle departs from a depot to visit customers, follow its route and finally returns to the depot where it starts.The cost of a solution is defined as the total distance traveled by the vehicles.Lots of literatures studied variants for MDVRP.Xu et al. (2012)studied the multi depot heterogeneous vehicle routing problem with time windows, using a modified variable neighborhood search (VNS) algorithm.Kuo and Wang (2012)proposed a VNS heuristic for the MDVRP with loading cost.Gulczynski et al. (2011)developed an integer programming-based heuristic for the multi-depot split delivery vehicle routing problem.Wu et al. (2002)combined the location-allocation problem, where several unrealistic assumptions, such as homogeneous fleet type and unlimited number of available vehicles were relaxed.Cordeau et al. (1997)proposed a tabu search heuristic capable of solving periodic and MDVRP.

Table 10
Crevier (2007)ultsr: number of depots; n: number of customer; m: number of vehicles; D: maximum duration; Q: capacity of a vehicle It seems that our solution is somewhat poorer in solution quality.The reason maybe that the algorithm inCrevier (2007)is problem-characteristic, while ours is just a generalized method.LocalSolver can get a not bad solution in nearly one second for all these instances, which make it more suitable to put into practical use.No matter how the input changes, we needn't make much modifications, for almost all variants of VRP.