+ All Categories
Home > Documents > A Column Generation Algorithm for a Rich Vehicle-Routing Problem

A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Date post: 09-Dec-2016
Category:
Upload: matteo
View: 212 times
Download: 0 times
Share this document with a friend
14
Vol. 43, No. 1, February 2009, pp. 56–69 issn 0041-1655 eissn 1526-5447 09 4301 0056 inf orms ® doi 10.1287/trsc.1080.0256 © 2009 INFORMS A Column Generation Algorithm for a Rich Vehicle-Routing Problem Alberto Ceselli, Giovanni Righini Dipartimento di Tecnologie dell’Informazione, Università degli Studi di Milano, 26013 Crema, Italy {[email protected], [email protected]} Matteo Salani Dipartimento di Tecnologie dell’Informazione, Università degli Studi di Milano, 26013 Crema, Italy, and EPFL ENAC INTER TRANSP-OR, CH-105 Lausanne, Switzerland, matteo.salani@epfl.ch W e present an optimization algorithm developed for a provider of software-planning tools for distribution logistics companies. The algorithm computes a daily plan for a heterogeneous fleet of vehicles that depart from different depots and must visit a set of customers for delivery operations. In this rich vehicle-routing problem (VRP), we consider multiple capacities; time windows associated with depots and customers; incom- patibility constraints between goods, depots, vehicles, and customers; maximum route length and duration; upper limits on the number of consecutive driving hours and compulsory drivers’ rest periods; the possibility of skipping some customers and using express courier services instead of the given fleet to fulfill some orders; the option of splitting up the orders; and the possibility of open routes that do not terminate at depots. Moreover, the cost of each vehicle route is computed through a system of fees depending on the locations visited by the vehicle, the distance traveled, the vehicle load, and the number of stops along the route. We developed a column generation algorithm where the pricing problem is a particular resource-constrained elementary shortest-path problem, solved through a bounded bidirectional dynamic programming algorithm. We describe how to encode the cost function and the complicating constraints by an appropriate use of resources, and we present computational results on real instances obtained from the software company. Key words : vehicle routing; column generation History : Received: September 2007; revisions received: December 2007, April 2008; accepted: November 2008. 1. Introduction The delivery and collection of goods at customers’ locations accounts for a relevant part of the supply chain cost. Optimally planning the distribution of goods is an effective way to obtain substantial savings. In the last decades, different optimization tech- niques have been widely applied to the exact opti- mization of vehicle-routing problems: algorithms based on branch-and-bound, branch-and-cut, and branch-and-price have been proposed. A detailed sur- vey of such techniques can be found in the book by Toth and Vigo (2002), but this is a still grow- ing research area. Recent methods like branch-and- cut-and-price have advanced the state of the art (Fukasawa et al. 2006; Hadjar, Marcotte, and Soumis 2006). Exact optimization algorithms based on column generation exploit the Dantzig-Wolfe decomposition of the flow formulation of the original problem into a master problem and a pricing subproblem. The master problem is a set-partitioning or set-covering problem with binary variables, whereas the pricing subprob- lem is a constrained elementary shortest-path prob- lem that is iteratively solved to produce promising new columns. We address the reader to the recent book by Desaulniers, Desrosiers, and Solomon (2005) on column generation for a review of such meth- ods. Recent contributions have advanced the knowl- edge on column generation, allowing us to get rid of some of the drawbacks of the method. In particular, dual-space stabilization issues have been addressed by Rousseau, Gendreau, and Feillet (2003) and Amor (2002), whereas dual-space cutting planes and con- straint aggregation methods have been proposed by Ben Amor, Desrosiers, and Valerio de Carvalho (2006) and Elhallaoui et al. (2008), respectively. Despite all these advances in real-world routing and scheduling applications, several complicating constraints motivated practitioners and researchers to resort to heuristics and metaheuristics, trading opti- mality or approximation guarantees for efficiency and flexibility. Literature Review. The scientific literature on VRP with real-world characteristics is not very rich. A rel- evant part of such papers deals with time windows. Inspired by the seminal work of Solomon (1983), many researchers enriched the concept of time windows, 56
Transcript
Page 1: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Vol. 43, No. 1, February 2009, pp. 56–69issn 0041-1655 �eissn 1526-5447 �09 �4301 �0056

informs ®

doi 10.1287/trsc.1080.0256©2009 INFORMS

A Column Generation Algorithm for a RichVehicle-Routing Problem

Alberto Ceselli, Giovanni RighiniDipartimento di Tecnologie dell’Informazione, Università degli Studi di Milano, 26013 Crema, Italy

{[email protected], [email protected]}

Matteo SalaniDipartimento di Tecnologie dell’Informazione, Università degli Studi di Milano, 26013 Crema, Italy, and

EPFL ENAC INTER TRANSP-OR, CH-105 Lausanne, Switzerland, [email protected]

We present an optimization algorithm developed for a provider of software-planning tools for distributionlogistics companies. The algorithm computes a daily plan for a heterogeneous fleet of vehicles that depart

from different depots and must visit a set of customers for delivery operations. In this rich vehicle-routingproblem (VRP), we consider multiple capacities; time windows associated with depots and customers; incom-patibility constraints between goods, depots, vehicles, and customers; maximum route length and duration;upper limits on the number of consecutive driving hours and compulsory drivers’ rest periods; the possibility ofskipping some customers and using express courier services instead of the given fleet to fulfill some orders; theoption of splitting up the orders; and the possibility of open routes that do not terminate at depots. Moreover,the cost of each vehicle route is computed through a system of fees depending on the locations visited by thevehicle, the distance traveled, the vehicle load, and the number of stops along the route.

We developed a column generation algorithm where the pricing problem is a particular resource-constrainedelementary shortest-path problem, solved through a bounded bidirectional dynamic programming algorithm.We describe how to encode the cost function and the complicating constraints by an appropriate use of resources,and we present computational results on real instances obtained from the software company.

Key words : vehicle routing; column generationHistory : Received: September 2007; revisions received: December 2007, April 2008; accepted: November 2008.

1. IntroductionThe delivery and collection of goods at customers’locations accounts for a relevant part of the supplychain cost. Optimally planning the distribution ofgoods is an effective way to obtain substantial savings.In the last decades, different optimization tech-

niques have been widely applied to the exact opti-mization of vehicle-routing problems: algorithmsbased on branch-and-bound, branch-and-cut, andbranch-and-price have been proposed. A detailed sur-vey of such techniques can be found in the bookby Toth and Vigo (2002), but this is a still grow-ing research area. Recent methods like branch-and-cut-and-price have advanced the state of the art(Fukasawa et al. 2006; Hadjar, Marcotte, and Soumis2006).Exact optimization algorithms based on column

generation exploit the Dantzig-Wolfe decompositionof the flow formulation of the original problem into amaster problem and a pricing subproblem. The masterproblem is a set-partitioning or set-covering problemwith binary variables, whereas the pricing subprob-lem is a constrained elementary shortest-path prob-lem that is iteratively solved to produce promising

new columns. We address the reader to the recentbook by Desaulniers, Desrosiers, and Solomon (2005)on column generation for a review of such meth-ods. Recent contributions have advanced the knowl-edge on column generation, allowing us to get rid ofsome of the drawbacks of the method. In particular,dual-space stabilization issues have been addressedby Rousseau, Gendreau, and Feillet (2003) and Amor(2002), whereas dual-space cutting planes and con-straint aggregation methods have been proposed byBen Amor, Desrosiers, and Valerio de Carvalho (2006)and Elhallaoui et al. (2008), respectively.Despite all these advances in real-world routing

and scheduling applications, several complicatingconstraints motivated practitioners and researchers toresort to heuristics and metaheuristics, trading opti-mality or approximation guarantees for efficiency andflexibility.

Literature Review. The scientific literature on VRPwith real-world characteristics is not very rich. A rel-evant part of such papers deals with time windows.Inspired by the seminal work of Solomon (1983), manyresearchers enriched the concept of time windows,

56

Page 2: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 57

introducing multiple time windows and soft time win-dows. For instance, Koskosidis, Powell, and Solomon(1992) addressed the vehicle-routing and schedulingproblem with soft time window constraints, whichhas recently been tackled with an exact optimizationalgorithm by Liberatore, Righini, and Salani (2006).General time windows have also been consideredin Ibaraki et al. (2005). We also refer the reader to thereviews by Braeysy and Gendreau (2005a, b).Pick-up and delivery constraints, reviewed by

