Solving some variants of vehicle routing problem with Branch-and-cut and Column generation algorithms

: In this research work, we applied some solving techniques on Travelling salesman problem (TSP) and Capaciated Vehicle routing problem (CVRP) which are some of the variants of vehicle routing problem. For each of the considered problem, Branch-and-cut was applied on TSP and Column generation technique was used on CVRP. We obtained optimal solution and tour. Hence, these methods can be used to solve similar problem for optimal solution.


Introduction
T he cost of transportation of goods and services is one of the major challenges people face in their daily activities. This area has raised concern in todays society. A large sum of money is spent daily on fuel, goods and service delivery, equipment maintenance and so on [1]. This is where the knowledge and technique of Operations Research (OR) comes to play. If the available resources is known, one can employ the techniques of OR. According to [2], the use of computerized techniques in solving transportation problem most times often leads to about 5% − 20% savings on transportation cost. Therefore, planning of distribution process, research and studying OR-techniques is worthwhile and will save some transportation cost.
The Vehicle Routing Problem (VRP) has been a problem for several decades and one of the most studied problem in logistics engineering, applied mathematics and computer science, and which is described as finding optimal routes for a fleet of vehicles to serve some scattered customers from depot [3]. VRP have several variants which includes: • Travelling Salesman Problem (TSP) [4], • Capacitated Vehicle Routing Problem (CVRP) [5], • Periodic Vehicle Routing Problem (PVRP) [6], • Vehicle Routing Problem with Time Windows (VRPTW) [7], • Vehicle Routing Problem with Skills Sets (VRPSS) [8], • Vehicle Routing Problem with Pickup and Devlivery (VRPPD) and so on.
The VRP is a combinatorial optimization and integer programming problem which finds optimal path in order to deliver goods and services to a finite set of customers.
The Travelling Salesman Problem (TSP) is one of the variant of Vehicle Routing Problem (VRP) which is a classical and widely studied problem in combinatorial optimization [9]. TSP has been studied in Operations Research (OR), engineering and computer science since 1950s and several techniques been developed to solve this kind of problem. TSP describes a salesman who must travel through n cities. The order of visiting the cities is not of importance, as long as the salesman visit every city exactly once and return to the starting city [10]. The cities are connected to one another through a weighted link.
CVRP is another variant of VRP involves vehicles with limited carrying capacity of goods and these goods must be delivered. In CVRP, the major factors we consider are the customers demands, number of vehicles availabe and the vehicle capacity. The objective is to find optimal route such that each and every customer is served once and every vehicle is loaded according to its capacity and not more [1]. The first article was introduced by [11], which was related to the concept of vehicle routing problem by trying to solve the truck dispatching problem with the objective of finding optimal supply-technique from the bulk terminal to the large number of service stations. [12] implemented the branch and cut algorithm to solve a large scale traveling salesman problem where the problem has to be solved many times in branch and cut algorithm before a solution to the TSP was obtained. Using large scale instances of the TSP, a substantial portion of the execution time of the entire branch and cut algorithm is spent in linear program optimiser. In their work, they constructed a full implementation of branch and cut algorithm, utilising the special structure. However, all of the refinements discussed in [13] are not implemented. Column Generation (CG), an exact approach for solving VRP was used and reported successful in solving VRPTW [14,15]. With its success, many researchers perform their further research with this technique. [16] proposed and used CG technique to solve the Heterogeneous Fleet Vehicle Routing Problem (HVRP). Applications of Vehicle Routing Problem cut across several areas which includes; Courier service [17], realtime delivery of customers demand [18], milk runs dispatching system in real time [19] and milk collection problem [20].
The goal of this paper is to solve TSP and CVRP using branch-and-cut and column generation algorithms, respectively. We shall use methods that will give us optimal routes for each of these considered variants.

