Precedence Constrained Pickup and Delivery with ...

1 downloads 0 Views 307KB Size Report
Precedence Constrained Pickup and Delivery with Split Loads. Maciek Nowak. Loyola University Chicago, Department of Information Systems and Operations ...
Precedence Constrained Pickup and Delivery with Split Loads Maciek Nowak Loyola University Chicago, Department of Information Systems and Operations Management, 1 E. Pearson Ave., Chicago, IL, 60611, USA, [email protected], voice: 312-915-6113, fax: 312-915-7207

Mike Hewitt Rochester Institute of Technology, Industrial and Systems Engineering, 81 Lomb Memorial Drive, Rochester, NY, 14623, USA, [email protected]

Chelsea C. White III Georgia Institute of Technology, School of Industrial and Systems Engineering, 765 Ferst Drive, NW, Atlanta, GA, 30332, USA, [email protected]

Abstract A split load is a load having size no greater than the capacity of a single vehicle that is delivered using more than a single vehicle. The use of split loads can reduce the total transportation cost and the number of vehicles serving a set of loads. Several studies have shown the benefit of split loads as applied to the Split Delivery Vehicle Routing Problem (SDVRP) and the Pickup and Delivery Problem with Split Loads (PDPSL). While most research on the application of split loads to vehicle routing has revolved around heuristic methods, in this paper an exact solution method is used on a constrained version of the PDPSL. All origins to be visited must be served before any destination that is to be visited on each route, which we refer to as the Precedence Constrained-Pickup and Delivery Problem with Split Loads (PC-PDPSL). Through this constraint, several structural characteristics that result from the SDVRP are shown to also hold for the PC-PDPSL. In particular, we develop a dynamic programming formulation of the PC-PDPSL and show that the state and action spaces of this problem are finite. We use the well-known A* “best-first” search algorithm from artificial intelligence to find an exact solution to a wide range of data sets. Computational experiments support findings developed using heuristic methods for the PDPSL, showing that splitting loads can reduce costs and that there is a relationship between average load size and cost savings.

1

1

Introduction

Maximizing the use of available capacity is critical for a trucking company to remain competitive. To do so, the company should strive to better coordinate inbound and outbound deliveries, adjust delivery schedules, and/or consolidate multiple loads. Each of these options is an opportunity to increase capacity utilization. A less intuitive option involves splitting a load, having size no greater than the capacity of a single vehicle, such that its delivery is completed by multiple vehicles or trips rather than by a single vehicle or trip. The opportunities for savings primarily arise when several partially empty vehicles can be used to each serve a portion of a full truckload, resulting in the cost savings from not using an additional vehicle. Several studies have shown that allowing split deliveries results in opportunities for a reduction in cost and the number of vehicles used, both for the Vehicle Routing Problem (VRP), in which a vehicle operating out of a depot makes a series of deliveries on each route (Dror et al., 1994; Frizzell and Giffin, 1995; Sierksma and Tijssen, 1998; Archetti et al., 2006), and the Pickup and Delivery Problem (PDP), in which a vehicle picks up a load from a specific origin and delivers it to its destination (Nowak et al., 2008, 2009). In this paper, we focus on the PDP with split loads (PDPSL). Figure 1 provides a simple example that shows the benefit of split loads. In this example, three loads require pickup and delivery, with each load size equivalent to 2/3 of a truckload. The origins of the loads are indicated with the subscript “O” and the destinations with the subscript “D”. Without allowing for load splitting, no two loads can fit on a vehicle simultaneously, with each load requiring its own route. Allowing for split loads, the truck on the first route could serve load C and half of load B, while the truck on the second route could serve the remaining half of load B and load A. In this way travel distance is reduced considerably and one route is eliminated. Nowak et al. (2008) showed that the PDPSL is NP-hard. Like many NP-hard problems, exact methods are ineffective for realistically sized instances of the PDPSL. In fact, all but the smallest instance sizes are difficult to solve to optimality. Compounding the problem, exact techniques rarely produce high quality solutions in a timely manner, an issue of critical importance in practical settings. Thus, to produce actionable plans, we must rely on inexact approaches. One type of inexact approach is to apply a heuristic directly to the problem at hand, as done in Nowak 2

Without split loads 9

AO

AD

10

BO

8

11

CO

7 6

AO

2 BD CD

CO

6

6

Depot

Route 3

2

7 6 Depot Route 1

Route 1 Route 2

BD

CD

7

7

2

AD

10

BO

2

8

With split p loads 9

Route 2

Vehicle capacity = 1 Load size A = 2/3 B = 2/3 C = 2/3

Figure 1: An example depicting the benefit of allowing split loads et al. (2008). While often effective, the insight into the structural properties of the problem may be limited. Another approach is to impose additional constraints, leaving a simpler problem that may be solved with an exact method. This paper takes the latter approach, adding to the PDPSL the additional constraint that all origins must be visited before any destinations are visited on each route. We refer to this problem as the Precedence Constrained-PDPSL (PC-PDPSL) and present an exact method for its solution. This constraint is clearly restrictive in comparison to the general PDP where loads can be placed on and removed from the vehicle in any order. However, this problem does mimic certain real world conditions, such as in trucking operations when rear loading trailers are used and it is more efficient to make all pickups prior to any deliveries. This is also a generalization of a problem where goods are loaded at one location and delivered at multiple destinations, or vice versa. With this additional constraint, the PC-PDPSL is similar to the special case of the VRP that allows for split loads, the Split Delivery Vehicle Routing Problem (SDVRP). Several structural characteristics of the SDVRP can be exploited in an exact solution method for the PC-PDPSL. Despite the differences between the two problems, some of the approaches used for solving the SDVRP are applicable to the PDPSL, such as determining how to divide a load that is