Savelsbergh and Sol (1995), have also been consid-ered. Bianchessi and Righini (2007) devised a complexand variable neighborhood search algorithm for thevehicle routing with simultaneous pick-up and deliv-eries, recently solved also by Dell’Amico, Righini,and Salani (2006) with exact optimization algorithms.Pick-up and delivery constraints and time windowshave been simultaneously addressed by Dumas,Desrosiers, and Soumis (1991).Multidepot and heterogeneous fleet problems have

been addressed by Hadjar, Marcotte, and Soumis(2006); Desaulniers, Lavigne, and Soumis (1998);Ribeiro and Soumis (1994); Yepes and Medina (2006);Dondo and Cerdà (2006); and Baldacci, Battarra, andVigo (2007).Among the difficulties issued by real-world prob-

lems, it is worth mentioning split deliveries. In aclassical vehicle-routing problem, the customers canbe served by at most one vehicle, whereas in theVRP with split deliveries (SDVRP) this constraint isrelaxed. In an optimal solution of a SDVRP, some cus-tomer requests can be split up and assigned to sev-eral vehicles. Such a relaxation allows us to modelthe case in which customer demands are greater thana vehicle’s capacity. The SDVRP has been consid-ered by Dror and Trudeau (1989), who also proposeda branch-and-bound heuristic (Dror, Laporte, andTrudeau 1994). Some advances regarding the compu-tational complexity, a bound on the cost reduction,and an optimization-based heuristic have been illus-trated by Archetti, Mansini, and Speranza (2005) andArchetti, Savelsbergh, and Speranza (2006b, a).A comprehensive and up-to-date review of VRP

models and algorithms can be found in the bookedited by Golden, Raghavan, and Wasil (2008).To the best of our knowledge, only Xu et al. (2003)

presented an optimization-based heuristic for a prob-lem in which many of the characteristics cited abovehave been considered simultaneously. The authorsproposed a column generation scheme in which thepricing subproblems are solved through heuristics.Computational experiments are reported on randomlygenerated instances and the results are compared withvalid lower bounds. The additional difficulties weaddress in this paper refer to split deliveries andeconomies of scale.

We consider a real-world vehicle-routing problem,and we illustrate an optimization algorithm based oncolumn generation and dynamic programming. Weshow that the proposed approach is flexible enough totake into account several complicating constraints, andit is able to compute optimal solutions or near-optimalones with a posteriori approximation guarantee.In §2 we describe the routing problem and its

model, in §3 we illustrate how we treat the additionalconstraints in the dynamic programming algorithm,in §4 we describe some implementation issues, andin §5 we present our computational results in a realcase study.

2. Problem DescriptionThe Constraints. The distribution network of our

problem consists of two types of locations: customersites and depots. The position of each location isknown and defined by a five-level hierarchical code:nation (e.g., Italy), zone (e.g., North, Center, South),region (e.g., Piedmont, Lombardy), district (e.g.,Turin, Milan) and zip code. Each location can bedefined at any level of detail in the hierarchy: Forinstance, it is possible that for some locations onlythe nation is given; for some other locations nationand zone are given; for some other ones nation, zone,and region are given; and so on. This influences thecomputation of the cost of the routes, as explainedbelow.The distance between each pair of locations, in

terms of both kilometers and traveling time, is knownas well. Due to different road types and average traf-fic conditions, distance in time and in space may notbe proportional. Both time and space must be takeninto account separately, because this is required by thecost function.For both location types (customers and depots), we

are given a set of time windows in which loadingand unloading operations can take place. We are alsogiven the unit service time needed to perform suchoperations. The overall service time is proportional tothe amount of goods to be loaded or unloaded.For each customer site we are also given a set of

orders that must be delivered and a maximum al-lowed number of visits to the site for each day.Each order is made of several items; each item

consists of goods, organized in pallets; three coeffi-cients describe the characteristics of each item, namelyweight, volume, and value. Orders can be split, butitems cannot. Therefore, this problem falls in-betweenthe single-source vehicle-routing problem and thesplit delivery vehicle-routing problem. The probleminstances we were given contained up to 100 orders,up to 461 items, and up to 137 available vehicles. Theattempt to solve from scratch problem instances of

Page 3: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem58 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

this size as single-source VRP instances with as manyvertices as the items is not viable.The daily duty of each vehicle of the fleet can be

composed of many routes, each starting at the samedepot. Each vehicle type is described by several data:the maximum weight, the maximum volume, themaximum value, the maximum number of pallets thatthe vehicle can carry, the maximum daily duty length(in terms of both time and distance), the maximumlength for each route (in terms of both time and dis-tance), and a limit to the number of allowed stopsalong the route. By “stop” we mean a visit to a cus-tomer to execute a delivery operation.The time needed for unloading the items at the cus-

tomer locations is computed as a weighted sum ofweight, volume, value, and number of pallets. Thetime needed to load the items at the depot is approx-imated with a constant according to the vehicle type.Each item may not be available in all depots. More-

over, each vehicle type can be incompatible with agiven set of items and with some locations. Furtherincompatibilities exist between items and betweenitems and locations. This is because it is commonpractice that some goods are not transported withsome others on the same vehicle—for instance, foodand detergents—although the vehicle itself is allowedto transport both types of goods separately.The computation of route schedules is particularly

involved. Each vehicle spends time in three differentways: when traveling from one location to another,when waiting to access the locations, and when load-ing and unloading goods. Traveling time must takeinto account the drivers’ rest periods, which are sub-ject to strict rules: Each driver has to rest for a periodof duration � for every driving period of duration � .This rest period can be split into shorter breaks, andthe waiting time and loading/unloading time countas a break only if they amount to at least a givenduration � without interruption.In a feasible plan, each order must be delivered,

but the planner has the option of paying an expresscourier for distributing some of the items. This optionhas to be used as an exception, because the costs ofthe courier are higher than those of the available vehi-cles. However, in some cases it may happen that smallamounts of goods should be delivered to customersfar away from the depot and isolated from other cus-tomers, so that no economies of scale are possible.In these exceptional cases it may be cheaper to sendthe items via express courier.A complete plan must be computed with daily

frequency.

The Cost Function. A cost is associated with eachvehicle route, and it is computed through fees. By feewe mean the cost to be paid to serve a particular setof locations.

Operational and management issues raise the needfor dealing with a flexible, although nontrivial, sys-tem of fees. The service is provided by drivers of dif-ferent transportation companies with different localdistribution networks and regional knowledge. Eachtransportation company holds its own commercialagreement, and such agreements are heterogeneous.Some drivers require a fixed amount of money foroperating the vehicle, whereas others take into ac-count economies (or diseconomies) of scale on theamount of transported goods. For all of them, visit-ing particular locations can imply additional operat-ing costs, higher taxes, or town duties. These, in turn,are computed on the basis of the vehicle weight orthe amount of transported goods.Therefore, the optimization algorithm was designed

to take into account a general system of fees definedas follows. There are six different types of fees,depending on the following six characteristics of theroute:1. The overall traveled distance (l),2. The total number of pallets (r),3. The total weight (w),4. The total volume (v),5. The total value (o),6. The number of stops (b).

To model economies of scale, each fee is defined byranges. Each range is described by a lower limit, anupper limit, a fixed cost, and a unit cost. For eachroute and for each of the former five characteristics, arange is active whenever the corresponding value forthat route falls between the lower and the upper limitof the range. The fixed cost and the unit cost of theactive range define the fee for that route and for thatcharacteristic. The fees on the number of stops aretreated in a slightly different way: A given number ofstops is free and a given unit cost is added only foreach stop beyond such a limit.Each fee is only applied to a given subset of loca-

tions: a nation, a zone, a region, a district, or a singlezip area. Whenever two (or more) fees related to thesame characteristic match the same location, the less-specific fees are disregarded.This complicated cost structure implies that each

location can have a different set of fees. A differentcost for a route can be computed by considering thefee of each visited location. For each location alongthe route, the six fees related to the six characteristicslisted above are added up, yielding the cost of theroute for that location. The overall cost of the route isthe maximum among the costs corresponding to thevisited locations.Hence, to compute the route costs we proceed as

follows. First, we build a tree representing the geo-graphical relations involved in the fee system. Theroot node of such a tree corresponds to the nation,

Page 4: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 59

Figure 1 Example of the Fee System

each zone is a subtree of the nation tree, each regionis a subtree of a zone subtree, and so on.Let R be a vector having one component for each

characteristic, storing the resource consumption of aroute. For the sake of readability, we use the setof symbols �l� r�w�v�o� b� as indices to indicate thecomponents of the resource vector. Therefore, in therest of the paper, R� indicates the component ofvector R corresponding to resource for each ∈�l� r�w�v�o� b�. Let V be the set of locations. For-mally, the cost related to a location v ∈ V can beobtained by visiting the tree represented in Figure 1from the leaf representing location v up to the rootand stopping as soon as a matching range (if any) isfound. Because each range has its own fixed and unitcost, �F

