An exact algorithm for multiple depot bus scheduling

An exact algorithm for multiple depot bus scheduling

European Journal of Operational Research 72 (1994) 115-124 North-Holland 115 Theory and Methodology An exact algorithm for multiple depot bus sched...

660KB Sizes 15 Downloads 101 Views

European Journal of Operational Research 72 (1994) 115-124 North-Holland

115

Theory and Methodology

An exact algorithm for multiple depot bus scheduling M.A. Forbes, J.N. H o l t a n d A . M . W a t t s

Mathematics Department, The University of Queensland, Brisbane, Qld 4072, Australia Received January 1991; revised November 1991

Abstract: In this paper we present an exact algorithm for solving the multiple depot bus scheduling problem. The algorithm uses two well known linear programming relaxations of the problem. The first, a pure network flow problem, is used to obtain a dual feasible solution to the second relaxation, a multi-commodity network flow problem, which is solved using dual simplex. Branch and bound is then used to obtain the optimal integer solution. This technique is then used to solve exactly problems much greater than any previously reported technique. Results are presented for problems with up to 600 trips and 3 depots.

Keywords: Vehicle scheduling; Programming; Integer

1. Introduction In a typical urban bus operation, a large number of timetabled trips must be operated by a varied fleet of buses operating out of several depots. Trips are characterized by a starting time and location, a finishing time and location and a list of bus types and depots to which the trip may legally be assigned. The multiple depot bus scheduling problem is the problem of chaining the trips together to construct days of work for the buses so that: • the chains are legal, i.e. all operational constraints are satisfied; • each bus returns to the depot it started from; • each depot operates no more than a specified number of buses; • each trip is covered by exactly one bus. This must be done so as to minimize the sum of the fixed cost of owning buses and the variable cost of operating buses. This problem has been studied by many researchers [2-5,8,9,12], with a range of heuristic and exact algorithms suggested. It is well known that when restricted to one depot this problem can be modelled as a network flow problem and solved very quickly [4,10]. Despite this, the extension to more than one depot makes the problem NP-hard [2]. In this paper we present an exact algorithm, based on a linear programming relaxation of a new formulation, with a subsequent branch and bound stage. This algorithm has been used to solve practical Correspondence to." Dr. J.N. Holt, Mathematics Department, The University of Queensland, Brisbane, Qld 4072, Australia.

0377-2217/94/$07.00 © 1994 - Elsevier Science B.V. All rights reserved SSDI 0377-221 7(92)00 159-W

116

M.A. Forbes et al. / Exact multi-depot bus scheduling

problems with up to 600 trips and 3 depots to optimality. The largest problems previously solved to optimality had 60 trips and 3 depots or 70 trips and 2 depots [5]. In Section 2, we present and discuss the mathematical model used. In the next section, we discuss the details of the solution technique. Computational experience with the method is then presented, followed by a discussion of the results and the conclusions.

2. Mathematical model

