Tabu Search for the Vehicle Routing Problem with Multiple Trips , Time Windows and Simultaneous Delivery -

This paper discusses a vehicle routing problem with multiple trips, time windows, and simultaneous delivery-pickup (VRPMTTWSDP). This problem is a variant of the basic vehicle routing problem (VRP) including the following characteristics: multiple trips, time windows, and simultaneous delivery-pickup. In this paper, a solution approach based on tabu search (TS) is proposed. In the proposed TS, the sequential insertion (SI) algorithm is used to construct an initial solution. A neighbor structure is generated by applying an operator order consisting of eleven operators of relocation, exchange, and crossover operators. A tabu solution code (TSC) method is applied as a tabu restriction mechanism. Computational experiments are carried out to examine the performance of the proposed TS using hypothetical instances. The performance of the proposed TS is compared to the local search (LS) and the genetic algorithm (GA). The comparison shows that the proposed TS is better in terms of the objective function value.


Introduction
This paper discusses a vehicle routing problem with multiple trips, time windows, and simultaneous delivery-pickup (VRPMTTWSDP).This problem is a variant of the basic vehicle routing problem (VRP) includeing the following characteristics: multiple trips, time windows, and simultaneous delivery-pickup.The characteristic of multiple trips indicates that each vehicle may perform more than one route or trip during a planning horizon.The time window constraint imposes that the service to each customer must be done in its time window.The last characteristic indicates that each customer has both delivery and pickup demands.
The VRP is one of important decision problems in the logistics area.The VRP attempts to create an efficient delivery and pickup of goods.One of real VRPs discussed in this paper is a delivery and pickup of the liquefied petroleum gas (LPG) tubes.Each LPG retailer has a delivery demand of filled tubes and a pickup demand of empty tubes.Each retailer has a time window where unloading of filled tubes and loading of empty tubes must be carried out.Trucks carrying filled tubes depart from the depot to the retailers and return to the depot to carry empty tubes from the retailers.
In this paper, a solution approach based on tabu search (TS) is proposed.Various hard combinatorial optimization problems including the VRP and its variants are solved using the TS successfully.The TS is one of metaheuristic approach capable to escape from the local optimal trap.Basic principles of the TS and its extensions is found in Glover [35] and Glover [36].In the proposed TS, the sequential insertion (SI) algorithm is used to construct an initial solution.A neighbor structure is generated by applying an operator order consisting of eleven operators of relocation, exchange, and crossover operators.A tabu solution code (TSC) method is applied as a tabu restriction mechanism.

Problem Definition
In the context of the VRPMT, there are two different terms as mentioned in Brandão and Mercer [2], i.e., route (or trips) and tour.A route or trip is a sequence of visiting customers by a vehicle starting and ending at the depot.A tour is a collection of routes or trips served by the same vehicle.The number of tours is identical with the number of vehicles used.Figure 1 illustrates a tour consisting of two routes (number 0 is depot and numbers 1, 2, and 3 are customers).
The VRPMTTWSDP discussed in this paper is similar to the definition in Suprayogi and Mahaputra [34].There is a depot and a set of customers.
There is a set of vehicles with known capacity stationed at the depot and it is assumed that the number of vehicles is unlimited.Each customer has both delivery and pickup demands.A service time including unloading and loading time for each customer is given.Each customer has a time window indicating by its opening and closing times where it is assumed that the length of time window is constant and greater than or equal to the service time.If a vehicle arrives at a particular customer before its opening time, then the vehicle must wait and the service (unloading and loading) starts at the opening time.The departure time of the vehicle at a customer must be less than or equal to the closing time.Figure 2 shows an illustration when a vehicle arrives at a customer before its opening time.
There are two main differences in the VRPMTTWS-DP defined in this paper compared to the definition in Suprayogi and Mahaputra [34].In the VRPMTT-WSDP defined by Suprayogi and Mahaputra [34], there is no service time at the depot when a vehicle starts to serve a route.But, when a vehicle returns to the depot, a service time occurs.In the VRPMTTWSDP defined in this paper, there is a loading time at the depot when a vehicle starts to serve a route and an unloading time when a vehicle returns to the depot as illustrated in Figure 3.The second difference is in the objective function.In Suprayogi and Mahaputra [34], the objective function is a weighted sum of three objectives to be minimized: number of vehicles (NV), total tour duration time (TDT), and range of tour duration time (RDT).In this paper, the objective function is a weighted sum of three objectives to be minimized: Number of vehicles (NV), total tour duration time (TDT), and maximum of tour duration time (MDT).
Both minimizing RDT and MDT attempts to make a balance among tours in terms of tour duration time.
Let  be a solution.The objective function is expressed as: where   ,   dan   are weights associated with number of vehicles (NV), total tour duration time (TDT), and maximum of tour duration time (MDT).To ensure the priority order, weights are chosen such that   () >   () >   ().
The VRPMTTWSDP deals with determining a solution (tour plan) minimizing the objective function expressed in equation ( 1) by satisfying the following constraints: (1) each route must start and end at the depot, (2) total load of any route cannot be greater than the vehicle capacity, (3) all customer must be visited, (4) each customer is visited once, (5) each tour is served only by a vehicle, (6) time to start the service at each customer cannot be done before its opening time, and ( 7) time to finish the service or departure time at each customer cannot be done after its closing time.Constraint (5) implies that the number of tours are equal to the number of vehicles.Constraints ( 5) and ( 6) are also applied for the depot.It implies that a tour duration time may not violate the length of planning horizon.