3

to be split and finding routing improvements. The SDVRP was first introduced by Dror and Trudeau (1989), where they found instances of almost 14% cost benefit from the use of split deliveries for certain problem sets. These savings were found through a heuristic that generates splits based on the cost savings of removing a delivery from one route and dividing it between two other routes. Dror and Trudeau (1990) later formally formulated the problem as an integer linear program and further developed their heuristic procedure. They also showed that no two routes in the optimal solution can have more than one split demand point in common. This finding was extended by Lee et al. (2006) to show that there exists an optimal solution in which no route contains more than one split delivery. A comprehensive review of all SDVRP literature may be found in Archetti and Speranza (2007). Fundamentally, the SDVRP is a special case of the PC-PDPSL where all loads have a common origin. Therefore, because the SDVRP is known to be NP-hard (Dror and Trudeau, 1990), the PC-PDPSL is also NP-hard, potentially requiring exponentially long computational times to come to an optimal solution. The NPhardness of the PC-PDPSL is proven as part of Theorem 1 in Section 3. While the run-time for an NP-hard problem grows exponentially (in the worst-case) as instance size grows, exact solution methods do have value. For example, small instances of an NP-hard problem may be solved to optimality and collected to provide a good initial solution for a much larger problem. The integer programming technique of lifting (Nemhauser and Wolsey, 1999), where knapsack problems are solved to strengthen the linear relaxation of an integer program, is a good example of this. The exact solution method for the PC-PDPSL instance described here may potentially be a subroutine of an algorithm for another problem. For example, transatlantic inventory routing problems (IRP) often require that all pickups be done before all deliveries as producers and consumers are located on different sides of the ocean. Like the PC-PDPSL, IRPs typically allow split loads. Unlike the PC-PDPSL, IRPs also determine the quantity to deliver. However, once these quantities are fixed, a PC-PDPSL may be all that is left to solve. Exploiting the properties of an optimal solution of a problem is a powerful algorithmic technique. Primal-dual methods such as the Hungarian method (Bertsimas and Tsitsiklis, 1997)

4

that use complementary slackness conditions to guide the search for optimal solutions is a classic example of this technique. The exact method presented in this paper is similar in that it derives properties of optimal solutions to the PC-PDPSL which, in turn, allow for much of the search space to be ignored. Most importantly, by showing that each route in an optimal solution has at most one split load, only a finite number of elements in what is an uncountably infinite search space need be considered. In order to take advantage of these action space reducing properties, the PC-PDPSL is formulated as a dynamic program (DP). With finite state and action spaces, a computational algorithm can be used to solve the DP. We use the well-known A* “best-first” search algorithm from artificial intelligence due to its speed in finding the optimal solution when a good heuristic is used to serve as a lower bound for the optimal value of the problem and guide the search towards the optimal solution. The ability of this heuristic to quickly produce good lower bounds drives the speed of the overall algorithm. We use the structure of the PC-PDPSL to derive such a heuristic function and see that most instances are solved to optimality in little time. Lee et al. (2006) introduced the use of the A* algorithm in finding exact solutions to the SDVRP, solving problems with up to 7 customers. We remark that pickup and delivery in some locales (e.g., large congested urban areas) for lessthan-truckload operations may not exceed 6-8 stops per day. Other research on exact methods for routing problems with split loads has focused on branch-and-price-based methods. See, for example, Desaulniers (2010) and Baldacci and Mingozzi (2009). To the best of our knowledge, the only research on the PDPSL has been that by Nowak et al. (2008, 2009). In this work, the authors develop a local search heuristic that uses swaps and insertions to improve solutions. This heuristic is applied to both randomly generated data and a real world case study. With load sizes similar to those tested in this paper, the heuristic finds a cost reduction of up to 12% through the use of split loads. The authors also show that the most benefit is found with an average load size just over one half of vehicle capacity. The conclusions made by Nowak et al. (2008, 2009) are supported by the experimental data found in this paper. The primary contribution of this paper is to show that when finding optimal solutions of a constrained case of the PDPSL, splitting loads reduces costs. This finding is important as it

5

supports the results found using heuristic solution methods with the PDPSL. In addition, the results presented here indicate a relationship between average load size and cost savings; average load sizes over one half vehicle capacity show the most benefit. Also, assuming loads can be split, the results show that focusing on the PC-PDPSL to produce solutions to the PDPSL does not greatly reduce the benefit of split loads. Finally, structural characteristics of the SDVRP are adapted to the PC-PDPSL and the action space of the problem is considerably reduced. The paper is organized as follows. Section 2 provides the DP formulation for the PC-PDPSL. Section 3 presents several important properties of the PC-PDPSL that are generalized from the SDVRP, in particular showing how the action space may be reduced. The A* algorithm used for the solution of the PC-PDPSL is described in Section 4. Sections 5 and 6 present the design and results of the experiment used for analysis, and Section 7 provides conclusions.