v and �Uv, respectively, the cost is given by

a piecewise-linear function �v�R� = �Fv�R� +

�Uv�R� ·R� for each location v ∈ V and for each

characteristic ∈ �l� r�w�v�o� b�. The cost for visitingeach location v is

�v�R=∑

∈�l� r�w�v�o� b��v�R�

Finally, let A be the set of visited locations in a route.The overall cost of the route is

��R�A=maxv∈A

�v�R

In Figure 1 we report a simplified example of sucha hierarchical fee system. Instead of considering allsix characteristics listed above, in this example weshow the route cost computation using only threeof them: weight, value, and number of stops. Italyis split into three zones: North, Center, and South;Piedmont and Lombardy are two regions in theNorth; Turin (TO) and Cremona (CR) districts belongto Piedmont and Lombardy, respectively; Milan (MI)belongs to Lombardy as well; the zip code 26013 cor-responds to the city of Crema in Cremona district.Seven fees are represented between brackets. Eachof them has a corresponding characteristic (stops,weight, value), a range (indicated between square

brackets), fixed (F) and unit (U) costs in euros. Theweight fee related to the city of Crema is defined bytwo ranges (�0 10� and �10 20�), with different fixedand unit costs. We consider a vehicle carrying an over-all weight of eight tons, whose value is E5�000. It per-forms two stops along its route: the first one in Cremaand the second one in Rivoli, a town in Turin district.Cost at the first location (Crema). When the vehicle

visits Crema, the weight of its load (eight tons) fallsinto the range �0 10� of the zip area fee for weight,hence, the less-specific fee for weight (the one referredto Lombardy) is disregarded. This yields a cost ofE�100 + 30 · 8 = 340. The value of the load (E5�000)falls in the range of the regional fee (i.e., �0 20�000�),and this yields a cost of E�5�000 · 0 2= 1�000. The feeon the number of stops is defined only at the nationallevel, but it does not apply, because its range startsfrom three stops. Hence, the overall cost of the routecomputed in Crema is E�340+ 1�000+ 0= 1�340.

Cost at the second location (Rivoli). The weight feereferred to Turin does not apply, because the rangestarts from 25 tons; the weight fee referred to Pied-mont applies and yields a cost of E�150+ 10 · 8= 230.No fee due to the value is specified at any level, so thecost for the loaded value is null. As before, the cost forthe number of stops is also null. Hence, the overall costof the route computed in Rivoli is E�230+0+0= 230.

The final cost of the route is the maximum ofthese two costs, that is, E1�340 (the cost computed atthe first location). The reason for choosing the max-imum among the costs related to the visited loca-tions is that transportation companies that can beassigned the transportation task usually charge a costdepending on the costliest location visited to encour-age their business partners to assign them multipleorders, yielding economies of scale.

3. A Column Generation AlgorithmLet P be the set of vehicle types and D be the setof depots. For each location v ∈ V let Qv be the cor-responding set of items and let Q = ⋃

v∈V Qv be the

Page 5: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem60 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

whole set of items to be delivered. We model ourproblem as a set-covering problem (SCP), in whicheach column encodes a feasible vehicle duty, definedas a sequence of routes:

minimize∑p∈P

∑k∈�p

ckzk (1)

s.t.∑p∈P

∑k∈�p

xkqzk ≥ 1 ∀ q ∈Q (2)

∑k∈�p

zk ≤ np ∀p ∈ P (3)

∑p∈P

∑k∈�p

skvzk ≤mv ∀v ∈ V (4)

zk ∈ �0�1� ∀p ∈ P� ∀k ∈�p (5)

In this model �p is the set of feasible duties that canbe assigned to a vehicle of type p ∈ P in one day.Each coefficient xkq is 1 if item q is delivered along aroute in duty k, 0 otherwise. Covering constraints (2)impose that each item is delivered. Each term np rep-resents the maximum number of vehicles of type pavailable per day. Constraints (3) replace convexityconstraints by limiting the number of duties assignedto vehicles of the same type. Each term mv rep-resents the maximum number of visits allowed tolocation v during the same day, and each term skv rep-resents the number of visits to location v performedduring duty k. Constraints (4) ensure that the num-ber of routes entering each location does not exceedthe maximum allowed number of daily visits. Theremaining constraints are encoded in the constructionof the sets �p of feasible duties. For each duty k ∈�p,the variable zk takes value 1 if duty k is selected,0 otherwise. The cost ck of each duty k is computedthrough the system of fees described in the previoussection, and the objective (1) is to select a feasible sub-set of duties in order to minimize the overall operat-ing costs.

The Pricing Problem. The set-covering model maycontain a number of variables, which grows exponen-tially with the size of the instance. To compute a validlower bound, we have recourse to column generation.For a detailed treatment of column generation appliedto vehicle-routing problems, we refer the reader tothe recent book edited by Desaulniers, Desrosiers, andSolomon (2005).In particular, we relax integrality conditions and

we consider a restricted set-covering problem (RSCP).Initially it includes only �Q� columns, one for eachitem q, with a coefficient 1 in the corresponding cov-ering constraint, and 0 elsewhere. The cost of thesecolumns is known in advance, and it corresponds tothe fee of the express courier, which is known. Thepresence of these columns ensures that a feasible solu-tion always exists for the RSCP independently of thecolumns generated dynamically.

At each column generation iteration the linear re-laxation of the RSCP is solved, and we search for newcolumns with negative reduced cost. The reduced costof each column k ∈�p is:

c̄k = ck − ∑q∈Q

�qxkq − �p − ∑

v∈V�vs

kv�

where �q is the nonnegative dual variable associatedto the qth constraint of the set (2), �p is the nonpos-itive dual variable associated with the pth constraintof the set (3), and �v is the nonpositive dual variableassociated with the vth constraint of the set (4).Hence, instead of explicitly computing the reduced

cost of all the variables in the problem, we solve sev-eral pricing problems, one for each vehicle type p ∈ Pand for each depot d ∈D, in order to identify one ormore negative reduced cost columns. If columns withnegative reduced cost are found, they are insertedinto the RSCP and the process is iterated; otherwise,the optimal fractional solution of the linear relaxationof the RSCP is also an optimal solution of the linearrelaxation of the SCP.Hereafter, we present our pricing algorithm: In §3.1

we present the basic dynamic programming tech-nique, in §3.2 we explain how bidirectional dynamicprogramming is used to improve the algorithm, in §3.3we explain how the algorithm generates columns rep-resenting multiple routes per duty, and in §3.4 weaddress some additional implementation issues.

3.1. A Pricing AlgorithmThe pricing problem is a special case of theresource-constrained elementary shortest-path prob-lem (RCESPP) formulated on a graph having onevertex for each item, nonnegative costs on the arcs,nonnegative prizes on the vertices (given by the �q

dual variables), and nonnegative penalties for enter-ing each location (given by the �v dual variables).Both orders and locations correspond to subsets

of items, and therefore to subsets of vertices of thegraph. In §4 we describe how to exploit this relationto design vertex aggregation schemes.The RCESPP is known to be strongly NP-hard (Dror

1994). The most commonly used technique to solvethe RCESPP to optimality is dynamic programming,relying upon the seminal work by Desrochers andSoumis (1988), in which a relaxation of the pricingalgorithm is solved, where cycles are allowed. Re-cently Righini and Salani (2008) proposed dynamicprogramming algorithms in which the pricing prob-lem is solved exactly, without allowing for cycles.In this work we adapted the bounded bidirectional

dynamic programming (BBDP) algorithm proposedby Righini and Salani to solve our pricing problem tooptimality, encoding all the constraints through suit-able resources. The BBDP algorithm separately gener-ates forward and backward partial paths from and to

Page 6: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 61

the depot as labels of a dynamic programming algo-rithm. The extension of forward and backward pathsis defined in such a way that one-half of the vehicleroutes in one duty is performed forward and one-half backward. Furthermore, if the number of routesis odd, half of the stops in the central route are vis-ited forward, and half backward. The BBDP algorithmkeeps a list of nondominated labels, grouped for eachorder, and iteratively extends labels retaining only thePareto-optimal ones according to a dominance crite-rion. Each time a certain number of labels is created,the algorithm builds complete paths by joining com-patible forward and backward partial paths.Hereafter we describe how we have encoded the