Formulations and methods
A Linear programming (LP) problem is a problem that is to maximize or minimize a linear function subject to specified linear equality or inequality constraints. A general form of an LP program is given as follows.
where x 1 , x 2 , ..., x n are the variables and the remaining elements are input data from the problem. Also, l 1 , l 2 ... l n can be assigned the value of −∞ and u 1 , u 2 , ..." u n can be also be assigned the value +∞.
Rewriting Equation (1) in matrix notation we have, and vectors The general LP problem can be written as: where A is a matrix which is called the constraint matrix, c T is the transpose of the c−vector. Vector b is a right hand side vector, vectors l and u are the lower and upper bounds; c T x is the objective function. A feasible solution to the LP problem is an assignment of values x that satisfies all the constraints. An optimal solution x * is a feasible solution such that c T x * ≥ c T − x for all other feasible solutions This assumes that setting the n − m = 0 produce unique values for the remaining m variables or, equivalently, the columns for the remaining m variables are linearly independent [24].

Definition 2.
Any basic solution to (1) in which all variables are nonnegative is a Basic Feasible Solution(bfs) [24].

Theorem 1 (Extreme point [24]). A point in the feasible region of an LP is an extreme point if and only if it is a basic feasible solution to the LP.
Theorem 2 (Direction of unboundedness [24]). Consider an LP in standard form, having a bfs b 1 , b 2 , . . . , b k . Any point x in the LP's feasible region may be written in the form Theorem 3 (Optimal bfs [24]). Consider an LP with objective function max cx and constraints Ax = b. Suppose this LP has an optimal solution. We now sketch a proof of the fact that the LP has an optimal bfs. If an LP has an optimal solution, then it has an optimal bfs.
Proof. Let x be an optimal solution to our LP in (1). Because x is feasible, Theorem 2 tells us that we may write If cd > 0, then for any k > 0, kd + ∑ i=k i=1 σ i b i is feasible, and as k becomes larger and larger, the objective function value approaches ∞. This contradicts the fact that the LP has an optimal solution. If cd < 0, then the feasible point ∑ i=k i=1 σ i b i has a larger objective function value than x. This contradicts the optimality of x. In short, we have shown that if x is optimal, then cd = 0. Now the objective function value for x is given by Because x is optimal, this shows that b 1 is also optimal, and the LP does indeed have an optimal bfs.

Mathematical formulation of TSP Using ILP
There are several mathematical formulations for TSP [21]. Employing a variety of constraints that enforce the requirements of the problem in order to demonstrate how such a formulation is used in the comparative analysis as follows: given a complete graph G = (V, E) with |V| = n and |E| = m = n(n−1)

2
, and nonnegative cost of distance travelled, d ij , containing each vertex exactly once. Introducing binary variable y ij for the possible inclusion of any edge (i, j) ∈ E in the tour we get the following classical ILP formulation; recall from previous section, since we can travel from one city to another, the graph is complete. That is to say, there is an link/edge between every pair of nodes. For each edge in the graph, we associate a binary variable as follows and other nomenclatures are given as • Decision variable is defined as: Also since the edges are undirected, it suffices to include only edges with i < j in the model. Furthermore, since we are minimizing the total distance travelled during the tour, so we calculate d ij between each pair of nodes i and j. So the total distance travelled is the sum of all the distances of the edges which are included in the tour as follows.
Since the tour can only pass through each city exactly once, then each node in the graph should have exactly one incoming and one outgoing edge. i.e., for every i node, exactly two of y ij binary variables should be equal to 2, and we write it as follows: Furthermore, eliminating sub tours that might arise from the above constraint, we add the following constraints: This constraints require that for each proper (non-empty) subset of the set of cities V, the number of edges between the nodes of S must be at most |S| − 1. Therefore, the final integer linear problem of our TSP formulation is as follows: and if the set of cities V is of size n , then there are 2 n − 2 subset of S of V, excluding S = V and S = ∅. Where Equation (3) defines the objective function, (4) is the degree equation for each vertex, (5) are the sub tour elimination constraints (SEC), which forbid solution consisting of several disconnected tours, and (6) defines the integrality constraints. Also note that some of the SEC are redundant: for the vertex set S ⊂ V, S = ∅, and S = V\S we get pairs of SEC both enforcing the connection of S and S . We used branch-and-cut algorithm given in [1] to solve TSP.