2

Formulation of PC-PDPSL as a Dynamic Program

The structural characteristics presented in this paper result in limitations on the search space that must be explored when finding the optimal solution. In order to take advantage of these characteristics, the PC-PDPSL is formulated as a dynamic program. In this section, the notation used throughout the paper is defined and the model is outlined. A DP model requires a definition of the state space (the amount of goods to be transported, or inventory position, in this problem), the set of actions that may be taken at each decision epoch (the various combinations of goods that may be transported on any route), the costs associated with any action to be taken (the travel costs for the vehicle), and an optimality equation that results in the minimum cost achieved through an optimal policy of actions. We model a fully connected road network with the graph G = (N, C), where N is the finite set of nodes modeling intersections and C ⊆ N × N is the set of directed arcs modeling one-way roads between intersections. That is, (n, n0 ) ∈ C if and only if there is a road that permits traffic to flow from intersection n to intersection n0 . Let SCS(n) = {n0 : (n, n0 ) ∈ C} be the successor set of node n. We assume throughout that n ∈ / SCS(n); thus, idling at an intersection is not permitted. Pickups can be made at the origin nodes, O ⊂ N , and deliveries can be made at the 6

destination nodes, D ⊂ N. We remark that O ∩ D may not be null; that is, there may be nodes that serve as both origin and destination nodes (e.g., a crossdock). There also exists a node Depot ⊂ N , where Depot ∈ / O ∩ D. The vehicle leaves from, and returns to, the Depot empty at both the beginning and the end of a route. Because the vehicle starts from and returns to the depot, each route may be served by a separate vehicle. However, for simplicity of analysis, we assume that there is a single pickup and delivery vehicle. Also, without loss of generality we assume that the capacity of the vehicle is 1. We assume O ∪ D ∪ {Depot} = N . We now make the additional assumption that all origins on a route are visited prior to any destination. A route is a sequence of nodes (Depot, n1 , ..., nB , Depot), with nb ∈ N for all b = 1, ..., B, and nb+1 ∈ SCS(nb ) for all b = 1, ..., B − 1. Visiting all origins on a route first requires that b < b0 for all nb ∈ O and all nb0 ∈ D. Let g(i, j) be the amount of goods stored at i ∈ O destined for j ∈ D, and let g = {g(i, j) : (i, j) ∈ O × D}, where g is said to be feasible if and only if g(i, j) ≥ 0 for all (i, j) ∈ O × D. We define the state of the problem as g at each decision epoch. A decision epoch occurs each time the vehicle arrives at the Depot. At each decision epoch, an action is selected, where an action is the amount of goods to be transported from the origins to the destinations on one P route. For given g, the set of feasible actions is A(g) = {x ≥ 0 : x ≤ g, i∈O,j∈D x(i, j) ≤ 1}, where we define x(i, j) as the amount of goods to be transported from i ∈ O to j ∈ D. Just prior to the qth decision, assume that gq (i, j) is the amount of goods at i ∈ O that is destined for j ∈ D, where gq = {gq (i, j) : (i, j) ∈ O × D}. Let Q be the final decision epoch, representing the decision to construct the last route, completing the problem with all loads delivered such that g(i, j) = 0 for all (i, j) ∈ O × D. A feasible decision rule δ dictates the amount x(i, j) that should be transported given the state g(i, j). Thus, it is a mapping from the state at any decision epoch gq to the set of all feasible actions, such that δq (gq ) ∈ A(gq ). A feasible policy π is then a sequence of feasible decision rules π = {δ1 , δ2 , ..., δQ } dictating the combination of loads that should be picked up and delivered at each decision epoch, resulting in a final state g(i, j) = 0 for all (i, j) ∈ O × D. Let gq be the state prior to the qth route. Then for all q, gq+1 (i, j) = gq (i, j) − xq (i, j), 7

(1)

where xq = δq (gq ), g1 is given, and gQ+1 = 0. Given a decision rule δ, a route may be constructed to service the combination of loads specified by this rule. Let r(x(i, j)) be the minimum cost route that visits i and j if x(i, j) 6= 0, for all i ∈ O and j ∈ D, and the collection of all feasible routes is denoted by R. Each route can be represented by a function r : O × D → {0, 1}, where r(x(i, j)) = 1 if and only if the vehicle following this route delivers a load from the ith origin to the jth destination. Let c(r(x)) be the cost of route r(x). This cost is based on the distance that a vehicle is required to travel on the route. Then the total cost accrued by feasible policy π, given g1 , is π

v (g1 ) =

Q X

c(r(δq (gq ))).

(2)

q=1 ∗

The problem objective is to find a policy π ∗ , the optimal policy, such that v π (g1 ) ≤ v π (g1 ) for P all feasible policies π and all inventory positions g1 such that i∈O,j∈D g1 (i, j) < ∞. Let v ∗ (g) = inf π v π (g), where the infimum is with respect to all feasible policies π. Then assuming the cost of traversing each arc in N is strictly positive but bounded and noting there P exists a feasible policy π such that Q = d i∈O,j∈D g(i, j)e where dye is the smallest integer such that y ≤ dye, results in Puterman (1994) and elsewhere guarantee: 1. there exists a unique solution v to the optimality equation v(g1 ) = min {c(r(x)) + v(g1 − x)}

(3)

x∈A(g1 )

