Les cahiers du GERAD

0 downloads 10 Views 267KB Size Report
Each vehicle must return to the depot from which it began its service run. ... The single vehicle dial-a-ride problem with time windows has also been studied by.

Les cahiers du GERAD

ISSN: 0711–2440

Large Scale Multi-vehicle Dial-a-ride Problems Y. Dumas,

J. Desrosiers

F. Soumis G–89–30 SEPTEMBER 1989

Les textes publi´es dans la s´erie des rapports de recherche H.E.C. n’engagent que la responsabilit´e de leurs auteurs. La publication de ces rapports de recherche b´en´eficie d’une subvention du Fonds F.C.A.R.

LARGE SCALE MULTI-VEHICLE DIAL-A-RIDE PROBLEMS by YVAN DUMAS GERAD and E cole des Hautes E tudes Commerciales Montreal, Quebec, Canada H3T 1V6 JACQUES DESROSIERS GERAD and E cole des Hautes E tudes Commerciales Montreal, Quebec, Canada H3T 1V6 FRANCOIS SOUMIS GERAD and E cole Polytechnique Montreal, Quebec, Canada H3C 3A7

ABSTRACT The multiple vehicle many-to-many routing problem is presented in the context of a dial-a-ride system. It is solved by mini-clustering rst and optimal routing second, an innovative modi cation of the \cluster rst { route second" method which permits a more intelligent clustering of customers. A heuristic sequential insertion algorithm groups nearby customers (mini-clusters) who can be eciently served by the same vehicle route segment. An optimal column generation algorithm then constructs routes corresponding to drivers' workdays by stringing together these vehicle route segments. Finally, the route segments are reopened in order to reoptimize each route. Problems with up to 200 customers and 85 mini-clusters are easily solved. Larger problems are solved by applying the algorithm to several non-disjoint subproblems obtained by dividing the territory into sub-areas and the day into time slices.

Key words: dial-a-ride, routing, scheduling, column generation, clustering.

ABSTRACT The multiple vehicle many-to-many routing problem is presented in the context of a dial-a-ride system. It is solved by mini-clustering rst and optimal routing second, an innovative modi cation of the \cluster rst { route second" method which permits a more intelligent clustering of customers. A heuristic sequential insertion algorithm groups nearby customers (mini-clusters) who can be eciently served by the same vehicle route segment. An optimal column generation algorithm then constructs routes corresponding to drivers' workdays by stringing together these vehicle route segments. Finally, the route segments are reopened in order to reoptimize each route. Problems with up to 200 customers and 85 mini-clusters are easily solved. Larger problems are solved by applying the algorithm to several non-disjoint subproblems obtained by dividing the territory into sub-areas and the day into time slices. Key words: dial-a-ride, routing, scheduling, column generation, clustering. RE SUME Dans le contexte du transport des personnes handicapees, le probleme avec plusieurs vehicules est resolu par une approche de mini-regroupement des usagers suivie d'un routage optimal des vehicules. Un algorithme heuristique regroupe ensemble les usagers voyageant en m^eme temps dans le m^eme vehicule. Le probleme du routage des vehicules visitant l'ensemble des minigroupes est resolu optimalement par un algorithme de generation de colonnes. Des problemes comprenant jusqu'a 200 usagers et 85 mini-groupes sont resolus facilement. Les problemes de taille superieure sont resolus en divisant la journee de travail en plusieurs periodes de temps et le territoire en plusieurs sous-regions et en appliquant l'algorithme a plusieurs reprises. Mots cles: transport pour handicapes, routage, generation de colonnes, regroupement.

This article examines the use of mathematical optimization algorithms to construct vehicle routes in a large scale multi-vehicle many-to-many system in the context of the transportation of the handicapped. The main contributions of this paper are rst, the innovative concept of mini-clusters; second, the generalization of the column generation algorithm for the m-TSP with time windows (Desrosiers, Soumis and Desrochers 1984) to solve problems with several depots and resource constraints; and, nally, a method of decomposition into time slices and sub-areas to handle very large problems.



For a given day, we have a set of transportation requests, a heterogeneous vehicle eet and a set of pieces of work for drivers. Each transportation request involves: a pick-up stop and a delivery stop, a given number of customers to be transported, a desired pick-up or delivery time, a departure time interval and an arrival time interval, and loading and unloading durations. Vehicles have capacity limits on the number of wheelchairs, and an independent capacity for ambulatory passengers. In addition, we de ne that a \piece of work" is part or all of a driver's workday during which a driver and a vehicle are available to carry out circuits beginning and ending at the same depot. The types of pieces of work available, the number of each type, and the assignment of drivers to vehicles is determined in advance. We consider the case in which vehicles are housed in several depots. Each vehicle must return to the depot from which it began its service run. Distances and times between the various stops are given. The problem consists in minimizing the number of pieces of work used and then for this number of pieces of work, minimizing travel time (a function of the distance traveled) while satisfying the following constraints: 1. visiting constraints (each pick-up and delivery stop is visited only once); 2. time window constraints (the time constraints must be satis ed at each stop); 3. capacity constraints (vehicle capacities cannot be exceeded); 4. depot constraints (after a working period, each vehicle returns to the depot from which it departed); 5. pairing constraints (for a given request, the same vehicle must visit the pick-up and delivery stops); 6. precedence constraints (each customer must be picked up before being dropped o ); 7. resource constraints (the availability of driver's pieces of work and vehicle types must be respected). 1



The only known exact algorithm for the multiple vehicle routing problem with both pick-up and delivery in the presence of time window constraints has been developed by Dumas (1985). This column generation algorithm has been applied to small problems (up to 50 requests) in regards to the transportation of goods with tight vehicle capacity constraints. Dumas et al. (1989a) and Solomon and Desrosiers (1988) present variants of a formulation involving only a single depot and an homogeneous eet. Bodin et al. (1983) in their state-of-the-art review of vehicle routing and scheduling methodologies mention three algorithms for the multiple vehicle dial-a-ride problem. The NEIGUT/NBS procedure schedules one vehicle at a time and determines the best customer to be inserted into the route one at a time. The Jaw et al. (1986) procedure is a concurrent procedure. The day is split a priori into time slices of 20-30 minutes in length. Assuming that partial vehicle schedules exist over all preceding periods, this procedure forms clusters of customers for each of the vehicles in the given period. It successively solves very large scale problems of 2000 requests. The Bodin and Sexton (1986) procedure is a traditional \cluster rst { route second" approach. For a xed eet size, it partitions the set of requests into vehicle clusters and solves the resulting single vehicle dial-a-ride problems using a heuristic based on Benders' decomposition (Sexton and Bodin 1985a, 1985b). A fourth procedure, which uses concurrent insertion based on proximity measures, has been developed by Roy et al. (1984a, 1984b). In an earlier short paper, Desrosiers et al. (1988) describe the initial results for the problem examined here. For the sake of clarity, we will report most of these here. The single vehicle dial-a-ride problem with time windows has also been studied by Psaraftis (1982) and Desrosiers, Dumas and Soumis (1986). The interested reader should also refer to the work of Dumas (1989), Stein (1978), Armstrong and Gar nkel (1982), and Psaraftis (1980, 1983) on single and multiple vehicle dial-a-ride problems; to Desrosiers et al. (1985), Kolen et al. (1987), Savelsbergh (1986), Sorensen (1986), Solomon (1986, 1987), Swersey and Ballard (1984), and nally to the recent surveys of Desrochers et al. (1988) and Solomon and Desrosiers (1988) for other variants of the vehicle routing problem with time window constraints.




In a routing methodology of the \cluster rst { route second" type (see Bodin et al. 1983), the original set of customers is partitioned into clusters, each of which is to be served by a single vehicle. Routing is subsequently carried out for each vehicle in a separate step. The routing step thus typically involves a series of single vehicle problems which are smaller and less complex than the original multi-vehicle problem and can often be solved by optimally using mathematical programming techniques. However, many important decisions, perhaps the most important, are made in the clustering step and at present only heuristic methods are available to create clusters. It is very dicult to produce a \good" set of clusters which allow adequate application of optimal routing while respecting all the constraints. For the multiple vehicle dial-a-ride problem, we propose a \cluster rst { route second" approach which moves a part of the clustering problem into the routing problem, thus improving the global performance of the algorithm. At the rst stage, rather than grouping customers into clusters corresponding to a full day's work for one vehicle, we group customers into mini-clusters corresponding to small work periods for one vehicle. Each mini-cluster groups customers wishing to travel at about the same time within the same area and can therefore be served with the same vehicle. By creating miniclusters of similar requests we can avoid having to deal with constraints involving the operator's working conditions or depot and resource constraints at the clustering stage. Instead, we focus only on local temporal and spatial considerations. At the second stage, routes for all the vehicles are constructed simultaneously. The mini-clusters created in the rst stage are strung together to form vehicle routes corresponding to drivers' pieces of work. This step, which is carried out using an optimal algorithm, deals with global operational planning considerations by assigning mini-clusters to vehicles in the most ecient manner. At the third stage, the mini-clusters are reopened and each vehicle route is reoptimized, now taking into account the actual arrangement of the mini-clusters from the second stage. At this point the stops visited by a vehicle may be reordered. This stage is carried out optimally using the single vehicle dial-a-ride algorithm of Desrosiers, Dumas and Soumis (1986). At the fourth stage, the schedule of each vehicle is optimized over a xed itinerary. There are generally several schedules which are compatible with the chosen itinerary and the time windows available for visiting each node. Vehicle idle time may generally be distributed 3

in a number of ways over the course of the itinerary. The problem is one of choosing the schedule which minimizes the inconvenience associated with service time at each of the stops. For each stop, inconvenience is modelled using a convex function of the service time. An optimal algorithm for solving this problem is given in Dumas, Soumis and Desrosiers (1989b). This redesigning of the \cluster rst { route second" approach opens new perspectives in vehicle routing by reducing the relative importance of heuristic methods, especially in the clustering step, and by extending the utility of optimization procedures to global decision making in the routing process. In this section we summarize methodologies, all of which have already been published, for solving the rst, third, and fourth stages in our approach. The methodology of the second stage will be presented in the next section. The presence of the second stage forms the core of the new approach to vehicle routing and is the principal contribution of this article. The methodology we present for this stage is a generalization of the column generation technique for vehicle routing with time windows (Desrosiers, Soumis, and Desrochers 1984) to handle problems with several depots and di erent types of drivers' pieces of work. In addition, we present a decomposition method using time slices and sub-areas which is designed to permit treatment of very large problems.

3.1 Stage 1: Creating the mini-clusters If the optimal solution of the global problem was given, the optimal mini-clusters could be obtained by the following dividing procedure. Each route of the solution is divided into segments, the boundaries of which are de ned by periods in which the vehicle becomes empty. The customers transported in each segment makes up a mini-cluster. This characterization allows to identify the two main particularities of mini-clusters : (1) customers in a single mini-cluster should be transportable by a single vehicle while respecting constraints on time windows, vehicle capacity, pairing, and precedence; (2) the sum of all vehicle travel time within mini-clusters should be close to the minimum. This last particularity comes from the fact that total travel time minimized in the optimal solution consists mainly in traveling time with customers in vehicles and this time corresponds to the travel time within mini-clusters. Many heuristic methods could be used in order to create mini-clusters satisfying these criteria. For example, customers can be simply grouped according to some criteria of proximity in space and time. Such criteria should ensure feasibility and low travel time within mini-clusters, but feasibility is not easy to obtain by using proximity measures. 4

Rather than use a method of this type, we construct the mini-clusters from an existing feasible solution which may be created, for example, manually or from a simpler dial-a-ride solution technique such as that of Roy et al. (1984a). The mini-clusters are then constructed using the dividing procedure. Within these mini-clusters, the time window, precedence, pairing, and capacity constraints are all satis ed and the total travel time is relatively close to miminum. In fact heuristic algorithms build good segments of routes transporting small groups of neighbour customers. Their weakest point is the reassigning of the vehicle to the next group when it becomes empty. In addition, our Stage 1 procedure could allow an iterative application of the solution procedure. For example, the output from Stage 3 could become the input to Stage 1 of a new iteration.

3.2 Stage 3: The single vehicle dial-a-ride algorithm At certain steps of our procedure we require a sub-procedure to separately optimize each vehicle routes. The algorithm we use in this sub-procedure is the single vehicle dial-a-ride algorithm of Desrosiers, Dumas, and Soumis (1986), which applies dynamic programming to solve a travelling salesman problem with additional time window, capacity, and precedence constraints. Through the use of an initial feasible solution, the pairing and resource constraints are already satis ed and do not need to be considered in the algorithm. It is well known that dynamic programming by itself is not ecient for solving travelling salesman problems of realistic size. Our method is ecient because the special structure of the problem allows us to identify states which cannot satisfy the problem constraints and hence may be eliminated. At any given stage of the algorithm, a state (S; i) may be de ned where S is the unordered set of stops so far visited by the vehicle and where i 2 S is the last stop visited. Now consider any stop j where j 62 S . If the state (S [ fj g; j ) does not satisfy time window, precedence, and capacity constraints, it can be eliminated. In addition, since the vehicle must visit every stop of a given route, we can also eliminate state (S [ fj g; j ) if there is some other stop k 62 S [ fj g which cannot be visited after stop j while satisfying the time constraints. By eliminating states in this way and with additional criteria we can signi cantly reduce the combinatorial development of the algorithm. Also, we take into account the time of visiting each stop during the course of the algorithm; as these time values are strictly increasing along any route constructed, subtours are automatically eliminated. Experience has shown that the execution time of this forward dynamic programming algorithm is a linear function of the number of stops. 5

3.3 Stage 4: The single vehicle scheduling problem For any given vehicle route there are many di erent speci c time schedules which satisfy the problem constraints. To choose the best schedule, we invoke a new set of objective functions which measure the inconvenience associated with any particular service time Ti within a given time window [ai ; bi ]. The scheduling problem is one of minimizing the total inconvenience subject to the problem constraints. This algorithm is described in detail in Dumas, Soumis and Desrosiers (1989b). Given a route visiting, in sequence, stops 1; 2; : : : ; n, let ti; i+1 ; i = 1; : : : ; n ; 1, be the time required to go from stop i to stop i + 1. For each stop i, the variable Ti represents the service time and the convex inconvenience function fi (Ti ) is de ned on the time window [ai ; bi ] We formulate problem (P ) of the schedule optimizing as follows: (P )

min subject to

n X i=1

fi(Ti )

Ti + ti; i+1  Ti+1 i = 1; 2; : : : ; n ; 1 ai  Ti  bi i = 1; 2; : : : ; n:

(1) (2) (3)

The objective (1) serves to minimize the total inconveniences related to service time at each stop, subject to linking constraints (2) which describe the compatibility of the schedule with the route and the time window constraints (3) which impose the time windows at the stops. We use a dual approach to solve this problem. This approach consists in rst solving (P ) with the constraints (2) relaxed, and then in reintroducing violated constraints one by one until all constraints are respected. The relaxed problem can be solved by carrying out n unidimensional minimizations. Each time a violated constraint is introduced, another unidimensional minimization is sucient to reoptimize the problem. The complexity of the algorithm is thus of the order of n unidimensional minimizations. In the special cases where the inconvenience functions are quadratic or linear, the one-dimensional minimizations may be carried out analytically in a constant number of operations. In these cases, therefore, the complexity of the algorithm is O(n).




The problem to be solved at the second stage is a routing problem with time windows on the set of mini-clusters and resource constraints. The formulation involves multiple depots, di erent drivers' pieces of work and an heterogeneous eet. To simplify the notation, let a driver's piece of work k 2 K be characterized by a work period [ak ; bk ], a departure point sk , an arrival point ek , a multi-dimensional vehicle capacity (wheelchairs and ambulatory passengers) and an available number Qk . Each mini-cluster i involves a multi-dimensional size, a duration (total time between the rst and last stop in the mini-cluster) and a cost (travel time between the rst and last stop in the mini-cluster) as well as a time window [ai ; bi ] on the departure time. This time window is de ned by the earliest and latest starting times of the route segment visiting pickup and delivery stops within the mini-cluster. Let M k be the set of mini-clusters satisfying the multi-dimensional vehicle capacity associated with piece of work k, and de ne M = [k2K M k . Pieces of work are given a priori because collective agreements usually require driver schedules to be set several days in advance. Although the pieces of work are de ned in advance, they do not all have to be used. The drivers available for the unused pieces of work can be reassigned to the replacement of absent drivers in the regular public transit service. These conditions motivate an objective which minimizes a linear combination of the number of pieces of work used and the total travel time.

4.1 Mathematical formulation The problem consists in nding vehicle schedules and routes which minimize the number of pieces of work and the travel time. In the formulation, we use a network structure (N ; A): the set of nodes is N = [k2K N k with N k = M k [ fsk ; ek g;   the set of arcs is A = [k2K Ak with Ak = I k [ fsk g  M k [ M k  fek g : An arc (i; j ) in the set I k  M k  M k is an unproductive (i.e. empty) run carried out by a vehicle as it goes from the end of mini-cluster i to the beginning of mini-cluster j . The time value tij is composed of the travel time on arc (i; j ) plus the duration di of mini-cluster i (which includes travel, waiting, loading and unloading times). An arc (i; j ) 2 A is de ned if time windows allow it (i.e. if ai + tij  bj ). The cost value cij is a function of the distance traveled: it is given by the travel time on arc (i; j ) plus the transportation (travel) time within mini-cluster i. Finally, a large xed cost ; is added to the cost of the arcs of the subsets  fsk g  M k , for all k 2 K , to ensure that the number of pieces of work is minimized. 7

Two types of variables are used in the formulation: ow variables Xijk which are binary (where Xijk = 1 indicates that a vehicle of type k which is associated with the piece of work k travels from node i to node j ), and continuous time variables Ti , i 2 M associated with the departure times for the mini-clusters. In the objective function, costs are de ned for all k 2 K as ckij = cij (i; j ) 2 I k csk j = ; + csk j j 2 M k ckiek = ciek i 2 M k: Optimal routes respecting the scheduling and resource constraints are given by the solution of the following integer programming problem with linear and non-linear constraints : min



k2K (i; j )2Ak

ckij Xijk


subject to: X


k2K j j(i;j )2Ak X j j (`; j )2A X

Xijk = 1 X`jk =


i j (i; `)2A X k k Xsk j = Xiek k k j 2N i2N X k Xsk j  Qk k j 2N ai  Ti  bi Xijk = 1 =) Ti + tij  Tj Xskk j = 1 =) ak + tsk j  Tj Xiek k = 1 =) Ti + tiek  bk Xijk binary k





` 2 M; k 2 K






i2M (i; j ) 2 I; k 2 K j 2 M k; k 2 K i 2 M k; k 2 K (i; j ) 2 Ak ; k 2 K:

(9) (10) (11) (12) (13)

Constraints (5{6) ensure that one vehicle enters and leaves each mini-cluster and that this vehicle is of the same type. Constraints (7) ensure that the same number of vehicles of type k begin and terminate each type of piece of work. Once variables Xijk for xed k are given, it is easy to construct a schedule for each individual vehicle of type k. Inequalities (8) model the resource limitations on the number of pieces of work. Constraints (9) establish the time intervals on the departure time of mini-clusters while constraints (10{12) describe the compatibility requirements between the routes and schedules. 8

Rather than solving the problem in terms of ow variables in the network (N ; A) , we have generalized the solution method presented in Desrosiers, Soumis and Desrochers (1984). The problem is formulated in terms of binary variables on the use of feasible routes in graphs (N k ; Ak ) and solve it by column generation.

4.2 Column generation scheme The formulation in terms of feasible routes is a set partitioning problem with resource constraints on the pieces of work. We introduce the following notation:

k : the set of routes satisfying the scheduling constraints of piece of work k;

Xrk : binary variable, 1 if route r of piece of work k is used, 0 otherwise; Crk : cost of route r of piece of work k (the sum of the costs of the arcs making up the route);

rik : binary constant, 1 if route r of piece of work k goes through the mini-cluster i, 0 otherwise.

The master problem is formulated as follows: min


k2K r2 k

Crk Xrk


subject to: X X k k riXr = 1 k2K r2 k X k Xr  Qk r2 k Xrk binary





r 2 k ; k 2 K:


The linear relaxation of the master problem is solved using the simplex algorithm. This method gives the dual variables i ; i 2 M and k ; k 2 K necessary for column generation and lends itself well to reoptimization each time new columns are generated. Several strategies described in section 4.2.1 are used to reduce execution time. The integer solution of the master problem is described in section 4.2.2. 9

A route of minimal marginal cost for piece of work k is generated by solving a shortest path subproblem with time window constraints on the nodes of the network (N k ; Ak ). Costs for this subproblem are given by

ckij =

ckij ; k i = sk ckij ; i i 2 M k :

This constrained shortest path problem has been extensively studied and several algorithms have been designed: a Ford-Bellman type algorithm by Desrosiers, Pelletier and Soumis (1983), a Dijkstra type algorithm by Desrochers and Soumis (1988a), and a primal-dual reoptimization algorithm by Desrochers and Soumis (1988b). The reader is referred to these publications for a full description of the dynamic programming algorithms.

4.2.1 Accelerating strategies As we have described earlier, we assume that an initial feasible solution is available at the start of the agorithm. This initial solution provides an initial basis for the simplex algorithm with the addition of arti cial variables and the application of phase I of the simplex algorithm. The rst subproblem to be handled after each simplex call is chosen cyclically. If this rst subproblem does not generate a column of negative marginal cost, it is temporarily excluded from the generation step. It is reinstated later to ensure the optimality of the solution of the master problem. For a set of multipliers, i ; i 2 M and k ; k 2 K , a strategy which generates several columns was adopted. For a given subproblem, at most a number of columns equal to the availability Qk of this piece of work is generated. Columns are also generated one by one by solving, with the same algorithm, the sequence of subproblems obtained by withdrawing from the previous subproblem, the mini-clusters already covered by the last column generated. Because each sub-route linking mini-clusters of a feasible route is also feasible at a lesser cost, the equations (15) of the form (=) in the master problem could be transformed into inequalities (). Better numerical stability was thus obtained. The solution of the master problem by simplex often produces integer or partially interger solutions. Consequently a typical basis contains 60% to 80% null variables, which unfortunately causes a large number of degenerate simplex iterations for each new column. To increase the number of non-null variables in the basis, a perturbation was applied to the constraints. The 10

solution time for the perturbed problem is much shorter, and the gap between the solutions of the perturbed problem and the original linear problem (14{17) is small. When the perturbations are removed, the time required to nd the solution to the original problem is small. Finally, at each call of the simplex, the columns whose reduced cost is too high are eliminated.

4.2.2 Obtaining integer solutions The sum of ows on the exit arcs from all sk ; k 2 K towards all mini-clusters i 2 M k gives the number of pieces of work used. In our application, the xed cost ; is suciently large so that it is never worthwhile to increase the number of pieces of work in order to reduce travel time. P P k When the total number of pieces of work used, given by Xr = p is non-integer in the k2K r2 k optimal linear solution of the master problem, a global cut is added to round this number up to at least the next integer: X X k Xr  dpe: (18) k2K r2 k

The master problem (14{18) is then reoptimized by the dual simplex algorithm and new columns are generated as needed. For each subproblem k 2 K , the objective function is modi ed by adding the dual variable associated with this new constraint (18): min ; +

X (i; j )2Ak

ckij Xijk :


If the solution is still non-integer, we use a branch-and-bound tree. A branching related P k to the use of pieces of work is the rst priority. If Xr = qk is fractional, two branches are r2

created in the tree. In each branch, a new constraint is added: X

r2 k

Xrk  bqk c

on one branch and


r 2 k

Xrk  dqk e

on the other.

New columns are then generated as required using all the subproblems, with the dual variable k associated with the new constraint transferred to the subproblem k. For each subproblem k 2 K , the objective function is given by min ; ; k +

X (i; j )2Ak


ckij Xijk :


After branching on pieces of work, if the solution is still non-integer, branching is carried out on the binary variables Xrk . This is not done by xing a Xrk variable at 0 or 1, but by setting at 0 or 1 the variables Xijk associated with the arcs which make up the route (see Carpaneto and Toth 1980). For example, suppose that the four ow variables

Xskk 1 ; X12k ; X23k and X3kek are associated with the fractional route variable 0 < Xrk < 1. We create ve branches which are successively de ned as k = X k = X k = 1; 1) Xskk 1 = X12 23 3ek k k k 2) Xsk 1 = X12 = X23 = 1; X3kek = 0; k = 1; X k = 0; 3) Xskk 1 = X12 23 k k 4) Xsk 1 = 1; X12 = 0; 5) Xskk 1 = 0. With this method we can transfer information from the branching to the network

(N k ; Ak ) of the subproblem k (see Desrosiers, Soumis and Desrochers 1984). The fractional variable Xrk chosen is the one whose components (mini-clusters) most often appear in the current

basis. Exploring rst the branch for which all ow variables are set at 1, an integer solution of good quality is rapidly found. For practical purpose, exploration of the tree terminates when the number of pieces of work is optimal and when the gap in travel time between the best integer feasible solution and the lower bound is less than 1%.

4.3 Decomposition of large problems using overlapping time slices When the routing problem on mini-clusters becomes too large, the day is divided into successive overlapping time slices and a sequence of smaller problems is solved. Let B0 ; B1 ; : : : be the cutting time values and de ne [Bt;1 ; "; Bt + "]; t  1, the time interval associated with the tth time slice problem. The parameter " is used for the overlapping time period. Given a minicluster i 2 M with duration di and time window [ai ; bi ] on the departure time, it belongs to the time slice t if ( %) of the duration di can be included in the time slice, i.e., min (Bt + "; bi + di ) ; max (ai ; Bt;1 ; ")  ( %)  di


The division of the day into time slices is carried out according to two criteria: an overlapping time interval of 20 to 30 minutes between successive time slices, and a number of mini-clusters varying between 30 and 40 per slice (including the mini-clusters in the overlapping time). In our implementation, parameter was set at 75. 12

The reduced size of the problems solved for each time slice allows rapid handling by the column generation algorithm. At the beginning of the algorithm, we have an initial feasible solution. For each route in this solution, we have pick-up and delivery stops of the network before, during and after the time slice being considered. For a given route, the associated piece of work is replaced by a piece of work of reduced time length. The starting place and time for the piece of work are de ned as the last stop and time which the driver completed prior to the beginning of the time slice. Similarly, the nishing place and time are de ned as the rst stop and time to be visited after the end of the time slice. Pieces of work which were previously identical, are now di erent. In the column generation scheme, we have a subproblem for each di erent piece of work: the number of subproblems in a time slice is equal to the number of routes of the feasible solution which covers the mini-clusters in this time slice (each de ning a new piece of work), plus the number of di erent unused pieces of work. This procedure retains after each time slice reoptimization a new feasible solution which is used to de ne the problem for the following time slice, and enables us to rapidly construct an initial basis. For a given time slice and a given piece of work, if a vehicle comes from the depot, a xed cost is assigned to the corresponding arc; if the vehicle is merely carrying out the continuation of a piece of work, there is no xed cost. To take this into account, the branching procedure on fractional variables was slightly modi ed to favour the use of columns with zero xed cost.



In this section we rst present results from 6 test problems using data from Canadian cities. These problems are used to calibrate and validate the methodology put forward in this article. We then compare our results with those of a competing heuristic procedure as well as the results of a manual solution for data from a recent single day in Toronto.

5.1 Test problems The six test problems come from the Canadian cities of Sherbrooke (SHE), Toronto (TOR) and Montreal (MTL). The alphanumeric code identifying each problem indicates the city and the number of transportation requests. Table 1 describes the main characteristics of these six problems.


The number of requests varies from 86 to 190 for the four smallest problems to 410 and 880 for the two large Toronto problems. For each problem, the number of pick-up and delivery stops to be visited by all the vehicles is roughly twice the number of requests. The reason for this is that although there are a few common stops for the departure and arrival points of customers, additional stops for the depots associated with pieces of work have to be added. In the routing problem on mini-clusters, the number of nodes of the network (N ; A) to be visited is reduced by a factor of from 2.2 to 3.5. Although the average number of requests making up a mini-cluster is less than 4, the distribution of the size of mini-clusters shows that there can be over 10 requests in some miniclusters. The problem TOR185 handles morning requests only, while the other problems handle requests for a full day. Problem TOR410 includes regular requests in this city. Occasional requests are then added to form problem TOR880. These two problems are among those used for the evaluation of various transportation system scenarios for the handicapped by Belisle et al. (1984). Although the average duration of the arcs plus the duration of mini-clusters is 6 to 8 times greater than the width of the time windows associated with the departure time of the mini-clusters, the network (N ; A) is not acyclic. For example, mini-clusters with a single customer have time windows of from 30 to 45 minutes, but they can be of very short duration (5-10 minutes) and the network includes arcs of from 0 to 5 minutes. Finally, the number of di erent pieces of work gives the number of subproblems generating feasible routes when mini-cluster routing is carried out with a single time slice problem (7 to 17 for the rst 4 problems). When the decomposition of problem into several time slices is carried out, the number of subproblems per slice is roughly equal to the number of pieces of work used in the initial feasible solution (given by the algorithm of Roy et al. 1984a) plus the number of di erent unused pieces of work: this number is greater than 40 for problems TOR410 and TOR880.

5.2 Test results The rst four problems were solved without temporal decomposition at the mini-cluster routing stage. Table 2 summarizes the results of the various steps in the procedure. The value of the objective function is given in two parts: the number of pieces of work, and the total travel time in minutes (a function of the distance traveled). In relation to the initial solution, the average reduction in travel time is as follows: 10% after mini-cluster routing (Stage 2), and 1% 14

after the nal optimization of each route (Stage 3). For problems MTL158 and MTL190, the column generation algorithm also produced reductions of 4% and 9% respectively in the number of pieces of work used. Test problems were solved on the University of Montreal Cyber 173 computer using the FORTRAN 5 compiler, and the simplex code comes from Land and Powell (1973). In the computation time section of the table, note the superior performance of the optimization algorithms. A fairly large proportion of the total execution time is due to le management; further work is necessary to improve the eciency of this component. Concerning the integer solution of the master problems at the column generation step, the integer optimal solution was obtained for problems SHE86 and MTL158 respectively at the rst and second nodes of the enumeration tree. For problems TOR185 and MTL190, the integer solutions presented are optimal for the number of pieces of work and at 0.19% (6th node) and 0.10% (3rd node) from the continuous simplex solution for travel time. The total number of columns generated by the subproblems is not high considering the large number of subproblems to be solved and also the elimination of simplex variables; certain columns must therefore be generated several times. We have evaluated the e ect of each of three strategies used to reduce computing time and memory requirements. The perturbation strategy for avoiding degeneracy reduces the computing time by 10%. With the variable elimination strategy, only 40% of the variables are kept in memory, but computation time remains the same. When we include the initial basis stragegy, the computing time is reduced by 40%. This paper presents the results obtained using the three strategies. A further optimization phase was tested by repeating our procedure with mini-clusters constructed from the solution of Stage 3. Improvement was null or low, i.e. less than 1% of the travel time. The solutions produced are thus of very high quality and this post-optimization phase was not included in the procedure. Table 3 shows the results of problems solved by decomposition into overlapping time slices at the mini-cluster routing stage. For the rst 3 problems, i.e. TOR185, MTL158 and MTL190, comparisons can be made with solutions obtained without decomposition. For these three problems, the same number of pieces of work is obtained. Travel times are identical for problem MTL158, and are slightly higher (by 1% and 2% respectively) for problems TOR185 and MTL190. Computation times for the column generation algorithm are lower for two out of three problems; however there is a slight increase in the time required for le management. Overall, solutions remain of about the same quality and the decomposition into time slices is an ecient alternative for the solution of large problems. 15

The two large problems TOR410 and TOR880 were both solved using this decomposition approach. Comparison with the initial solutions given by Roy et al. (1984a) algorithm shows that the number of pieces of work can be signi cantly reduced (by 19% and 9%), as well as the total travel time (by 38% and 18%). The column generation algorithm still performs well. The average solution time for the 13 decomposed problems for problem TOR880 is 60 seconds. Each problem in the decomposition involves about 35 mini-clusters to be covered by over 40 di erent pieces of work, i.e., over 40 di erent subproblems generating feasible routes. For the 5 problems solved by decomposition, the optimal integer solution was obtained for the smaller routing problems on mini-clusters 18 times out of 24. For the other 6 problems the gap with respect to the continuous simplex solution was 0.2% on average.



In this section we present algorithmic improvements and results from scheduling 1890 requests received on a single recent day at the Wheel Trans Service of Toronto. This day's data shares many characteristics with the previous Toronto data.

6.1 Spatial decomposition and other accelerating procedures To solve this very large-scale problem, we have used a supplementary spatial decomposition over the temporal decomposition procedure. Overlapping time slices are rst generated such that each time slice contains approximately 100{125 mini-clusters. Then the territory is divided into overlapping sub-areas such that each time-space problem generated deals with about 30 to 40 mini-clusters. A mini-cluster of the time slice belongs to a time-space problem if the direct displacement from the starting place to the arrival place of the mini-cluster is fully included into the sub-area. In our application, the city of Toronto was divided from east to west. Next you must recall that there is a shortest path subproblem to be solved for each di erent type of driver's piece of work. To accelerate the solution procedure, we have grouped all subproblems sharing the same following characteristics: departure point, starting time and vehicle type. In order not to loose the acceleration impact of this grouping (de ned by the time-space decomposition) the partial problems must also be redesigned. For a given route, the 16

starting place and time, as well as the nishing place and time, were previously rede ned (see section 4.3) at the borders of the time slice. Pieces of work which were previously identical were then di erent. In the new version they remain unchanged. A partial problem now considers the routing on all the mini-clusters in the time-space area plus, for each route, two external miniclusters formed with the beginning segment and with the end segment of the route (excluding the starting and ending depot points). The total number of internal and external mini-clusters included in a partial problem varies between 70 and 100 in practice.

6.2 Comparison with other solution procedures Table 4 presents a manual solution prepared by scheduling operators, as well as a reoptimization of this manual solution using our approach. Computation time for the reoptimization is on the order of 500 seconds (CDC Cyber 173) for a problem of this size. The rst column of Table 4 contains the results of the manual solution. The second column presents the solution obtained with our approach by using the manual solution to de ne the mini-clusters. We obtain a 6% reduction in the work time (from 673 hours to 631 hours). This improvement is largely due to a reduction of 24% in empty vehicle displacements (from 159 to 121 hours). Reduction in this kind of empty vehicle movement is precisely the aim of the algorithm for routing and scheduling on mini-clusters. We also note that the manual solution allowed vehicle capacity to be exceeded 7 times and also allowed time windows to be violated 201 times. The optimization algorithm succeeded in reducing the number of time window violations to 148, an improvement of 25%. This reduction was carried out at Stage 3, where the miniclusters are reopened and the single dial-a-ride algorithm is applied on each route. The last two columns which present feasible solutions are not entirely comparable with the rst two columns which present solutions in which not all the constraints are satis ed. The solution presented in the third column has been obtained using the concurrent insertion procedure of Roy et al. (1984a, 1984b). The last column presents the solution obtained using our approach, where the initial mini-clusters have been de ned using the Roy solution. We obtain a 30% reduction in empty travel time for an overall 3% reduction in work time. By comparing the fourth column with the rst, we can see that our approach allows a slight reduction in overall work time and a 4% reduction (from 116 to 112) in the number of pieces of work. Most importantly, all the constraints are satis ed in the solution obtained using our approach. 17

6.3 An extension which allows the insertion of new customers The solution produced by the optimization procedure is not necessarily nal, in the sense that other customers may have to be added subsequently. It is therefore necessary to obtain a solution which can easily be modi ed by the addition of new customers at the same time as the cost of serving existing customers is minimized. Minimization of operation costs is already an objective which facilitates the insertion of new customers. First, the minimization of the number of pieces of work actually used maximizes the number of pieces of work which are not used, and hence are available to serve new customers. Second, the minimization of travel time allows a maximum amount of time to serve new customers. An additional means to facilitate the insertion of new customers is to assemble periods of free time into longer periods. The following objective function considers this third factor in addition to the two just discussed : max



k2K (i; j )2Ak

L ij Xijk


where Lij = Tj ; Ti ; tij is the free time between nodes i and j , and where the nodes are either mini-clusters or depot pull-out or pull-in. The exact values Lij are not known in advance but are dynamically evaluated in the shortest path algorithm. For = 1, the objective function minimizes the total traveling time (like the original objective) since for each work period k 2 K : X

(i;j )2A


Lij Xijk = bk ; ak ;


(i;j )2A


tij Xijk


where the constant value bk ; ak represents the length of the work period. For greater than one ( = 1:2 in our implementation), the objective function takes into account the third objective (accumulation of long periods of free time) by placing a larger weight on a long period rather than on a sum of shorter periods with the same total duration. It considers the rst factor (minimization of number of pieces of work) since in favoring long free periods it also favors unused pieces of work. This objective is also very close to the sum of free time, and takes into account the second factor (minimization of work time). Using Figure 1 it is possible to visualize how the new objective would modify a part of an optimal solution. The blank lines represent free periods while the blank spaces positioned horizontally between the black lines represent busy periods. The horizontal axis corresponds to time and each line represents a single vehicle run. 18

Table 5 presents the distribution of free time periods for solutions obtained by using the original ( = 1) and the modi ed ( = 1:2) objectives, and using two di erent initial solutions. Remember rst of all that the solutions described in the rst two columns do not respect all of the constraints. Hence, these solutions are not directly comparable with the solutions described in the last two columns which do respect all constraints. The solutions obtained using the modi ed objective clearly contain more long free periods (periods of more than two hours) than the solutions obtained using the original objective. In fact, the number of periods longer than 6 hours goes from 17 to 28 and from 13 to 29, respectively. This result shows that the third factor favoring the insertion of new customers is fully taken into consideration. The rst and second factors are also respected and can be seen from the reduction of the number of pieces of work in one case and by the fact that the overall work time does not change signi cantly with the introduction of the new objective.



The problem of vehicle route construction for the transportation of the handicapped is dicult to solve, both because of the size of the problem and the multiplicity and complexity of the constraints. It is not possible using current technology to optimally solve problems of realistic size which present this complexity. The work presented in this article represents an important step toward the development of procedures which use a hybrid of heuristic methods and mathematical optimization. Using the concept of mini-clusters, we have been able to improve upon the traditional \cluster rst { route second" methodology by moving a portion of clustering problem into the routing problem. In this way we can allow the vehicle routing to take into account some global optimization considerations which were not available to the routing component using the traditional technique. In addition, the new routing problem is less dicult to solve than the original problem, since the grouping of customers into mini-clusters reduces the size of the problem while satisfying in total or in part certain constraints (capacity, precedence, pairing, time windows). The new routing problem on the mini-clusters is, however, also dicult to solve and is subject to time windows, vehicle and piece of work resources and multiple depot constraints. But through a mathematical programming methodology using column generation, these constraints can be handled eciently in subproblems generating feasible routes.


ACKNOWLEDGMENTS The authors wish to thank the Federal Government of Canada (Natural Sciences and Engineering Research Council of Canada), the Quebec Government (Fonds pour la Formation de Chercheurs et l'Aide a la Recherche), and l'E cole des Hautes E tudes Commerciales de Montreal, for their nancial support.




IDENTIFICATIONa SHE86 TOR185 MTL158 MTL190 TOR410 TOR880 NUMBER OF MINI-CLUSTERS 36 56 66 85 115 282 NETWORK SIZE (N ; A)b NODES 56 70 90 119 153 310 ARCS 672 906 1835 3145 4979 (c) SIZE DISTRIBUTION OF MINI-CLUSTERS (1{4) 30 40 59 77 81 212 (5{10) 6 14 7 8 31 66 (11{14) 0 2 0 0 3 4 AVERAGE 2.4 3.3 2.4 2.2 3.5 3.1 VISIT STARTING TIME DISTRIBUTION OF MINI-CLUSTERS (5{10H) 11 56 27 29 54 105 (10{14H) 9 0 1 1 0 54 (14{18H) 13 0 37 43 61 93 (18{24H) 4 0 1 12 0 30 TIME WINDOWS ON MINI-CLUSTERS AVERAGEd 19 22 15 16 21 21 MAXIMUM 40 40 30 30 45 45 DURATION OF MINI-CLUSTERS AVERAGEe 33 60 41 40 65 60 MAXIMUM 113 192 128 128 195 235 DURATION OF ARCS AVERAGEd 39 66 57 58 80 83 MAXIMUM 126 226 182 182 243 291 DIFFERENT PIECES OF WORK 10 7 12 17 19 19 TOTAL AVAILABILITY 12 28 24 34 69 60 (a) code identifying the city and the number of requests (b) the Toronto problems contain two di erent depots (c) for this very large problem, solved by decomposition, the number of arcs is estimated to be over 30,000 (d) with a minimum of 0 minute (e) with a minimum of 5 minutes 21


SHE86 10 1158 10 1084 10 1081 0% 7%

TOR185 26 4312 26 3686 26 3614 0% 16%


MTL158 24 3359 23 3094 23 3043 4% 9%

MTL190 34 4323 31 3880 31 3801 9% 12%

CDC 173 COMPUTER 36 (1)* 33 (414) 23 (47) 79 171

104 (3) 54 (536) 31 (65) 78 267

(a) code identifying the city and the number of requests (b) number of pieces of work and total travel time in minutes (c) computation time for the simplex algorithm and, in brackets, the number of nodes explored in the branch-and-bound; * for optimality (d) computation time for the shortest path with time windows algorithm and, in brackets, the number of columns generated (e) computation time for the single vehicle dial-a-ride algorithm and, in brackets, the number of routes reoptimized (f) creation and update of les of routes, mini-clusters, pieces of work and time subtables



MTL158 24 3359

MTL190 34 4323

23 3043

31 3801

TOR410 37 8791 |

TOR880 53 19273 |

TIME SLICES 2 2 3 4 13 SOLUTION WITH DECOMPOSITION 26 3659 23 3043 31 3875 30 5455 48 15765 GAIN VS INITIAL SOLUTION 0% 15% 4% 9% 9% 10% 19% 38% 9% 18% LOSS VS SOLUTION WITHOUT 0% 1% 0% 0% 0% 2% | | DECOMPOSITION COMPUTATION TIMES IN SECONDS ON A CDC 173 COMPUTER MULTI-VEHICLESc 77 46 49 150 770 d SINGLE VEHICLE 83 (52) 23 (47) 30 (65) 128 (68) 256 (101) e FILE MANAGEMENT 55 90 102 123 279 TOTAL 215 159 181 401 1305 (a) code identifying the city and the number of requests (b) number of pieces of work and total travel time in minutes (c) total computation time for the simplex algorithm and for the shortest path with time window algorithm for all time slices (d) computation time for the single vehicle dial-a-ride algorithm and, in brackets, the number of routes reoptimized (e) creation and update of les of routes, mini-clusters, pieces of work and time subtables, for all time slices


TABLE 4: REOPTIMIZATION FROM INITIAL SOLUTIONS ON THE 1890 REQUESTS PROBLEM time worked (hours)  with passengers  without passengers  total number of pieces of work number of infeasibilities  capacity  time-window

manual reoptimization roy's reoptimization solution from manual solution from roy

514 159 673

510 121 631

550 134 684

570 95 666





7 201

7 148

0 0

0 0


total free time distribution 0 { 2 hours 3 { 5 hours 6 { 8 hours 9 { 11 hours 12 { 14 hours time worked (hours) number of pieces of work

reoptimization from manual solution original new objective objective

reoptimization from roy's solution original new objective objective





633 3 0 2 15

453 17 4 8 16

424 34 3 6 4

307 33 12 11 6










REFERENCES ARMSTRONG, G.R., and R.S. GARFINKEL. 1982. Dynamic Programming Solution of the Single and Multiple Pick-up and Delivery Problem with Application to Dial-a-Ride. Working Paper #162, College of Business Administration, University of Tennessee, Knoxville, Tennessee. BELISLE, J.P., F. SOUMIS, S. ROY, J. DESROSIERS, Y. DUMAS, and J.M. ROUSSEAU. 1986. The Impact on Vehicle Routing of Various Operational Rules of a Transportation System for Handicapped Persons. Third International Conference on Mobility and Transport of Elderly and Handicapped Persons, Oce of the Secretary of Transportation, Washington D. C. 20590, 6.47{6.50. BODIN, L., B. GOLDEN, A. ASSAD, and M. BALL. 1983. Routing and Scheduling of Vehicles and Crews { The State of the Art, Computers & Operation Research 10, 63{211. BODIN, L., and T. SEXTON. 1986. The Multi-Vehicle Subscriber Dial-a-Ride Problem. The Delivery of Urban Services, TIMS Studies in the Management Sciences 22, 73{86. CARPANETO. G., and P. TOTH. 1980. Some New Branching and Bounding Criteria for the Asymetric Traveling Salesman Problem. Management Science 26, 736{743. DESROCHERS, M., and F. SOUMIS. 1988a. A Generalized Permanent Labelling Algorithm for the Shortest Path Problem with Time Windows, INFOR 26(3), 191{212. DESROCHERS, M., and F. SOUMIS. 1988b. A Reoptimization Algorithm for the Shortest Path Problem with Time Windows, European Journal of Operations Research 35, 242{254. DESROCHERS, M., J.K. LENSTRA, M.W.P. SAVELSBERGH, and F. SOUMIS. 1988. Vehicle Routing with Time Windows: Optimization and Approximation. TIMS STUDIES in the Management Science 16, 65{84. DESROSIERS, M., Y. DUMAS, and F. SOUMIS. 1988. The Multiple Vehicle DIAL-A-RIDE Problem. Lecture Notes in Economics and Mathematical System 308: Computer-Aided Transit Scheduling, J.R. Daduna, A. Wren (Eds), Springer-Verlag, 15{27.


DESROSIERS, J., Y. DUMAS, and F. SOUMIS. 1986. A Dynamic Programming Solution of the Large-Scale Single-Vehicle Dial-a-Ride Problem with Time Windows. American Journal of Mathematical and Management Sciences 6, 301{325. DESROSIERS, J., P. PELLETIER, and F. SOUMIS. 1983. Plus court chemin avec contraintes d'horaires. R.A.I.R.O. Recherche operationnelle 17(4), 357{377. DESROSIERS, J., M. SAUVE and F. SOUMIS. 1988. Lagrangian Relaxation Methods for Solving the Minimum Fleet Size Multiple Traveling Salesman Problem with Time Windows. Management Science 34(8), 1005{1022. DESROSIERS, J., F. SOUMIS, and M. DESROCHERS. 1984. Routing with Time Windows by Column Generation. Networks 14, 545-565. DUMAS, Y. 1985. Confection d'itineraires de vehicules en vue du transport de plusieurs origines a plusieurs destinations. Publication #434, Centre de recherche sur les transports, Universite de Montreal, Montreal, Canada H3J 3J7. DUMAS, Y. 1989. Confection d'itineraires pour le transport adapte. Ph. D. thesis, E cole Polytechnique de Montreal, Canada, H3C 3A7. DUMAS, Y., J. DESROSIERS, and F. SOUMIS. 1989a The Pick-up and Delivery Problem with Time Windows. Cahiers du GERAD G{89{17, E cole des H.E.C., Montreal, Canada, H3T 1V6. DUMAS, Y., F. SOUMIS, and J., DESROSIERS. 1989b. Optimizing the Schedule for a Fixed Vehicle Path with Convex Inconvenience Costs. Cahiers du GERAD G{89{08, E cole des H.E.C., Montreal, Canada H3T 1V6. JAW, J., A. ODONI, H. PSARAFTIS, and N. WILSON. 1986. A Heuristic Algorithm for the Multi-Vehicle Advanced Request Dial-a-Ride Problem with Time Windows. Transportation Research B 20, 243{257. KOLEN, A., A. RINNOOY KAN, and H. TRIENEKENS. 1987. Vehicle Routing with Time Windows. Operations Research 35, 266{273. LAND, A. H., and S. POWELL. 1973. Fortran Codes for Mathematical Programming: Linear, Quadratic and Discrete. John Wiley & Sons, London. PSARAFTIS, H. 1980. A Dynamic Programming Solution to the Single Vehicle Many-to-Many Immediate Request Dial-a-Ride Problem. Transportation Science 14, 130{154. 27

PSARAFTIS, H. 1983. An Exact Algorithm for the Single Vehicle Many-to-Many Dial-a-Ride Problem with Time Windows. Transportation Science 17, 351{357. PSARAFTIS, H. 1983. Analysis of an O(N 2 ) Heuristic for the Single Vehicle Many-to-Many Euclidian Dial-a-Ride Problem. Transportation Research, 17B(2), 133{145. ROY, S., J.M. ROUSSEAU, G. LAPALME, and J.A. FERLAND. 1984a. Routing and Scheduling for the Transportation of Disabled Persons { The Algorithm. TP 5596E, Transport Canada, Transport Development Centre, Montreal, Canada H2Z 1X4. ROY, S., J.M. ROUSSEAU, G. LAPALME, and J.A. FERLAND. 1984b. Routing and Scheduling for the Transportation of Disabled Persons { The Tests. TP 5598E, Transport Canada, Transport Development Centre, Montreal, Canada H2Z 1X4. SAVELSBERGH, M. 1986. Local Search in Routing Problem with Time Windows. Annals of Operations Research 4, 285{305. SEXTON, T., and L. BODIN. 1985a. Optimizing Single Vehicle Many-to-Many Operations with Desired Delivery Times: I. Scheduling. Transportation Science 19(4), 378{410. SEXTON, T., and L. BODIN. 1985b. Optimizing Single Vehicle Many-to-Many Operations with Desired Delivery Times: II. Routing. Transportation Science 19(4), 411{435. SOLOMON, M. 1986. On the Worst-Case Performance of Some Heuristics for the Vehicle Routing and Scheduling Problem with Time Window Constraints. Networks 16, 161-174. SOLOMON, M. 1987. Algorithms for the Vehicle Routing and Scheduling Problem with Time Window Constraints. Operations Research 35, 254{265. SOLOMON, M., and J. DESROSIERS. 1988. Time Window Constrained Routing and Scheduling Problems: A Survey. Transportation Science 22, 1{13. SORENSEN, B. 1986. Interactive Distribution Planning. Ph.D. Thesis, The Institute of Mathematical Statistics and Operations Research, DK-2800 Lyngby, Denmark. STEIN, D. 1978. Scheduling Dial-a-Ride Transportation Systems. Transportation Science 12, 232{249. SWERSEY, A.J., and W. BALLARD. 1984. Scheduling School Buses. Management Science 30, 844-853. 28