Algorithm 1 Branch and cut method
Choose an initial linear system Ay ≤ b satisfied by all y ∈ S set L = (Ax ≤ b), u = +∞; while L = ∅ do remove a system (Cy ≤ d) from L; if y : Cy ≤ d = ∅ then set t = +∞ elsefind y * that minimizes c T y subject to Cx ≤ d and set t = c T y * ; end if end while while t < u and y * / ∈ S and FINDCUTS (S, y * ) = ∅ do add cuts returned by FINDCUTS (S, y * ) to Cy ≤ d; if {y : Cy ≤ d} = ∅ then set t = +∞ elsefind y * that minimizes c T y subject to Cy ≤ d and set t = c T y * ; end if end while if t < u then if y * ∈ S then set u = t,ȳ = y * else choose a vector α and numbers β < β so that each y ∈ S satisfies either α T y ≤ β or α T y ≥ β add (Cy ≤ d, α T y ≤ β ) and (Cy ≤ d, −α T y ≤ −β ) to L; end if end if if u = +∞ then return "S = ∅"; else returnȳ end if

Mathematical formulation of CVRP
All vehicles will originate and end at the depot, while each of the customer is visited exactly once. Suppose we have a graph G = (V, E ), where V, E represent the sets of nodes and weighted edges respectively, let us define the following: • C = {1, 2, . . . , m}: represent the set of m-customers to be considered.

directed routes/edges between the vertices.
If in both directions the distance between two vertices are identical, we then add the (i < j) restriction. • K: denote the fleet of available vehicles in a single depot. All vehicles considered are homogeneous.i.e., equal capacities. We have n-vehicles. • Q: is the maximum capacity of a vehicle, which limits the number of customers to be visited before returning to the depot. • C = (c ij ) is the cost of traveling from nodes i to j. and c ij ≥ 0 is the corresponding distance of edges (v i , v j ), the diagonal of the matrix.i.e., c ii = 0 always. Depending on whether the VRP variant in consideration is symmetric or not, c ij = c ji . The triangle inequality is assumed to hold generally.i.e., c ij ≤ c ik + c kj and (0 ≤ i, j, k ≤ m).
) is a vector of the route of vehicle i which start and end at the depot, with • S = {R 1 , . . . , R n } is the set of route which represent the VRP solution instance.
is the total cost of solution S which satisfies; In order to serve each customer once, the route vectors is treated here as a set. The goal of the VRP is to minimize the C(S ) on the graph G = (V, E ).
Let G is the graph which contains |E | + 2 vertices, and the customers ranges from (1, 2, . . . , m). The starting and returning depots are denoted by 0 and m + 1 respectively. Earlier in this section, we introduced the vehicle routing problem which we have now defined. However, the problem is not all about visiting the customers, there is more to their demands. In the following definitions, we shall specify these additional demands of the customers: • demand: d = (d 0 , . . . , d m , d m+1 ) with d i > 0 and m is the total number of customers which is a vector of the demands of customer, the demand of the depot is denoted by d 0 , d 0 = d m+1 = 0 always.
• Let us define our decision variable: The problem definition will be based on the following assumptions: • The capacity constraints of all the vehicles are observed.
• Each customer can be served by only one vehicle.
• Each and every route starts at vertex 0 and ends at vertex (m + 1).
The mathematical formulation of Capacitated Vehicle Routing Problem is stated below. We start with the objective function; which minimize the total travel cost by vehicle. This function is subjected to several constraints. subjected to: restrict each customer to be visited and served by only one vehicle.
constraints (9), (10) and (11) ensure that each and every vehicle must originate from starting depot 0, pass through various destinations of demands and return to end depot m + 1.
and constraint (14) indicate integrality constraints. Note that subtours are avoided in the solution with constraint (12) that is, cycling paths which do not pass through the depot. Advantage of having constraints (12) and (13) in terms of our customers in this problem is that the formulation has a polynomial number of constraints.

