Variable neighborhood search algorithm for the green vehicle routing problem

Article history: Received February 13 2017 Received in Revised Format April 1 2017 Accepted June 16 2017 Available online June 16 2017 This article discusses the ecological vehicle routing problem with a stop at a refueling station titled Green-Vehicle Routing Problem. In this problem, the refueling stations and the limit of fuel tank capacity are considered for the construction of a tour. We propose a variable neighborhood search to solve the problem. We tested and compared the performance of our algorithm intensively on datasets existing in the literature. © 2018 Growing Science Ltd. All rights reserved


Introduction
Transportation is one of the most important aspects of logistics and basic infrastructure for the economic growth.However, it was considered one among the huge consumers of petroleum and represents a large portion of overall pollutants.Many logistic companies have already started to establish green logistic projects to reduce CO2 emissions.The green vehicle routing problem (G-VRP) is characterized by examining the environmental areas and the costs estimated to implement effective routes to respond to environmental and financial concerns.Travel costs are given by two physical quantities considered to be representative of the ecological imprint: reducing greenhouse gas emissions (CO2) and energy savings (fossil energy, renewable energy...).The G-VRP deals with models aiming at minimizing fuel consumption.It was introduced by Erdogan et al. (2012) who examined the possibility of recharging a vehicle fuel within a fixed refueling time and without capacity constraints or time window restrictions.The authors presented two solution heuristics to solve the problem namely a modified Clarke and Wright savings algorithm (MCWS) that handles infeasible routes by inserting alternative fuel stations (AFS) using a savings criterion and removing redundant AFSs by merging the routes and a density-based clustering algorithm (DBCA) which is a cluster-first and route-second approach.
The vehicle routing problem with intermediate stops (VRPIS) was introduced by Schneider et al. (2015) where intermediate facilities are visited depending on the fuel and/or the load level of a delivery vehicle.The authors developed an adaptive variable neighborhood search (AVNS) to deal with this problem.Two problems were considered as special cases of VRPIS namely the GVRP and the electric VRP with recharging facilities (EVRPRF).Schneider et al. (2014) proposed a variable neighborhood search (VNS) with a tabu search (TS) to solve the electric vehicle routing problem with time windows and recharging stations (E-VRPTW).The VNS/TS algorithm was able to improve the results of Erdogan et al. (2012).Bruglieria et al. (2015) proposed a mixed formulation of linear integer programming of electric vehicle routing problem with time windows, which assumes that the level of recharging the battery of the vehicle at each station is a decision variable to ensure more flexible tours.The objective function was to minimize the total distance, waiting times and the number of electric vehicles.
A multi-space sampling heuristic (MSH) for the GVRP was developed recently by Montoya et al. (2016).The algorithm alternates between two phases: sampling and assembling.During the sampling phase, sampled TSP tours are built first and feasible solutions are extracted second by solving a set partitioning formulation.The assembling procedure is used a set partitioning model to assemble sampled routes in the sampling phase.Experimental results show that MSH reported 8 new best known solutions (BKSs) among 52 ones and give competitive results with respect to MCWS/ DBCA, VNS/TS, AVNS.
In addition to the studies mentioned above, several models for fuel consumption and emissions of greenhouse gases in the road freight transport have been analyzed in the work of Demir et al. (2011).More specifically, the authors compared six models and evaluated their respective strengths and weaknesses.These models indicate that fuel consumption depends on a number of factors that can be grouped into four categories: vehicle, driver, environment and traffic.Among the extensions of the G-VRP which aims to reduce CO2 emissions, we cite for example the pollution routing problem (PRP) which is based on the global model of emissions with less pollution, especially reducing CO2 emissions.This has been proposed by Bektas et al. (2011).They developed a global objective function that includes the minimization of the cost of CO2 emissions and operating costs for drivers and fuel consumption.In estimating pollution, factors such as speed, load and time windows are considered.Several extensions that extend the PRP problem have been introduced after (Franceschetti et al., 2013;Demir et al., 2014).
In our work, we study the G-VRP modeled to help organizations with alternative fuel-powered vehicle fleets (AFV) to overcome the difficulties that exist as a result of the limited refueling infrastructure.Consequently, the objective is to minimize the total distance to serve a set of customers by integrating AFS nodes at each route in order to eliminate the risk of running out of fuel.We develop a variable neighborhood search (VNS) which combines a successful local search, namely a sequential variable neighborhood descent (Seq-VND) with effective neighborhood structures used in the shaking process.The algorithm is implemented and tested on instances of GVRP studied in the literature.
The remainder of this paper is organized as follows: In section 2, we detail the definition of the problem.Section 3 presents the different steps within the VNS algorithm.A presentation of our computational results is provided in Section 4. Finally, we conclude the paper with section 5.