2. v ∗ = v 3. an optimal policy π ∗ exists that is composed of stage invariant decision rules (i.e., there is a δ ∗ such that π ∗ = {δ ∗ , δ ∗ , ...}). 4. δ ∗ causes the minimum in the optimality equation to be attained. Given this DP formulation, several observations may be made regarding the structural characteristics of the problem that will simplify its solution.

8

3

Properties of Optimal Collections of Routes

As stated earlier, the PC-PDPSL is NP-hard. To counter the exponential growth in the run-time of algorithms for the PC-PDPSL as instance size grows, we describe properties of the problem that allow for a reduction in the action space. In this section, this is done by showing that there is at most one split load on each route. However, it is first proven that the PC-PDPSL is NP-hard. Theorem 1 The PC-PDPSL is NP-hard. Proof: In order to show that the PC-PDPSL is NP-hard, we reduce the SDVRP, an NP-hard problem (Dror and Trudeau, 1990), to the PC-PDPSL. Consider a special case of the PC-PDPSL where all loads have one common origin and the costs to travel the road network satisfy the triangular inequality. The SDVRP can be solved in polynomial time if the PC-PDPSL is solvable in polynomial time. The SDVRP is then reduced to the PC-PDPSL. 2 Because the precedence constraint requires that all loads on a route be picked up prior to any deliveries, the size and combination of loads that may be served on any route is limited by the capacity of the vehicle. This restriction is similar to that found in the SDVRP. This similarity results in many shared structural characteristics and it may be shown that several of the theoretical results from the SDVRP found in Dror and Trudeau (1989, 1990) and Lee et al. (2006) hold true for the PC-PDPSL. Lemma 2 generalizes a result by Dror and Trudeau (1990) for the SDVRP. It is shown that the number of split loads allowed on a route is limited, restricting the different load combinations possible for any route. Limiting the number of load combinations that must be considered reduces the action space of the DP and allows for the solution of larger problems. Lemma 2 There exists an optimal solution in which no two routes have more than one split load origin-destination pair in common. Proof: We say that two routes, r1 and r2 , have a split load in common if r1 (i, j) = r2 (i, j) = 1 for any i ∈ O and j ∈ D. Let r1 and r2 be in R∗ , the optimal collection of routes. Suppose that r1 and r2 each have two split loads being delivered from pickup locations i and k to destinations j and l, respectively. The origin i may equal k and the destination j may equal l. We define xr as 1

2

1

the vector of loads to be picked up and delivered on route r. Let xr (i, j), xr (i, j), xr (k, l), and 9

2

xr (k, l) be the corresponding loads for routes 1 and 2. Without loss of generality, suppose that 1

1

2

1

2

xr (i, j) = min{xr (i, j), xr (i, j), xr (k, l), xr (k, l)}. Consider the alternative feasible routing 1

2

2

1

1

decision and the corresponding loads: x ¯r (i, j) = 0, x ¯r (i, j) = xr (i, j) + xr (i, j), x ¯r (k, l) = 1

1

2

2

1

xr (k, l) + xr (i, j), x ¯r (k, l) = xr (k, l) − xr (i, j). Now, r1 can omit the stops at i and j as that load is served by r2 . Because the total amount picked up on each route is unchanged, the new loads are feasible, and the new routing has one fewer load served. By the triangular inequality, this can be no more expensive than the original routing. By repeating this process, we can construct an optimal collection of routes with no two routes transporting split loads from the same two origin-destination pairs. 2 Restricting the number of split loads that can be shared between routes leads to a result that allows for a significant reduction in the action space available at each decision epoch. It can now be shown that the combinations of loads that may be created for each route are limited such that only one split load may be placed on a route. Theorem 3 There exists an optimal solution for which each route will have at most one split load. Proof: Let r1 and r2 be in R∗ , the optimal collection of routes. Suppose that r1 carries d split loads, such that d > 1. The routes may be reordered such that r1 is the last route traveled. The ordering of the routes is independent of cost as the vehicle begins and ends empty for each route. Therefore, changing the order in which r1 is served does not affect optimality. If r1 is the last route, all d split loads on this route are no longer split as they complete serving a load. Now, suppose r2 also carries d split loads, with d > 1. The ordering can be changed again such that r2 is the second to last route. By Lemma 2, r1 and r2 share at most one origin-destination pair. Thus, the reordering will reduce the number of split loads on r2 to at most one. This reordering can be repeated for each route with d > 1 split loads until all routes have at most one split load. 2 The optimality equation presented in Section 2 is computationally undesirable due to the uncountably infinite action space. However, the properties of an optimal solution described above allow for the action space of the problem, A(g), to be reduced to a finite set without loss of optimality. It has been shown that each route in an optimal solution need carry at most one

10

