A metaheuristic for crew scheduling in a pickup-and-delivery problem with time windows
JJournal xx (2021) 1–28
A metaheuristic for crew scheduling in a pickup-and-deliveryproblem with time windows
Mauro Lucci a,b , Daniel Severín a,b and Paula Zabala a,c, ∗ a CONICET, Argentina b Departamento de Matemática (FCEIA), Universidad Nacional de Rosario, Av. Pellegrini 250, Rosario, Argentina c Departamento de Computación (FCEN), Universidad de Buenos Aires, Pabellón 1, Ciudad Universitaria Bs. As., ArgentinaE-mail: [email protected] [M. Lucci]; [email protected] [D. Severín]; [email protected] [P. Zabala]
Received DD MMMM YYYY; received in revised form DD MMMM YYYY; accepted DD MMMM YYYY
Abstract A vehicle routing and crew scheduling problem (VRCSP) consists of simultaneously planning the routes of afleet of vehicles and scheduling the crews, where the vehicle–crew correspondence is not fixed through time. Thisallows a greater planning flexibility and a more efficient use of the fleet, but in counterpart, a high synchronisationis demanded. In this work, we present a VRCSP where pickup-and-delivery requests with time windows have to befulfilled over a given planning horizon by using trucks and drivers. Crews can be composed of 1 or 2 drivers andany of them can be relieved in a given set of locations. Moreover, they are allowed to travel among locations withnon-company shuttles, at an additional cost that is minimised. We tackle this problem with a two-stage sequentialapproach: a set of truck routes is computed in the first stage and a set of driver routes consistent with the truckroutes is obtained in the second one. We design and evaluate the performance of a metaheuristic based algorithmfor the latter stage. Our algorithm is mainly a GRASP with a perturbation procedure that allows reusing solutionsalready found in case the search for new solutions becomes difficult. This procedure together with other to repairinfeasible solutions allow us to find high-quality solutions on instances of 100 requests spread across 15 citieswith a fleet of 12-32 trucks (depending on the planning horizon) in less than an hour. We also conclude that thepossibility of carrying an additional driver leads to a decrease of the cost of external shuttles by about 60% onaverage with respect to individual crews and, in some cases, to remove this cost completely. Keywords: vehicle routing; crew scheduling; Greedy Randomised Adaptive Search Procedure, Variable Neighbourhood Descent
1. Introduction
Vehicle Routing Problems (VRPs) arise naturally in a wide range of real-world applications. A well-knownparticular case is the
Pickup-and-Delivery Problem with Time Windows (PDPTW) which establishes that ∗ Author to whom all correspondence should be addressed (e-mail: [email protected]). a r X i v : . [ c s . A I] F e b ustomers demand transportation requests from pickup to delivery locations at certain time intervals, seeDumas et al. (1991). However, there are applications where the vehicle routing must be planned togetherwith a crew scheduling simultaneously . Here, crews can change through time, in opposition to use astandard approach where it is considered a fixed vehicle-crew correspondence during the whole planninghorizon. The new approach might improve the productivity since a new driver can continue a task whenthe previous driver takes a mandatory rest. However, the whole operation becomes more complex sincenow separate routes for vehicles and for drivers have to be determined, and both must be synchronisedin space and time. Even worse, the synchronisation leads to the so-called interdependence problem: achange in one route may affect the feasibility of other routes, as stated in Drexl (2012).In the vast majority of the literature on VRPs, vehicles and crews are treated as inseparable units. Inthat case, the working time regulations of the drivers are unnecessarily imposed on vehicles that could beused 24 hours per day. Hence, the main contribution of this work is to study how variable crews can beexploited to improve the crew scheduling in a PDPTW that arose in a long-distance road transport company.Specifically, we propose a two-stage heuristic algorithm based on an integer programming approachcombined with a hybrid metaheuristic that uses Greedy Randomised Adaptive Search Procedure (Resendeand Ribeiro (2016)), Variable Neighbourhood Descent (Hansen and Mladenovi´c (2001)) and IteratedLocal Search (Lourenço et al. (2003)). Each of the mentioned metaheuristics have been successfullyapplied to provide good feasible solutions to difficult combinatorial optimization problems.The rest of the paper is structured as follows. In Section 2, we colloquially describe our problem. InSection 3, we analyse some other related works and the connection between them and ours. In Section4, we formalise the problem and explain how it is addressed. In Section 5, we present our algorithm. InSection 6, we carry out several experiments in order to measure the performance of our algorithm ininstances of different sizes as well as to evaluate the features of our particular problem. Finally, in Section7, we draw some conclusions and comment on future works.
2. Problem description
In our problem, a set of pickup-and-delivery requests has to be fulfilled over a given planning horizon,using the available resources of the company: trucks and drivers. Each request involves the transportationof an item between two different locations, known as the pickup and delivery locations, with certaintemporal constraints. There is a time window for the pickup and one for the delivery of each request,indicating when the service is allowed to begin. The time window opens once a day, from an initial day,during a certain time interval, e.g., from the second day of the planning horizon onward and from 10:00amto 6:00pm. Trucks may arrive earlier, but they must wait until the time window opens to proceed with theservice. The delivery does not have a deadline, but there is a penalty with the delay, where the cost isproportional to the days elapsed since the delivery time window opens for the first time and until the itemis delivered. The duration of the service time is 1 hour, i.e., it takes 1 hour to load or unload an item.The company’s trucks and drivers are homogeneous, except for their initial locations at the beginning ofthe planning horizon. They do not have to return to their initial locations at the end of the planning horizon,but the final locations become initial in the next planning. Trucks have enough capacity to transport anyrequest on a single trip, but just one at a time. Trucks require drivers when transporting a request andduring the service time, and at such circumstances, the drivers are considered to be working . In any otherircumstance, drivers are considered to be resting . Rest begins when the driver descends from the vehicleand ends when she/he ascends to that vehicle or another. There are several factors that regulate rest times,e.g. labour law, collective bargaining agreements, company policy. The company requires drivers to restat least 12 hours in every 24-hour interval (this rest might be split) and at least a whole day in any 7-dayinterval, these constraints will be called L . For the last part of this work, we also consider more restrictivevariants where there are cumulative constraints limiting the amount of hours worked every week, called L , and minimum rest duration constraints between consecutive work periods, called L .There is a set of locations where the trucks and drivers are allowed to stop, and they are not allowedto stop anywhere else or en route. This set contains all the pickup and delivery locations and the initiallocation of the trucks and drivers. The travel time between the locations is known and constant throughoutthe day. Drivers can be relieved at any location and at any time (before, during or after performing arequest), even if this causes a detour in the route. The driver that descends may immediately ascend toanother truck or may stay resting (until she/he ascends to another truck). In our problem, drivers can betransported with shuttles (external to the company) for an additional cost. In a more restrictive variant ofthis problem, which we refer as no-shuttle , drivers are only allowed to travel by company’s trucks.The main feature of the problem is that the crews can have 1 or 2 drivers. In the latter case, both areconsidered to be working and each of them can be relieved independently of the other. This adds greatflexibility since a truck could be used as a “shuttle” to transport the drivers among the locations. Forexample, a driver who descends at a location l and who needs to ascend at a location l might takeadvantage of some truck going from l to l in order to reach l . Of course, this is possible as long asthe additional driver fits into the intermediate truck (recall that no more than two drivers are allowed percrew) and as long as all these events are synchronised.The whole operation consists of determining separated routes for the trucks and the drivers, butsynchronised in space and time, to fulfill all the requests at minimum operation costs. The costs areassociated with the total distance travelled by the trucks, the penalties for the delay in the deliveries, andthe usage of the external shuttles.
3. Literature review
One of the pioneer works that deals with the PDPTW is due to Dumas et al. (1991). The authors present aninteger programming based exact algorithm for this problem, which allows multiple vehicles and depotsbut, on the other hand, no distinction is made between vehicles and drivers, i.e., a fixed vehicle-crewcorrespondence, nor does it consider drivers’ breaks.The earliest papers where regulations regarding drivers’ working hours are contemplated still considera fixed vehicle-crew correspondence. Also, changes of drivers on a vehicle route are not allowed, i.e.,the entire trip of a vehicle is covered by a single driver. Therefore, each vehicle trip must satisfy thedriver’s work rules, causing that the truck remains “idle” while the driver rests. Within this group Xuet al. (2003) stands out. The authors present an exact algorithm for solving a PDPTW proposed byManugistics (a company that develops software for logistic companies, now part of JDA Software). Theirproblem considers multiple pickup time windows, multiple delivery time windows, maximum drivingtime restrictions, and it does not allow a daily rest period to be taken before the maximum daily drivingtime is exhausted. They solve the problem with a column generation based approach.lthough the fixed vehicle-crew correspondence is barely abandoned throughout the extensive literatureon VRPs for road transport, there are several works that effectively deal with simultaneous Vehicle Routingand Crew Scheduling Problems (VRCSPs). A fairly complete review (until then) can be consulted inDrexl et al. (2013), while here we only cite some featured or recent works.Hollis et al. (2006) is one of the first works where the design of truck routes and scheduling of crewsare divided, thus addressing a simultaneous VRCSP that arises from a mail distribution problem faced bythe Australia Post. In this work, a driver can descend and change to another vehicle upon arrival at a depot.The authors solve the problem in two stages. First, they determine feasible vehicle routes by solving apath-based MIP model with a heuristic column generation approach. Then, they generate worker andvehicle schedules that fit in the routes obtained in the first stage.One of the works that inspired us is Drexl et al. (2013) which addresses a simultaneous VRCSP forlong-distance road transport according to the EU legislation. In this problem, drivers can only changetrucks in relay stations, but breaks and rests can be taken anywhere en route. Crews are limited to singledrivers and there are non-company shuttles to transport the drivers among the stations for an additionalcost. The authors follow a two-stage decomposition of the problem: first, they deal with the vehicles,and after that with the drivers. A Large Neighbourhood Search method is proposed for both stages, butmaking some simplifications in order to keep the computational cost low, e.g. drivers are forced to visitsome relay station to take a daily rest when a fixed time is expired, and they can only change truck after adaily rest. These simplifications are probably the reason why the authors conclude that a simultaneousapproach does not outperform a fixed vehicle-crew correspondence on an instance coming from a majorGerman freight forwarder with 2800 requests, planning horizon of 6 days, 1975 locations, 1645 trucksand drivers, 43 depots, and 157 additional relay stations.There are few recent analyses concerning crews with more than one driver in the road transport sector,e.g. in Goel et al. (2019). This work investigates under which conditions it is convenient to use singleor team driving in European road freight transport, and concludes that the latter is beneficial for longerroutes. However, a fixed vehicle-crew correspondence is assumed, and one driver of the team can restwhile the other drives. Besides, some tasks, such as loading or unloading goods, can be performed inparallel, which reduces times. The authors implement a Hybrid Genetic Search metaheuristic, which istested on instances with 100 customers and planning horizon of 6 days. Note that in all these studies, acrew is handled as an indivisible unit, differing from our problem where any member of a crew can bearbitrarily changed at any time and location.Other scenarios where a synchronisation between vehicles and crews happens are in the airline sector,although, unlike road transport, planes cannot interrupt their flights for the crew to change or rest. InKasirzadeh et al. (2017), a review is presented about these problems and methodologies are proposed.Salazar-González (2014) addresses simultaneously the aircraft routing, crew pairing and fleet assignmentproblems, modeled as a VRP with multiple depots and changes in the crew among time. Lam et al.(2015) considers another simultaneous VRCSP with time windows where airplanes are operated bycrews that are able to interchange vehicles at different locations. Also, the operating time of each crew islimited, although they can travel as passengers outside their working hours. The authors first propose aninteger programming formulation and a constraint programming formulation that model the problem in asingle stage. Then, they consider a two-stage resolution method (similar to Drexl et al. (2013)) whereat the first stage, a VRP is formulated as a constraint programming model and then solved via a LargeNeighbourhood Search heuristic, and the second one is a set covering problem solved with a standardolumn-generation approach. In contrast to Drexl et al. (2013), the results presented in Lam et al. (2015)show that the “vehicle interchange” feature and the fact that the crews can wait in a location for anunlimited amount of time lead to significant better solutions.On the other hand, in the context of health care transportation, vehicles as well as crews are usuallyheterogeneous (e.g. sometimes particular equipment must be transported with special aircraft; medicalstaff can be for personal care, rehabilitation services, postoperative care and domestic help services). Inaddition, maximum length of routes are limited to daily working hours of employees. See, for instance,Lin et al. (2018); Nasir and Kuo (2020).On the subject of public transport, in Ma et al. (2016), a specific VRCSP is presented to solve a publictransport problem according to Chinese regulations. Here, a set of trips is already assigned to each bus(including the departure and the arrival time of each trip) and a daily bus crew scheduling problem issolved via a Variable Neighbourhood Search. The latter problem takes into account a set of restrictionson driver schedules: the daily working time for a driver is limited to a certain number of hours, a driveris normally required to have a break if the continuous driving time has reached a certain limit, amongothers limitations. The problem also allows drivers to be relieved at any moment while a bus is parked ata location. Unlike ours, public transport has timetabled trips.
4. Solution approach
For a better understanding of our work, let us begin with a preliminary description of how we tackle ourproblem. The concepts presented here are further developed in the rest of the paper.We follow a two-stage decomposition approach. In the first stage, we route the trucks in order to fulfillall the requests, without worrying about the drivers. This means that we suppose that the trucks are drivenby themselves or by fictional drivers who do not need to rest.As a result, a set of tasks emerges from the truck routes, each of them can be the pickup/delivery ofa request or a trip between two locations, and it has a tentative start time. Let us clarify the meaningof tentative. As far as trucks are concerned, the i -th task of the route could be indistinctly scheduledat any time from the end of the ( i − -th task to the beginning of the ( i + 1) -th task, as long as thepickup/delivery time window is still open in the case that the i -th task is a pickup/delivery. However, it isworth mentioning that the start time is not indifferent to the drivers, e.g., a task could be delayed to allowa driver to rest. Thus, each task has a particular time window of possible start times, which is dynamic since it depends on the current truck route (note that changing the start time of a task affects the timewindow of the contiguous tasks). This is a major difference with respect to Drexl et al. (2013), where thetime windows of the tasks are computed at once before entering the second stage.In the second stage, we have to determine the concrete start time and the crew for all the tasks. Observethat each task might have a different crew since it is possible to relieve the drivers in any location. Weconsider the option of using external shuttles (e.g., taxis), so drivers can ascend to a truck in a differentlocation from where they are. The benefits of using shuttles are clear but, in counterpart, they incuradditional costs that should be minimised. The duration of the shuttles is not negligible in the case oflong-distance transport, and since one should consider that the driver is not resting while travelling, thedeparture time of the shuttles really matters, as the next example illustrates. Suppose that a driver worksthe first day from 0:00 to 8:00 and the second day from 16:00 to 0:00 and that she/he needs an intermediateig. 1: Timelines for a driver who has to take a shuttle.shuttle of 6 hours long, then the shuttle can only depart the first day from 20:00 to 22:00 in order to meetthe stipulated rest in every 24-hour interval. One of such scenario is depicted in Figure 1 (a).Considering that the duration of the shuttles cannot be ignored, and the fact that deciding the bestdeparture time for them involves another optimization problem, we pick a compromise solution whereshuttles are always delayed as much as possible. In the previous example the shuttle would depart thesecond day at 10:00 and the solution would become infeasible since the driver rests less than 12 hourson the second day, see Figure 1 (b). This decision is arbitrary and a same treatment could be done, forinstance, if they are scheduled as early as possible. For the same reason, the possibility of splitting shuttlesis not addressed in this work. Although these simplifications might compromise the solutions space,perhaps they are more consistent with real-world applications than Drexl et al. (2013), where the shuttletravel time is ignored in the working time calculation. As a final consideration, we assume that there areas many shuttles as required in any location, but they only carry one person at a time.The reason behind using a sequential approach relies on keeping the whole operation simpler, as bothobjects (trucks and drivers) are not dealt at once. In addition, the first stage is fairly standard (a PDPTWwith no depots and penalties for late deliveries) and can be resolved by known means. Our work focuseson the recently presented second stage for our problem. We propose a metaheuristic based algorithm,which is developed in Section 5.The rest of this section is devoted to present the mathematical models for our problem. Let us firstpresent the necessary elements to define it.• H is the number of days of the planning horizon,• L is the set of locations where the trucks and drivers can stop,• R is the set of requests,• V is the set of trucks,• D is the set of drivers,• l pr , l dr are the pickup or delivery location corresponding to r ∈ R , respectively,• [ a pr , b pr ] , [ a dr , b dr ] are the pickup or delivery time window corresponding to r ∈ R , respectively,• day pr , day dr are the initial day where r ∈ R can be picked up or delivered, respectively, c r is the cost per day for delivering the request r ∈ R late,• l v ∈ L is the initial location of each truck v ∈ V ,• l d ∈ L is the initial location of each driver d ∈ D ,• L D . = { l d : d ∈ D } , i.e. the sets of initial locations of drivers,• travelT ime T : L × L → R +0 and travelT ime S : L × L → R +0 are functions that return the traveltime (in hours) between two locations by truck or by shuttle, respectively,• travelDist : L × L → R +0 is the function that returns the distance between two locations, and• shuttleCost : L × L → R +0 is the function that returns the cost of a shuttle between two locations. The first stage consists in constructing valid routes for the trucks, such that all the requests are fulfilledduring the planing horizon. A truck route is valid if it starts from the truck’s initial location, the timewindows are obeyed along the route, a pickup and the corresponding delivery are performed by thesame truck, each pickup occurs prior to the corresponding delivery, and the truck does not pick upanother request until the current one is delivered. No driver constraint is considered during this stage. Wecontemplate two objectives:• Z : deliver the requests as soon as possible since there is a penalty c r for a request r not deliveredduring day dr proportional to the number of delayed days, i.e., minimise (cid:80) r ∈ R c r ( d dr − day dr ) , where d dr is the day r is delivered.• Z : minimise the total distances travelled by the truck fleet.Although the previous paragraph already describes the first stage (and the reader may understand therest of this work without further details), we give in the Appendix a (standard pick-up and delivery) multi-objective integer linear programming formulation for the sake of completeness. Besides, this formulationperforms well when used to determine the truck routes on small and medium-sized instances. Truck routes can be segmented in pickup, delivery, and trip tasks . A pickup/delivery task consists ofloading/unloading a request in some location, and its duration is given by the service time (1 hour). A triptask consists of driving from an origin to a destination location, and its duration is given by the travel time.For example, suppose that the route of the truck v begins with the transportation of a request r . Then, thisroute is segmented in the following tasks: a trip task from l v to l pr (whenever l v (cid:54) = l pr ), a pickup task in l pr , a trip task from l pr to l dr , and a delivery task in l dr . Tasks are the smallest pieces of work that must beentirely performed by the same crew. But a truck can have a different crew for each task since drivers areallowed to change in any location.Now, let us introduce the following necessary elements:• T p , T d , and T t are respectively the sets of pickup, delivery, and trip tasks involved in the routesconstructed in the first stage.• T . = T p ∪ T d ∪ T t For each t ∈ T , p t ∈ L is the origin, q t ∈ L is the destination, and a t ∈ R + is the duration of t .• req : T p ∪ T d → R is the function that returns the request associated to a given pickup or deliverytask.For instance, a trip task t ∈ T t from a location l to a location l of 4 hours long has p t = l , q t = l , and a t = 4 . A pickup task t ∈ T p associated to a request r has p t = q t = l pr , a t = 1 ,and req ( t ) = r ; whereas a delivery task t ∈ T d associated to r has p t = q t = l dr , a t = 1 , and req ( t ) = r . The next definition states when a schedule for the tasks is valid. Definition . Given T and req , a start time assignment for T is a function δ : T → R +0 such that:1) whenever two tasks t i , t j ∈ T are consecutive in any truck route then δ ( t i ) + a t i ≤ δ ( t j ) , 2) δ ( t ) ∈ [ a preq ( t ) , b preq ( t ) ] for each t ∈ T p , and 3) δ ( t ) ∈ [ a dreq ( t ) , b dreq ( t ) ] for each t ∈ T d .Condition (1) imposes precedence constraints on tasks of the same truck route: t i must be finishedby the time t j starts whenever both tasks are assigned to the same truck and performed consecutively.Conditions (2) and (3) enforce the pickup and delivery time windows. While the first stage already assignsa tentative start time for the tasks of T p ∪ T d , the possibility of rescheduling them during the second stageincreases the planning flexibility of the crews. It is worth mentioning that the three conditions guaranteethat the truck routes remain valid when the tasks are scheduled according to δ . The following definitionprovides a necessary condition for a driver to perform a sequence of tasks. Definition . Given T , d ∈ D and a start time assignment δ for T , a driver route for d is a sequence oftasks (cid:104) t , . . . , t k (cid:105) with t , . . . , t k ∈ T such that 1) travelT ime S ( l d , p t ) ≤ δ ( t ) , and 2) δ ( t i ) + a t i + travelT ime S ( q t i , p t i +1 ) ≤ δ ( t i +1 ) for all i = 0 , . . . , k − .Condition (1) ensures that the driver can perform the first task of the route when departing from her/hisinitial location, and condition (2) determines whether the driver can perform two tasks consecutively; inboth cases possible shuttle trips are taken into account.The second stage consists in deciding a start time assignment for the tasks and constructing valid routesfor the drivers, such that each task is covered by one or two drivers. Below, we elaborate when a driverroute is valid, where it can be seen as certain kind of directed paths in the following digraph.Given a start time assignment δ for T , consider the simple digraph G δ = ( V , A ) with weights w ∈ R +0 E .The node set is V . = { s l : l ∈ L D } ∪ { n t : t ∈ T } ∪ { ˜ s } , where s l is referred to as source node for each initial location l of some driver, n t as task node for eachtask t and ˜ s as the sink node . The arc set A has three types of weighted arcs:• From each source node s l to each task node n t such that a driver is able to perform t when departingfrom l at the beginning of the planning horizon, i.e, travelT ime S ( l, p t ) ≤ δ ( t ) . The weight of thisarc is the cost of a shuttle trip from l to p t , i.e, w ( s l , n t ) = shuttleCost ( l, p t ) .• Between each pair of task nodes ( n t i , n t j ) such that a driver is able to perform t i followed by t j , i.e., δ ( t i ) + a t i + travelT ime S ( q t i , p t j ) ≤ δ ( t j ) . Here, w ( n t i , n t j ) = shuttleCost ( q t i , p t j ) .• From each source node or task node u to ˜ s . The weight w ( u, ˜ s ) is always 0.Following the usual terminology, given a, b ∈ V , a directed walk P from a to b in G δ is a finite sequenceof nodes u , u . . . , u k − , u k such that u = a , u k = b and ( u i , u i +1 ) ∈ A for all ≤ i ≤ k − . Whenall the vertices visited by P are distinct, we say that P is a directed path from a to b , also referred to t q t a t t ∈ δ ( t ) t l l T p t l l T t t l l T d t l l T p n t n t n t n t s l s l ˜ s Fig. 2: Example of the digraph construction.as ( a, b ) -directed path, and if the only repeated vertices are v and v k , then P is called directed cycle .The set of nodes visited by P is denoted with V ( P ) and the set of arcs visited by P with A ( P ) . The cost w ( P ) of P is defined as (cid:80) e ∈A ( P ) w ( e ) .Let us present an example of this construction. Consider two locations l and l with travelT ime S ( l , l ) = 3 and four tasks t , t , t and t , whose attributes are displayed in the tableon the left-hand side of Figure 2. The first row says that t is a pickup task whose origin is l at instant 1and whose destination is also l at instant 2. Based on these tasks, we construct the digraph shown on theright-hand side of Figure 2. We indicate with a dashed-line arc when a shuttle trip is required betweenthe tasks, and a solid-line arc otherwise. In this digraph, for instance, there is not an arc between n t and n t since t and t are overlapped, and from s l to n t nor from n t to n t because the time gap betweenthem is not enough to take the corresponding shuttle trip. If, for example, a driver d satisfies l d = l then (cid:104) t , t , t (cid:105) is a driver route for d , which corresponds with the directed path s l , n t , n t , n t , ˜ s . The cost ofthis path is 0 since no shuttles trips are required or, equivalently, no dashed-line arcs are traversed.The structure of G δ makes straightforward to prove the following remarks:1. G δ is a directed acyclic graph, i.e., a digraph with no directed cycles.2. If travelT ime S ( p t , q t ) ≤ a t for all t ∈ T t , then the edge relation in G δ is transitive, i.e., if ( u , u ) ∈A and ( u , u ) ∈ A then ( u , u ) ∈ A , for all u , u , u ∈ V .3. There is a one-to-one correspondence between the driver routes for d ∈ D and the ( s l d , ˜ s ) -directedpaths in G δ .The hypothesis of the second remark means that the shuttles are as fast as the trucks. As a consequenceof the transitivity, removing a vertex from a directed path results in a new directed path. The last remarkallows us to define a feasible solution for the second stage of our problem as a pair, where the firstcomponent is a start time assignment δ for T and the second one is a set with a ( s l d , ˜ s ) -directed path P d n G δ for each d ∈ D satisfying: Crew size constraints:
For all t ∈ T , ≤ |{ d ∈ D : n t ∈ V ( P d ) }| ≤ . Rest constraints:
For all d ∈ D , L is satisfied for d , i.e., d rests at least 12 hours in every 24-hourinterval and d has at least one day off in every 7-day interval.The objective value of a feasible solution S = ( δ, { P d : d ∈ D } ) is the total cost given by w ( S ) = (cid:80) d ∈ D w ( P d ) , and the aim of this stage is to find a solution S that minimises w ( S ) ; we refer to this valueas Z . In the appendix, we present an integer programming formulation that better describes our model,however a reader may omit it to understand the rest of this work.In the next section we present the main components of our algorithm, based on schemes of well-knownmetaheuristics, and we give details on how to implement them in terms of our specific problem. Thereader may consult Gendreau and Potvin (2019) for a more detailed explanation about general schemesof Greedy Randomised Adaptive Search Procedure (GRASP), Iterated Local Search (ILS), VariableNeighbourhood Descent (VND) and hybrid optimization approaches.
5. Our algorithm
Let us start by giving a brief description of how our algorithm works before moving on to more specificdetails. During the first stage, two methods can be applied: a direct one is to solve an integer linearprogramming formulation (see appendix) which has the advantage that the given solution is optimal; theother is to provide a feasible solution via a heuristic which in our case is semi-greedy. We give a briefexplanation of this algorithm at the end of this section since this phase is beyond the scope of the currentwork.For the second stage, we first construct a semi-greedy initial solution, whose drivers may work moretime than allowed. We then apply a repair procedure that, among other things, moves the start time of thetasks in conflict to minimise the workload of the drivers. Once we reach a feasible solution, we focus onminimising the cost related to the external shuttle transports, using suitable moves to explore the space offeasible solutions. After we reach a local optimum, we try to escape by applying a perturbation procedurethat randomly changes the start time assignment without losing feasibility. The best solution is kept andreturned after a given time limit.For the sake of clarity, we introduce our algorithm incrementally. We first present a simple procedurethat constructs a greedy feasible solution for our problem. This procedure usually returns poor-qualitysolutions. Nevertheless, in subsequent steps, we incorporate new features that allow us to reach betterresults. These results will be later reported along with other computational experiments in Section 6.
We follow a best insertion strategy to construct a greedy feasible solution: each task is inserted into thedriver route that results in the lowest increase in the cost function; see the pseudo-code in Figure 3. Atthe beginning, the tasks are sorted by start time, and the driver route of each driver d is represented as adirected path P d with the single node s l d . In each iteration, an unplanned task t is taken and a candidate list equire: Start time assignment δ for T procedure GREEDY sort T by start time P d ← { s l d } for each d ∈ D for all t ∈ T do CL ← { d ∈ D : P d ∪ { n t } is a directed path of G δ ∧ rest constraints hold for d } if CL = ∅ then fail let d ∗ ∈ CL such that w ( P d ∗ ∪ { n t } ) is minimum P d ∗ ← P d ∗ ∪ { n t } P d ← P d ∪ { ˜ s } for each d ∈ D return ( δ, { P d : d ∈ D } ) Fig. 3: Pseudo-code of our greedy construction. CL is constructed with every driver d such that n t can be inserted at the end of P d , i.e., the augmentationof P d with n t is also a directed path and the rest constraints still hold for d . After that, the driver d ∗ of CL that causes the smallest increase in the overall cost is chosen and n t is inserted at the end of P d ∗ .After all the tasks have been inserted, the sink node ˜ s is inserted at the end of every directed path, leadingto a feasible solution. On the other hand, the algorithm fails if some task remains unassigned. A repairprocedure will be proposed later to deal with these cases.It is clear that the greedy decisions we make during the construction may have led to a poor-qualitysolution. For this reason, the first improvement is to use a search strategy to explore the space of feasiblesolutions to minimise the total cost associated with the external shuttle transports. We use an iterative search to minimise the total shuttle cost of a feasible solution. The moves that definethe neighbourhood structures fall in two groups. The first group of three moves has been extensively usedin the literature, e.g., Shen and Kwan (2001); Ma et al. (2016), and, in the context of our problem, theymove one or more tasks from one driver route to another. The second group of two moves is specificto our problem, and they change the size of a crew. We explore each neighbourhood in order to find alower-cost feasible solution, with respect to the cost function Z , and we use a VND to deal with themultiple neighbourhood structures, e.g., Hansen and Mladenovi´c (2001); Hansen et al. (2010).Next, we give a comprehensive description of the aforementioned moves. The input of each one isa feasible solution S = ( δ, { P d : d ∈ D } ) and they return a new solution S (cid:48) = ( δ, { P (cid:48) d : d ∈ D } ) . Weremark that S (cid:48) might be infeasible (and in that case, the new solution is not considered). The conditionsthat S (cid:48) must meet in order to be feasible are: (i) P (cid:48) d must be a ( s l d , ˜ s ) -directed path of G δ for all d ∈ D ,(ii) crew size constrains must be satisfied for all tasks, and (iii) rest constraints must be satisfied for alldrivers. The first two conditions are checked before the movement is performed, while (iii) is checkedonce S (cid:48) is constructed. If S (cid:48) becomes infeasible or its cost is not better than w ( S ) , S (cid:48) is discarded. In d : s l d u v ˜ s . . . × . . . P d (cid:48) : s l d (cid:48) u (cid:48) n t (cid:48) v (cid:48) ˜ s . . . × × . . . (a) Relocating a task. P d : s l d uu n t v ˜ s . . . × × . . . P d (cid:48) : s l d (cid:48) u (cid:48) n t (cid:48) v (cid:48) ˜ s . . . × × . . . (b) Swapping two tasks. P d : s l d u n t ˜ s . . . × . . . P d (cid:48) : s l d (cid:48) u (cid:48) n t (cid:48) ˜ s . . . × . . . (c) Swapping two arcs. P d : s l d u n t v ˜ s . . . × . . . (d) Inserting a task. P d : s l d u n t v ˜ s . . . × × . . . (e) Removing a task. Fig. 4: Moves.Figure 4, we display a scheme of each move. Here, the straight lines with a cross in the middle representthose edges removed from a path during the move, and the dotted lines represent those edges added to apath after the move is performed. M OVE -1: relocating a task.
For d, d (cid:48) ∈ D , relocate a task node n t (cid:48) from P d (cid:48) to P d between a couple ofconsecutive nodes u and v (see Figure 4a). M OVE -2: swapping two task.
For d, d (cid:48) ∈ D , swap a task node n t from P d with a task node n t (cid:48) from P d (cid:48) (see Figure 4b). M OVE -3: swapping two arcs.
For d, d (cid:48) ∈ D , swap the arc prior to a task node n t from P d with the arcprior to a task node n t (cid:48) from P d (cid:48) , i.e., break the paths at those arcs and reconnect the first part of eachone with the second part of the other (see Figure 4c). M OVE -4: inserting a task.
For d ∈ D and t ∈ T , insert a task node n t into P d between a couple ofconsecutive nodes u and v (see Figure 4d). M OVE -5: removing a task.
For d ∈ D , remove a task node n t from P d (see Figure 4e).Up to this point, we have an algorithm that constructs a greedy feasible solution and moves iterativelyto a lower-cost feasible solution following a VND strategy, until a local optimum (with respect to eachof the neighbourhood structures) is reached. We remark that this algorithm is deterministic, i.e., eachexecution converges to the same local optimum. It is clear that the chances of guiding the search to anear-global optimum are increased when starting from different starting points. For this reason, the featurepresented in the next subsection is aimed to introduce non-determinism during the construction of theinitial solution. .3. Constructing semi-greedy feasible solutions A semi-greedy construction can be easily derived from the greedy construction of Section 5.1: instead ofinserting each task into the best driver route, we make a random decision among those that result in a costcontribution within a rate α of the best improvement. To do so, we construct a restricted candidate list RCL from CL using a quality-based parameter α ∈ [0 , , where α = 0 stands for a behaviour exactlyas the greedy construction of Section 5.1, and α = 1 means a pure random construction (see Festa andResende (2009); Resende and Ribeiro (2016)), and we choose the driver d ∗ ∈ RCL randomly.Now, we define a GRASP based algorithm using the previous semi-greedy construction for theconstruction phase and the VND search of Section 5.2 for the local search phase: if the semi-greedyconstruction fails, i.e., there is a task with an empty candidate list, the partial solution obtained so far isdismissed and the semi-greedy algorithm is started over.Based on preliminary tests, we noted that the rest constraints are sometimes hard to meet and construct-ing feasible solutions becomes troublesome. This happens more frequently in instances where the numberof drivers is tight, since the drivers have greater workloads. A well-known approach for this drawback isto allow infeasible solutions and minimise the infeasibility through the cost function; this approach isaddressed by the next feature.
We address the problem of constructing feasible solutions with a two-stage procedure. First, we allowto construct solutions where the drivers may violate one of the rest constraints given by L , specifically,now a driver may rest less than 12 hours in every 24-hour interval. We call it semi-feasible . After that, weapply a repair procedure that tries to make it feasible. The first stage is a modification of the semi-greedyconstruction, and the second one is an iterative search that minimises the infeasibility through an adequatecost function. Before giving further details, let us introduce a new cost function to rank the semi-feasiblesolutions.We refer to Γ di as the number of hours that a driver d works in the 24-hours interval [ i, i + 24] with ≤ i ≤ H − (we consider that the time is divided into units of 1 hour, so H is the total numberof hours of the planning horizon). Observe that Γ di can be easily computed from the driver route and thestart time assignment (we recall that δ also sets the start time of the shuttle trips, since we assumed thatthey are scheduled as late as possible). Now, given a semi-feasible solution S = ( δ, { P d : d ∈ D } ) , wedefine the cost function: w inf ( S ) = (cid:88) d ∈ D H − (cid:88) i =0 max { , Γ di − } (1)For each d ∈ D , the term in the summation quantifies the total number of extra hours that d works in each24-hours interval. It is easy to see that w inf ( S ) = 0 if and only if S is feasible.Note that our definition of semi-feasible solution still does not allow a driver to work every day ofthe week. Previous experimentation indicates that solutions generated by the semi-greedy violate thisrestriction infrequently. equire: Start time assignment δ for T , α ∈ [0 , procedure SEMI-GREEDY sort T by start time P d ← { s l d } for each d ∈ D for all t ∈ T do CL ← { d ∈ D : P d ∪ { n t } is a directed path of G δ ∧ rest constraints hold for d } if CL = ∅ then CL inf ← { d ∈ D : P d ∪ { n t } is a directed path of G δ ∧ d } let d ∗ ∈ CL inf such that w inf ( δ, P d ∗ ∪ { n t } ) is minimum else make RCL from CL with quality-based parameter α choose a random d ∗ ∈ RCL P d ∗ ← P d ∗ ∪ { n t } P d ← P d ∪ { ˜ s } for each d ∈ D return ( δ, { P d : d ∈ D } ) Fig. 5: Pseudo-code of our semi-greedy construction to return semi-feasible solutions.We are now able to explain how the semi-feasible solutions are constructed and repaired.
Constructing semi-feasible solutions.
We modify the semi-greedy algorithm of Section 5.3 to allow theconstruction of semi-feasible solutions. The main idea is that we may insert a task into a driver route thatintroduces infeasibility (violations of the rest constraints) when no other options are available. However,we use the cost function w inf to guide the construction towards good-quality semi-feasible solutions.The pseudo-code of the new algorithm is shown in Figure 5. We introduce the following changes withrespect to the original algorithm: the choice of d ∗ depends on whether the candidate list is empty or not.If so, we build a second candidate list CL inf with every driver d such that P d ∪ { n t } is a directed pathof G δ , without requiring that the 12-hour rest constraints hold. Then, we choose d ∗ ∈ CL inf such that w inf ( δ, P d ∗ ∪ { n t } ) is minimum. If CL (cid:54) = ∅ , we proceed as the original semi-greedy construction.The previous construction returns a semi-feasible solution S = ( δ, { P d : d ∈ D } ) . It is clear that if w inf ( S ) = 0 , then S is already a feasible solution and nothing else should be done; otherwise, S shouldbe repaired. A further description of how this repair procedure works is given below. Repairing semi-feasible solutions.
The repair procedure uses an iterative search to minimise the costfunction w inf given in (1). Again, the moves that define the neighbourhood structures fall in two groups.The first group has the five moves already presented in Section 5.2, which modify the driver routes andpreserve the start time assignment. The second group has a single move which, conversely, modifiesthe start time of a task and preserves the driver routes. We explore the neighbourhoods defined by thesemoves to find a lower-cost semi-feasible solution, with respect to the cost function w inf . We use a VNDto deal with the multiple neighbourhood structures.ig. 6: a) A semi-feasible solution, b) repairing the infeasibility.It is easy to see that all these moves can help reducing infeasibility, even the insertion of a task. Beforeproceeding, let us give an example of this. Suppose that there are three tasks: t whose destination is l and its duration is 4 hours, t from l to l of 6 hours long, and t whose origin is l and its duration is 8hours, such that travelT ime S ( l , l ) = 6 , δ ( t ) = 0 , δ ( t ) = 10 and δ ( t ) = 30 . Additionally, supposethat a driver route has both t and t , one after the other. It is clear that such driver works more than 12hours in the 24-hour interval [24 , , since the shuttle from l to l is scheduled immediately before t ,see Figure 6(a). Now, if the task t is inserted into this route between t and t , then the shuttle is nolonger needed and the previous infeasibility is repaired, as illustrated in Figure 6(b).Let us present the formal definition of the new move. The input is a semi-feasible solution S = ( δ, { P d : d ∈ D } ) and the output is another solution S (cid:48) = ( δ (cid:48) , { P d : d ∈ D } ) . We remark that S (cid:48) might beinfeasible (and in that case, it will not be accepted as the next current solution). The conditions that S (cid:48) must meet in order to be semi-feasible are: (i) δ (cid:48) must be a start time assignment for T , (ii) P d must be a ( s l d , ˜ s ) -directed path of G δ (cid:48) for all d ∈ D , and (iii) 1-day off constraints must be satisfied for all drivers. M OVE -6: changing the start time of a task.
For t ∈ T and a new start time i for t , change the valueof δ ( t ) to i .As we have anticipated in Section 4, there is a dynamic time window with the tentative start timesfor t , delimited by the contiguous tasks in the truck route and the pickup/delivery time windows. Bychoosing i in this time window, we ensure that condition (i) is met. More explicitly, the value of i mustverify:• Let v ∈ V be the truck whose route contains t . If t (cid:48) is the task that precedes t in tr v , then i ≥ δ ( t (cid:48) ) + a t (cid:48) ; if t (cid:48)(cid:48) is the task that follows t in tr v , then i ≤ δ ( t (cid:48)(cid:48) ) − a t . And,• if t ∈ T p ∪ T d , then i must belong to the respectively pickup/delivery time window of t . Inaddition, we do not allow to change the day in which the items are delivered to preserve the costof the solution (recall that there is a penalty for the delay in the deliveries).Besides, the task t should be performed by the same crew (since this move does not modify the driverroutes), so the value of i is also delimited by the contiguous tasks in the driver routes. In order to meet(ii), the value of i must also verify: Let d ∈ D be a driver whose route contains t (there are at most two of such drivers). If t is the first task of dr v , then i ≥ travelT ime S ( l d , p t ) . If t (cid:48) is the task that precedes t in dr v ,then i ≥ δ ( t (cid:48) ) + a t (cid:48) + travelT ime S ( q t (cid:48) , p t ) ; if t (cid:48)(cid:48) is the task that follows t in dr v , then i ≤ δ ( t (cid:48)(cid:48) ) − a t − travelT ime S ( q t , p t (cid:48)(cid:48) ) .Again, the condition (iii) is checked once S (cid:48) is constructed.As we have said before, in our GRASP based algorithm, we apply the repair procedure after thesemi-greedy construction provides a semi-feasible (but non feasible) solution. When the repair procedureis unable to find a feasible solution, i.e., when it gets stuck in a local optimum S (cid:48) with w inf ( S (cid:48) ) > ,we dismiss the current solution and continue with the next GRASP iteration. Once we obtain a feasiblesolution, we run the VND search of Section 5.2 to minimise the total shuttle cost.Preliminary tests evidence that the repair procedure is often too time-consuming and, even worse, itdoes not always succeed. Therefore, when a feasible solution is reached, it should be exploited as muchas possible before constructing and repairing a new semi-feasible solution. Next, we design a perturbationprocedure that takes advantage of a current feasible solution to generate others. Notice that applying M
OVE -6 to a feasible solution does not change its cost with respect to Z (sincethe shuttle cost does not depend on the start time assignment), but new move opportunities might appearindeed. A simple ILS, see e.g. Lourenço et al. (2003, 2019), can be derived using this idea to escape froma local optimum. Our perturbation procedure iterates over t ∈ T in a random order and changes δ ( t ) for arandom value among those that preserve feasibility (in case that no one preserves feasibility, δ ( t ) is notmodified).The full description of our algorithm results from embedding this perturbation procedure into theGRASP based algorithm. The main idea is to perturb and then improve the solution a certain number oftimes before constructing a new semi-feasible solution; we give the pseudo-code in Figure 7. An inexpensive way to deliver truck routes is through a simple semi-greedy algorithm. This algorithmiterates over the requests and inserts the corresponding pickup and delivery tasks into some truck routefollowing a semi-greedy strategy. In order to prevent late deliveries and trucks from getting unavailablefor a long time, the start time of the delivery task is always scheduled as early as possible and the pickuptask as near to the delivery task as possible. After this, the algorithm deals with the necessary trip tasksbetween the pickup and delivery tasks. Given a pair of locations that needs a connection, the algorithmcomputes the shortest path between them and creates a trip task for each segment of the path (segmentsare delimited by the cities). A random number is assigned to the start time of the trip tasks, as long as thetruck route keeps synchronised. We remark that the effectiveness of this simple algorithm comes from thefact that the truck routes are much easier to construct than the driver routes: trucks do not need to rest,and multiple-day time windows offer great flexibility. : procedure O UR -GRASP while stopping criterion not satisfied do S ← construct semi-feasible solution repair S if S is feasible then minimise the total shuttle cost of S repeat perturb S minimise the total shuttle cost of S update best solution S ∗ until stopping criterion met return S ∗ Fig. 7: Pseudo-code of our algorithm.
6. Computational experiments
In the present section we describe the computational experimentation carried out in order to test and eval-uate the effectiveness of our approach. For the sake of clarity, this section is divided as follows: in Section6.1 we explain the instances used to test the algorithms, in Section 6.2 we describe the configuration ofthe algorithms (e.g., values for the parameters, stopping criterion, and other implementation details), andin Section 6.3 we report and analyse the results.
The problem we address comes from a coffee company in Colombia, and the constraints given inthe present work are faithful to those of the original. Unfortunately, it was not possible to access anyinformation about the company’s resources or instances. For this reason, we decided to generate our owninstances in a way consistent with reality and the nature of the problem.We use as locations the 15 Argentine cities and the road network shown in Figure 8. These cities meetseveral of the objectives sought: they are important urban agglomerations (indeed, almost all of themare capital cities, excepts Concordia and Sáenz Peña which are the second most important cities in theirprovinces), and there is a long distance between each pair of cities but not enough to force the drivers torest en route (which is forbidden by the problem’s constraints). For a matter of road traffic safety, theroad network only uses routes and highways of national jurisdiction, and the speed limit of the trucksand shuttles is set at 90km/h. As a final remark, we are aware of the existence of local companies whoselogistic is similar to the aforementioned one.We generate the instances with a routine that takes as incoming parameters: the length of the planninghorizon ( H ) and the number of requests ( R = | R | ), trucks ( V = | V | ), and drivers ( D = | D | ). Valuesare usually randomly generated integers with a uniform distribution in a given interval. In particular, theattributes of each request are generated as follows:ig. 8: Cities and road network.• Origin and destination: random but different cities.• Pickup time window: the initial day initDay p is random in [0 , H − , and the time interval has arandom start startT ime p in [0 , and a random ending in [ startT ime p , .• Delivery time window: the initial day is random in [ initDay p , H − , and the time interval has arandom start startT ime d in [0 , and a random ending in [ startT ime d , .Note that we do not let the initial days be at the end of the planning horizon since such requests wouldhave few opportunities to be fulfilled, but a request whose initial day for delivery is set to H − can bestill delivered at day H (with the corresponding cost in Z ). The routine sets random initial locationsfor the trucks. Then, it places a driver with a probability 0.8 in the initial location of each truck and setsrandom locations for the remaining drivers (assuming that there are more drivers than trucks). Thus, theremight be locations with trucks but without drivers (this happens, for example, when a truck-driver couplestops at some location and, subsequently, the driver is picked up by another truck), and there might belocations with drivers but without trucks (this happens, for example, when a truck with two drivers leavesone of them resting at some location). We have performed extensive preliminary experimentation to detect the most suitable configuration foreach algorithm detailed in Section 5. This involves choosing values for the parameters, deciding thetopping criteria, and setting other implementation details such as the order of exploration for the iterativesearch. For the sake of simplicity, we avoid reporting these preliminary tests and we directly presentthe chosen configurations, which are the ones that showed the best trade-off between quality of theoutput solutions and execution time. We set shuttleCost ( l , l ) = travelT ime S ( l , l ) + 1 for every l , l ∈ L . Below, we enumerate the algorithms to be tested with their respective configurations and otherimplementation details. A LG -1: GRASP presented in Section 5.3. The construction phase uses α = 0 . to restrict the candidatelists. The VND uses a first-improving strategy, where the drivers are considered in non-increasingshuttle cost order, and the neighbourhoods are explored in the following order of moves: M OVE -4,M
OVE -5, M
OVE -1, M
OVE -2, and M
OVE -3. To speed-up the exploration, we first compute the cost ofthe neighbouring solution and, only when standing at a lower-cost one, we apply the concrete moveand check feasibility (if the current neighbour turns out to be infeasible, the algorithm moves backto the last solution and the exploration proceeds). The descent stops when the cost cannot be furtherimproved. A LG -2: A LG -1 adapted to manage semi-feasible solutions (see Section 5.4). The construction phaseuses α = 0 . when d ∗ is chosen from CL and a random tie-breaking rule when d ∗ is chosen from CL inf (i.e., when the lowest increase for w inf occurs in more than one driver at the same time). Therepair procedure uses a first-improving strategy, where the most infeasible drivers are considered first(i.e., those whose route has the highest value according to w inf ), and the neighbourhoods are exploredin the following order of moves: M OVE -4, M
OVE -5, M
OVE -6, M
OVE -1, M
OVE -2, and M
OVE -3.The repair procedure stops when there are no further cost improvements for w inf . As this procedure isvery time consuming, we only repair semi-feasible solutions S whose cost w inf ( S ) does not exceeda threshold β , which is dynamically updated as follows. Initially, β is set to + ∞ and is replacedwith w inf ( S ) for the first semi-feasible solution S that the algorithm achieves to repair. Then, β isincreased by each time the construction phase gives a semi-feasible solution S with w inf ( S ) > β (so the next one has greater chances to be repaired), and it is decreased by otherwise (so it getsmore restrictive). A LG -3: A LG -2 with the addition of the perturbation procedure (see Section 5.5). The number of timesthat a feasible solution is perturbed is ruled by the formula (cid:100) γ (cid:101) with γ = failsit +1 , where it is thenumber of the current GRASP iteration and f ails is the total number of GRASP iterations whereno feasible solutions could be discovered. The resulting effect is that the number of perturbationsgrows exponentially when the algorithm systematically fails. Thus, the few feasible solutions foundare exploited as much as possible to generate new ones. All the experiments are carried out in a desktop computer equipped with an Intel Core i5 2.6GHzprocessor (we use a single thread), 5.7GB of memory, Ubuntu 20.04 64bits operating system, GCC 5.4.0compiler, and CPLEX 12.7 with default parameters (but using a single thread). All the implementationsare written in the C++11 programming language.
First experiment . We test A LG -3 with the two approaches proposed for the first stage: the exact resolutionf the integer program and the semi-greedy heuristic. We generate 3 instances of 100 requests withdifferent planning horizons: 7, 14, and 28 days. The number of trucks V is respectively 32, 24, and 16.This is because it takes more trucks to perform the same number of requests in a shorter planning horizon.The number of drivers D is 2( V ) since, in order for a truck to be manned the whole day, two drivers areneeded. We introduce a parameter λ ∈ [0 , and we minimise the single-objective function Z = λZ + (1 − λ ) Z with 5 different values for λ : 0, 0.25, 0.5, 0.75, and 1.We use CPLEX to solve the integer program for each value of λ , by fixing a time limit of 3600 secondsfor each execution. After that, we apply the CPLEX’s populate method to get 4 additional feasiblesolutions. We configure this method to obtain solutions whose objective value is at most 3% greater thanthe best solution found by CPLEX. On the other hand, we run the semi-greedy heuristic 5 times for eachvalue of λ . Thus, both methods return 5 different outputs for each instance and value of λ , and for eachone we solve the second stage. The time limit for each run of A LG -3 is 900 seconds.The results are reported in Table 1. The first 4 columns describe the instance parameters: numberof days in the planning horizon, number of trucks, number of drivers, and the value of λ in Z . Thenext columns report the results obtained by the algorithms. Column “ Z ∗ ” shows the value of Z forthe best feasible solution found by CPLEX, “Time/Gap” is the total elapsed time in seconds during theoptimization if the optimality is proven, or the final gap reported by CPLEX otherwise (the symbol “%”is appended in that case), “ T ” is the average number of tasks, “Sol.” is the number of first stage outputswhere A LG -3 finds some feasible solution. The next 3 columns, “ Z min ”, “ Z avg ” and “ Z max ”, display theminimum, average, and maximum value of Z , respectively, among the best feasible solutions found byA LG -3 for each first stage output, “Fails” is the average rate of fails (i.e. iterations where the constructionphase fails to generate a feasible solution) of A LG -3, and “Gap” is the average gap between the costs ofthe solutions generated by the semi-greedy heuristic and the best solution found by CPLEX. A symbol“–” means that no feasible solutions were discovered during the execution of A LG -3. When the valuesof “ Z min ”, “ Z avg ”, and “ Z max ” are equal, we only report the one of “ Z avg ” and leave a blank space in theothers.The table shows that the exact approach takes a considerable amount of time, and in particular it fails toprove optimality in 3 of the 15 executions within the time limit. We also noted that this situation worsenswhen the instances grow in size (e.g. adding more requests), or when they grow in complexity (e.g. havinga tighter number of trucks). Moreover, high-quality solutions in the first stage do not necessarily lead tobetter solutions in the second stage; this fact is noticed in the instance with the longest planning horizon.Conversely, the heuristic approach runs in a negligible amount of time and offers highly diversifiedsolutions when runs more than once. Because of these reasons, we will use the semi-greedy heuristic todeliver the truck routes to test our second-phase algorithm in the subsequent experiments.When we emphasize Z over Z (i.e., λ = 1 , only delays in deliveries are minimised), the second stagebecomes harder to solve (the percentage of fails is very high). We attribute it to the fact that there aremore tasks and more overlap among them. From now on, we fix λ = 0 . which allows Z and Z totake part and provides a reasonable balance between Z and percentage of fails in the second stage.Note also that in some cases our algorithm is able to deliver optimal solutions for the second stage,precisely when Z = 0 , as no shuttles trip are needed. This kind of solutions is of particular interestbecause they are also feasible on the no-shuttle variant, i.e., where shuttle trips are not allowed at all. V D λ
Exact + A LG -3 Heuristic + A LG -3 Z ∗ Time/Gap T Sol. Z min Z avg Z max Fails Gap T Sol. Z min Z avg Z max Fails7 32 64 0 986 4 s 437 5 0 24% 15% 490 3 0 54%0.25 855.25 0.36% 443 5 0 46% 19% 491 3 0 2 6 63%0.5 675 137 s 452 5 0 2.4 6 39% 25% 538 1 6 96%0.75 480.5 48 s 454 3 12 77% 27% 591 0 – 100%1 283 4 s 583 1 12 99% 22% 604 1 16 95%14 24 48 0 947 3 s 445 5 0 55% 21% 512 4 0 37%0.25 770 119 s 452 5 0 38% 19% 508 4 0 59%0.5 543 86 s 458 5 0 82% 25% 534 5 0 63%0.75 313 21 s 457 5 0 89% 32% 589 4 0 3.8 15 92%1 83 209 s 622 3 4 6.3 9 99% 20% 631 4 8 18 25 99%28 16 32 0 1096 42 s 456 5 30 41.2 65 86% 19% 518 5 16 25.4 42 72%0.25 916.5 2.84% 473 5 9 14.6 20 70% 15% 521 5 6 18.4 33 73%0.5 649.5 1.52% 478 5 6 15.4 27 67% 18% 547 5 9 23 34 76%0.75 370 66 s 480 5 6 11 16 71% 26% 594 4 25 37.8 47 91%1 89 448 s 619 5 27 51.2 70 97% 30% 624 5 24 31.2 41 87%
Table 1: Comparison between the exact and the heuristic approaches to solve the first stage.
Second experiment . We compare the performance of A LG -1, A LG -2, and A LG -3. We keep the instancesof the first experiment and we consider more number of trucks, now V ∈ { , , } for H = 7 , V ∈ { , , } for H = 14 , and V ∈ { , , } for H = 28 . These values have emerged from: theleast number of trucks such that the heuristic approach for the first stage is able to find a feasible solution,an intermediate value, and the number of trucks used in the first experiment. We keep D = 2 ( V ).For each instance, we generate 3 different outputs from the first stage by running the semi-greedyheuristic. Then, we solve the second stage with the mentioned algorithms, using 3600 seconds as timelimit in each run (summarising a maximum of 81 hours of CPU time). These specifications (number ofoutputs and time limit) are fixed for the next experiments.The results can be found in Table 2. The column Z avg shows the average cost of the solutions generatedby the semi-greedy heuristic, “Iter” is the average number of iterations in thousands done in the secondstage, and “BestT” is the average time in seconds needed to find the best solution in the second stage.As it can be seen from the table, A LG -1 finds at least one feasible solution in 5 of the 9 instances, butfailing more that 90% of the times in 3 of them. This fact highlights the difficulty of generating feasiblesolutions for our problem. A LG -2 finds feasible solutions in more instances, precisely 7 of 9. In particular,the repair procedure helps to reduce the rate of fails. It is clear that A LG -3 outperforms the others as itfinds the highest-quality solutions. Moreover, when A LG -2 and A LG -3 deliver solutions with the samecost, the latter finds it faster as evidenced by parameter BestT. In summary, despite the additional featuresmake the iterations more time-consuming, the whole algorithm becomes more effective.Also note that the costs of the solutions (both Z and Z ) and the number of tasks decrease whenmore resources (trucks and drivers) are available.Finally, we repeated this experiment with a longer time limit (10 hours) for the instances where nofeasible solutions are discovered ( H = 14 and V = 13 , and H = 28 and V = 8 ), but we obtained the V D Z avg T A LG -1 A LG -2 A LG -3Sol. Z min Z avg Iter BestT Fails Sol. Z min Z avg Iter BestT Fails Sol. Z min Z avg Iter BestT Fails7 18 36 1209 507 0 – – 399 – 100% 2 46 59 6 2887 99% 2 23 31.5 6 1239 99%25 50 1078 494 1 7 7 293 490 99% 3 4 6.3 28 1082 79% 3 0 4.3 14 959 78%32 64 1061 494 2 0 6 612 8 82% 2 0 6 18 18 50% 2 0 3 14 7 50%14 13 26 1144 538 0 – – 494 – 100% 0 – – 1 – 100% 0 – – 1 – 100%18 36 1027 520 2 10 27.5 214 2405 99% 3 3 7 21 995 78% 3 0 1.3 7 2025 78%24 48 959 507 2 0 0 250 18 78% 2 0 0 6 137 67% 2 0 0 5 17 59%28 8 16 1257 556 0 – – 1027 – 100% 0 – – 1 – 100% 0 – – 1 – 100%12 24 1139 532 0 – – 635 – 100% 2 84 92.5 5 2524 99% 2 59 70.5 5 1727 99%16 32 1086 521 3 22 29 120 832 91% 3 24 25.7 18 2800 66% 3 12 14.3 7 1032 66%
Table 2: Comparison between A LG -1, A LG -2, and A LG -3. H V D A LG -3Sol. Z min Z avg Fails7 18 29 0 – – 100%36 2 23 31.5 99%43 3 6 8.7 79%50 3 0 5.3 68%14 13 26 0 – – 100%31 3 6 21 96%36 3 0 0 63%28 8 16 0 – – 100%20 0 – – 100%24 3 24 35.7 96%
Table 3: Changing the number of drivers. H V D ≤ driversSol. Z min Z avg Fails Sol. Z min Z avg Fails7 18 36 2 66 84 99% 2 23 31.5 99%25 50 3 22 23.3 77% 3 0 4.3 78%32 64 2 6 11 67% 2 0 3 50%14 13 31 3 61 84 96% 3 6 21 96%18 36 3 18 21.3 77% 3 0 1.3 78%24 48 2 5 9.5 67% 2 0 0 59%28 8 24 3 30 53.3 96% 3 24 35.7 96%12 24 3 64 86.7 99% 2 59 70.5 99%16 32 3 41 45 65% 3 12 14.3 66%
Table 4: Changing the crew size.same negative result. We suspect that these instances are infeasible.
Third experiment . We analyse the impact of changing the number of drivers on the performance of A LG -3.We select the most challenging instances of the previous experiment, i.e. those with the lowest number oftrucks for each planning horizon, and we consider the following number of drivers: D ∈ { , , , } for V = 18 , D ∈ { , , } for V = 13 , and D ∈ { , , } for V = 8 .The results are reported in Table 3. Now, feasible solutions can be found for the instances with V = 13 and V = 8 if D is increased by 20% and 50% respectively, but none for the instance with V = 18 if D is decreased by 20%. Also, the cost of the best solutions and the rate of fails diminishwhen there are more drivers. We conclude that our algorithm performs better when more drivers areavailable. Fourth experiment . We test the performance of A LG -3 when the crew size is restricted to a single driver.This is achieved by disabling M OVE -4 and M
OVE -5, i.e., the moves that change the crew size. We use thesame instances as in the second experiment, but taking more drivers in the two instances where A LG -3oes not find any feasible solution. More precisely, as in the third experiment, we take D = 31 for theinstance with V = 13 and D = 24 for the one with V = 8 .Table 4 presents the results. Columns 4-7 use crews with size equal to 1, and columns 8-11, with sizelower or equal than 2. When M OVE -4 and M
OVE -5 are active, there is a major improvement in the costof the best solution for all the instances, more precisely Z min is 60% lower on average. It is evident thatcarrying an additional driver is highly effective in reducing the dependence on shuttles. Fifth experiment . We test A LG -3 with additional rest regulations, where a driver cannot work more than60 hours per week, and must rest uninterruptedly for at least 11 hours between two consecutive workperiods. We will refer to these variants as: L + L and L + L , respectively. Any semi-feasible solutionthat violates L or L is considered infeasible for these variants. We select from the previous experimentthe instances with the lowest V for each planning horizon, and for each one we generate a copy with more drivers (since stronger rest constraints are expected to require more drivers). We also considerlarger instances, of 1000 and 3000 requests, with corresponding reasonable amounts of trucks and drivers(we keep the same proportion of trucks per requests and D ∈ { . V , 2.2 V } to be precise). Table 5summarises the results. Columns 5-9 consider L , columns 10-14, L + L , and columns 15-19, L + L .When “Iter” is lower than 0.05 (500 iterations), we write > . .In the case of 100 requests, the performances are fairly similar when L is active, in fact the algorithmfinds feasible solutions of equal cost for the instances with more drivers. Concerning L , no feasiblesolutions are found unless there are more drivers. In that case, Z min is as good as before for H = 14 andworse for H ∈ { , } . Also note that with L , the algorithm does many more iterations and fails moreoften; this exposes the difficulty of constructing feasible solutions satisfying L . Despite these exceptions,our algorithm seems to adapt to the different regulations.For large instances and cases L and L + L , less drivers are needed per truck and, even so, theyare fairly easy to solve, e.g., an optimal solution is found in few iterations, also useful for the no-shuttle variant. In the case of L + L , the same pattern (as for 100 requests) arises: more drivers are needed tofind a feasible solution.
7. Conclusions
In the present work, we address a problem concerning the simultaneous routing and scheduling of afleet of trucks and a staff of drivers to fulfill pickup-and-delivery requests over a planning horizon. Thisproblem has the particularity that the trucks play a double role: besides carrying the requests, they can beused to transport the drivers among the locations.As it applies to long-distance road transportation, travel times usually exceed the working hours of thedrivers, so it becomes essential to allow relays during the trips (as opposed to short-distance transportationwhere a vehicle can be manned by a single driver, who can make multiple requests within her/his workingday). On the other hand, considering more than one driver per crew allows a better use of the fleet, whereeach truck is idle for less time.We propose a hybrid metaheuristic based algorithm to schedule the crews according to the truck routesdetermined in a first stage. This algorithm is capable of exploring solutions where the crews can have 1or 2 drivers through two problem-specific moves. We have performed computational experiments with
R H V D L L + L L + L Sol. Z min Z avg Iter Fails Sol. Z min Z avg Iter Fails Sol. Z min Z avg Iter Fails7 18 36 2 23 31.5 5 99% 1 30 30 5 99% 0 – – 300 100%47 3 0 3.3 11 64% 3 0 3.3 11 63% 2 16 16.5 122 99%100 14 13 31 3 6 21 7 96% 3 7 18.7 7 96% 0 – – 109 100%40 3 0 0 0.1 67% 3 0 0 0.1 67% 3 0 9.3 20 97%28 8 24 3 24 35.7 6 96% 3 26 36.3 6 96% 0 – – 149 100%31 3 12 15.7 6 81% 3 12 18.3 6 81% 3 37 55 53 99%1000 7 180 342 3 0 0 0.1 77% 3 0 0 0.2 77% 0 – – 0.7 100%396 3 0 0 > 0.1 28% 3 0 0 > 0.1 28% 3 0 0 0.1 72%28 80 152 3 0 4.7 0.4 87% 3 0 4 0.3 91% 0 – – 1.9 100%176 3 0 0 > 0.1 27% 3 0 0 > 0.1 56% 2 3 6 1 98%3000 7 540 1026 3 0 0 > 0.1 86% 3 0 0 > 0.1 86% 0 – – 0.1 100%1188 3 0 0 > 0.1 0% 3 0 0 > 0.1 0% 2 0 0 > 0.1 81%28 240 456 3 0 0 > 0.1 56% 3 0 0 > 0.1 47% 2 20 20.5 0.1 99%528 3 0 0 > 0.1 25% 3 0 0 > 0.1 20% 3 0 2 > 0.1 58%
Table 5: Using additional rest constraints and larger instances.a set of instances generated with random requests among 15 Argentine cities. The results have shownthe effectiveness of our algorithm, mostly due to the possibility of violating some of the rest constraintsduring the construction of the initial solutions (which are later repaired) and the option of changing thestart time of the tasks. The proposed repair procedure plays a fundamental role in the search for feasiblesolutions while the perturbation procedure does so in improving the objective function. Concerning themain feature of our problem, we can assert that the possibility of carrying an additional driver has led toremarkable cost improvements (about 60%), in comparison to the usage of individual crews. In conclusion,the developed algorithm has shown to be effective, and even for the variant no-shuttle if more driversare considered. It is also robust in the sense that it can be adapted to other scenarios with different restregulations.As future work, we plan to investigate whether a greater connection between both stages of thesequential approach can produce better solutions. For instance, by taking into account some requirementsof the drivers during the first stage could make the scheduling of the crews easier during the second. Itwould also be necessary to weigh the relationship among the objective functions of both stages to globallycompare the solutions.Another line of research is to analyse our problem in the context of the
Physical Internet Initiative (whose intention is to replace traditional logistical models to a more sustainable and efficient way byapplying ideas of how Internet works), where drivers can be transported from their home to some locationand then use another truck to come back to their hometown. ppendix
Here, we present integer programming models for both stages.
Integer programming model for first stage . Let us consider a simple digraph G = ( U, A ) with weights w ∈ R +0 V where U = { u v : v ∈ V } ∪ { u r : r ∈ R } ∪ { u s } , this is, a node for each truck and request and a sink node u s . The set of arcs A is defined as follows:• There is an arc ( u v , u r ) for each v ∈ V and each r ∈ R , with weight w ( u v , u r ) = travelDist ( l v , l pr ) + travelDist ( l pr , l dr ) . It models that r is the first request picked by truck v .• There is an arc ( u r , u r ) for r , r ∈ R , with weight w ( u r , u r ) = travelDist ( l dr , l pr ) + travelDist ( l pr , l dr ) . It models that the same truck picks up r after it delivers r .• There is an arc ( u v , u s ) for each v ∈ V with weight w ( u v , u s ) = 0 . This arc allows the model to notroute every truck of the fleet.• There is an arc ( u r , u s ) for each r ∈ R with weight w ( u r , u s ) = 0 .A set of truck routes can be represented by means of a binary decision variable x e for each e ∈ A ,where x e = 1 if and only if some truck travels arc e . For each request r ∈ R , we also consider four integerdecision variables d pr , d dr , h pr and h dr , which stand for the day or hour the request is picked up or delivered,respectively. The formulation is given below, where the notation e = ( _ , s ) means that the head of the arc e is s regardless of the tail (the same applies for the notation ( s, _ ) where the tail is fixed to s ), and M is alarge value, e.g., M = 24 H + (cid:80) e ∈ A w ( e ) .Minimise Z = (cid:88) r ∈ R c r ( d dr − day dr ) and Z = (cid:88) e ∈ A w ( e ) x e subject to: (cid:88) e =( _ ,u r ) ∈ A x e = 1 , ∀ r ∈ R, (2) (cid:88) e =( u v , _ ) ∈ A x e = 1 , ∀ v ∈ V, (3) d pr + h pr + 1 + travelT ime T ( l pr , l dr ) ≤ d dr + h dr , ∀ r ∈ R, (4) travelT ime T ( l v , l pr ) ≤ d pr + h pr + M (1 − x ( u v ,u r ) ) , ∀ v ∈ V, r ∈ R, (5) d dr + h dr + 1 + travelT ime T ( l dr , l pr ) ≤ d pr + h pr + M (1 − x ( u r ,u r ) ) , ∀ r , r ∈ R, r (cid:54) = r , (6) (cid:88) e =( _ ,u r ) ∈ A x e = (cid:88) e =( u r , _ ) ∈ A x e , ∀ r ∈ R, (7) x e ∈ { , } , ∀ e ∈ A, (8) d pr ∈ Z ∩ [ day pr , H ) , d dr ∈ Z ∩ [ day dr , H ) , ∀ r ∈ R, (9) h pr ∈ Z ∩ [ a pr , b pr ] , h dr ∈ Z ∩ [ a dr , b dr ] , ∀ r ∈ R. (10) onstraints (2) establish that all requests are fulfilled. Constraints (3) ensure that all trucks depart fromtheir initial locations. Constraints (4) forbid that a request r could be delivered before it is picked up,taking into account the travel time between locations l pr and l dr , and the duration of the service of one hour.Constraints (5) and (6) consider the time for a truck v to reach the location of its first request r as long as x ( u v ,u r ) = 1 , and the time for some truck to reach the location of a request r after delivering anotherrequest r as long as x ( u r ,u r ) = 1 , respectively. Finally, constraints (7) are flow conservation equationsand (8)-(10) establish the domain of the decision variables (integrality and bound constraints).Note that the elements T and req can be generated from the optimal solution of this modelstraightforwardly. Integer programming model for second stage . We consider the digraph G = ( V , ˜ A ) , having ˜ A = { ( s l , n t ) : l ∈ L D , t ∈ T }∪{ ( n t i , n t j ) : t i , t j ∈ T, t i (cid:54) = t j }∪{ ( s l , ˜ s ) : l ∈ L D }∪{ ( n t , ˜ s ) : t ∈ T } with weights w e = shuttleCost ( l, p t ) for all e = ( s l , n t ) , w e = shuttleCost ( q t i , p t j ) for all e =( n t i , n t j ) , and w e = 0 for all e = ( _ , ˜ s ) . Note that A ⊂ ˜ A for any G δ = ( V , A ) , so ˜ A can be seen as asuperset of arcs. Let δ ( t ) be an integer variable for each t ∈ T , x de be a binary variable for each d ∈ D and e ∈ ˜ A d . = ˜ A \ { ( s l , _ ) : l (cid:54) = l d } such that x de = 1 if and only if e belongs to the directed path in G δ corresponding to the driver d , and y e be a binary variable for each e ∈ ˜ A such that y e = 1 if and only if e belongs to some directed path in G δ . Then the formulation can be stated as follows.Minimise Z = (cid:88) d ∈ D (cid:88) e ∈ ˜ A d w e x de ubject to: ≤ (cid:88) d ∈ D (cid:88) e =( _ ,n t ) ∈ ˜ A d x de ≤ , ∀ t ∈ T, (11) (cid:88) e =( s ld , _ ) ∈ ˜ A d x de = (cid:88) e =( _ , ˜ s ) ∈ ˜ A d x de = 1 , ∀ d ∈ D, (12) (cid:88) e =( _ ,n t ) ∈ ˜ A d x de = (cid:88) e =( n t , _ ) ∈ ˜ A d x de , ∀ d ∈ D, t ∈ T, (13) x de ≤ y e , ∀ d ∈ D, e ∈ ˜ A d , (14) travelT ime S ( l d , p t ) y ( s ld ,n t ) ≤ δ ( t ) , ∀ d ∈ D, t ∈ T (15) δ ( t i ) + a t i ≤ δ ( t j ) , ∀ t i , t j ∈ T : t j is next to t i in some truck route (16) δ ( t i ) + a t i + travelT ime S ( q t i , p t j ) ≤ δ ( t j ) + M (1 − y ( n ti ,n tj ) ) , ∀ t i , t j ∈ T : t i and t j belong to different truck routes (17) x de ∈ { , } , ∀ d ∈ D, e ∈ ˜ A d , (18) y e ∈ { , } , ∀ e ∈ ˜ A , (19) δ ( t ) ∈ Z + , ∀ t ∈ T t , (20) δ ( t ) ∈ H − (cid:91) i = day preq ( t ) { ∗ i + a preq ( t ) , . . . , ∗ i + b preq ( t ) } , ∀ t ∈ T p , (21) δ ( t ) ∈ { ∗ d dreq ( t ) + a dreq ( t ) , . . . , ∗ d dreq ( t ) + b dreq ( t ) } , ∀ t ∈ T d . (22) Constraints (11) ensure that each task is covered by one or two drivers. Constraints (12) set a singleinitial (and final) arc for each driver according to its initial location. Constraints (13) are flow conservationequations. Constraints (14) control the activation of y . Constraints (15) and (17) enforce Definition 1.Constraints (16), (21), and (22) enforce Definition 2. The remaining constraints define the domain ofvariables. Note that we set the delivery date of the requests from the optimal solution of the first stage inorder to maintain the value of Z1 ( d dreq ( t ) stand for the day the request req ( t ) is delivered in the optimalsolution of the first stage). We omitted the rest constraints in this formulation for the sake of simplicity. Acknowledgments
This work was partially supported by grants PICT-2016-0410 and PICT-2017-1826 (ANPCyT), PIDING538 (UNR) and UBACyT 20020170100484BA. We would also like to thank the referees for havingread our work carefully and for giving us suggestions that substantially improved it.
References
Desrosiers, J., Dumas, Y., Solomon, M., Soumis, F., 1995. Time constrained routing and scheduling.
Handbooks in operationsresearch and management science
8, 35–139.Drexl, M., 2012. Synchronization in Vehicle Routing - A Survey of VRPs with Multiple Synchronization Constraints.
Trans-portation Science
46, 3, 297–316.rexl, M., Rieck, J., Sigl, T., Press, B., 2013. Simultaneous vehicle and crew routing and scheduling for partial- and full-loadlong-distance road transport.
Business Research
6, 2, 242–264.Dumas, Y., Desrosiers, J., Soumis, F., 1991. The pickup and delivery problem with time windows.
European Journal ofOperational Research
54, 1, 7–22.Festa, P., Resende, M., 2009. An annotated bibliography of GRASP-Part II: Applications.
International Transactions inOperational Research
16, 131–172.Gendreau, M., Potvin, J.Y., 2019.
Handbook of Metaheuristics . Number 272 In International Series in Operations Research &Management Science. Springer.Goel, A., Vidal, T., Kok, A.L., 2019. To team up or not–Single versus team driving in European road freight transport. Technicalreport, Tech. rep., PUC–Rio, Rio de Janeiro, Brasil.Hansen, P., Mladenovi´c, N., 2001. Variable neighborhood search: Principles and Applications.
European Journal of OperationalResearch
Annals ofOperations Research
European Journal of Operational Research
EURO Journal onTransportation and Logistics
6, 2, 111–137.Lam, E., Van Hentenryck, P., Kilby, P., 2015. Joint vehicle and crew routing and scheduling. In Pesant, G. (ed.),
Principles andPractice of Constraint Programming , Springer International Publishing, Cham, pp. 654–670.Lin, C.C., Hung, L.P., Liu, W.Y., Tsai, M.C., 2018. Jointly rostering, routing, and rerostering for home health care services: Aharmony search approach with genetic, saturation, inheritance, and immigrant schemes.
Computers & Industrial Engineering
Handbook ofMetaheuristics . Springer, number 57 In International Series in Operations Research & Management Science, pp. 320–353.Lourenço, H.R., Martin, O.C., Stützle, T., 2019. Iterated local search: Framework and Applications. In Gendreau, M. andPotvin, J.Y. (eds),
Handbook of Metaheuristics . Springer, number 272 In International Series in Operations Research &Management Science, pp. 129–168.Ma, J., Ceder, A., Yang, Y., Liu, T., Wei, G., 2016. A case study of beijing bus crew scheduling: A variable neighborhood-basedapproach.
Journal of Advanced Transportation
50, 434–445.Nasir, J.A., Kuo, Y.H., 2020. A decision support framework for home health care transportation with simultaneous multi-vehiclerouting and staff scheduling synchronization.
Decision Support Systems
Optimization by GRASP . Springer.Ropke, S., Pisinger, D., 2006. An adaptive large neighborhood search heuristic for the pickup and delivery problem with timewindows.
Transportation Science
40, 4, 455–472.Salazar-González, J.J., 2014. Approaches to solve the fleet-assignment, aircraft-routing, crew-pairing and crew-rosteringproblems of a regional carrier.
Omega
43, 71–82.Shen, Y., Kwan, R., 2001. Tabu Search for Driver Scheduling.
Computer-Aided Transit Scheduling
Vehicle Routing: Problems, Methods, and Applications, Second Edition . Number 18 In MOS-SIAMSeries on Optimization. SIAM.Xiang, Z., Chu, C., Chen, H., 2006. A fast heuristic for solving a large-scale static dial-a-ride problem under complex constraints.
European Journal of Operational Research