constraints by means of resources, whereas in thenext subsections we detail how the extension and joinsteps are performed.When considering vehicle type p and depot d we

discard items that are either unavailable at depot d orincompatible with vehicle type p. We represent eachitem as a vertex in an auxiliary graph. Let I be theset of vertices in the graph. Two more vertices � and� represent the depot where the vehicle duty startsand ends. Because � and � do not belong to V , weset �� = �� = 0. We assign to each vertex i ∈ I a set ofstates, representing routes from the starting vertex �to vertex i. Each state includes a resource consump-tion vector R, whose components represent the quan-tity of each resource used along the correspondingroute. As described in §2, this resource vector has sixcomponents (l� r�w�v�o� b), one for each characteris-tic of the route.In each state we also keep track of the time spent

in driving (g) and in rest periods (h) along the route.Owing to the contribution of the �q dual variables

to the route cost, the graph may contain negative costcycles. To generate elementary paths only, followingBeasley and Christofides (1989), we attach to labelsa set A representing the visited locations, a set S ofdelivered items, and a set � of undeliverable items,which are incompatible with the delivered ones.Each state has an associated cost C, depending on

traversed arcs and visited locations, and a prize �depending on the �q and �v dual variables associ-ated with the visited locations. An optimal solutioncorresponds to the state associated with vertex �with minimum value of C − � . Hence, in our algo-rithm each state is represented by a label of the form(S���A�R�g�h�C��� i). The initial state, representingan empty vehicle at the depot, is encoded with a label(������ �0 0��0�0�0�0��).The vehicle-loading time is assumed to be a fixed

value, depending only on the vehicle type. Such valueis defined in a conservative way so that it is alwaysenough to fully load the vehicle. In the case study wehave addressed, this policy was indicated to us by

the software company as a good approximation of thereal loading time.

Extension. The dynamic programming algorithmrepeatedly extends each label to generate new labels.In particular, the extension of a label (S���A�R�g�h�C��� i) corresponds to appending an additional arc�i� j to a path from � to i, obtaining a path from � toj . The extended label has the form (S ′��′�A′�R′�g′�h′�C ′� � ′� j).Hereafter, we describe how to obtain the value of

each component of this extended label.We distinguish between internal and external ex-

tensions. We indicate extensions from a vertex i to avertex j corresponding to items in the same locationas internal extensions. On the opposite, we indicateextensions from a vertex i to a vertex j correspond-ing to items in different locations as external exten-sions. Therefore, each path is built by extension blocks.Each block is made by an external extension and asequence of zero or more internal extensions.The sequence of internal extensions at each cus-

tomer location v defines a set �v ⊆ Qv of delivereditems. To avoid the generation of many symmetric andequivalent solutions, we define a partial order of thevertices of each location and we do not allow internalextensions from any vertex j to any vertex i with i < j .The actual consumption of resources can be com-

puted only when the whole extension block is defined.In fact, as described below, the amount of consumedresources depends both on the location of the cus-tomer, defined by the external extension, and on theset �v of items delivered, defined by the sequence ofinternal extensions.Let (i� j) be the arc used by the external exten-

sion. With a little abuse of notation, we indicate as lij(respectively, tij ) both the distance (respectively, trav-eling time) between locations i and j and the dis-tance between the locations corresponding to verticesi and j . The traveled distance is updated as R′�l =R�l+ lij , and the number of stops is increased by one:R′�b=R�b+ 1.

Then we represent the consumption implied byeach item q ∈�v as a vector �q with the following fourcomponents:• Number of unloaded pallets (r)• Weight of unloaded items (w)• Volume of unloaded items (v)• Value of unloaded items (o).

We update the route resource consumption as follows:R′�= R�+∑

q∈�v�q�, for each of the four char-

acteristics ∈ �r�w�v�o�.The computation of the driving time and the rest

time is more involved. First, we have to take intoaccount work rules that impose taking one break ofduration � after each uninterrupted driving period ofduration � . Drivers are allowed to take breaks at any

Page 7: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem62 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

point along the route. Hence, while moving from i to j ,the number � of additional breaks to be taken is givenby the following expression: � = max��g + tij /� � −h/���0�. In particular, �g + tij /� � represents theminimum number of uninterrupted driving periodsthat the driver may have accumulated, whereas h/��indicates the number of rest periods already taken.The difference is the number of additional rest periodsdue to the extension. This number can be greater thanone in the case of very long route segments betweenconsecutive locations. The arrival time at vertex j isg + h+ tij + � · � . Because each location j has a timewindow starting at ej , in the case of early arrival thevehicle has to wait until the starting time of the timewindow and the arrival time is set to ej . Let � be thewaiting time in this case.Finally, let u��v be the time spent for unloading

operations. The unloading time per pallet and perunit of weight, volume, and value is given; hence,u��v can be directly computed from the input data.According to the work rules, if � + u��v ≥ � thewaiting and unloading time counts as rest time; oth-erwise, it counts as driving time.Therefore, the time resources are updated as fol-

lows: If �+u��v≥� , then g′ = g+ tij and h′ = h+� ·� + � + u��v; otherwise, g′ = g + tij + � + u��v andh′ = h+� ·� . We remark that, according to these rules,a driver may accumulate resting time by anticipatinga break, but he cannot delay a break. However, antic-ipating breaks when they are not needed is always asuboptimal choice.We observe that it is never convenient for a vehicle

to serve the same location in more than one roundduring the same route, because coming back onlyimplies additional resource consumption. Let v be thelocation corresponding to vertex j . We set A′ =A∪ �v�and S ′ = S ∪�v. Moreover, we include in �′ the itemsin �∪Qv\�v and any item which is incompatible withan item in �v.The prize � ′ of the new label is computed as � ′ = �+∑q∈�v

�q + ��i + �j/2. The cost C ′ of the new label iscomputed from the set of visited locations A′ throughthe system of fees described in §2.

Feasibility. Each vehicle has a limited capacity,which is given separately in terms of maximum num-ber of loadable pallets, weight, volume, and value.Each subset of items �v yielding a state in which theselimits are violated is not considered during the inter-nal extensions at location v.If the closing time fj of a location is exceeded, that is,

g′ +h′ > fj , the corresponding label is discarded.Moreover, a maximum travel distance, a maxi-

mum duration, and a maximum number of stopsare imposed for each route. Whenever one or morecomponents of the R′ vector exceed these limits, thecorresponding label is not created.

In order to avoid cycles, we do not consider exter-nal extensions to any location j ∈ S.Because each vehicle has to come back to the depot,

if R′�l+ lj� exceeds the maximum travel distance org′ + h′ + tj� exceeds the maximum travel time, thelabel is discarded. If a given vehicle is allowed to per-form open routes, this is taken into account by settinglj� = 0 for all vertices j for that vehicle. In our casestudy, open routes could occur only as the last routesin daily duties. However, the algorithm can be easilyadapted to take into account multiple open routes inthe same daily duty.Finally, following Feillet et al. (2004), we include

in �′ the set of items placed in any unvisited loca-tion v such that R′�l+ ljv + lv� exceeds the maximumtravel distance or g′ + h′ + tjv + tv� exceeds the maxi-mum travel time.

Dominance. The effectiveness of the dynamic pro-gramming algorithm depends heavily on the numberof states generated. Hence, it is essential to fathomfeasible states that cannot lead to the optimal path.For this purpose, suitable dominance tests are alwaysperformed when states are extended, so that the algo-rithm records only nondominated states.After each internal extension we perform a simpli-

fied dominance test: Let �′v and �′′

v be two item setsassociated with vertex i during internal extensions ofa same label at location v. A state in which �′

v is deliv-ered dominates a state in which �′′

v is delivered onlyif∑

q∈�′v�q ≤∑

q∈�′′v�q and

∑q∈�′

v�q ≥∑

q∈�′′v�q .

Instead, at each external extension, the actualresource consumption is known, and the set �v isempty. Therefore, we perform the following completedominance test. Let �′ = �S ′��′�A′�R′�g′�h′�C ′� � ′� iand �′′ = �S ′′��′′�A′′�R′′�g′′�h′′�C ′′� � ′′� i be the labelsof two different states associated with vertex i. State �′

dominates �′′ only if

S ′ ∪�′ ⊆ S ′′ ∪�′′ (6)

A′ ⊆A′′ (7)

R′ ≤R′′ (8)

g′ ≤ g′′ (9)

g′ +h′ ≤ g′′ +h′′ (10)

C ′ − � ′ ≤C ′′ − � ′′ (11)