split load. Therefore, at every decision epoch, only those routes with load combinations that satisfy this property should be considered, leaving a finite action set. This characteristic may now be exploited in solving the DP. In order to show how the limited action space may be taken advantage of, the loads served on a route are separated into two groups: those loads that are fully served by the route, leaving no remaining portion of the load; and, those that have only a portion served by the current route, with some amount left for another route. By distinguishing these two load groups, a closed form expression for the load amount to be delivered, x(i, j), is developed, showing that the action space of the DP is reduced. Using notation similar to that found in Lee et al. (2006) for the SDVRP, we represent the set of loads to be delivered on a route by the pair (E, I), where E ⊆ {O × D} is the set of origin/destination pairs with loads that are fully served by route r and I is the set of origin/destination pairs with a split load served. A load can not be in both sets, such that E ∩ I = ∅, and the cardinality of I is at most one, as shown in Theorem 3. Given (E, I), it is possible to generate the route r taken by the vehicle by letting   1, (i, j) ∈ E ∪ I, [r(x(i, j))](E, I) = (i, j) = (1, 1), ...(|O|, |D|).  0, otherwise, The load vector can then be inferred by letting     g(i, j) − bg(i, j)c, (i, j) ∈ E, g(i, j) 6= bg(i, j)c       1, (i, j) ∈ E, g(i, j) = bg(i, j)c [x(i, j)](E, I) = P    1 − (i,j)∈E x(i, j), (i, j) ∈ I       0, otherwise

(4)

(5)

for (i, j) = (1, 1), ...(|O|, |D|). Because the set I contains at most one origin/destination pair, the vector [x(i, j)](E, I) is P P unique. In order to ensure feasibility, it is necessary that (i,j)∈E x(i, j) = (i,j)∈E g(i, j) ≤ 1. Also, a split load is placed on the vehicle (i.e. the set I is not empty) only if there is available P capacity on the vehicle, or (i,j)∈E g(i, j) < 1. Further, the load is split only if I = {(k, l)} is 11

P

chosen such that g(k, l) > 1 −

(i,j)∈E

g(i, j). Note that the split load amount x(i, j) where

(i, j) ∈ I is always equivalent to the available capacity on the vehicle left by the loads in the set E. That is, the amount of a load that is split and placed onto the route is never less than available capacity. Allowing for excess capacity on the vehicle does not reduce the cost of the route and leaves a larger load to be delivered by a following route. The remainder of the load that is split may be picked up in full on another route if the vehicle has sufficient capacity, or it may be split again. We can now redefine the set of feasible actions for the state g as: A(g) = {(E, I) : I = ∅,

X

g(i, j) ≤ 1, [r(x(i, j))](E, I) ∈ R}

(i,j)∈E

∪{(E, I) : E ∩ I = ∅, I = {(k, l)}, g(k, l) > 1 −

X

(6)

g(i, j) > 0, [r(x(i, j))](E, I) ∈ R}

(i,j)∈E

The recursive equation for the DP in this form can now be written as v(g) =

min

{c([r(x(i, j))](E, I)) + v(g − [x(i, j)](E, I))}

(7)

(E,I)∈A(g)

where A(g) is defined by (6), [x(i, j)](E, I) by (5) and [r(x(i, j))](E, I) by (4).

4

Application of A* Algorithm

With a finite action space, a simple computing algorithm can be used to solve the PC-PDPSL. In this case, we use the well-known A* forward-search shortest path algorithm, which is guaranteed to find an optimal solution, assuming that the heuristic component is a lower bound (Nilsson, 1980). An important advantage of A* is that as it is a forward-search algorithm, the limited action space can be used to eliminate states that are not reachable from the initial state. At each decision epoch, only routes that have at most one split are to be considered, significantly reducing computation time. This algorithm searches the state space for best solutions through the use of a heuristic that provides a lower bound on the optimal value of the problem. The speed of the algorithm is based on the ability of the heuristic to quickly produce good bounds. A* uses the function h, a lower bound on the true cost from the current state to the end state, as a guide in finding the shortest path. Each successive state is chosen such that the 12

combination of the known cost of that state and the predicted cost to complete the solution result in a minimum cost. Therefore, the effectiveness of this algorithm is dependent on the precision of the lower bound. With perfect information, the algorithm will move directly along the optimal path. With no information, or h = 0, A* reduces to Dijkstra’s algorithm (Dijkstra, 1959). The precision of the lower bound must be balanced against the complexity of calculating that bound. A good lower bound will allow the algorithm to explore a very limited number of possible solutions. However, if this bound is difficult to calculate, it may result in an increase in computational time that significantly diminishes the value of that bound. This model uses a lower bound that can be calculated quickly, with accuracy that is dependent on the range of load sizes. The lower bound on the cost to complete the solution from any state is calculated as follows: 1. select a load some portion of which is not already served by a route. 2. determine the cost to travel from the depot to the origin of the load to the destination of the load and back to the depot. 3. multiply the value of the load portion that is not on a route by the travel cost. 4. repeat this for all loads that are not served by a route and sum these values. Stated mathematically, let tij represent the cost of the tour depot → i → j → depot. We claim P that for all inventory positions, g, v ∗ (g) ≥ i∈O,j∈D tij g(i, j). To verify this claim, we first show the following lemma: Lemma 4 With x(i, j) denoting the amount delivered by a vehicle from i ∈ O to j ∈ D and r(x) the minimum cost route visiting all i ∈ O, j ∈ D such that x(i, j) > 0, then c(r(x)) ≥ P i∈O,j∈D x(i, j)tij . P Proof: Because i∈O,j∈D x(i, j) ≤ 1, and c(r(x)) ≥ tij ∀i ∈ O, j ∈ D such that x(i, j) > 0, we have that c(r(x)) ≥ c(r(x))

X i∈O,j∈D

x(i, j) =

X

c(r(x))x(i, j) ≥