Problem definition
Green-VRP is defined by an undirected graph G = (V, E), where the set of nodes V consists of the set of customers I = { , , ..., }, the depot , a set of AFS nodes F = { , , ..., } where s ≥ 0 and a set of fictitious nodes Φ = { , , ..., }, s ≥ 0, one for each potential visit of a station or depot.Each refueling station ∈ F is associated with a set of fictitious nodes , with f ∈ {0, ..., n + s}.The number corresponds to the number of times the node can be visited.The set of nodes V = { } ∪ I ∪ F ∪ Φ = { , , , ..., }, |V | = n + s + + 1.It is assumed that in addition to alternative fuel stations, the depot can be used as a refueling station and all refueling stations have unlimited capacity.The set E = {( , ) : , ∈ V, i < j} corresponds to edges connecting nodes of V .Each edge ( , ) is associated with a cost , distance and a travel time .The problem involves designing a set of vehicle routes, each one starting and ending at the depot with visiting a subset of nodes containing AFSs when necessary such that the total distance traveled is minimized, the depot must be visited at the beginning and the end of each route and can be used as a refueling station if desired.Moreover, each AFS can be visited more than once or not at all.Furthermore, each customer should be visited exactly once.The travel speeds are assumed to be constant over a link.It is assumed that the tank is filled to capacity when refueling is performed.The main constraints corresponding to the GVRP are as follows: a tour is built such that each customer node has exactly one successor: a customer, a station or a depot and each station as well as the fictitious node associated to it have at most one successor node: a customer, a station or a depot, -at most m vehicles are routed out of the depot and at most m vehicles return to the depot in a given day, -each tour is completed by a maximal time , -the fuel level is limited to Q when vehicles arrive to depot or at refueling station.
The reader can see (Erdogan et al., 2012) for more details about the mathematical formulation and different constraints of the G-VRP.Mladenovic et al. (1997) introduced a simple but powerful metaheuristic called Variable Neighborhood Search (VNS) based on the principle of systematic change of neighborhood.Since then, several variants of VNS were developed to solve combinatorial optimization problems such as location-routing problem (Fagerholt et al., 2010).Two main features characterize the VNS algorithm specifically a perturbation (or shaking) phase (diversification) and a local search phase (intensification).The VNS algorithm was conceived to explore the solution space by successively applying the two phases to the current solution (Hansen et al., 2010).

Variable neighborhood Search for the G-VRP
In this paper, we propose a general VNS (GVNS) (see algorithm 1 based on a variable neighborhood descent (VND)) as a local search phase.We observe that the tours tend to be complex and intertwined because the refueling of vehicles and customers visits should be programmed to respect the maximum length of tours and the level of fuel remaining in the tank.To overcome these constraints, we define a set of different neighborhood structures within the solution space according to the different moves of customers and refueling stations.

Solution representation and Neighborhood structures
We use the following notations to better explain one solution of the GVRP and the neighborhood structures used in our algorithm.Given a solution , let m be the number of the used vehicles, I be the number of the visited customers, F be the number of the visited refueling stations and R = I ∪ F be the total number of visited nodes in the solution.More precisely, a solution = ( , ..., ) of our problem is presented by a sequence of m routes where each route = ( , ..., ) represents the set of N ( ) nodes visited by the vehicle .Each element corresponds to the kth node visited by vehicle .N ( ) = ( ( ) ∪ ( )) where ( ), ( ) are the sets of customers and refueling stations visited by the vehicle respectively.
Consider the case of a G-VRP with two refueling stations and seven customers.Fig. 1 illustrates an example of a G-VRP solution.The refueling station 8 is visited while visiting the customers1, 2 and 3 in the route whereas the refueling station 9 is not visited.In the sequel, we briefly describe the different neighborhood structures we have used in our VNS algorithm.