Two major formulations have emerged for the multiple depot bus scheduling problem. The first formulation is an assignment formulation [5,9], the second a multi-commodity network flow one [4,8]. In the assignment formulation, there are source nodes for both depots and the end points of trips, as well as sink nodes for depots and the start points of trips. Each depot is represented by the same number of source nodes and sink nodes, this number being equal to the maximum number of buses that may be operated by the depot. Assigning a depot source node to the start of a trip signifies a bus starting from that depot and operating the trip as its first trip. Likewise assigning the end of a trip to a depot sink signifies a bus finishing at the depot. Assigning the end of a trip to the start of another trip implies that these trips are carried out consecutively by the same bus. Only arcs corresponding to achievable connections are included. Depot sources may also be assigned to the depot sinks for the same depot. Such assignments signify spare capacity at the depot. As described so far this is an assignment problem. However, special purpose algorithms have been developed [9,10] which take advantage of the fact that the source nodes for any depot are all equivalent, as are the sink nodes. These algorithms, known as quasi-assignment algorithms, solve a transportation problem in which each depot is represented by one source node and one supply node with supply (respectively demand) equal to the maximum number of buses that may be operated by the depot. The assignment and quasi-assignment problems are relaxations of the multiple depot problem, as their solutions generate chains of work for buses which may not start and end at the same depot and which may not be legal for any depot. Two ways have been suggested in the literature to overcome this deficiency. Firstly [9], an integer variable may be added for each legal combination of a trip and a depot, with this variable taking the value one if the specified trip is operated by the specified depot, zero otherwise. It is then possible to add inequalities to the problem (one for each variable in the quasi-assignment formulation), to ensure that trips which are done consecutively by a bus are operated by the same depot. The inequalities also ensure that a bus starts from the depot from which its first trip is operated, and returns to the depot from which its last trip is operated. This formulation of the multiple depot problem would never be used explicitly in a branch and bound method as it has a very large number of constraints (O(n 2) for n trips). Mesquita and Paixao dualized the extra constraints, to produce a heuristic based on lagrangian relaxation. Alternatively [5], constraints which explicitly eliminate all chains starting at one depot and ending at another may be added, by setting a bound on the sum of the assignment variables defining a chain to one less than the number of assignments in the chain. Again this formulation would never be used explicitly in branch and bound as there is an exponential number of these chain elimination constraints. Carpaneto et al. implement their formulation via a branch and bound algorithm which ignores these extra constraints at first, and then uses a branching scheme based on the violated extra constraints. Note that these assignment formulations all assume that the costs of operating buses are independent of the depot from which the bus operates. A formulation which overcomes this problem is the multi-commodity network flow formulation. In the multi-commodity network flow formulation of the problem, a commodity is associated with buses from each depot, and so the formulation explicitly ensures that buses start and end at the same depot. In this formulation [4,8], each depot is represented by two nodes - one from which trips start and one at which trips finish. Each trip is associated with an arc with upper and lower flow bound set to one.

M.A. Forbes et al. / Exact multi-depot bus scheduling

117