i∈O,j∈D

We next use Lemma 4 to prove our initial claim.

13

X i∈O,j∈D

tij x(i, j). 2

Lemma 5 For all inventory positions g, v ∗ (g) ≥

P

i∈O,j∈D tij g(i, j).

Proof: Consider an inventory position g. A feasible solution for that state must consist of a set of deliveries, K, that together deliver g(i, j), ∀i ∈ O, j ∈ D. With xk representing the amounts P in each delivery k ∈ K, those amounts must satisfy k∈K xk (i, j) = g(i, j) and from Lemma 4 we have that X X c(r(xk )) ≥ k∈K

X

X

tij xk (i, j) =

k∈K i∈O,j∈D

i∈O,j∈D

tij

X k∈K

xk (i, j) =

X

tij g(i, j)

i∈O,j∈D

Lastly, because this is true for all feasible solutions for inventory position g, it is also true for the optimal solution, which has value v ∗ (g). 2 As average load size approaches vehicle capacity, the bound becomes more accurate. As Nowak et al. (2008) found that the majority of benefit from split loads occurs with load sizes over one half vehicle capacity, this indicates that the heuristic should be most effective for those load sizes that lead to splitting. For A* to find the optimal solution, this function h must provide a lower bound on the optimal cost of the path from state (g) to the end state, for every state (g), which this function does. We now describe how the A* Algorithm is applied to the PC-PDPSL, adapted from the description in Pearl (1984): 1. Put the initial state (g1 ) on OPEN 2. If OPEN is empty, exit with failure 3. Remove from OPEN and place on CLOSED a state (ˆ g ) for which the cost v is minimum 4. If the goal state, g = 0, has been reached, exit successfully with the solution obtained by tracing back the pointers from (0) to (g1 ) 5. Otherwise expand (ˆ g ), generating all its successor states, and attach to them pointers back to (ˆ g ). For every successor (ˆ g 0 ) of (ˆ g ): (a) If (ˆ g 0 ) is not already on OPEN or CLOSED, estimate h(ˆ g 0 ), the cost of the best path from (ˆ g 0 ) to the goal state, and calculate v(ˆ g 0 ) = s(ˆ g ) + h(ˆ g 0 ) + z(ˆ g , gˆ0 ) where s(ˆ g ) is the minimum cost of reaching the current state from the initial state (g1 ), z(ˆ g , gˆ0 ) is the cost of moving from the current state to the successor state, and s(g1 ) = 0. 14

(b) If (ˆ g 0 ) is already on OPEN or CLOSED, direct its pointers along the path yielding the lowest s(ˆ g 0 ). (c) If (ˆ g 0 ) required pointer adjustment and was found on CLOSED, reopen it. 6. Go to step 2. The initial state is the set of loads to be delivered at time 1. From this state, successor states are any of the potential routes that can be created by combining loads onto a vehicle without violating capacity constraints, observing the guideline that at most one split load need be on a route. One successor state is selected for expansion, with the optimal cost of routing the vehicle to serve the chosen set of loads determined using a simple Travelling Salesman Problem (TSP) algorithm. This cost is added to the cost of serving the remaining loads, determined using the lower bounding function, h, and compared with the other successor states. The successor state with the lowest cost is selected for expansion. Note that as a solution path is developed and the actual cost of serving a route is realized, the cost v of this path will generally increase, potentially becoming larger than alternate states that have not yet been developed. This will lead the algorithm to explore earlier successor states. The algorithm continues in this fashion until the end state is reached. We revisit Figure 1 to provide a simple example of the algorithmic operations. The algorithm would solve this problem as follows: 1. The initial state is the three loads to be delivered, g(AO , AD ) = g(BO , BD ) = g(CO , CD ) = 2/3, while s(g1 ) = 0. 2. Generate a successor state, which in this case may be Route 1 as depicted in the split load case of Figure 1. Load C fits on the vehicle without any splitting required. This leaves 1/3 of the vehicle empty. By splitting load B in half, the vehicle may be filled to capacity, so the vehicle will pick up 1/3 of load B. A shortest route path is determined as Depot, CO , BO , BD , CD , Depot and z(ˆ g1 , gˆ2 ) = 26, the cost of this route. 3. The lower bound on the cost of serving the remaining loads, h(ˆ g2 ), is determined next. The remaining portion of load B, 1/3, is multiplied by the cost to pickup and deliver load

15

B, 23, resulting in 7.67. The size of load A, 2/3, is then multiplied by the cost to pickup and deliver load A, 25, resulting in 16.67. The value of h(ˆ g2 ) is then 24.33. 4. The value of v(ˆ g2 ) is calculated as v(ˆ g2 ) = s(ˆ g1 )+h(ˆ g2 )+z(ˆ g1 , gˆ2 ) = 0+24.33+26 = 50.33. This value is compared with other successor states from the initial state, including Route 2 or any of the routes without split loads. 5. For the purposes of this example, Route 1 is selected as the lowest cost successor state, and s(g2 ) = 26. Expansion continues with the next set of successor states as: a route serving loads A and B together; a route serving only load A; or a route serving only the remaining portion of load B. Selecting the successor state of serving both remaining loads together results in z(ˆ g2 , gˆ3 ) = 27 and h(ˆ g3 ) = 0 as there are no loads remaining to be serviced. The total cost is then v(ˆ g3 ) = 26 + 0 + 27 = 53. Note that the approximation from the previous step resulted in a value of 50.33.