Initial Solution
The proposed TS approach requires an initial solution.In this paper, the initial solution is constructed using a sequential insertion (SI) algorithm proposed by Suprayogi and Priyandari [32].The SI algorithm is a construction heuristic method.Basically, it attempts to insert an unrouted customer to an insertion position of the current route.
In the SI algorithm for the VRPMTTWSDP, there are two decisions must be made.The first decision is to select an unrouted customer as a seed customer for the first route in each tour.The second decision is to select an unrouted customer as a seed customer for the subsequent routes for a tour.For the first decision, there are several criteria that can be applied.Solomon [7] has proposed two criteria in the application of the SI algorithm for the VRPTW: the unrouted customer with the farthest distance from the depot and the unrouted customer with the earliest closing time.Suprayogi [17] and Suprayogi and Imawati [18] used four criteria in the SI algorithm for the VRPMTTW: the unrouted customer with the earliest opening time, the unrouted customer with the earliest closing time, the unrouted customer with the earliest closing time, the unrouted customer with the shortest length of time window, and the unrouted customer with the farthest distance from the depot.Suprayogi and Priyandari [32] apply the same criteria with Suprayogi [17] and Suprayogi and Imawati [18] in the context of the VRPMTTWSDP.For the second decision, in this paper, the criterion of selecting an unrouted customer giving the minimum tour completion time is applied.Let t and r be tour and route indices, respectively.Details of the SI algorithm are as follows: 1. Set  = 1 and  = 1.

Tabu Restriction
In the proposed TS, a tabu solution code (TSC) is used as a tabu restriction mechanism adapted from Wassan and Osman [37].This TSC transforms a candidate to a value (denoted by CS), using the following equation: where  is tour index, r is route index on tour , k is customer position index on route  of tour ,  is number of tour,   is number of routes of tour ,   is number of customers on route  of tour , and   is customer number on position  on route  of tour .Table 1 shows an example of the CS calculation for a solution giving in Figure 4.
The CS value for a particular iteration is stored in a tabu list called TABUSOLUTION.TABUSOLUTI-ON is an array consisting of tree columns.The first, second, and third columns in TABUSOLUTION record iteration number, CS value, and length of solution associated with CS value has been stored.The duration of the CS value stored in the list depends tabu tenure.The  value is used as a tabu restriction.If the  value of a candidate is equal to the  values in the tabu list, then the candidate has a tabu status.

Tabu Tenure
Tabu tenure is a duration (in a number of iterations) to retain a solution with tabu status in the tabu list.
In the proposed TS, a fixed tabu tenure is implemented.In the proposed TS, tabu tenure is denoted by TabuTenure.

Aspiration Criterion
An aspiration criterion is a mechanism to accept a candidate solution with tabu status.In this proposed TS, a candidate with tabu status is accepted if its objective function value is better than the current best objective function value.

Stopping Criterion
The maximum number of iterations is used as the stopping criterion for the proposed TS.Here, the maximum number of iterations is denoted by MaxIter.

Diversificatiom
In the proposed TS, restart diversification is implemented.If there is no improvement in the current best solution during a certain number of iterations (here, denoted by MaxDivIter), then the initial solution obtained by the SI algorithm is used to generate neighbors.

Details of TS procedure
The following notations are used in the TS procedure: ImpInOneOpr boolean variable indicating there is an improvement in a particular operator.The TS procedure is described as follows: Create an initial solution  0 using the SI algorithm.