Additional arcs connect the end of the arcs representing trips to the start of the arcs representing legal successor trips. Additional arcs also connect each trip to the start and end depots. A reverse arc connects each end depot to the corresponding start depot, and has capacity equal to the number of buses available at that depot. This reverse arc may only carry the commodity associated with the depot. Lamatsch uses this formulation in a lagrangian relaxation algorithm, by summing the constraints for all commodities, which reduces the problem to a network flow problem, and then dualizing the constraints for all the commodities except the first. In this p a p e r we present a new mathematical formulation which we can solve explicitly for quite large problems. We will see that the formulation is equivalent to the multi-commodity network flow formulation, but is presented more in the terms of the quasi-assignment formulation. Our formulation of the Multiple D e p o t Scheduling Problem (MDSP) is as follows: (MDSP) min E a d i a d i + Ebid[3id + E CijdXijd d,i

d,i

i,j,d

subject to ~aji
(1)

for a l l d ,

i

E [ ~ i d -~- E X i j d = ] d j,d

(2)

f o r all i,

adi "~ E X j i d -- [~id -- E X i j d = 0 J J

f o r all i , d ,

6id ~ 1,

(3)

where

i,j d

= trip indices; = a depot index; Oldi = a z e r o - o n e variable indicating that trip i is the first trip for a bus from depot d; a z e r o - o n e variable indicating that trip i is the last trip for a bus from depot d; [3id a z e r o - o n e variable indicating that trip i immediately precedes trip j for a bus from depot d; Xij d ~id = an indicator function equal to one if trip i can be covered by depot d, zero otherwise; the travel cost from depot d to trip i plus half the fixed cost of a bus; adi bid = the travel cost from trip i to depot d plus half the fixed cost of a bus plus the cost of operating trip i with a bus from depot d; c~jd = the travel cost from trip i to trip j on a bus from depot d plus the cost of operating trip i with a bus from depot d; vd = the maximum n u m b e r of buses available from depot d. adi and /3~d only exist if 6id 1; x~j d only exists if 6id = 6jd = 1 and trip j can be operated by the same bus as trip i with all operational constraints satisfied. The sums in MDSP are over all values of the indices used. Constraints (1) enforce the upper limit on the n u m b e r of buses available from each depot. Constraints (2) ensure that each trip is operated by exactly one bus. Constraints (3) force each trip to conserve flow for buses from each depot. This in effect ensures that each bus returns to the depot it started from. We can show that M D S P is equivalent to the multi-commodity network flow formulation. The latter can be expressed as: =

(MCNF) rain EadiOldi-[- E b i d [ ~ i d q- E CijdXijd d,i

d,i

i,j,d

M,A. Forbes et al. / Exact multi-depot bus scheduling

118

subject to rd--~di=O

for a l l d ,

(4)

for all d,

(5)

i

E [~id - - r~ = 0 i

OLdi"4- E X j i d J Wid -- [~id --

- - W//d = 0

EXijd

0

=

for

all

i,d,

for all i , d ,

¢~id =

1,

(6)

~id

1,

(7)

=

J ra
EWid

=

for all d,

(8)

1

(9)

for all i,

d

where, in addition to the previously defined notation, we have the following variables: r d : the integer flow on the reverse arc from the finishing node for depot d to the starting node for depot d; Wid : the flow (0 or 1) for depot d on the arc representing trip i. Constraints (4-7) are depot flow conservation constraints for the nodes: (4) for depot starting nodes; (5) for depot finishing nodes; (6) for the trip start nodes and (7) for the trip end nodes. Constraints (8), the bounds on the reverse flow arcs, limit the number of buses at each depot. Constraints (9) specify that the upper and lower bound on the flow through the arc representing a trip are both 1. To demonstrate that MDSP and MCNF are equivalent, we make the substitutions for r a implied by (4), and the substitutions for Wid implied by (7) to arrive at MDSP, with the extra constraints E adi -- E [~id = i

0

for all d.

i

If we then observe that this results from summing constraints (3) over i, it follows that MDSP and MCNF are equivalent. Also, we can establish a connection between MDSP and the quasi-assignment formulation as follows. If we represent the sum of xij a over d by zij and the minimum over d of cij~ by eij , and then sum constraints (3) over d and add them to (2), we can write the following problem: (QAP) min

EadiOLdi "4- Ebid[~id "4- E e i j z i j d,i d,i i,j

subject to otai < v a

for all d,

(10)

i

E O l . d i - E[~id = 0 i

for

all

d,

(11)

i

E[~id -~- EZij

1

for all i,

(12)

~'~aai + E z j i = 1

for all i,

(13)

d

d

=

j

j

zij is z e r o - o n e .

Here the objective function of MDSP has been modified in the third term and the constraints relaxed by their summation.

M.A. Forbes et al. / Exact multi-depot bus scheduling

119

This model is equivalent to the quasi-assignment formulation mentioned above, without any additional constraints. Introducing a slack variable for each of the constraints (10), and using (11), we observe that we have conservation of flow constraints for the depot source and sink nodes. The single source node and the single sink node for depot d have supply and demand of c'~ respectively. The slack variables represent flows on the dummy arc connecting a depot to itself, corresponding to buses with no trips assigned. It is clear that any feasible solution to M D S P can be used to construct a solution for QAP, with the corresponding objective value in Q A P being less than or equal to the objective value of the solution in MDSP. Therefore, the optimal solution to Q A P is a lower bound on the optimal solution to MDSP. Note that multiple bus types can be accommodated in our formulation by treating each real d e p o t / b u s type combination as a depot in the formulation. In such a formulation it is easy to add constraints on the number of buses of each type at each depot, the total number of buses at each depot and the total number of buses of each bus type.

3. Solution technique The problem is solved in three stages. In stage 1, Q A P is solved. As this problem is a pure network flow problem, it can be solved very quickly. In stage 2, the constraints (3) are added to QAP, and the objective function is restored to get a problem equivalent to MDSP. The linear programming relaxation of this problem is solved using a general purpose dual simplex algorithm, starting from the solution achieved in stage 1. Note here that we can leave out one constraint (3) for each i, due to the presence of (13). Finally, in stage 3 the non-integer variables are resolved using branch and bound. In our implementation, Q A P was solved by a general purpose, sparse primal simplex package. The solution time for this stage could be reduced by using a special purpose network code or quasi-assignment algorithm. To proceed from stage 1 to stage 2 we construct a dual feasible solution of M D S P from an optimal solution of QAP. Defining dij for all i , j by d,j -- min{d such that cij d

=

eij},

we can make the appropriate conversion by taking the adi and /3id to be the same in both solutions and setting xi~ d = 1 if z~i = 1 and d = dii. Otherwise we set xrj d = O. The branching strategy used in stage 3 is a two step approach. Firstly, defining u d by u a = 52iad~, we find k such that u k is non-integer. We can then branch on u k, with one branch setting an upper bound on u k of the next integer below its current value, and the other branch setting a lower bound on u k of the next integer above its current value. If no such k exists, we move to the second step, where we take advantage of the following observation. In any non-integer optimal solution to the relaxed MDSP, there exist i,d such that 0 < ~_aXijd Jr- [~id < 1. J

This can be demonstrated by observing first that the expression in the inequality is indeed bounded by zero and one using (2) and the non-negativity of the variables. Next, suppose that no such i and d exist. T h e n we also have an optimal solution to the linear relaxation of M C N F in which all Wsd are zero or one from (7). Using these win's, it is possible to partition the M C N F problem into separate network flow problems for each commodity. That is, it is possible to assign each trip to a depot and partition the problem into separate problems for each depot. These partitioned problems are pure network flow problems and so will have all integer optimal solutions. Having found i , d satisfying the above condition, on one branch we set all Xi~k,flik, k not equal to d, to zero. On the other branch we set all Xi~d,fl m to zero.

120

M.A. Forbes et al. / Exact multi-depot bus scheduling

4. Results

The algorithm was tested on two basic problem sets. The first problem set was generated using the procedure described in Carpaneto et al. [5]. This procedure generates two classes of trips: short and long. Short trips have an expected duration of 35 minutes plus the travel time between the starting and ending point, and are biased towards morning and evening peak periods. Long trips start and end at the same place, have an expected duration of 4 hours and are uniformly spread throughout the day. The depots are assigned capacities so that the problems will probably be feasible, but so that the capacity constraints are occasionally active. The starting and ending points of trips are chosen from a small set of nodes which are generated inside a 60 by 60 square. The travel times between nodes, in minutes, are equal to the Euclidean distances between the nodes. Two basic types of problems are examined: type A, in which the depots are positioned randomly, and type B, in which two of the depots are positioned at opposite corners of the square, and the other depots are positioned randomly. For all problems in this problem set, all trips may be operated by all depots. Five problems were constructed for each type and size. In the second basic problem set, the problems were extracted from the weekday trip set of an actual bus operator. The full trip set from which they were extracted consists of over 6500 trips, of average duration 31 minutes, to be scheduled from three depots. For the purpose of our testing, random sets of trips, varying in size from 100 to 600 trips, were extracted. Two types of problems were considered in this set. Firstly, the trips were restricted to depots according to the guidelines used by the operator. Roughly 72 percent of the trips may only be operated by one depot, 25 percent by two depots and 3 percent by all three depots. Secondly, the problems were solved with no restriction on t r i p / d e p o t combinations. For all problems in the second basic set, the depots were assumed to be uncapacitated. Again, for each type and size, five problems were constructed. In both problem sets, the fixed cost of a bus is taken to be 10000 units, irrespective of the depot. All travel time costs 10 units per minute, with waiting time costing 2 units per minute. Waiting time is incurred when travelling from one trip, say A which ends at time E A, to another, say B which starts at time S B. If it takes a time TAB to travel between the trips the waiting time is WAB = S B - E A - TAB. Thus, in the notation of MDSP: adi = 10 * (travel time from depot d to trip i) + 5000, bid 10 * (travel time from trip i to depot d) + 5000, cij a = 10 * (travel time from trip i to trip j ) + 2 * (waiting time between trip i and trip j). The results for the two basic problem sets are reported in Tables 1 and 2 respectively. In Table 1, for each type and size of problem the number of variables in MDSP and the time required to solve stage 2 of the optimization are reported (the time to solve stage 1 was always a small percentage of the time required to solve stage 2). These figures are averaged over the five problems. The branch and bound columns give the number of problems from each group of five where branch and bound was used, the total number of nodes evaluated in each five problems and the total time required for branch and bound in the five problems. For this problem set, the largest observed gap between the solution to QAP and the continuous solution to MDSP was 0.2 percent. The largest observed gap between the continuous solution and the integer solution of MDSP was 0.005 percent, while the most difficult integer solution to resolve required 92 nodes and 11073 seconds. In Table 2, the number of variables for each problem, the number of trips which can be operated by varying numbers of depots and the time required to solve stage 2 of the optimization are reported. These figure are also averaged over five problems. The branch and bound statistics are as for problem set 1. For the problems of size 100 and size 200, two rows are reported. The second of these rows has no restrictions on t r i p / d e p o t combinations. For the restricted problems in this problem set, the largest observed gap between the solution to QAP and the continuous solution to MDSP was 8.7 percent. The largest observed gap between the continuous solution and the integer solution of MDSP was 0.0013 percent, while the most difficult integer solution to resolve required 7 nodes and 709 seconds. =

M.A. Forbes et al. / Exact multi-depot bus scheduling

121

Table I N

D

Type

V

TL

B&B P

B

TB

100 100 100 100 200 200 200 200

2 2 3 3 2 2 3 3

A B A B A B A B

6754 6680 9996 10146 25638 25525 37258 38786

45 48 120 125 448 613 1771 2558

2 3 2 1 4 2 1 2

3 6 4 4 22 12 8 136

5 23 18 57 666 4(11 522 17165

N = n u m b e r o f trips; D = n u m b e r o f depots; Type A = random depots; Type B = 2 depots at corners: V = average number o f variables; T L = a v e r a g e C P U sec for stage 2; P = n u m b e r o f problems with branching; B = total number of nodes evaluated; T B = total CPU seconds for branching

For the unrestricted problems in this problem set, the largest observed gap between the solution to QAP and the continuous solution to MDSP was 0.02 percent. The largest observed gap between the continuous solution and the integer solution of MDSP was 0.003 percent, while the most difficult integer solution to resolve required 10 nodes and 3714 seconds. All solution times are in CPU seconds on a 25MHz 80486, using the Zero-One Programming package (ZIP) [11] compiled with Lahey Fortran's 32-bit compiler. ZIP provides implementations of the primal and dual simplex algorithms which can be used to solve large, sparse linear programming problems. It also provides special-purpose routines for branch and bound involving zero-one variables. For our tests, we only used the linear programming capabilities of ZIP, with the branch and bound routines implemented externally in our own code.

5. Discussion 5.1. Integer properties

As can be seen from Tables 1 and 2, MDSP has very good natural integer solution properties, at least for the objective considered in this paper. In the first problem set, 23 of the 40 problems had naturally integer solutions at the end of stage 2. In the second problem set, 22 of the 30 restricted problems had naturally integer solutions. Moreover, those problems which did not have naturally integer solutions were resolved using branch and bound.

Table 2 N

100 20(I 300 40(1 500 600

V

2856 140(12 10912 55023 23901 41913 63574 91556

Nt

N2

N3

72.2

25.0

2.8

146.2

49.2

4.6

222.6 294.0 375.0 448.8

72.4 97.6 14.6 38.4

7.0 8.4 10.4 12.8

TL

9 133 67 4738 261 853 2077 4017

B&B P

B

TB

4 1 5

10 2 34

213 6 l(t912

2 5

9 22

418 1396

N = n u m b e r o f trips; V = average number of variables; N, = average trips with i depots; T L = a v e r a g e C P U sec for stage 2; P = n u m b e r o f problems with branching; B = total number of nodes evaluated; T B = total C P U seconds for branching

122

M.A. Forbeset al. / Exact multi-depotbus scheduling

Table 3 Trip A

Column 1 1

B

l

C

2

3 1

1

1

1

A heuristic argument for the high incidence of naturally integer optimal solutions follows from the concept of balanced matrices. A balanced matrix is one which does not contain an odd order sub-matrix with all row and column sums equal to two [7]. Berge [1] shows that balanced constraint matrices are sufficient for naturally integer solutions to linear programming relaxations of set partitioning problems. From this we can deduce that if the optimal basis of the continuous relaxation of a set partitioning problem is balanced, then the optimal solution of the set partitioning problem is naturally integer. Applying Dantzig-Wolfe [6] decomposition to the MDSP, by moving contraints (3) into sub-programs, it is possible to derive a set partitioning formulation of the problem, in which chains of trips are generated in the sub-programs by solving shortest path problems. These chains are variables in the master program. Consider the matrix of degree 3 with row and column sums equal to two, as shown in Table 3. If this matrix appears as a sub-matrix in any basis matrix for the linear programming relaxation of a set partitioning problem, it will usually be the case that adding trip B to column 3 will produce a new column (1, 1, 1) T which is a suitable candidate, with negative reduced cost, to serve as an entering variable in the linear programming problem. In other words, an unbalanced basis is unlikely to be optimal. This implies that the solution of MDSP is unlikely to be non-integer. 5.2. Comparison of the different types of problem It is obvious from the results in Table 2 that the restricted problems can be solved much more quickly than unrestricted problems, despite the fact that the gap between the QAP and MDSP solutions is often much larger for restricted problems. The explanation for this would appear to be that the difficulty of moving from a solution for QAP to a continuous solution for MDSP is relative to the number of constraints of type (3) which are added to QAP to get MDSP. Note that this also explains why the solution times for 3 depots are so much higher than those for 2 depots in Table 1. Given the high cost of a bus, our objective function is such that the algorithm effectively minimizes the number of buses before considering the other cost components. Therefore, it is clear that in the case of unrestricted problems, the solution to QAP and the solution to MDSP always use the same number of buses. This is because the chains of trips generated by QAP (ignoring the connections to the depots), can always be assigned to depots to give a legal solution to MDSP. In the case of the restricted problems, the chains generated by QAP may be such that they cannot legally be operated by any depot. This may mean that more buses are required in the solution to MDSP, as was the case for several of the test problems. The very small duality gaps in the unrestricted problems of Table 2 are probably due to the existence of multiple alternative solutions with similar cost. This is because there were four very common locations in the data set. Two of these were termini for 10 percent of the trips, while the other two were termini for 7.5 percent of the trips. If, for example, n trips arrive at a terminus before n other trips subsequently depart the terminus, there are n! ways, all of equal cost, of connecting the trips in pairs. 5.3. Comparison with other algorithms To our knowledge, the only other published exact solution technique for the multi-depot vehicle scheduling problem is that presented by Carpaneto et al. [5]. Their branch and bound technique makes

M.A. Forbes et al. / Exact multi-depot bus scheduling

123

use of sophisticated, lower bound calculations and dominance criterion. This technique was successfully applied to problems which were generated using the method outlined in Section 4. These problems had up to 60 trips-3 depots and 70 trips-2 depots. The CPU time required to solve the problems was in excess of 1000 seconds on a HP 9000/840. They reported an average gap between the root node of the branch and bound tree and the optimal solution of about one percent. Here, our algorithm has been used to solve similar, but much larger, problems. The largest objective value gap observed between the continuous and integer solution was 0.003 percent. Of the published heuristic approaches, Mesquita and Paixao [9] report solving the largest problems. Their approach is based on a quasi-assignment formulation of the problem, to which are added extra integer variables and constraints to ensure that each bus returns to its starting depot. These extra constraints are incorporated into the objective value using lagrangian relaxation. Sub-gradient optimization is then used to solve this relaxed problem. At each iteration of the sub-gradient optimization a greedy heuristic is applied to convert the solution into a solution of the original problem. In this way a lower bound on the objective value is found (from the sub-gradient optimization) and legal solutions are produced. They then apply these techniques to randomly generated realistic problems with up to 250 trips-2 depots and 200 trips-3 depots, in which all trips may be operated by all depots. These required an average of 2400 seconds and 1600 seconds respectively, to arrive at solutions guaranteed to be within an average of 0.76% and 1.49% of the optimum, respectively. Their solution times were for an 80386 processor under MS-DOS. Toth et al. [12] have recently reported on a heuristic approach used to solve problems with up to 500 trips and 4 depots. It should be noted that we carried out no special work to tune the linear programming package for the problems solved. In particular, all possible variables were explicitly in the problem from the start. None the less, quite large problems were solved in reasonable amounts of time. Note that despite the fact that this problem is NP-hard, the majority of the solution time is spent solving a linear programming problem - a problem for which polynomial algorithms are known to exist.

6. Conclusion

Most of the published algorithms for the multiple depot bus scheduling problem make use of the quasi-assignment relaxation of the problem. That is, they relax the constraint that buses must: return to their starting depot. In this paper we explicitly incorporated this constraint into our formulation, but relaxed the integrality constraint in the resulting mathematical program, to give a linear programming relaxation of the initial problem. Our computational testing inidicates that this relaxation gives an extremely tight lower bound and a good starting point from which to apply branch and bound techniques.

References [1] Berge, C., "Balanced matrices", Mathematical Programming 2 (1972) 19-31. [2] Bertossi, A., Carraresi, P., and Gallo, G., "On some matching problems arising in vehicle scheduling", Networks 17 (1987) 271-281. [3] Bodin, L., Golden, B., and Assad, A., "Routing and scheduling of vehicles and crews: the state of the art", Computers & Operations Research 10 (1983) 63-211. [4] Carraresi, P., and Gallo, G., "Network models for vehicle and crew scheduling", European Journal of Operational Research 16 (1984) 139-151. [5] Carpaneto, G., Dell'Amico, M., Fischetti, M., and Toth, P., " A branch and bound algorithm for the multiple depot vehicle scheduling problem", Networks 19 (1989) 531-548. [6] Dantzig, G., and Wolfe, P., "Decomposition principle for linear programs", Operations Research 8 (1960) 101-I 11. [7] Fulkerson, D., Hoffman, A., and Oppenheim, R., "On balanced matrices", Mathematical Programming Study 1 (1974) 120-132.

124

M.A. Forbes et al. / Exact multi-depot bus scheduling

[8] Lamatsch, A., "An approach to vehicle scheduling with depot capacity constraints", Presented at the 5th International Workshop on Computer-Aided Scheduling of Public Transport, Montreal, 1990. [9] Mesquita, M., and Paixao, J., "Multiple depot vehicle scheduling problems: A new heuristic based on quasi-assignment algorithms", Presented at the 5th International Workshop on Computer-Aided Scheduling of Public Transport, Montreal, 1990. [10] Paixao, J., and Branco, L., "A quasi-assignment algorithm for bus-scheduling", Networks 17 (1987) 249-269. [11] Ryan, D., "ZIP - A zero-one integer programming package for scheduling", Report C.S.S. 85, A.E.R.E. Harwell, Oxfordshire. [12] Toth, P., Dell'Amico, M., and Fischetti, M., "Heuristic algorithms for the multiple depot vehicle scheduling problem", Presented at the llth European Congress on Operational Research, RWTH Aachen, Germany, 1991.