In particular, if conditions (9) and (10) are satis-fied, this means that state �′ corresponds to a route inwhich the driver has spent less time in driving and ithas taken less time to perform the same route than instate �′′. Moreover, one can easily check that no morebreaks have to be made after �′ than after �′′. In fact,suppose h′ ≤ h′′ (and � = h′′ − h′), then R′�t + � =g′ + h′ + �h′′ − h′= g′ + h′′ ≤ g′′ + h′′ = R′′�t. In other

Page 8: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 63

words, the driver in state �′ can rest as much as thedriver in state �′′, and still it takes less time for himto perform the same route. Moreover, this conditionis looser than imposing h′ ≥ h′′, and therefore it mayyield a stronger dominance effect.We remark that although the computation of the

cost function is very involved, when the above con-ditions are satisfied, inequality (11) still guaranteesthat no better state can be obtained by extending �′′

instead of �′. In fact, as described in §2, the set of feesrelated to a location j defines a stepwise linear costfunction �j�R. Therefore, the cost of the first stateis computed as �′�R�A′ = maxj∈A′��j�R� and thecost of the second state is computed as �′′�R�A′′ =maxj∈A′′��j�R�. Because A′ ⊆ A′′, �′�R ≤ �′′�R foreach R.

3.2. Bidirectional Dynamic ProgrammingThe combination of bidirectional search with resource-based bounding allows us to solve larger instances(or the same instances in less time) than monodi-rectional dynamic programming. Detailed experimen-tal results are reported in Righini and Salani (2006).Instead of starting with just one initial state, we cre-ate two initial states (������ �0 0��0�0�0��) and(������ �0 0��0�0�0� �), marked “forward” and“backward,” respectively.Each forward state is extended as described before,

generating further forward states. The extension ofbackward states follows symmetrical rules, and it dif-fers only in the computation of the driving time andthe rest time. First, the time windows’ limits ej and fjare exchanged in the computation of the waiting timeand in the feasibility test. Then let �′ = �S ′��′�A′�R′�g′�h′�C ′� � ′� i and �′′ = �S ′′��′′�A′′�R′′�g′′�h′′�C ′′�� ′′� i be the labels of two backward states associatedwith vertex i, such that g′ ≤ g′′ and g′ + h′ ≤ g′′ + h′′.According to the forward dominance criteria, �′ maydominate �′′. However, this is not the case with back-ward states: Extending both states backward, it mayhappen that the driving time between two breaks inthe extended �′ state exceeds the limit � , whereas itdoes not when �′′ is extended. This may happen evenif h′ > h′′, because rest time can be accumulated, buta driver cannot postpone a break.For instance, consider the example illustrated

in Figure 2. It consists of a graph with five vertices,labeled from A to E. In vertices C and E the vehi-cle has, respectively, a waiting time of � + � and � ,which counts as rest time. The travel time, instead, isreported on the edges of the graph. The path from Ato D passing through E requires an overall time of �+� + 2 · �, because when the vehicle reaches E enoughrest time is provided to avoid a further break beforereaching D. The path from A to D passing through Crequires an overall time of � + 2 · � + 2 · �, because

h = Γ + ε

t = ϒ/2 + ε

t = ϒ/2 – ε

t = ϒ/2

C

E

DBA

h = Γ

t = 3ε

t = 0

Figure 2 An Example Requiring Different Forward and BackwardDomination Tests

the vehicle has to perform a break while movingfrom B to C. Therefore, the former is better. However,a label �′ corresponding to the backward partial pathfrom D to B through C has g′ =�/2+ � and h′ = � +�, whereas a label �′′ corresponding to the backwardpartial path from D to B through E has g′′ =�/2+2 ·�and h′ = � . Therefore, �′ would dominate �′′ at ver-tex B, and the best path from A to D would not begenerated.Hence, in the dominance test between backward

states, condition (10) must be tightened as follows:

g′ +h′ + � ≤ g′′ +h′′

Joining Paths. Complete paths are obtained byjoining forward and backward labels. A forward label�′ = �S ′��′�A′�R′�g′�h′�C ′� � ′� i and a backwardlabel �′′ = �S ′′��′′�A′′�R′′�g′′�h′′�C ′′� � ′′� j can bejoined to yield a complete route (or a complete duty,as explained in the next paragraph) only if A′ ∩A′′ = �and �S ′ ∪�′∩ �S ′′ ∪�′′= �, that is, no location is vis-ited twice, no item is delivered twice, and no pairsof incompatible items are transported together. More-over, the resource consumption R on the whole routeis computed as R� = R′� + R′′� for each ∈�r�w�v�o� b� and R�l=R′�l+R′′�l+ lij . Setting �=max��g′ + tij /� � − h′/���0�, the overall time spentin driving is g = g′ + tij + g′′ and the overall restingtime is h = h′ + �� + h′′. In order for the join to befeasible, each component of R and the driving andthe overall time must not exceed the correspondingupper bounds.Let �R�b be the maximum number of stops allowed

during a route. The algorithm stops generatingforward and backward states when, respectively,� �R�b/2� and �R�b/2� stops have been performed,because every feasible route can be obtained by com-bining these states. When �R�b is odd, we allow morestops in forward states, because backward dominancecriteria are weaker (they are given by tighter sufficientconditions).The overall prize associated with the resulting route

is � ′ + � ′′, whereas the overall cost of the resultingroute is computed considering the vector R and theset of locations A′ ∪A′′.

Page 9: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem64 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

3.3. Multiple Routes Per DutyEach vehicle may perform many routes in its dailyduty, provided it comes back to the depot for loadingoperations. We take into account multiple routes byintroducing the following additional resources in theresource vector of each label:• Overall traveled distance (L),• Overall elapsed time (T ),• Number of completed routes (N ),

which are set to 0 in the initial states.Coming back to the depot in a forward state from

vertex i is represented by a forward extension tothe vertex � . In this case, the new resources areupdated as• R�L=R�L+R�li� • R�T = R�T + g + h + � · max��g + ti� /� � −

h/���0�• R�N=R�N+ 1

When the vehicle comes back to the depot, the sets Aand � are reset to empty sets and all the other com-ponents of the label are reset to 0.Coming back to the depot in a backward state is rep-

resented by a similar extension to vertex � , with theonly difference of the update rule of the overall time,which is R�T =R�T +g+h+ � ·max��g+ t�i/� �−h/���0�.If the number of allowed routes in each duty is

limited to �N , we allow at most � �N/2� routes in bothforward and backward states. When �N is odd, welimit the number of stops in the last route to � �R�b/2�and �R�b/2� in forward and backward states,respectively.

3.4. Other Implementation Issues

Data Preprocessing. Because the route cost compu-tation is repeated for each label, in a preprocessingstep we create a list of nondominated fees for eachlocation. A fee is nondominated if no more specificfee for the same characteristic covers its entire range.Then, the cost computation can be implemented byscanning the list of each visited location and sum-ming up the contributions of all the fees whose rangesmatch. In Figure 3 we report the list of fees corre-sponding to the example in §2.

Label Ordering. The list of labels at each vertexis kept lexicographically ordered. Given two distinctlabels �′ and �′′, we say �′ < �′′ if �′ precedes �′′

according to this lexicographical order. In particular,the following resources are considered, from the mostsignificant to the least significant one: N , b, g + h,g, R�l, R�p, R�w, R�v, R�c. When a new label �′

is created at vertex i, the list of labels of vertex i isscanned. For each label �′′ < �′ the algorithm checkswhether �′′ dominates �′. As soon as a label �′′ isfound, which does not precede �′ in the lexicographi-cal order, �′ is inserted into the list before �′′. Finally,

Figure 3 List of Fees for Different Locations

for any label �′′ > �′ the algorithm checks whether �′

dominates �′′.

Accelerated Join. Instead of combining forwardand backward paths only when no more labels can begenerated, the algorithm searches for complete pathseach time the number of forward and backward labelsreaches a multiple of a parameter (which we fixedto 5,000, according to preliminary experiments). Thisallows us to identify negative reduced-cost columnsbefore the pricing algorithm terminates. In principle,each pair of forward and backward labels has to bechecked during these combining rounds. However, asdescribed in Righini and Salani (2006), we use thereduced cost of the best column found so far as abound, to avoid checking each pair of labels. More-over, each pair of labels is never checked twice duringdifferent joining steps. This can easily be implementedby adding a flag to each label, which is set after thejoining step. Each pair in which such a flag is set onboth forward and backward labels is not checked inthe subsequent joining steps.

Heuristic Pricing. Instead of exactly solving thepricing problem at each column generation iteration,approximate solutions are obtained through a modifi-cation of the dominance criteria, which aim at makingmore labels comparable.First, conditions (7) and (6), which are difficult to