5

Experimental Design

The primary purpose of this algorithm is to determine if results found using an optimal solution method mimic those of heuristics testing the use of split loads. Therefore, the data was constructed in a fashion similar to that found in Dror and Trudeau (1989) and Nowak et al. (2008). The A* algorithm is tested on problem sets of two sizes, one with 9 transportation requests and the other with 10. While these instances do not have many customer requests, the ability to split loads greatly expands the solution space (even with the findings presented in Section 3), making it more difficult to solve the problems to optimality. Lee et al. (2006) had a similar experience, solving the SDVRP (a simpler problem) for only 7 customers. Each transportation request contains the origin and destination location information, and the fraction of a truckload to be delivered. Coordinates for the pickup and delivery locations are randomly generated with a uniform distribution over the range [-40,40] for both X and Y coordinates. The results below are reported with the location of the depot fixed at [0,0] for each data set. The problems with 9 transportation requests had three pickup locations and three delivery locations, while the 10 request problem had two pickup locations and five delivery locations. Three different location 16

configurations were generated for both problem sets. The load sizes are also randomly generated. The sizes are all less than or equal to vehicle capacity. Without loss of generality, vehicle capacity is fixed at 1. Four ranges are used to bound the load sizes, with 10 load sets for each range. The ranges indicate the upper and lower bound (inclusive of the bound) on the fraction of the vehicle capacity that the load can occupy, and they are [0.1-0.6], [0.6-1.0], [0.3-0.6], and [0.1-1.0]. These sizes are similar to the problem sizes used in testing of the SDVRP (Dror and Trudeau, 1989, 1990) and the PDPSL (Nowak et al., 2008, 2009), allowing for testing of a set of load sizes spread over the range allowed by vehicle capacity, as well as sets of load sizes that are more closely grouped. Load sizes below 0.1 are not used as splits of these loads rarely occur in practice and any benefit is negligible. The load sizes are randomly generated over each range with a uniform distribution. Each of the three location configurations is matched with each of the ten load sets, resulting in 30 different problems for each load range, and 120 problems overall. The algorithm is used to solve each problem under two scenarios, with split loads and without split loads. The procedure described in the previous section is used for the algorithm with split loads. The algorithm without split loads does not allow for a split load to be added when potential load combinations are generated. All tests are run on a 2.4 GHz Xeon processor with a 400Mhz frontside bus and 2 GB RAM.

6

Experimental Results

We first focus on the savings potential of splitting loads when pickups must come before deliveries. Table 1 presents the average percentage decrease in cost when split loads are allowed, the average number of routes eliminated through the use of split loads and the average computational time required. Recall that the cost of a solution is equivalent to the distance required to travel all of the routes in the solution. Increasing problem size by only one or two customers increased computational time considerably, with most run times well over an hour. Figure 2 presents cumulative histograms of the number of problems versus the percentage decrease in cost when split loads are allowed for the 9 and 10 request problem sets. These histograms are constructed in such a way that the farther a point is to the 17

Load size range

[0.1 - 0.6]

[0.6 - 1.0]

P bl Problem size i

[0.3 - 0.6]

[0.1 - 1.0]

9

10

9

10

9

10

9

10

Average % cost decrease

1.47

1.03

5.28

7.99

2.80

2.36

4.02

4.67

Average number of routes eliminated

0.07

0.03

1.1

1.5

0.2

0.1

0.4

0.47

Average computational time (minutes)

0.3

0.53

3.38

7.55

0.68

1.22

1.34

4.71

Table 1: Average percentage cost decrease, number of routes eliminated and computational times. right on the graph, the more problems with a higher cost decrease. Therefore, the lines farthest to the right indicate those load ranges with the most cost benefit from split loads. In general, the average decrease in cost is small, falling below 5% for every load range except [0.6-1.0], and below 8% for this range. While this may not appear to be significant, most firms within the trucking industry operate with profit margins well below 5% and even a 1% cost savings can be the difference between success and failure. Further, the load ranges with the largest loads, [0.6-1.0] and [0.1-1.0], showed the most potential benefit from split loads. Intuitively, the most benefit is gained from those loads that are too large to be placed on a vehicle simultaneously, but are small enough that splitting the load leaves a great deal of capacity for other loads. That is, if three loads of 0.6 are to be transported, none may be consolidated on a vehicle, but one load may be split in half and there is sufficient room with the other two loads for each half. The results with the exact solution method used here support the results found by Nowak et al. (2008) when using a heuristic algorithm to solve the PDPSL. We provide a summary of the key results regarding the average percentage cost decrease for problem sets with similar load sizes from this paper in Table 2 for comparison. Given that these two problems have different constraints, an exact comparison can not be made. However, these results provide a relatively simple benchmark that gauge how other methods may potentially perform. Also, although the bounds on the load size ranges are slightly different, the relationship between the ranges is of most concern here. 18

a)

30

Number of problems

25

20 Load Range 15

0.1-0.6 0.6-1

10 0.3-0.6 0.1-1

5

0 0

1

2

3

4

5

6

7

8

9

10

11

12

Percentage cost decrease

b)

30

Number of problems

25

20 Load Range 15

0.1-0.6 0.6-1

10 0.3-0.6 0.1-1