Hypothetical Instances
The proposed TS approach is examined using nine hypothetical instances taken from Suprayogi and Mahaputra [34].In each instance, there are 100 customer points where their locations are generated randomly in x-y coordinate ranging from (0, 0) to (600, 600).The depot is located in coordinate (300, 300).A Euclidean distance for each pair of points is used.The distances are rescaled by dividing them by 60.The travel time between two points is calculated by dividing the distance to vehicle speed of 40.The length of time window of the depot is set with opening and closing times are 0 and 540, respectively.The length of time window for customers is generated randomly between 0 and 540.The unloading and loading times are 5 for each customer and the depot.The delivery and pickup demands for each customer are generated randomly from 1 to 10.The vehicle capacity is set as 20.The weights for number of vehicles (NV), total tour duration time (TDT), and maximum of tour duration time (MDT) in the objective function are set as 100000, 0.4, and 0.00005, respectively.
The proposed TS approach is implemented in Microsoft Visual Basic 6.0 and run on a laptop computer with the following specifications: Intel Core i5-3317U CPU @ 1,70 GHz processor, 4,0 GB memory, and Windows 8 64-bit operating system. .

Experiment Results
Table 2 reports computational results of the proposed TS and the LS.In the LS, the operator order is same to the TS.From the experiments, it shown that the average objective function value is 3.92% lower than the LS.But, the computation time is higher 5.68% compared to the LS.The proposed TS is compared to the genetic algorithm (GA) proposed previously by Suprayogi and Mahaputra [34].In order to make a comparison, the hypothetical instances are modified by setting loading and loading times at the depot as 0 and 10 minutes, respectively.In addition, the third component in the objective function is also changed from the maximum of tour duration time (MDT) to the range of tour duration time (RDT).The GA from Suprayogi and Mahaputra [34] was implemented in Visual Basic 6.0 and run on a personal computer with Intel Pentium IV 1.8 GHz processor, DDRAM 256 MB memory, and operating system of Microsoft Windows XP Professional Edition.For each instance, the GA is run in 5 replications.The experiment results are reported in Table 3.The average of objective function from the TS is 0.05% lower compared to the GA.The average computation time for the GA is 93.38 seconds.Because the GA is run in 5 replications, the computation time to obtain the best solution for each instance is about 466.88 seconds and it is 2.97 seconds higher compared to the TS.

Conclusion
This paper has discussed the tabu search (TS) for solving the vehicle routing problem with multiple trips, time windows, and simultaneous deliverypickup (VRPMTTWSDP).In the proposed TS, the initial solution is constructed using the sequential insertion (SI) algorithm.Eleven operators consisting of relocation, exchange, and crossover operators are applied as improvement operators.A tabu solution code (TSC) is implemented as a tabu restriction mechanism.
Computational experiments have been carried out to test the performance of the proposed TS.From the computational experiments, it is shown that the proposed TS gives a better performance in terms of objective function value compared to the LS and the GA.However, if statistical tests are applied, the differences in the average objective function values do not differ significantly.Therefore, further researches can be done to improve the proposed TS so that it gives a better performance.

Figure 1 .
Figure 1.Illustration of a tour

Figure 2 .Figure 3 .
Figure 2. Illustration when a vehicle arrives at a customer before its opening time = 1, then choose a seed customer from unrouted customers using a particular criterion, update route  and go to step 3.If  > 1, then try to create a route  by selecting an unrouted customer.If there are feasible customers, then choose a seed customer from unrouted customer giving the minimum completion time and update route .Otherwise, cancel the construction of route , set  =  + 1,  = 1, and repeat step 2.3.If there is no unrouted customer, then stop.Otherwise, go to step 4. 4. Try to insert each unrouted customer to each insertion position on route . 5.If there are feasible insertions with respect to capacity and time window constraints, then insert an unrouted customer to a position on route  with the minimum duration time, update route , and back to step 3. Otherwise, go to step 6. 6.If there is no feasible insertion with respect to the capacity constraint, then set  =  + 1 and back to step 2. Otherwise, go to step 7. 7. If there is no feasible insertion with respect to the time window constraint, then set  =  + 1,  = 1, and back to step 2.

Table 1 .
Illustration of the CS calculation

Table 2 .
Comparison of experiment results between TS and LS

Table 3 .
Comparison of experiment results between TS and GA