Column generation
We shall solve this formulation using the column generation technique. A brief explanation of this technique is as follow: • Restricted Master Problem: The Restricted Master Problem (RMP) is a set-partitioning problem. Some routes have the potential to improve the objective function, the RMP considers these paths which were added to the set of routes due to their potential to improve the objective function. The advantage of this technique is, only routes with high potential are added to the set of routes. Set partitioning problem has been considered because it is flexible with the objective function and its constraints. This approach allows the adding of constraints and this has an impact on the existing routes. This constraint-adding characteristics, makes set-partitioning problem more flexible than several other approaches [22]. When solving RMP (using simplex algorithm [2)], a dual value is assigned to each customer, this assigned value corresponds to how much we can improve the total solution by adding better routes including this customer. • Pricing Problem: The second part of CG is the pricing-problem which is a sub-problem following the RMP to identify and generate new routes and column that will enter the set of routes (variables) in the RMP. The RMP assigns dual values to customers, which assists to identify new routes with potential to improve the objective function. The new routes generated from pricing-problem are added to the master problem. RMP is then re-solved to generate new dual-values to each customers. • Lastly, we use post-optimisation technique to further improve the solution we obtained.
, is the simplex multipliers vector associated with current basis. (iii) Identify a pattern with negative reduced costs, or prove that none exists. Update basis and repeat.
Further explanation can be obtain in [24]. Now that we have defined the two algorithms, we proceed to the experiments as given in the next section.

Experiment 1: branch-and-cut (BAC) with TSP
This section presents the performance tests of branch and cut algorithm on Euclidean instances of TSPLIB library. The tests were performed on a computer processor intel(R) core (TM) i5-2450m cpu 2.60GHZ @ 2.60GHT and 8GB of Ram.
The adaptation of the proposed algorithm is coded into a python programming language version 3.6 . Result obtained by applying the exact method in solving the symmetric TSP problem is summarized in the tables below. The Table 1 shows the results obtained when Exact method was applied on TSP instance. The method give optimality. The optimal tour for these instances are shown in Figures (1), (2) and (3).

Experiment 2: column generation applied on CVRP
The Column Generation (CG) method is an exact method for solving the CVRP and the VRP in general, this technique has been explicitly explained and gives an optimal solution to a problem.
The Table 2 gives the summary of the comparison of this technique's primal and dual problem, since CG work on dual solution of the relaxed master problem, their optimal gap in percentage. The Table 2 consists of seven columns: Instances (contains the instances written as P − n16 − k8 which means the data consists of 16 nodes with 8 fleets of vehicles), Cities (locations to be visited), Best value (from literature), Relaxed Master Problem (RMP), Column Generation (based on dual values), column generation computational time and optimality gap.
From the Table 2, the optimal gap for all the instances considered gives 0.00%. From the instances we consider in this research, only coordinates and demands for each nodes are given, CG compute the distance between two coordinates; (x 1 , y 1 ), (x 2 , y 2 ), using the Euclidean formula: To obtain the optimality gap between the two results, we use the formula in (15). These results were obtained using gurobi solver in python [23]. The optimal tours for the first four instances are given in Figure  (4). So far we considered only two variants of the vehicle routing problem which are: travelling salesman problem and capacitated vehicle routing problem.
For the travelling salesman problem, we used branch and cut algorithm to solve the problem and applied it on some instances. We considered the following TSPLIB instance; Wi29, DJ38, Berlin52, Pr76, KroA100, pr136, pr144, ch150, qa19 and KroA200. Since technique produced an optimal solution, which ascertain the fact that exacts methods give optimal solutions. The results are shown in the Table 1.
For the capacitated vehicle routing problem, we used column generation technique to solve this mathematical model and applied it on Augerat et al. (E) data. These technique produced optimal solutions as well. The results are given in the Table 2.

Conclusion
In this research work, we solved Travelling Salesman Problem and Capacitated Vehicle Routing Problem using branch-and-cut and column generation algorithms, respectively. These techniques: branch-and-bound and column generation produced optimal solutions for travelling salesman problem and capacitated vehicle routing problem respectively. Other variants of Vehicle Routing Problem can also be solved using other exact algorithms. In future, we can use machine learning techniques such as Neural combinatorial optimization approach to solve the Vehicle Routing Problems.