fulfill due to their combinatorial nature, are dropped.Then, we define two heuristic measures of “quality”of a partial path: 1 = �C− �/�A�, that is, the reducedcost per visited location, and 2 = C/R�r, that is,the cost per loaded pallet. The first measure is usedto identify partial paths that may yield negativereduced-cost columns. Given two labels �′ and �′′ withC ′ − � ′ ≤ 0, the condition ′

1 ≤ ′′1 is implied by (7) and

(11). The second one is a heuristic figure of merit thatwas suggested to us by the end users, who are cur-rently using it as a rule of thumb for planning.Finally, in the heuristic pricing algorithm a label �′

dominates a label �′′ when conditions (8), (9), (10), and(11) hold and

! · ′1 + �1−! · ′

2 ≤! · ′′1 + �1−! · ′′

2 (12)

Page 10: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 65

with ! ∈ �0�1�. Introducing condition (12) helps insaving appealing labels from a too-loose dominancecheck, although these conditions may imply the dele-tion of nondominated labels. Setting != 0 1 producedthe best results with our benchmark instances.

Tabu Pricing. Finally, we do not solve the pricingproblem for each vehicle type p and each depot d ateach column generation iteration. If a particular call tothe pricing algorithm does not produce columns withnegative reduced cost, the corresponding pair (p�d)is marked tabu, and no pricing is done for (p�d) fora certain number of iterations, unless no profitablecolumns have been generated from any other pair.According to preliminary computational results, weset the tabu tenure to 5.

4. The Optimization AlgorithmOur column generation algorithm works in three dis-tinct phases: the first phase is a heuristic columngeneration with no order splitting, the second phaseallows splitting some of the orders, and the thirdphase allows complete splitting. Because there arerather tight computational time limits to compute aplan, the user is allowed to stop the planner at anymoment, retaining the best incumbent solution.In each phase we run a greedy heuristic at each

iteration of the column generation algorithm, as illus-trated below. At the end of each phase, i.e., when col-umn generation terminates, we compute the optimalinteger solution of the RSCP with a general purposeILP solver (GLPK). At the end of the first two phasesthe solution obtained in this way is not necessarilyoptimal for the whole problem because we do notallow complete order splitting.

First Phase. The first phase aims at producing fea-sible solutions quickly. For this purpose we only gen-erate columns corresponding to duties in which noorder is split. This is done by solving the pricing prob-lem on a graph in which the vertices correspondingto the items in a same order are contracted into asingle vertex. Let Oi be the set of items correspond-ing to order i. Each vertex i created in this way hasan associated delivery prize

∑q∈Oi

�q and a resourceconsumption

∑q∈Oi

�q . Incompatibilities between eachitem and particular locations, vehicles, or other itemsare extended to the whole order. Because all the itemsof the same order are placed in the same location, nofurther adjustment is required. From the viewpointof the pricing algorithm in this phase there are onlyexternal extensions.As shown in §5, for the real instances provided by

the end user in our case study, the optimal integersolution of the RSCP computed by GLPK at the endof the first phase was often only a few percentagepoints far from optimality and was obtained in a few

seconds. Furthermore, these solutions have the impor-tant property of being simple to implement for thedrivers, because they do not imply order splitting.

Second Phase. In the second phase we allow ordersto be split into single items, but to reduce the computa-tional effort we merge small items at the same locationinto blocks of items. This is done as before by solvingthe pricing problem on a contracted graph. The merg-ing threshold is a user-defined parameter. From ourexperiments we found that setting the threshold equalto 20% of the capacity of the smallest vehicle of thefleet was a good and robust choice. We remark thatmany small orders associated with the same locationcan be merged in a single block, and thus the num-ber of blocks can be smaller than the number of origi-nal orders. Because each column generated in the firstphase still represents a feasible duty, we keep all ofthem for a warm start of the second phase. When thesecond column generation phase also is over, we runGLPK on the binary RSCP again, generating a newfeasible integer solution.

Third Phase. Finally, we rely on all the columnsgenerated during the first two phases as a good warmstart, and we complete the generation of columns,allowing for full order splitting. We run GLPK onceagain at the end of the optimization, if the availabletime allows this.

A Fast Greedy Heuristic. Given a fractional RSCPsolution, we run a fast greedy heuristic in order toproduce good integer solutions. First, the value of allthe zk variables is initialized to 0 and a set " of uncov-ered items is set equal to Q. Then, a pseudo cost c̃k

is computed for each variable k in the RSCP, anda column k∗ ∈ argmin�c̃k� is selected with minimumpseudo cost. Then the variable zk∗ is fixed to 1 and "is set to "\Qk∗ , where Qk∗ is the set of uncovereditems that are covered by column k∗. The heuristicstops as soon as a feasible integer solution is foundor " ∩Qk = �. We devised three policies for definingthe pseudo costs c̃k:

c̃k′ =

⎧⎪⎪⎨⎪⎪⎩

ck

�" ∩Qk� if �" ∩Qk�> 0

+� otherwise

c̃k′′ =

⎧⎨⎩

−z̄k if �" ∩Qk�> 0

+� otherwise

c̃k′′′ =

⎧⎪⎪⎨⎪⎪⎩

�1− z̃k · ck

�" ∩Qk� if �" ∩Qk�> 0

+� otherwise�

where z̃k is the value of variable zk in the last frac-tional RSCP solution. This greedy heuristic is run once

Page 11: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem66 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

for each of the three kinds of pseudo costs, after eachcolumn generation iteration in all the three phases.This allows the user to get a real-time feedback on thecost of the solutions found by the planner.

5. Computational ResultsThe optimization module has been developed inANSI C. We used the open-source general-purposesolver GLPK for solving both the LP subproblems andthe binary RSCP instances arising in the primalheuristics.The following tests were run on a Linux worksta-

tion equipped with a Pentium IV 1.6 GHz CPU anda 512 MB RAM. Our optimization module was com-piled using gcc 4.1 with full optimization. Accordingto the time constraints specified by the end users, weimposed a time limit of 13,000 seconds to each test.We considered two data sets (A and B), provided by

the end users. Each data set is made by 23 instances.These involve the delivery of a number of orders rang-ing from 1 to 100, with up to 461 items. They are gen-erated by considering subsets of the largest instance,where each subset is defined according to boundariesbetween districts, provinces, or regions. In particular,instances in data set A refer to the city of Bologna andthe surrounding region, Emilia-Romagna, whereasinstances in data set B refer to the city of Milan and thesurrounding region, Lombardy. They represent typicaldaily tasks for the planner. In these instances, the max-imum continuous driving time � is equal to 270 min-utes, the rest time � is 45 minutes, and the minimumwaiting time � that counts as a rest time is 15 minutes.Computational results are reported in Tables 1

and 2. Both tables are made by four blocks. In thefirst one we report the characteristics of each instance,that is, the number of locations (�V �) involved, thenumber of vehicles (Ptot) of the fleet, and the numberof different vehicle types (�P �). Each of the subsequentblocks corresponds to a phase of the optimizationalgorithm. For each phase we report the size of theinstance in terms of number of orders (Orders), num-ber of blocks of items (Blocks), or number of items(Items). Then we indicate the value of the best inte-ger solution obtained during the phase (UB), thecomputing time in seconds (Time), and the numberof columns generated (Cols). An asterisk in a col-umn “Time” indicates that the timeout expired. Incolumns labeled “Gap,” we report the percentage gap�UB−LB/LB as a measure of the quality of the solu-tion obtained. A value LB is obtained at each col-umn generation iteration from the RSCP optimumand the reduced costs of the generated columns. Weremark that during the first two phases we consideran aggregated problem, and for some large instancesonly heuristic pricing could be done within the time-out. Therefore, LB may not be a valid lower bound

for the original problem. When the exact pricing algo-rithm has been invoked during the third phase, weobtained a valid lower bound on the whole instance.In this case we report such lower bound in column“LB(3);” otherwise, the column is marked with a dash.From the results obtained in the third phase of the

algorithm, it is clear that even instances with 50 itemsmay be very hard to solve, and we could providegood lower bounds only on some of them. Never-theless, for the smaller instances (up to 10 orders, 54items in data set A and up to 17 orders, 43 itemsin data set B), our algorithm found optimal or near-optimal solutions already during the first phase. Thesecond phase yielded an improvement in the upperbound for six instances (A13, A16, A17, A21, B18,B20), and in some cases the improvement was sub-stantial. This phase was also useful for correcting thequality estimation because a lower LB was found. Noimprovement in the UB was found during the thirdphase.In conclusion, the column generation algorithm