Customer neighborhoods
a. Shift move of a customer neighborhood ( ): A neighbor of a solution is obtained by removing a customer from its position and inserting it in a different position, within the same route or in another route.It corresponds to a shift move of a customer.c.Crossing neighborhood ( ): A neighbor of a solution is obtained by taking two nodes having the minimum Euclidean distance belonging to two different routes chosen at random, called breakpoints, then combining the two parts one that ends with the first cut-off point with the other starting from the second cut-off point and the remaining two parts together.

Evaluation function
We allow our VNS algorithm to visit infeasible solutions that exceed the limit time for each route or that exceed the fuel tank capacity.Given a solution S, let m be the number of routes and N ( ), ∈ {1, ..., m} be the number of visited nodes in a given route v in the solution S. Let f ( ) be the evaluation function of a solution , f ( ) is defined as follows: f ( ) = C ) + ( ) + ( ) such that C ( ) represents the total distance of the G-VRP solution, (S) is a penalty on the violation of the limit time constraints and (S) represents a penalty on the violation of the fuel tank capacity constraints.More precisely, ( ) and ( ) are formulated as follows: where and are the total time and the total used fuel at node k of a given route in the solution , respectively.
is the duration limit of each route, Q is the fuel tank capacity of the vehicle and the parameters α and β are constant factors that present the degree of considered penalties.

Local search phase
In our work, we implement a local search corresponding to a variable neighborhood descent algorithm (VND) algorithm (Hansen et al. 2006).VND is the multi-neighborhood version of the simple local search, where the neighborhoods ,i∈{1, ..., 6} are used sequentially to improve the current solution.More precisely, we start the VND algorithm by generating an initial solution S at random, this solution will be improved sequentially by applying the first neighborhood , and so forth we proceed in the same way with the other neighborhoods (see Algorithm 3) .The VND algorithm stops when no more improvement is possible.

Shaking phase
After a local search phase, a shaking phase will be performed.Neighborhoods ,k∈{7,8,9} are used to perturb a local optimum reached in the local search.Indeed, we perturb the current solution at each iteration by choosing randomly one of the three neighborhood structures according to a probability Pr( ), i ∈ {7, 8, 9}.The steps of the shaking phase are summarized in the algorithm 4.

VNS algorithm
Our VNS approach mainly involves the three steps of the GVNS as already described in algorithm 1: initialization, shaking, VND local search.More precisely, we begin the algorithm by initializing a solution S randomly and the set of neighborhoods , k ∈ {1, ..., 9} .Then a solution is obtained by applying the VND described in section 3.3.After that, we apply the shaking phase as described in section 3.4 to reach a solution .If f ( ) < f ( ), the solution S is updated and the shaking is repeated, k = 1.If there is no improvement, k = k + 1, return to the VND, and the process continues.The whole procedure of the VNS algorithm is repeated until the stopping condition is met.In our VNS, we use a maximal time, as a stopping condition.The pseudocode of our VNS algorithm for solving the GVRP is given in Algorithm 5 below.

Computational results
Our algorithm was implemented in C ++ and runs with an Intel (R) Core (TM) i5-4460 CPU, 3.20GHz.We test our algorithm on two sets of instances mentioned in the literature (Erdogan et al., 2012).The first set includes 40 instances of small size with 20 customers and the second one contains 12 instances with up to 500 customers.For the shaking phase, the probability of choosing one of the neighborhoods , and are Pr( ) = 0.75, Pr( ) = 0.50 and Pr( ) = 0, 25 respectively.The VNS algorithm was run 10 times for each of the small instances and a single run for large instances.Its termination condition corresponds to a time limit = 50 * n seconds where n is the number of customers.We fix = 2 in the shaking phase by means of a parameter adjustment work.Within the scope of our work, we force our algorithm to visit feasible solutions by fixing large values for the parameters α and β, α = β = 1000.
In this section, a computational study is carried out to compare our approach with best known solutions.According to the computational experiments, our algorithm is competitive with best results mentioned in the literature for small and large instances of G-VRP.Table 1 reports the computational results on the small set of Green-VRP instances and Table 2 reports the best results on large instances of G-VRP.The first column reports the instance name.The best known results in the literature are presented in the column BKS.The remainder of the columns report the results obtained with MCWS/DBCA, VNS/TS, AVNS and MSH.As for the MSH, the authors have conducting results for three different values of iterations in the sampling phase namely: 1000, 5000 and 10000.We compare our results to those given by the best one MSH(10000).We denote by f the best result obtained during the 10 runs, n the number of visited customers in the solution, m the number of used vehicles, gap the average deviation relative to the best known solution and t the running time in minutes.Avg.gap (%) and Avg.time (%) represent the average gap above BKS and the average computational time in minutes respectively.The improved values of f are underlined.When compared with the results provided in the literature, VNS provides the best solution value for all instances within less time for small instances.It is also mentioned that, we are able to reduce the number of used vehicles for one instance.