5

0 0

1

2

3

4

5

6

7

8

9

10

11

12

13

Percentage cost decrease

Figure 2: Cumulative histogram for the number of problems versus the percentage cost decrease with split loads for each load range for the: a) 9 request problem set; b) 10 request problem set.

Problem size 75 100 125

[0.1 - 0.5] 3.4 3.5 2.6

Load size range [0.5 - 1.0] [0.3 - 0.7] 10.2 6.1 9.9 5.8 10.8 5.3

[0.1 - 1.0] 4.1 3.6 3.6

Table 2: Average percentage cost decrease for comparable problem sets using heuristic on PDPSL, as reported in Nowak, et al., 2008. 19

In general, the relationships between the various ranges for the PC-PDPSL are comparable to the heuristic method of the PDPSL. The most significant decrease is found for the range [0.6-1], while the smallest decrease is in the range [0.1-0.6]. This supports the finding that the most benefit from split loads can be found with load sizes over one half of vehicle capacity. In three of the four load size ranges, the percentage cost decrease with split loads is smaller for the PC-PDPSL when compared to the PDPSL results. This is due to a smaller problem size and the precedence constraint placed on the PC-PDPSL. With considerably fewer loads to split, there are not as many opportunities to find combinations of loads to place on the vehicle through splitting. Also, with the additional constraint that all origins must be visited prior to all destinations, the solution space of the PC-PDPSL is further limited. While constraining the state and action spaces is computationally beneficial, it does impact the variety of solutions that are tested.

7

Conclusions

In this paper, a precedence constrained version of the Pickup and Delivery Problem with Split Loads (PC-PDPSL) is presented, in which all origins must be visited before any destinations on a route. The problem is formulated as a dynamic program, which is developed into an exact solution method utilizing the A* forward-search shortest path algorithm. The algorithm is tested on instances similar to those solved using heuristic methods in Nowak et al. (2008), showing similar results. With no results for the PDPSL found using optimal methods, these findings are important in that they provide some substantiation for the heuristic results. As with the heuristic PDPSL results, the findings for the PC-PDPSL indicate a relationship between average load size and cost savings; average load sizes over one half vehicle capacity show the most benefit. Also, the results indicate that the additional precedence constraint of the PC-PDPSL does not greatly reduce the benefit of split loads. Furthermore, several structural results are generalized from those found for the Split Delivery Vehicle Routing Problem. It is shown that the action space can be reduced by limiting the number of split loads per route to at most one. This allows for the development of a closed form expression of the load amount to be delivered at each decision epoch. 20

References Archetti, C., Hertz, A., Speranza, M. G., 2006. A tabu search algorithm for the split delivery vehicle routing problem. Transportation Science 40, 64–73. Archetti, C., Speranza, M. G., 2007. An overview on the split delivery vehicle routing problem. In: Waldmann, K.-H., Stocker, U. M. (Eds.), Operations Research Proceedings 2006. Vol. 2006 of Operations Research Proceedings. Springer Berlin Heidelberg, pp. 123–127. Baldacci, R., Mingozzi, A., 2009. A unified exact method for solving different classes of vehicle routing problems. Mathematical Programming 120 (2), 347–380. Bertsimas, D. J., Tsitsiklis, J. N., 1997. Introduction to Linear Optimization. Athena Scientific. Desaulniers, G., 2010. Branch-and-price-and-cut for the split-delivery vehicle routing problem with time windows. Operations research 58 (1), 179. Dijkstra, E., 1959. A note on two problems in connexion with graphs. Numerische Mathematik, 269–271. Dror, M., Laporte, G., Trudeau, P., 1994. Vehicle routing with split deliveries. Discrete Applied Mathematics 50, 239–254. Dror, M., Trudeau, P., 1989. Savings by split delivery routing. Transportation Science 23, 141– 145. Dror, M., Trudeau, P., 1990. Split delivery routing. Naval Research Logistics 37, 383–402. Frizzell, P. W., Giffin, J. W., 1995. The split delivery vehicle scheduling problem with time windows and grid network distance. Computers and Operations Research 22, 655–667. Lee, C., White, C., Bozer, Y., Epelman, M., 2006. A shortest path approach to the multiplevehicle routing problem with split pick-ups. Transportation Research - Part B 40, 265–284. Nemhauser, G. L., Wolsey, L. A., 1999. Integer and Combinatorial Optimization. John Wiley and Sons, Inc.

21

Nilsson, N., 1980. Principles of Artificial Intelligence. Tioga. Nowak, M. A., Ergun, O., White, III, C. C., 2008. Pickup and delivery with split loads. Transportation Science 42, 32–43. Nowak, M. A., Ergun, O., White, III, C. C., 2009. An empirical study on the benefit of split loads with the pickup and delivery problem. European Journal of Operational Research 198, 734–740. Pearl, J., 1984. Heuristics: Intelligent Search Strategies for Computer Problem Solving. AddisonWesley Publishing Co. Puterman, M. L., 1994. Markov Decision Processes: Discrete Stochastic Dynamic Programming. Wiley Series in Probability and Mathematical Statistics. John Wiley and Sons, Inc., New York. Sierksma, G., Tijssen, G. A., 1998. Routing helicopters for crew exchanges on off-shore locations. Annals of Operations Research 76, 261–286.

22

Suggest Documents