obtained very good feasible solutions in a reasonablecomputational time for all the instances. Proving opti-mality or establishing valid lower bounds was muchmore time consuming than finding good feasiblesolutions (for instance, the optimal solution of in-stance A05 was found in 1 second and a half, but ittook 47 minutes to prove its optimality).The complicating effect due to split orders can be

easily appreciated by comparing the computing timeof the first and the second optimization phase. Someinstances have been solved in some seconds in thefirst phase, whereas they required almost three hoursin the second phase.

6. ConclusionsWe have developed an optimization algorithm basedon column generation for a provider of software-planning tools for distribution logistics companies.The algorithm computes a daily plan for a real vehicle-routing problem with a heterogeneous fleet of vehi-cles that can depart from different depots and mustvisit a set of customers for delivery operations. Severaloperational difficulties that arise in real-world applica-tion have been addressed, such as multiple capacities;time windows associated with depots and customers;incompatibility constraints between goods, depots,vehicles, and customers; maximum route length anddurations; upper limits on the number of consecu-tive driving hours and compulsory drivers’ rest peri-ods; the possibility of skipping some customers andusing express courier services to fulfill some orders;the option of splitting up the orders; and the possibil-ity of “open” routes that do not terminate at depots.Many of these features have been addressed for thefirst time, to the best of our knowledge.

Page 12: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 67Table1

Compu

tatio

nalR

esultson

Data

SetA

Firstp

hase

Second

phase

Third

phase

Inst.

�V�

P tot

�P�Orders

UB(1)

Gap(%

)Time(s)

Cols

Blocks

UB(2)

Gap(%

)Time(s)

Cols

Items

UB(3)

LB(3)

Time(s)

Cols

A01

131

81

270�00

0�0

0�05

101

270�00

0�0

0�04

32

270�00

270�00

0�04

19A0

21

134

2110�00

0�0

0�03

131

110�00

0�0

0�03

155

110�00

110�00

0�05

80A0

32

227

2160�00

0�0

0�03

143

160�00

0�0

0�04

393

160�00

160�00

0�04

49A0

44

4511

8306�00

0�0

1�85

1�644

8306�00

0�0

2�37

2�566

29306�00

—9�038�57

12�366

A05

331

810

460�00

0�0

1�24

642

6460�00

0�0

0�56

932

26460�00

460�00

2�832 �81

10�441

A06

8108

3210

730�00

0�0

0�26

5715

730�00

0�0

0�25

9229

730�00

730�00

1�49

345

A07

622

610

280�00

0�0

0�30

264

21280�00

2�4

35�29

2�606

25280�00

272�46

7�343�35

5�248

A08

314

510

621�00

2�8

1�41

492

35621�00

1�2

12�809

�03

6�088

54621�00

—9�042�03

15�054

A09

440

1111

480�00

17�2

205�64

4�904

23480�00

8�9

11�647

�56

7�883

33480�00

—∗

6�525

A10

116

511

813�00

11�2

8�71

785

26813�00

2�3

11�492

�90

1�721

31813�00

—11

�907

�72

1�795

A11

823

518

1�716�00

20�7

0�27

117

291�716�00

23�1

23�64

398

561�716�00

1�229�05

12�093

�10

3�688

A12

13120

3720

79�222

�00

0�0

6�13

1�821

5279

�222

�00

0�2

11�994

�87

7�251

9079

�222

�00

79�005

�10

11�592

�60

9�529

A13

16125

3930

2�213�00

0�0

7�42

743

372�189 �00

0�0

6�57

1�451

922�189�00

—8�997�28

6�797

A14

822

630

1�008�00

12�1

8�995�78

8�919

701�008�00

6�9

11�625

�42

22�816

891�008�00

—∗

19�668

A15

20134

3840

11�130

�00

1�9

1�076�43

3�533

8111

�130

�00

7�3

11�241

�28

12�661

129

11�130

�00

—11

�120

�00

25�632

A16

728

850

839�00

9�9

∗15

�346

33338�00

7�0

11�723

�95

11�358

158

338�00

—939�76

6�558

A17

30116

3150

369�453�20

0�0

90�11

397

92369�446�00

0�0

11�470

�39

576

164

369�446�00

—∗

399

A18

34135

3860

221�739�07

0�1

1�106�81

4�664

132

221�739�07

0�0

∗20

�932

255

221�739�07

—9�255�82

23�778

A19

29152

4570

9�946�01

1�8

11�126

�20

8�248

959�946�01

0�1

∗15

�598

214

9�946�01

—9�190�57

20�727

A20

3142

4280

113�635�01

0�7

9�258�55

24�918

133

113�635�01

7�1

2�628�93

24�650

343

113�635�01

——

—A2

133

116

3390

143�750�01

78�6

1�338�74

9�438

160

110�941�97

27�5

5�273�33

33�002

347

110�941�97

——

—A2

247

137

38100

655�753�01

0�1

11�377

�49

6�801

174

655�753�01

0�1

11�047

�78

21�984

374

655�753�01

——

—A2

37

145

100

314�249�00

3�2

11�470

�35

9�950

323

314�249�00

86�0

202�88

1�417

461

314�249�00

——

Table2

Compu

tatio

nalR

esultson

Data

SetB

Firstp

hase

Second

phase

Third

phase

Inst.

�V�

P tot

�P�Orders

UB(1)

Gap(%

)Time(s)

Cols

Blocks

UB(2)

Gap(%

)Time(s)

Cols

Items

UB(3)

LB(3)

Time(s)

Cols

B01

245

112

202�00

0�00

0�07

281

202�00

0�00

0�07

286

202�00

202�00

0�14

28B0

23

5112

2516�00

0�00

0�12

362

516�00

0�00

0�11

3612

516�00

516�00

0�30

36B0

32

266

2416�00

0�00

0�07

213

416�00

0�00

0�06

219

416�00

416�00

4�49

21B0

42

266

2416�00

0�00

0�07

213

416�00

0�00

0�05

219

416�00

416�00

4�42

21B0

52

4511

4232�00

0�00

0�29

172

1232�00

0�00

0�28

172

18232�00

232�00

10�981

�60

172

B06

545

118

306�00

0�00

2�43

1�644

8306�00

0�00

2�69

1�838

29306�00

306�00

1�934�21

1�838

B07

970

209

3�789�00

0�00

2�25

428

173�789�00

0�00

3�26

633

433�789�00

3�789�00

1�753�57

635

B08

216

510

804�00

0�00

4�11

382

17804�00

28�60

12�272

�20

1�979

45804�00

625�18

12�121

�70

1�979

B09

858

1410

740�00

1�55

10�05

2�975

22740�00

6�12

11�193

�20

14�962

36740�00

714�11

10�972

�40

14�745

B10

216

511

813�00

12�65

8�92

785

26813�00

12�65

11�464

�40

1�316

31813�00

—11

�684

�10

1�339

B11

923

518

1�716�00

26�05

0�24

117

291�716�00

29�96

11�86

308

561�716�00

1�320�45

1�535�94

382

B12

645

1119

1�480�00

12�92

11�533

�70

7�435

351�480�00

0�00

∗7�844

741�480�00

—9�286�75

30�833

B13

1158

1420

1�046�00

17�13

11�011

�00

9�078

281�046�00

20�17

11�978

�70

14�867

661�046�00

—9�167�93

38�531

B14

1092

2620

1�555�00

0�00

90�56

2�028

451�555�00

5�81

11�256

�20

6�341

751�555�00

1�216�02

11�582

�10

13�505

B15

1658

1430

1�352�00

21�33

12�250

�40

12�288

411�352�00

32�43

11�460

�90

14�581

120

1�352�00

—9�385�81

56�520

B16

21136

4030

5 �163�00

0�03

5�18

823

575�163�00

3�80

11�007

�60

9�989

109

5�163�00

5�064�00

11�055

�80

12�567

B17

1758

1439

1�996�00

59�64

9�368�58

17�500

501�996�00

0�50

12�605

�20

24�046

171

1�996�00

—9�319�84

56�971

B18

27145

4140

15�744

�00

5�13

5�91

286

6814

�904

�00

0�00

219�71

407

124

14�904

�00

14�881

�67

9�154�05

2�535

B19

1858

1450

2 �222�00

91�22

9�262�44

26�343

552�222�00

15�38

9�235�74

19�596

181

2�222�00

—9�562�38

59�981

B20

1958

1450

2�076�00

143�18

9�437�38

25�034

591�972�00

56�20

9�234�89

22�397

189

1�972�00

1�897�07

9�252�15

62�610

B21

43132

3750

245�982�01