Table 1
Results on small instances of G-VRP Table 2 provides a comparison between DBCA/MCWS heuristics, VNS/TS, AVNS, MSH and our algorithm.In the case of large instances, our proposed approach perform better results than those provided in the literature for 11 instances among 12 with respect to the solution quality especially our VNS algorithm significantly outperforms DBCA/MCWS algorithms.

Conclusion
This work has solved the G-VRP involving the problem of when and where to refuel or recharge the vehicle in order to minimize the cost of the total energy.We have proposed a variable neighborhood search metaheuristic based on a sequential VND algorithm as the local search.The computational results show that our proposed approach provides competitive results with those existing in the literature.Our VNS achieves the best known solutions for all the small and large G-VRP instances and improve results with respect to the solution quality.

Fig. 1 .
Fig. 1.An example of G-VRP solution representation Specifically, a neighborhood is built by modifying certain elements of a given solution to create a new neighboring solution.However, a local optimal solution in a neighborhood structure is not necessary a local optimum in another neighborhood structure.For this reason, the use of several adjacent structures help to guide the local search to converge to a local optimum.Define the following three moves to describe each neighborhood used in our algorithm: 1. Drop( , k): consists of removing the node at position k in the route , 2. Insert( , k, i): consisting of inserting the node i at position k in the route , 3. Exchange( , k, i) consisting of changing the node at position k by a new node i in the route .
} b.Swap move of two customers neighborhood ( ): A neighbor of a solution is obtained by exchanging two customers, from the same route or from different routes.It corresponds to a swap move of two customers.( ) = { , ∀ , ∈ M, k ∈ ( ), ∈ station neighborhoods a. Insertion neighborhood ( ): A neighbor of solution is obtained by inserting any refueling station in a route.( ) = { , ∀ ∈ M, k ∈ N ( ), i ∈ F, = Insert( , k, i)} b.Drop neighborhood ( ): A neighbor of a solution is obtained by removing a refueling station of a route.( ) = { , ∀ ∈ M, k ∈ N (v), = Drop( , k)} c.Replacement neighborhood ( ): A neighbor of a solution is obtained by replacing a refueling station of one route by another refueling station.( ) = { , ∀ ∈ M, k ∈ ( ), i ∈ F, = Insert(Drop( , k), k, i)} d.Shift neighborhood ( ):A neighbor of a solution is obtained by removing a refueling station from its route and shifting it to a new position in the same route.( ) = { , ∀ ∈ M, k ∈ N ( ), ∈ N ( ), i ∈ R, = Drop( , kneighborhoods a. Shift node neighborhood ( ): A neighbor of a solution is obtained by choosing two nodes randomly from the same route or from two different routes, then removing one of those two nodes from its position and inserting it in the position before the position of the other node.( ) = { , ∀ , ∈ M, k ∈ ( ), ∈ N ( ), i ∈ F, = Drop( , k), = Insert( , , )} b.Random crossing neighborhood ( ): A neighbor of a solution is obtained by considering two nodes i and j selected randomly in two different routes called crosspoints.We obtain a new solution by removing the arc (i, j) and recombining the remaining parts.The steps of are summarized in algorithm 2 Algorithm 2: Steps of the neighborhood 1 Input., ∀ , ∈ M, k ∈ N ( ), ∈ N ) < f (S) then S ← and k = 1 else k ← k + 1; 9 until C P U < ;

Table 2
Results on large instances of G-VRP