University of Leeds SCHOOL OF COMPUTER STUDIES RESEARCH REPORT SERIES Report 2000.05 Hybrid Genetic Algorithms for Scheduling Bus and Train Drivers by Anthony Wren, Raymond S K Kwan & Ann S K Kwan February 2000 Abstract We introduce the subject of bus and train driver scheduling, and outline some early attempts at solutions based on heuristics, explaining their limitations. We then examine one successful blend of heuristics and integer linear programming leading to the TRACS II system which is in regular use in a wide range of transport organisations. Again we discuss the limitations of this system. In order to overcome these, we and colleagues have investigated a range of metaheuristics and constraint programming approaches, and some of these are outlined. Finally we present three different genetic algorithms, the last of which is successfully used to overcome the limitations of the established integer linear programming system. The proposed approach is a hybrid in which all probable potential shifts are generated according to well developed heuristics already used in TRACS II. Selection of such shifts to form a schedule is modeled as a set covering problem, and the relaxation of this problem ignoring integer conditions is solved to optimality. A GA then develops a solution schedule based on some of the characteristics of the relaxed solution. It is suggested that this approach might be suitable for other set covering problems. Introduction The problems of scheduling crews for buses or trains have been the subject of research for at least thirty years [1,2]. A major international workshop devoted to promoting research in this area was held in Chicago [3] in 1975, and this has been followed by six further conferences [4-9]. The eighth in the series takes place in Berlin in June 2000. Most of the published work until recently has related to bus drivers rather than train crews. This is due partly to the reluctance of monolithic train operating authorities to look outside the boundaries of their own industries for solutions to scheduling problems, and partly to the greater complexity of rail scheduling problems. However, in more recent years, rail crew scheduling has been tackled very successfully, for example by Kwan et al. [10]. In practice, bus driver scheduling and train crew scheduling are different aspects of the same problem. In both cases, staff workdays (shifts) are made up of spells of work on one or more vehicles, and all the vehicle work must be included in such shifts. While buses are usually in the hands of a single driver, train crews may be made up of different categories of staff, sometimes governed by different sets of rules. We shall write in terms of drivers throughout this paper, although generally the same processes may be used to construct schedules for other categories of staff. We shall use the term vehicle to denote a bus or a train. Although some long-distance train work extends over several days, by far the greatest amount consists of journeys which are completed within a 24-hour period, and which are staffed by shifts of up to about twelve hours in duration. In the United Kingdom the longest regularly scheduled passenger train journeys are just over 700 miles, and drivers are changed at several intermediate points, so that each starts and finishes their shift at their home depot. Most bus operations are much more localized. Even where bus and train operation continues overnight, it is usually sufficient for scheduling purposes to deal with periods of 24 hours. However, provision is made when necessary for late night and early morning work to be considered as either the end of one day or the beginning of another (in late, night or early shifts as appropriate). Scheduling very long distance bus and train crews is a different type of problem, which we shall not consider here. We may plot the operation of a bus or train set throughout the day on a vehicle graph consisting of a horizontal line for each vehicle, with a horizontal time scale. (Although train operation is considered by many operating companies as a set of discrete journeys, we consider the horizontal entry on a vehicle graph as a succession of such journeys undertaken by the same train set.) There may be gaps in the vehicle graph, when the vehicle is at rest and can be left without a driver. When two or more train sets are joined together for some operations they may be considered as a single operation shown on a single horizontal line for driver scheduling purposes. When they are uncoupled, it is usually convenient to show the operation of one of the sets as a continuation of the coupled set, while the other set (or sets) is shown separately while uncoupled. Drivers may be changed, or may take breaks, at a limited number of designated locations. Times when vehicles are at these locations may be marked on the graph and are known as relief opportunities. A driver’s shift consists of spells of continuous work, each on a single vehicle. Between spells drivers may take meal breaks or may be allowed a few minutes grace to change vehicles. In theory, the most desirable type of shift would consist of spells of work on just two vehicles, separated by a meal break, as there would then be little unproductive time. + T1 + T4 + 301 o----oo----oA---B-o----oo----oo----oo----o-o----oo----oo-+ S1 + S6 + S4 + 304 + T3 + T1 + ooo----oo----oA----Bo----o-o----oo----oo----oo----o-o--+ S3 + S1 + 302 + T2 + T3 + o----oo----o-o----oA----Bo----oo----o-o----oo----oo----oo + S2 + S3 + 305 + T5 + T2 + o-oo----oo----oo----o-A----Bo----oo----oo----o-o----oo-+ S5 + S2 + 303 + T4 + T6 + T5 + o----o-o----oo----oo----oA----B-o----oo----oo----oo----o + S4 + S5 + Relief chain T Relief chain S Figure 1: Relief chains of similar patterns Figure 1 shows part of a vehicle graph, with two possible ways of covering the early work. Each horizontal line represents the work of a vehicle in the earlier part of a day, while the small circles represent relief opportunities. One possible set of early shifts is numbered T1 through T5, with 3 the dark arrows representing meal breaks. The plus signs above the lines show the actual relief opportunities that are used. A sixth shift, T6, starts later than the others and provides cover for the first meal break; subsequent breaks are covered by drivers returning from the earlier breaks. The second part of T6 is not shown; this might follow the second part of T4 on vehicle 301 after a longer than usual meal break, or it might complete a split shift later in the day. The shifts S1 through S6, with broken arrows, show an alternative schedule. In practice, vehicle schedules are generally much less regular than shown; starting times are more staggered, and some vehicles are taken out of service after the morning peak. The solutions shown provide efficient chains of meal breaks, but in practice it is often impossible to fit all the work neatly into such shifts, so that some, or even many, drivers may work on three or more vehicles. There are often complex rules governing the content of a driver’s shift. Typically there may be restrictions on the amount of time a driver may work without a meal break, on the total amount of work in a day, on the maximum elapsed time from start to end of a shift, etc. Usually bus driver schedules are constructed based on a single depot; where a company has more than one depot, these are usually managed as separate entities. However, train operation typically requires several different driver depots, with overlapping restrictions on the lines that can be driven from any depot and on the type of equipment which may be driven. Smith and Wren [11] discuss some typical rules for bus driver scheduling, while Kwan et al [10] introduce the additional complexity of train driver schedules. We shall now introduce some of the early attempts at bus driver scheduling through the 1970s, using heuristic approaches, and shall discuss their achievements and limitations. We then outline a series of developments by ourselves and colleagues through the 1980s and 1990s; these use set covering approaches for both bus and train driver scheduling and result in successful implementations in a wide variety of transport organisations. (Other developments are reported in [4-9].) Next we introduce some research undertaken by colleagues into metaheuristics and constraint programming in conjunction with Integer Linear Programming. Finally, we present three approaches using evolutionary algorithms, showing how the latest of these may be used in conjunction with Integer Linear Programming to solve particularly difficult problems. Early heuristic approaches Some of the earliest work on bus driver scheduling was undertaken in the early 1960s by Deutsch while on an IBM fellowship at the University of Oxford, but was not published. Based on data from London Transport, Deutsch developed an exhaustive tree search approach, which failed to produce good solutions even on small problems. Elias [11,12] started work about the same time as Deutsch, and developed a series of heuristics which developed a large number of different schedules quite quickly, then chose the best. Reasonable results were obtained in some practical, lightly constrained, situations. Subsequently, Elias added some unpublished refining heuristics. These were subsequently extended by Ward and Deibel [13], who claimed considerable success, although the work was abandoned in the early 1970s. One of the present authors experimented with several heuristic approaches from 1967 onwards. The most successful of these was first reported by Weaver and Wren [14, 15] (and also in [2]), 4 and subsequently improved by Manington and Wren [16]. A definitive description of the final version, with a summary of applications to eight bus operating companies, is given by Parker and Smith [17]. This system, known as TRACS, is now introduced. TRACS was designed for urban bus operations, although it was also successfully applied to rural and short interurban services. The most critical periods in urban weekday bus services are the two peak times, and the periods immediately following them. Meal breaks given during the peaks imply that some drivers are not engaged in productive work during these times, and are likely to result in the use of too many shifts. Sometimes, however, such breaks cannot be avoided, and there is a skill attached to determining when such situations arise, and how best to ensure that where they arise, best use is made of the extra shifts provided. The period immediately following the morning peak is normally used to provide necessary meal breaks without the need to introduce further shifts like T6 or S6 in Figure 1. Advantage has to be taken of the vehicles returning to the depot, so that their drivers may quickly return to service, and care has to be taken to ensure that successive drivers relieve each other in a productive way. The drivers returning the buses to the depot may be given meals before returning to service, but if their vehicles have been in operation for a relatively short time, it may be better for them to take over other buses immediately, thus relieving drivers who are approaching the maximum continuous driving allowed; their own meals may then be taken after an hour or two of further work. Similar considerations apply in the afternoon peak, but here further complications exist because of the three different types of shift normally involved. Split shifts, which will already have covered the morning peak, have to finish in the early evening. They usually finish either by returning a bus to the depot, or by being relieved by a late shift driver who has previously returned a bus to the depot and then had a meal. Such late shift drivers may alternatively relieve other late shifts after their meals. The number of late shifts is normally equal to the number of buses operating after about 2100. Care must be taken that late shifts starting in the middle of the afternoon perform a useful function at that time, either by taking a bus over from a finishing early driver or by taking a bus out of the depot. If a late shift starts by relieving a driver who then has a break, this normally implies that that break would extend into the afternoon peak, thereby causing inefficiencies. Extra cover for the meal breaks of late shifts may be provided by middle shifts, which start in the late morning, have a break in the afternoon, and continue until their buses are taken over by late shifts returning from a meal. Where possible, meals on these middle shifts should be completed before the afternoon peak. The formation of split shifts, covering both peaks with a gap in the middle, has to be treated carefully. It is normal that some of the peak work cannot be allocated efficiently to straightthrough shifts, and split shifts are useful to absorb this work. However, care has to be taken that the work set aside for split shifts is in fact capable of forming such shifts without violating constraints on the maximum span from start to finish. Although weekend operation is usually different, without peak periods, it has been found that procedures which create good shifts for weekdays also create good weekend shifts. Here it is important to form efficient sequences of meal breaks three to five hours after the start of operations, and also three to five hours before the end of operations. The early work of Weaver and Wren took no account of the above logical factors, but used a specially developed heuristic which is outlined in [1]. First a lower bound, L, to the number of 5 shifts was determined. (A crude lower bound is the larger of the maximum number of vehicles in simultaneous operation, and the total number of vehicle-hours divided by the maximum hours per shift; however, this can be strengthened.) Each vehicle was then assigned to a single shift, which would normally have violated several constraints. The longer shifts were then broken into two or three separate shifts, until a total of L (usually illegal) shifts was obtained. Each illegal shift was penalized according to the extent by which various constraints were violated. A series of refining heuristics was then applied, moving work between shifts in such a way as to reduce the total penalty, or, where legal shifts were involved, to reduce the cost. If this process failed to remove all the penalties, the shift with the greatest penalty was split in two, and the refining process was continued with one more shift. In several tests with real schedules, this process generally used about two more shifts than were used in the relevant manual schedule. On inspection it transpired that the vehicle work was being broken into too many pieces by the refining routines. For example, in a small schedule, the computer needed eight shifts, with a total of 17 changes of vehicle; the real schedule had seven shifts, with 12 changes of vehicle. Each change of vehicle implies idle time for the driver. Subsequently, much more sophisticated heuristics were developed to build up the schedule shift by shift, incorporating look-ahead procedures to identify and resolve any threats to overall efficiency. Schedules so formed were then subjected to a series of refining heuristics. Some of the refining heuristics were originally designed to try to reduce the number of shifts in the schedule, but these were seldom successful. It was concluded that it is seldom possible, either for a computer or for an experienced scheduler, to find a series of moves that will result in the number of shifts in a poor schedule being reduced. An experienced scheduler would rather start again, taking care to avoid any pitfalls, than try to manipulate a bad schedule. Therefore, over the period 1969-1975 considerable effort was invested by the developers of TRACS towards the development of processes that would yield good initial schedules with the minimum number of shifts; the refining routines were then used to obtain better schedules with the same number of shifts. Developments over this period are set out in [2,14-16]. By 1980 the TRACS heuristics had become very powerful, and had produced schedules at least as good as, and sometimes better than, existing manual schedules in rigorous tests for five different companies, as described by Parker and Smith [17]. TRACS had also produced good schedules satisfying a large range of other operating agreements in research exercises. Throughout the 1970s the heuristics which built up the initial schedule had been extended in every application, to deal with new logical conditions while still producing acceptable results in all cases previously studied. There was a strong belief by about 1978 that any new logical conditions would be accommodated by relatively minor adjustments. However, three exercises in that year caused us to revise our view. In each of Dublin, Glasgow and London, unsuccessful projects of three person-months were undertaken to apply TRACS to their needs. Each of these organizations had unusual features. In Dublin, the peak periods were much later in relation to the start and finish of the operating day than in the United Kingdom, and there was a pronounced midday peak; this meant that the heuristics which placed the meal breaks after the morning peak and in the early evening were no longer suitable. In Glasgow, the operating day finished much later than elsewhere; late shifts could no longer include the whole of the afternoon peak, and there was a requirement to minimize the number of shifts finishing after 1830; both these factors required the design of new 6 heuristics. While it was felt that the problems of Dublin and Glasgow could be overcome with further work, neither city was willing to finance this. London posed different problems. Here each route was scheduled separately, and the existing schedules had been compiled by very experienced staff. The bus schedule in London was often altered manually to suit the needs of the driver schedule, so that there may have been only one possible solution using the minimum number of shifts. Even where there was more than one possible driver schedule for the given bus schedule, the number of possibilities was very limited. In such circumstances constructive heuristics, even well-designed ones with look-ahead rules, may be unlikely to find a good solution. It is interesting that our refining heuristics did sometimes improve slightly upon the existing London schedules. Thus by the end of the 1970s it was felt that however much we were able to improve our heuristics, there was always a danger that a new scenario would bring about new problems which could not quickly be resolved. Where this involved a new organization this might not be important. Once the system had proved itself elsewhere it should be possible to persuade new clients that they should invest in the development of appropriate new methodologies. However, there was a real danger that if an existing user changed its operating strategy or developed new scheduling rules, the system would not be able to cope, and a delay of several months while the heuristics were adjusted would not be acceptable. Had it not been for the fact that by about 1980 impressive results were beginning to be obtained from mathematical programming approaches, we might have been encouraged to develop the heuristics further, but at that time this did not appear to be the best use of limited resources. The dozen or so years during which much effort was invested in heuristics were not, however, wasted. All the heuristics were developed in conjunction with much hands-on manual scheduling by the team, who therefore developed many useful scheduling skills. These were of enormous value in later work, in which we have consistently been able to develop approaches built around our knowledge of good scheduling practice. More recent research into various metaheuristics has also benefited from our experience of building heuristics. It is believed that the above investigations constitute the most comprehensive research and development of heuristics for driver scheduling undertaken anywhere. It would however be disingenuous to overlook a body of North American work. During the 1970s the Mitre Corporation developed a bus and crew scheduling system, RUCUS, whose driver scheduling component was published in 1975 by Wilhelm [18]. This started by first extracting sections of work which could be formed into whole shifts on a single vehicle, and then extracting other sections for combination into shifts on two vehicles. The schedule was then improved by processes similar to those used by the present authors’ team, and described in [2]. It should be noted that few bus companies allow unbroken shifts of any great length on a single vehicle, and that most efficient schedules require some shifts to operate on three or more vehicles, which was not allowed by RUCUS. Wilhelm comments that some of the shifts created by RUCUS would be illegal, and that the refining processes did not always succeed in removing the illegalities. Despite this, RUCUS achieved some popularity during the 1970s, perhaps because the Federal Government encouraged its adoption by providing computers to companies who would use it. It is claimed [19] that RUCUS was installed in about forty properties in the U.S. and Canada. Hildyard and Wallis [20] reported in 1980 on major problems in use of RUCUS in Toronto and elsewhere, and recommended an interactive approach. Subsequently an interactive version, 7 RUCUS II, was developed [19], but it was quickly overtaken by new methods. RUCUS, even in its most advanced form, appears to have been very primitive compared to TRACS Set covering solutions There have been a number of driver scheduling systems incorporating combinations of heuristics and mathematical programming. One of the most widely used is the HASTUS family of systems [21]. Here we shall introduce systems based on set covering and developed by us and associates. These have been well documented elsewhere [10,17,22-31], and we shall confine ourselves here to providing an outline sufficient to introduce our GA approaches which are described later. In theory, if we could generate every potential legal driver shift which covered some of the work of a vehicle schedule, we might then select from these potential shifts a subset which covered exactly all the vehicle work in the optimal way. In practice, the number of potential shifts, and the number of possible combinations of such shifts is such as to preclude this approach in any but trivially small problems. However, we may decide to ignore some potential shifts which appear to be inefficient. We may then have a problem in that there may be no way of selecting a subset which fits together exactly so as to provide one driver for every vehicle at all times. (It is sometimes necessary to include shifts with little work content, in order to fit all work together.) We may therefore modify the problem so that we select from the potential shifts a subset which covers all the work in the optimal way, but allowing some work to be covered more than once. We say then that some work is over-covered, and the decision as to which shift is employed to drive the vehicle is left to the scheduler (it may alternatively be decided by a simple heuristic). This is then a set covering problem. The driver scheduling problem was formulated as an integer linear programming (ILP) model by Smith and Wren [23]:Let cj be the cost of potential shift j and let xj be the number of times shift j is chosen (either 0 or 1, because it is either chosen or not): n Minimize Σ cjxj (1) j=1 Every piece of vehicle work, i, has at least one shift assigned to it: Σ xj • 1, i = 1, 2, 3, ...., m (2) j in Ki where Ki is the set of potential shifts which include piece i. Smith and Wren developed a set of heuristics which reduced the problem size by first eliminating relief opportunities which were unlikely to be useful, then restricting the potential shifts generated to those which satisfied not only the legal requirements but also some parameters relating to the precise work content, and finally filtering out some of the generated shifts which compared unfavorably with others. The ILP model was solved by first relaxing the 0-1 condition, and then using a specially developed branch and bound process which took advantage 8 of the authors’ knowledge of driver scheduling. Finally, heuristics derived from the refining heuristics of TRACS were applied to adjust the schedule, allowing eliminated relief opportunities or potential shifts to be reinstated. This system, known as IMPACS, was installed for London Transport Buses in 1984, and is still in use by all the London successor privatized companies. By present standards it is rather primitive, as it does not allow more than 5000 potential shifts or 350 relief opportunities in the ILP. In 1985 enhanced versions were installed for Greater Manchester Buses, and Cleveland Transit (UK). These are also still in use. It was subsequently installed in thirty to forty bus operating companies in the UK and elsewhere, yielding substantial savings over manual methods in many instances. In 1990, we commenced research into train driver scheduling. Initially we used IMPACS to estimate the number of shifts which would be needed to operate alternative scenarios (different timetables and different labor rules) which were under consideration in preparation for privatization [26]. Although IMPACS did not cater to all the conditions of rail operation, it was shown to be accurate as a predictor. However, extension to meet all the conditions of multi-depot train operation was not practicable. From 1994 therefore a new system, TRACS II, was developed specifically to satisfy the needs of rail operation, while still being capable of scheduling bus drivers. Over the period 1995-1996 it satisfactorily produced schedules for about twelve of the privatized British train companies, and was used to develop new strategies [27,30]. This, like IMPACS, uses a set covering model, but both the heuristics which generate potential shifts, and the ILP process, are completely new. The former generate far more potential shifts than previously, while the latter incorporates a new column generation approach as well as better optimization procedures [29,30]. The present version can process up to 200,000 potential shifts in the ILP stage. TRACS II may be summarized as follows: 1. Calculate all possible opportunities for drivers to travel as passengers on scheduled services or taxis between relief opportunities (only for those problems in which walking between relief points is inappropriate); 2. Generate a large set of potential shifts, each satisfying all legal conditions together with rules designed to inhibit the construction of shifts which are unlikely to be suitable; 3. If appropriate, filter out intelligently any shifts which do not play a significant role in covering the vehicle work many time over; 4. Merge sets of shifts generated as above according to different parameters, if appropriate; 5. Solve a set covering model, with extensions to limit the numbers of shifts of different types. Currently, up to 200,000 potential shifts may be considered. A constructive heuristic is first used to cover all the vehicle work with a subset of the potential shifts. A relaxed linear programming (LP) problem is solved using a specialized column generation technique for larger problem instances, and otherwise a dual steepest edge approach. The relaxed LP provides a target number of shifts. 9 6. Problem reduction takes place, based on the relaxed solution, and a branch and bound procedure obtains an integer solution using the target number of shifts if possible. Otherwise the target is increased. 7. Any overcover is edited out by a process which may be automated. TRACS II was first installed for bus operation by Reading Buses in 1998 [31], saving £135k annually. It has since been installed for three other bus companies, while one of the major British bus groups has recently decided to adopt it for all 25 of its companies. It also continues to be used as a tool for consultants to produce rail driver schedules according to new scenarios. In tests against other established bus driver scheduling systems, TRACS II has always produced the most efficient schedules. Although TRACS II is extremely powerful, there are a relatively small number of occasions when considerable effort has to be expended in determining parameter settings which allow the ILP to yield a near-optimal solution. It had been the experience in using IMPACS that the solution of the relaxed LP determined the number of shifts which would be in the final solution. The branch and bound process of the ILP could therefore be restricted to seeking a solution with this target number of shifts. The increased complexity of rail driver scheduling, particularly where several depots are involved, and of some bus driver scheduling problems, means that this is no longer always the case. The ILP may determine that no solution may be obtained with the target number of shifts, or it may fail to find a solution within the normal processing limits. It may then be necessary to increase the target. However, it is not always clear whether this should be done. A better strategy may be to increase the processing limits, so as to carry out a more exhaustive search in the branch and bound stage, or to adjust the parameters either to restrict or to extend the search space. It is sometimes difficult to determine which policy is best. We continue to improve TRACS II in order to try to provide a more robust system which will ensure that the ILP can be driven by users who do not have the skills to adjust parameters as above. However, in parallel it is sensible to investigate alternative approaches, and here we revert to heuristics, metaheuristics and constraint programming. Other approaches While current users are happy with TRACS II, the above considerations have impelled us to seek alternative approaches, so that we may consistently solve larger and more complex problems. Layfield et al. [32] have used constraint programming to build several alternative sets of shifts (as sets S and T in Figure 1) covering critical periods of the day. Relief opportunities which do not appear in any of the generated sets are then removed, and the resultant smaller problem is speedily and efficiently solved by TRACS II. To date tests have only been carried out on bus scheduling problems from a single depot, and it is not yet known whether this is a suitable approach for more complex problems. Curtis, Smith and Wren have investigated another approach using constraint programming [33], and subsequently produced promising results on relatively small problems with a mixture of a neural network method and repair heuristics [34]. Forsyth and Wren [35] report on the early stages of the development of an ant colony system for driver scheduling. 10 Hitherto, we have assumed that relief opportunities occur at fixed times, e.g., when a vehicle passes a fixed point on a route, upon arrival at a terminal point, or a certain number of minutes before departure. If drivers can be changed any time between the arrival and departure of a vehicle, the standard set covering model becomes inappropriate, although it may be used to approximate to the actual problem by considering arrival, departure and perhaps some discrete times between these two as separate opportunities. Kwan and Shen [36] are using tabu search together with variations on earlier heuristics to produce shifts based on time windows. Our most promising new approach to date incorporates a genetic algorithm within the TRACS II optimization phase. In the following sections we outline two other approaches using evolutionary algorithms before describing this hybrid GA. A pure evolutionary algorithm Wren and Wren [37] take advantage of the IMPACS or TRACS II shift generation phase to obtain a large set of potential shifts. They represent a complete schedule as a chromosome with one gene position for each shift in the schedule, the value in a cell being the index of a shift in the large set. Thus different schedules have different chromosome lengths, depending on the number of shifts in the schedule. This may however be considered as a mapping of a very long 0-1 chromosome with a cell for each potential shift in the full set. The initial population is generated by a constructive heuristic which is a randomized version of that used to obtain the starting solution to the set covering process of TRACS II. Parents are chosen based on their fitness (number of shifts and cost of schedule), and offspring are obtained by first forming the union of the parents (a fertilized cover) and then eliminating any shifts whose entire work is covered by other shifts. Experiments indicated that three parents are better than two, while using four or five parents is counter-productive. Results equivalent to those of TRACS II were obtained for small problems, up to 16 shifts. Subsequent research was directed at extending the scope, but did not prove productive in the time available. It is believed that other extensions may be useful, but resources have not permitted further investigation. A GA to reduce problem size Several methods have been investigated to reduce problem size by weeding out relief opportunities which are unlikely to be useful. The original IMPACS rejected some relief opportunities using a heuristic based on the number of spells of work into which any vehicle was likely to be divided in a good schedule. This reduced the size and complexity of the remaining set covering problem, allowing problem instances to be solve which were otherwise beyond the scope of the ILP of that time. The subsequent work of Layfield et al. [32] resulted in a more thorough process which has been mentioned above. Kwan and Wren [38] based a genetic algorithm for selecting relief opportunities on a revised version of an estimating process of Zhao et al. [39,40]. This fast Estimator was based on an analysis of the vehicle schedule and labor rules, and developed trial schedules using heuristics similar to those of the first TRACS in order to assess the number of shifts required. 11 The accuracy of the Estimator is attributable to the vast and refined experience in bus driver scheduling accumulated by the research team at the University of Leeds since the 1960s. The rules used took into account both the detailed vehicle schedule and the nature of the driver scheduling conditions, and were guaranteed to produce a lower bound to the number of shifts required under normal urban bus operations with frequent relief opportunities. In fact they yielded the precise number in each of seven weekday bus driver scheduling problems studied by Zhao et al.. Kwan and Wren based their work on the supposition that a good schedule could be obtained if all possible relief opportunities were considered. The Estimator, applied to the full set of opportunities, would give an accurate picture of the number of shifts required, which could then be taken as a target. If some opportunities were then provisionally rejected, the Estimator could be applied to the reduced set, and the result compared to the earlier target. If the new estimate matched the original target, the reduced set was seen as acceptable, and could be used as the basis of an IMPACS scheduling run. The fact that some relief opportunities had been eliminated meant that fewer potential shifts were generated, and that the resultant ILP had fewer rows, so that IMPACS solutions could be obtained in a much smaller time, and so that larger problems might be tackled. The GA of Kwan and Wren used binary chromosomes representing the relief opportunities. If all gene values were 1, this would mean that all relief opportunities were available. An initial population was generated, each chromosome representing some random selection of relief opportunities. The Estimator was then applied to each chromosome. If the estimate obtained was less than the target (which was possible, as the earlier application only gave a lower bound), then it was increased to the target value. A fitness value was obtained, equal to the resultant estimate (multiplied by a large constant) plus the number of relief opportunities in the chromosome. Simple strategies of reproduction and evolution were adopted. Experiments were conducted using the seven data sets of Zhao et al., but concentrated on reducing the relief opportunities in the morning peak, keeping the gene values at 1 for the rest of the day. Reductions of 60% in the number of morning relief opportunities were consistently obtained, without any degradation in the resultant IMPACS schedules. Although these results were very encouraging, the estimator proved less accurate when applied to unpeaked schedules, such as are operated at weekends, and when applied to schedules from which a large number of midday relief opportunities had been removed. In these circumstances a lower bound could no longer be guaranteed. We were also seeking processes which could be used both for bus and for rail driver scheduling, and the estimator, being based principally on the structure of a peaked bus operation from a single depot, was unlikely to be accurate in the more complex rail situation. We believe that this approach has significant potential, but depends on a better and more general estimator being developed. In the meantime, the approach described in the next section is proving effective. A hybrid GA with set covering We have already mentioned that there are a relatively small number of occasions when considerable effort has to be expended in determining parameter settings which allow the ILP of 12 TRACS II to yield a near-optimal solution. In most cases, the solution of the relaxed LP shows the correct number of shifts (it is certainly a lower bound), but the increased complexity of rail driver scheduling, particularly where several depots are involved, and of some bus driver scheduling problems, means that sometimes the conditions of the problem require that more shifts are needed. The ILP may then determine that no solution may be obtained with the target number of shifts, in which case one may increase the target and try again. However, the ILP may very occasionally explore a large number of nodes of the search tree without finding an integer solution. In these circumstances it is not always clear what the appropriate action should be. Increasing the target in steps of one always yields a solution eventually in practice, but this solution may not be optimal. Filtering out a larger number of potential shifts before the set covering phase may reduce the problem size sufficiently, so that the branch and bound process does obtain a solution within a reasonable search time. Similarly, tightening the operational constraints may also allow a solution to be found by reducing the search space. However, such adjustments require considerable skill and experience, and unless a solution is found with the original target, it is generally impossible to tell whether with more investigation a solution conforming to the target might be found. To offset this apparent disadvantage it should be pointed out that even where TRACS II fails to find a solution without exceeding the original target considerably, the solution obtained is almost always considerably better than any existing manually produced solution. This is because we are dealing here with extremely complex problem instances, where no human scheduler could possibly keep in mind all the possibilities and constraints. For example, we have treated rail problems involving nearly twenty driver depots, each depot being qualified to drive a section of the network, but with considerable overlap between sections. A human scheduler would normally deal with a single depot, or a group of nearby depots at a time. Although the situations in which TRACS II has difficulties in obtaining a solution close to the target are fortunately rare, it is unfortunate that they occur at all, and inexperienced users may not recognize how best to deal with them. We have therefore sought an alternative approach which takes advantage of knowledge obtained from the relaxed LP solution, as well as our own knowledge developed over many years of essential features of a good schedule. The relationship between the relaxed LP solution and the integer solution obtained by the subsequent branch and bound process of TRACS II has been analyzed for 21 relatively large problem instances from bus and train operations. The numbers of shifts in the relaxed solutions ranged from 113 to 476. In every case, at least 50% of the shifts in a known integer solution were present at a non-zero level in the relaxed solution. In fact, an average of 74% of the shifts in the integer solutions were in the corresponding relaxed solutions. This indicated that a method which made use of the shifts in the relaxed solution, while allowing the possibility of other shifts being incorporated, would be worthy of exploration. If the method also attempted to retain useful traits of the relaxed solution, this might improve its chances of finding a good final solution. For example, Figure 1 has shown two possible solutions to a part of a scheduling problem, each containing an efficient chain of meal breaks. It would be anticipated that the shifts in one or both of these chains would be present in a relaxed solution to the whole problem, and it would be sensible to try to retain such a chain in the final solution. It is therefore sensible to allow solutions to develop based on different useful combinations of shifts from the relaxed solution. 13 Kwan [41] in a PhD thesis has described a hybrid genetic algorithm based on the above principles. An early report on her work is given in [42], while an update will be presented elsewhere by Kwan and Kwan [43] in June 2000. The hybrid uses TRACS II up to the point where a relaxed LP solution is obtained, then makes use of this solution to drive a GA as described below. The results achieved on a set of test problems compare very favorably with those from TRACS II. More importantly, the hybrid system is guaranteed to produce a solution in all cases. Where TRACS II has failed to find a solution, the solutions from the hybrid GA have been better than the known manual solution. Thus a proposed solution strategy is: • first run TRACS II to completion if possible. The intermediate relaxed solution, which is always obtained, provides a target number of shifts; • if no solution is obtained with the target number of shifts, run the GA using knowledge obtained from the relaxed TRACS II solution. A solution is guaranteed; • select the better of the above solutions (or the only one). Let us call the shifts in the relaxed solution the preferred shifts, while we call those available to the LP process the potential shifts. The preferred shifts are of course a subset of the potential shifts. The genes of our chromosomes represent preferred shifts, of which there may be about 100 in a small problem, and perhaps 1000 in larger problems. However, we have found that even among the preferred shifts there are some which are less likely to appear in an optimal solution, and we therefore concentrate on the more likely ones. The values in the relaxed LP solution of the preferred shifts range from 0.0 to 1.0. However, most of these have very low values. Further analysis of eight of the 21 problems analyzed above showed that 60% of their preferred shifts had values less than 0.2, and that 75% of the shifts in the integer solutions were preferred shifts with values greater than 0.2. We therefore decided to represent in our chromosomes only preferred shifts whose values were greater than a given value. Experimentation confirmed that 0.2 was a suitable value. Our chromosomes therefore have a length equal on average to about 40% of the number of preferred shifts. Chromosomes are created randomly for the initial population and for replacing a certain proportion of the population at the end of each generation. A certain number, r, of the genes are set to 1, indicating that the corresponding shift is in the solution, and the remainder are set to 0. The number r is set randomly to be between 0 and 25% of the target number of shifts defined by the relaxed LP. (Other ranges up to 75% were used in experiments, but best results were obtained using 25%.) The chromosomes do not themselves represent a schedule. Rather, their genes determine a list of shifts comprising a partial schedule, which is then augmented by a construction operator. Unlike a repair operator, the construction operator does not alter any of the genes. It consists of two processes, FILL and DISCARD, each of which is executed once for any chromosome. These processes use heuristics which are adaptive in nature because the heuristic updates information about the coverage of the vehicle schedule as shifts are inserted or deleted. FILL looks at each piece of uncovered vehicle work in turn and selects a potential shift (which may even be a hitherto unused preferred shift) which covers this work and as much other uncovered work as possible. These shifts are added to the partial schedule until a full schedule is obtained. As a result of the FILL process some shifts may become redundant, all their work being covered by other shifts added during FILL. The DISCARD process removes redundant shifts in a systematic 14 way. Although some of the preferred shifts may be removed by DISCARD, the chromosome is left untouched. It is only the schedule list which is adjusted. Although we have run the GA allowing FILL to select any potential shift, we have learned from TRACS II that the problem may be reduced once the relaxed LP solution has been obtained. TRACS II satisfactorily finds an integer solution from among those potential shifts which use only those relief opportunities which are used by the preferred shifts, thereby reducing the problem size considerably. We have incorporated this reduction as an option in the GA. Effectively, potential shifts which use any relief opportunity which is not used by one of the preferred shifts are banned from the FILL process. This optional reduction is normally applied only to larger problems. Once the shifts of a chromosome have been augmented to a full schedule, its fitness is obtained as the total cost of the shifts in the schedule, plus a sufficiently large multiple of the number of shifts to ensure that priority is given to minimizing shift numbers. We have already noted that chains of meal breaks as in Figure 1 are important elements of good solutions. We say that such a chain is a useful trait, and we ensure that some such traits are passed down through the generations. Once a schedule has been constructed from a chromosome, the longest chain of meal breaks is identified and is marked as a trait which is to be inherited by the next generation. Although there are several other traits which we have identified as being useful in a schedule, there may be conflict if we seek to pass on several traits simultaneously, and we have up to now confined ourselves to passing on this single trait. This alone seems sufficient to obtain good results, but we may investigate other traits in future. Parents are selected according to fitness, using a roulette wheel strategy, and a single point crossover is used to generate two children from the chromosomes of each pair of parents. The meal break chain traits of the parents are passed down, distributed randomly, one to each child. Thus the partial schedule derived from a child’s chromosome is augmented by the shifts in one of the traits. It is further augmented by the above construction operator to obtain a full schedule, whose fitness value is then derived. The longest meal break chain in each child is then computed, ready to be passed down to the next generation. Note that this may be the longest inherited chain, or may be that chain increased in length by the presence of other shifts, or may be an entirely different chain, made up from shifts elsewhere in the schedule. It may be observed that the DISCARD component of the construction heuristic is never allowed to discard parts of inherited traits, unless a shift in an inherited trait is also present in the basic chromosome. After a crossover, any new offspring whose chromosome is identical to that of an already existing individual in the newly formed population will be discarded. A new offspring will also be discarded if after the construction operator has been applied, its solution schedule is identical to that of an already existing member of the new population. At the beginning of each generation, a fixed size, n, population is maintained. In the first generation, the entire population is created at random. After a generation has been completed, both the parent and children populations are combined and ranked according to fitness. A fixed proportion, s, of the combined population is allowed to survive, the fittest members being selected deterministically. New individuals are then created randomly to bring the total population back to the original size. 15 The GA terminates if one of the following conditions is satisfied: • A specified number of generations has been reached; • The fittest member has survived a specified number of times. It has been found that for problems of under 100 shifts in the solution schedule, a population size of 100 is generally satisfactory, while larger populations maybe needed for larger schedules. Full details of mutation and other system parameters are given in [41]. Table 1 compares the hybrid GA solutions with the TRACS II solutions and the manual solutions where known. The fifteen problems are real bus, train or tram driver scheduling problems which we have tackled for clients. These problems were all chosen because they had at some time caused difficulties for TRACS II. All problems were run on the same Pentium II machine. Elapsed time is the time following the solution of the relaxed LP of TRACS II; thus the final column shows the time for the branch and bound process of TRACS II. In problems 8 and 10, the ILP process of TRACS II failed to find any integer solution even though the ILP was re-run many times with successively higher numbers of shifts. TRACS II did later find solutions after some modification of the parameters governing the generation of shifts. The target number of shifts for problem 13 had to be raised several times before a solution was found by TRACS II. The time quoted is the time for the final successful computer run. Problem 15 is a subset of a rail driver problem of over 400 shifts and 15 depots; problem 14 is a subset of 15. No manual schedules are available for comparison, but it had previously been demonstrated to the client that TRACS II could produce a schedule for one of his areas using 64 shifts where the manual schedule had 68. The problems were decomposed for TRACS II, each sub-problem first being solved separately; work which was inefficiently covered in the resultant schedules was transferred if appropriate to other sub-problems, and these were solved again. Problem 14 consists of three sub-problems solved separately by TRACS II; for the hybrid GA, TRACS II was run as a single problem up to the relaxed LP solution, and the GA was applied to the whole problem. Problem 15 includes problem 14 and one of the other sub-problems, and was treated in the same way. It may be seen that in all cases where a manual solution is known, a solution at least as good, and often better, was found by one or other of TRACS II or the hybrid GA. Where no manual solution is available there is good reason to believe that the TRACS II or GA solution is better than might be achieved manually, given the effort normally available in a schedules office. The GA has successfully solved two problems which were not solved by TRACS II, and has produced superior results for the two largest problems whose size necessitated decomposition for TRACS II. Although it is expected that the ILP of TRACS II will be able to solve larger problems without decomposition in the near future, we believe that the GA may continue to outperform it for the largest problems. 16 Number of shifts in schedule Cost (hours paid) Elapsed time (secs.) Problem Hybrid GA TRACS II Manual Hybrid GA TRACS II Hybrid GA ILP B&B 1 14 14 N/a 124:23 123:53 14 185 2 34 34 34 294:05 288:16 36 22 3 35 34 34 295:18 289:32 22 84 4 42 42 N/a 301:52 301:29 5 50 49 50 419:06 408:47 96 139 6 51 49 50* 437:06 419:50 14 24 7 51 50 N/a 408:39 403:42 97 34 8 62 Fail 68 509:25 - 955 Very large 9 74 74 76 561:01 561:27 41 4 10 75 Fail N/a 851:09 - 452 Very large 11 91 89 N/a 797:58 778:19 303 724 12 113 112 115 886:29 880:11 263 20 13 116 116 116 1005:57 1003:55 80 69 14 269 276# N/a 2115:07 2083:15# 9352 N/a 15 341 349# N/a 2691:01 2661:12# 13333 N/a 0.4 13 * The manual schedule contains some shifts which violate the given labor rules, while all the shifts in the GA and TRACS II schedules obey the rules. # The TRACS II schedules were obtained by decomposing the problem carefully, and solving each sub-problem separately (see text). The objective of both TRACS II and the GA was to minimize the number of shifts. Table 1. Comparison of Hybrid GA with TRACS II and manual schedules Computer time for the GA is less than 16 minutes except for the two largest cases. In the largest case, the GA found a solution in about 3.75 hours, following the earlier process of TRACS II which took about two hours. This compares with several person months, which would have been required for the manual process. Conclusions We have introduced the subject of bus and rail driver scheduling, showing how computerized solution processes have developed from early heuristics through mathematical programming assisted by heuristics and on to present research investigating a range of metaheuristics and constraint programming approaches. 17 We have presented a hybrid GA/LP process which has allowed larger and more complex problems than before to be solved satisfactorily. The process may be summarized as follows (compare the previously summarized TRACS II process, which is identical up to and including stage 5): 1. Calculate all possible opportunities for drivers to travel as passengers on scheduled services or taxis between relief opportunities (only for those problems in which walking between relief points is inappropriate); 2. Generate a large set of potential shifts, each satisfying all legal conditions together with rules designed to inhibit the construction of shifts which are unlikely to be suitable; 3. If appropriate, filter out intelligently any shifts which do not play a significant role in covering the vehicle work many time over; 4. Merge sets of shifts generated as above according to different parameters, if appropriate; 5. Solve a set covering model, with extensions to limit numbers of shifts of different types. Currently, up to 200,000 potential shifts may be considered. A constructive heuristic is first used to cover all the vehicle work with a subset of the potential shifts. A relaxed linear programming (LP) problem is solved using a specialized column generation technique for larger problem instances, and otherwise a dual steepest edge approach. The relaxed LP provides a target required number of shifts. 6. Problem reduction takes place, based on the relaxed solution, and a branch and bound procedure obtains an integer solution using the target number of shifts if possible. If a solution is obtained, proceed to (10 ). 7. If no solution is obtained, apply the GA using the preferred shifts present in the relaxed LP. A solution will be found. 8. If the solution found by (7) is higher than the target, repeat the branch and bound process with a target equal to the GA solution. If a solution is found, repeat again with progressively lower targets until a target is reached for which no solution is found. 9. Accept the best solution from (6), (7) or (8). 10. Any overcover is edited out by a process which may be automated. This process guarantees that a solution will be obtained, and experience indicates that this will normally be considerably better than any corresponding manual solution. It should be noted that this position has been reached after about three person-years work on the GA approach, compared with perhaps 100 person-years devoted to all the developments which have led to TRACS II. Although the GA has failed in a number of cases to find solutions as good as those of TRACS II, research continues, and we anticipate that as we carry forward more sophisticated traits from parent to offspring, and develop alternative parameter settings, we shall obtain ever better results. Some driver scheduling problems have additional constraints limiting the numbers of shifts of particular types or from particular depots. These are dealt with satisfactorily as side constraints to the set covering problem of TRACS II. We have not yet incorporated such constraints in the GA. However, an initial solution for TRACS II is normally obtained by a simple heuristic which is able to build up a schedule satisfying these constraints. We believe that a similar heuristic 18 could be added to the FILL component of our construction process. In the last resort, any offspring or any population member generated directly whose schedule violated these constraints can be rejected. In any event, the GA has produced solutions where the standard method has failed. We assert therefore that the GA is a useful tool of the solution process. We have presented this work in terms of driver scheduling, but it is anticipated that this hybrid approach could successfully be applied to many set covering problems. Even the process of identifying traits can be generalized and applied elsewhere. References 1. Wren, A., Applications of computers to transport scheduling in the United Kingdom. Morgantown, West Virginia University Engineering Experiment Station Bulletin 91, 1969. 2. Wren, A., Computers in transport planning and operation. London, Ian Allan, 1971 3. Transportation Science Section, Operations Research Society of America, etc., Workshop on Automated Techniques for Scheduling of Vehicle Operators for Urban Public Transportation Services. Preprints, Chicago, 1975. 4. Wren, A. (ed.), Computer scheduling of public transport. North-Holland, 1981. 5. Rousseau, J-M. (ed.), Computer scheduling of public transport - 2. North-Holland, 1985. 6. Daduna, J.R. and Wren, A. (eds.), Computer-aided transit scheduling. Springer-Verlag, 1988. 7. Desrochers, M. and Rousseau, J-M. (eds.), Computer-aided transit scheduling. 1992. 8. Daduna, J.R., Branco, I. and Paixao, J.M.P. (eds.), Computer-aided transit scheduling. Verlag 1995. 9. Wilson, N.H.M. (ed.), Computer-aided transit scheduling. Springer-Verlag, 1999. Springer-Verlag, Springer- 10. Kwan, A.S.K., Kwan, R.S.K., Parker, M.E. and Wren, A., Producing train driver schedules under differing operating strategies. In Wilson, N.H.M. (ed.), Computer-Aided Transit Scheduling, pp.129154, Springer-Verlag, 1999. 11. Elias, S.E.G., The use of digital computers in the economic scheduling for both man and machine in public transportation. Kansas State University Bulletin, Special Report 49, 1964. 12. Elias, S.E.G., A mathematical model for optimizing the assignment of man and machine in public transport run cutting. West Virginia University Engineering Experiment Station Research Bulletin 81, 1966. 13. Ward, R.E. and Deibel, L.E., The advancement of computerized assignment of transit operators to vehicles through programming techniques. Joint National Meeting of the Operations Research Society of America, Atlantic City, 1972. 14. Weaver, A. and Wren, A., Scheduling buses and their crews. PTRC Public Transport Analysis Symposium, London, p.58, 1970. 15. Weaver, A. and Wren, A., Bus crew scheduling by computer, interim report no. 2. Leeds Centre for Computer Studies Report, 1972. University of 16. Manington, B. and Wren, A., A general computer method for bus crew scheduling. In Transportation Science Section, Operations Research Society of America, etc., Workshop on 19 Automated Techniques for Scheduling of Vehicle Operators for Urban Public Transportation Services. Preprints, Chicago, 1975. 17. Parker, M.E. and Smith, B.M., Two approaches to computer crew scheduling. In Wren, A. (ed.), Computer scheduling of public transport. North-Holland, p.193, 1981. 18. Wilhelm, E.B., Overview of the RUCUS package driver run cutting program (RUNS). In Transportation Science Section, Operations Research Society of America, etc., Workshop on Automated Techniques for Scheduling of Vehicle Operators for Urban Public Transportation Services. Preprints, Chicago, 1975. 19. Luedtke, L.K., RUCUS II: a review of system capabilities. In Rousseau, J-M. (ed.), Computer scheduling of public transport - 2. North-Holland, p.61, 1985. 20. Hildyard, P.M. and Wallis, H.V., Advances in computer-assisted runcutting in North America. In Wren, A. (ed.), Computer scheduling of public transport. North-Holland, p.183, 1981. 21. Rousseau, J.-M. and Blais, J.-Y., HASTUS: an interactive system for buses and crew scheduling. . In Rousseau, J-M. (ed.), Computer scheduling of public transport - 2. North-Holland, p.45, 1985. 22. Wren, A., Smith, B.M. and Miller, A.J., Complementary approaches to crew scheduling. In Rousseau, J.-M. (ed.) Computer scheduling of public transport - 2, pp. 263-278, Amsterdam, NorthHolland, 1985. 23. Smith, B.M. and Wren, A., A bus crew scheduling system using a set covering formulation. Transportation Research, vol.22A, pp. 97-108, 1988. 24. Wren, A. and Smith, B.M., Experiences with a crew scheduling system based on set covering. In Daduna, J.R. and Wren, A. (eds.), Computer-aided transit scheduling, pp. 104-118, Berlin, SpringerVerlag, 1988. 25. Smith, B.M., IMPACS – a bus crew scheduling system using integer programming. Mathematical Programming 42, p.181, 1988. 26. Wren, A., Kwan, R.S.K. and Parker, M.E., Scheduling of rail driver duties. In Murthy, T.K.S., Mellitt, B., Brebbia, C.A., Sciutto, G. and Sone, S. (eds.), Computers in railways – IV, vol. 2, pp.8189, 1994. 27. Kwan, A.S.K., Kwan, R.S.K., Parker, M.E. and Wren, A., Producing train driver shifts by computer. In Allan, J., Brebbia, C.A., Hill, R.J., Sciutto, G. and Sone, S. (eds.). Computers in railways – V, vol. 1, pp.421-435, 1996. 28. Fores, S., Proll, L.G. and Wren, A., A column generation approach to bus driver scheduling. In Bell, M.G.H. (ed.), Transportation Networks : Recent Methodological Advances, pp.195-208, Pergamon, 1998. 29. Fores, S., Proll, L.G. and Wren, A., An improved ILP system for driver scheduling. In Wilson, N.H.M. (ed.), Computer-Aided Transit Scheduling, pp.43-62, Springer-Verlag., 1999. 30. Kwan, A.S.K., Kwan, R.S.K., Parker, M.E. and Wren, A., Producing train driver schedules under differing operating strategies. In Wilson, N.H.M. (ed.), Computer-Aided Transit Scheduling, pp.129154, Springer-Verlag, 1999. 31. Wren, A., and Kwan, R.S.K., Installing an Urban Transport Scheduling System. Scheduling, vol. 2, pp.3-17, 1999. 32. Journal of Layfield, C.J., Smith, B.M. and Wren, A., Bus Relief Point Selection using Constraint Programming. In Proceedings of the 1st International Conference on the Practical Applications of Constraint Technologies and Logic Programming (PACLP99), The Practical Application Company. p.537, 1999. 20 33. Curtis, S.D., Smith, B.M. and Wren, A., Forming Bus Driver Schedules using Constraint Programming. In Proceedings of the 1st International Conference on the Practical Applications of Constraint Technologies and Logic Programming (PACLP99), The Practical Application Company. p.239, 1999. 34. Curtis, S.D., Smith, B.M. and Wren, A., Constructing driver schedules using iterative repair. To be presented at the 2nd International Conference on the Practical Applications of Constraint Technologies and Logic Programming (PACLP2000), The Practical Application Company, 2000. 35. Forsyth, P. and Wren, A., An ant system for bus driver scheduling. University of Leeds School of Computer Studies Research Report 97.25, 1997. 36. Kwan, R.S.K. and Shen, Y. Tabu search for driver scheduling with time windows. To be presented at the Eighth International Conference on Computer-Aided Scheduling of Public Transport, Berlin, June 2000. 37. Wren, A. and Wren, D.O., A genetic algorithm for public transport driver scheduling. Computers and Operations Research, vol.22, p.101, 1995. 38. Kwan, R.S.K. and Wren, A., Hybrid genetic algorithms for bus driver scheduling. In Bianco, L. and Toth, P. (eds.) Advanced methods in transportation analysis, Springer-Verlag, p.609, 1996. 39. Zhao, L., Wren, A. and Kwan, R.S.K., Enriching rules in a driver duty estimator. In Daduna, J.R., Branco, I. and Paixao, J.M.P. (eds.) Computer-aided transit scheduling, Berlin, Springer-Verlag, pp.236-247, 1995. 40. Zhao, L., Wren, A. and Kwan, R.S.K., Development of a driver duty estimator, Journal of the Operational Research Society, vol.46, p.1102, 1995. 41. Kwan, A.S.K., Train driver scheduling. University of Leeds PhD thesis, 1999. 42. Kwan, A.S.K., Kwan, R.S.K. and Wren, A., Driver scheduling using genetic algorithms with embedded combinatorial traits. In Wilson, N.H.M. (ed.), Computer-Aided Transit Scheduling, pp.81-102. Springer-Verlag, 1999. 43. Kwan, A.S.K. and Kwan, R.S.K. An improved genetic algorithm for public transport driver scheduling. To be presented at the Eighth International Conference on Computer-Aided Scheduling of Public Transport, Berlin, June 2000. 21