0�22

8�995�31

1�907

96245�982�01

0�27

12�854

�10

6�768

162

245�982�01

245�337�85

11�133

�40

7�250

B22

1858

1459

3�200�00

22�29

9�245�48

26�986

873�200�00

0�00

9�210�20

38�245

225

3�200�00

—9�205�27

39�225

B23

28132

3960

237�295�00

0�12

∗3�050

164

237�295�00

0�00

11�001

�30

36�456

258

237�295�00

——

10�704

Page 13: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing Problem68 Transportation Science 43(1), pp. 56–69, © 2009 INFORMS

The operational constraints and the cost functionare encoded by an appropriate use of resources inthe definition of a constrained elementary shortest-path problem, which is solved with a bidirectionalbounded dynamic programming algorithm.We presented computational results on real in-

stances obtained from the end user. The high numberof resources, the possibility of delivering subsets ofthe items in each order, and the complicated fee sys-tem described in §2 make the solution of the pricingsubproblem time consuming. However, by sequen-tially considering (a) whole orders, (b) blocks of items,and (c) full splitting in three different phases, ouralgorithm was able to provide good primal solutionsin a reasonable amount of time for instances involv-ing up to 100 orders and 461 items, together with ana posteriori estimate of the quality of such solutions.Although many features and constraints of the

problem were specified during the development ofthe algorithm, the method proved robust enough tocope with all the additional requirements introduced.The software company involved in the case study hasembedded an ANSI C implementation of the algo-rithm in a decision support system for an Italiantransportation company, operating at a national level.At the time when this paper was under review, thesystem was in its “roll-out” phase.

AcknowledgmentsThe authors thank Dr. Franco Farinati and Dr. AndreaColombo for their fruitful collaboration. The useful com-ments of two anonymous referees allowed them to improvethe presentation of the paper.

ReferencesAmor, H. B. 2002. Stabilization de l’algorithme de génération de

colonnes. Ph.D. thesis, École Polytechnique de Montréal.Archetti, C., R. Mansini, M. Speranza. 2005. Complexity and

reducibility of the skip delivery problem. Transportation Sci.39(2) 182–187.

Archetti, C., M. Savelsbergh, M. Speranza. 2006a. An optimization-based heuristic for the split delivery vehicle routing problem.Technical report, Department of Quantitative Methods, Uni-versity of Brescia, Brescia, Italy.

Archetti, C., M. Savelsbergh, M. Speranza. 2006b. Worst-case anal-ysis for split delivery vehicle routing problems. TransportationSci. 40(2) 226–234.

Baldacci, R., M. Battarra, D. Vigo. 2007. Routing a heterogeneousfleet of vehicles. B. Golden, S. Raghavan, E. Wasil, eds. TheVehicle Routing Problem# Latest Advances and New Challenges.Springer-Verlag, Heidelberg, Germany.

Beasley, J., N. Christofides. 1989. An algorithm for the resource con-strained shortest path problem. Networks 19 379–394.

Ben Amor, H., J. Desrosiers, J. M. Valerio de Carvalho. 2006. Dual-optimal inequalities for stabilized column generation. Oper.Res. 54(3) 454–463.

Bianchessi, N., G. Righini. 2007. Heuristic algorithms for the vehi-cle routing problem with simultaneous pick-up and delivery.Comput. Oper. Res. 34(2) 578–594.

Braeysy, O., M. Gendreau. 2005a. Vehicle routing problem withtime windows, part i: Route construction and local search algo-rithms. Transportation Sci. 39(1) 104–118.

Braeysy, O., M. Gendreau. 2005b. Vehicle routing problem withtime windows, part ii: Metaheuristics. Transportation Sci. 39(1)104–118.

Dell’Amico, M., G. Righini, M. Salani. 2006. A branch-and-priceapproach to the vehicle routing problem with simultaneousdistribution and collection. Transportation Sci. 40(2) 235–247.

Desaulniers, G., J. Desrosiers, M. Solomon, eds. 2005. Column Gen-eration. GERAD 25th Anniversary Series, Springer, Heidelberg,Germany.

Desaulniers, G., J. Lavigne, F. Soumis. 1998. Multi-depot vehiclescheduling problems with time windows and waiting costs.Eur. J. Oper. Res. 111(3) 479–494.

Desrochers, G., F. Soumis. 1988. A generalized permanent labellingalgorithm for the shortest path problem with time windows.INFOR 26 191–212.

Dondo, R., J. Cerdà. 2006. A reactive MILP approach to the mul-tidepot heterogeneous fleet vehicle routing problem with timewindows. Internat. Trans. Oper. Res. 13(5) 441–459.

Dror, M. 1994. Note on the complexity of the shortest path modelsfor column generation in VRPTW. Oper. Res. 42 977–978.

Dror, M., P. Trudeau. 1989. Savings by split delivery routing. Trans-portation Sci. 23 141–145.

Dror, M., G. Laporte, P. Trudeau. 1994. Vehicle routing with splitdeliveries. Discrete Appl. Math. 50 239–254.

Dumas, Y., J. Desrosiers, F. Soumis. 1991. The pickup and deliveryproblem with time windows. Eur. J. Oper. Res. 54(1) 7–22.

Elhallaoui, I., G. Desaulniers, A. Metrane, F. Soumis. 2008.Bi-dynamic constraint aggregation and subproblem reduction.Comput. Oper. Res. 35(5) 1713–1724.

Feillet, D., P. Dejax, M. Gendreau, C. Gueguen. 2004. An exactalgorithm for the elementary shortest path with resource con-straints: Application to some vehicle routing problems. Net-works 44(3) 216–229.

Fukasawa, R., J. Lysgaard, M. de Aragao, M. Reis, E. Uchoa,R. Werneck. 2006. Robust branch-and-cut-and-price for thecapacitated vehicle routing problem. Math. Programming 106(3)491–511.

Golden, B., R. Raghavan, E. Wasil, eds. 2008. The Vehicle Rout-ing Problem# Latest Advances and New Challenges. Springer,Heidelberg, Germany.

Hadjar, A., O. Marcotte, F. Soumis. 2006. A branch-and-cut algo-rithm for the multiple depot vehicle scheduling problem. Oper.Res. 54 130–149.

Ibaraki, T., M. Kubo, T. Masuda, T. Uno, M. Yagiura. 2005. Effectivelocal search algorithms for the vehicle routing problem withgeneral time windows. Transportation Sci. 39(2) 206–232.

Koskosidis, Y., W. Powell, M. Solomon. 1992. An optimization-based heuristic for vehicle routing and scheduling with softtime window constraints. Transportation Sci. 26 69–85.

Liberatore, F., G. Righini, M. Salani. 2006. A pricing algorithm forthe vehicle routing problem with soft time windows. TechnicalReport 100, Note del Polo, Università degli Studi di Milano,Milano, Italy.

Ribeiro, C., F. Soumis. 1994. A column gneration approach tothe multiple-depot vehicle scheduling problem. Oper. Res. 14241–52.

Righini, G., M. Salani. 2008. New dynamic programming algo-rithms for the resource-constrained elementary shortest pathproblem. Networks 51 155–170.

Righini, G., M. Salani. 2006. Symmetry helps: Bounded bi-directional dynamic programming for the elementary shortestpath problem with resource constraints. Discrete Optim. 3(3)255–273.

Page 14: A Column Generation Algorithm for a Rich Vehicle-Routing Problem

Ceselli, Righini, and Salani: A Column Generation Algorithm for a Rich Vehicle-Routing ProblemTransportation Science 43(1), pp. 56–69, © 2009 INFORMS 69

Rousseau, L., M. Gendreau, D. Feillet. 2003. Interior point stabi-lization for column generation. Technical Report PO2003-39-X,Centre de Recherche sur les Transports, Montreal, Canada.

Savelsbergh, M., M. Sol. 1995. The general pickup and deliveryproblem. Transportation Sci. 29 17–29.

Solomon, M. 1983. Vehicle routing and scheduling with time win-dows constraints: Models and algorithms. Ph.D. thesis, Uni-versity of Pennsylvania, Philadelphia.

Toth, P., D. Vigo, eds. 2002. The Vehicle Routing Problem. Society forIndustrial and Applied Mathematics (SIAM), Philadelphia.

Xu, H., Z. Chen, S. Rajagopal, S. Arunapuram. 2003. Solving apractical pickup and delivery problem. Transportation Sci. 37(3)347–364.

Yepes, V., J. Medina. 2006. Economic heuristic optimization for het-erogeneous fleet VRPHESTW. J. Transportation Engrg. 132(4)303–311.


Recommended