37

OR - Chalmersdag/paper/crew.pdf · OR IN AIRLINE INDUSTRY EDITED BY Gang YU Universit y of T exas at Austin Austin, T exas, USA KLUWER A CADEMIC PUBLISHERS Boston/London/Do rdrec

Embed Size (px)

Citation preview

OR IN AIRLINE INDUSTRY

OR IN AIRLINEINDUSTRYEDITED BYGang YUUniversity of Texas at AustinAustin, Texas, USA

KLUWER ACADEMIC PUBLISHERSBoston/London/Dordrecht

CONTRIBUTORSErik AnderssonCarmen Systems ABOdinsgatan 9S-411 03 GothenburgSwedenEfthymios HousosDepartment of Electrical &Computer EngineeringUniversity of PatrasRioGreece 26500Niklas KohlUniversity of Copenhagen &COWIconsultParallelvej 15DK-2800 LyngbyDenmarkDag WedelinDepartment of Computing ScienceChalmers University of TechnologyS-412 96 GothenburgSweden

1CREW PAIRING OPTIMIZATIONErik Andersson, Efthymios Housos*,Niklas Kohl** and Dag Wedelin***Carmen Systems AB, Gothenburg, Sweden* University of Patras, Greece** University of Copenhagen & COWIconsult, Denmark*** Chalmers University of Technology, Gothenburg, SwedenABSTRACTNext to fuel costs, crew costs are the largest direct operating cost of airlines. There-fore much research has been devoted to the planning and scheduling of crews overthe last thirty years. The planning and scheduling of crews is usually considered astwo problems: the crew pairing problem and the crew assignment (rostering) prob-lem. These problems are solved sequentially. In this paper we focus on the pairingproblem. The aim of the paper is twofold. First, we give an overview of the crewpairing problem and synthesize the optimization methods that have been publishedpreviously. Second, we present the Carmen pairing construction system which is inoperation at most major European airlines. Our purpose is to identify the particularproperties of the Carmen system that have made this system the preferred decisionsupport system for crew pairing optimization in Europe.1 INTRODUCTION TO CREW PAIRINGOPTIMIZATION1.1 The resource planning in airlinesThe planning and scheduling of aircraft and crews in large airlines is a verycomplex task, and is therefore usually divided into several planning stages. Theplanning process is illustrated in �gure 1, which shows the logical sequentialorder of these stages, where the solution from one stage de�nes the data for thenext. In reality, however, the four stages are typically assigned to four di�erent1

2 Chapter 1departments which simultaneously work on their part of the resource planningproblem. These departments communicate in order to adjust their plans toeach other and to update each other with changes. The �rst draft of plans fora given planning period may be updated several times until the �nal plans are�xed and published. In the operational phase these plans may still be changed.For example ights may be cancelled or delayed and crew may report sick.Airlines tackle these problems by having some bu�er resources (for examplestand-by crew) and by using robustness of the plans as one of the issues to beoptimized.Construct Timetable Fleet Assignment Crew Pairings Crew AssignmentFigure 1 The resource planning process in airlines.First, the timetable is produced. Here the objective is to match the expectationsof the marketing department with the available eets and with constraints onthe network, for example the time slots available for the airline at di�erentairports. The output of this process is a number of ight legs (non-stop ights)which the airline decides to operate.Second, one must decide on the allocation of aircraft to the ight legs. Theexpected revenue of a particular ight leg depends on the size of the aircraft usedon the leg. Also some aircraft may not be able to operate from some airports.The primary issue is to ensure feasibility of the timetable given the available eet. If this is not possible, the timetable must clearly be changed. Givenfeasibility the objective is to maximize the expected revenue less operatingcosts. Usually one assumes that the timetable is completely �xed but there hasbeen some attempts to optimize the exact departure time of each leg (within arather small time interval) while solving the eet assignment problem [8].Third, pairings are constructed. A pairing is a sequence of ight legs for anunspeci�ed crew member starting and ending at the same crew base. The crewmember will usually be working on these legs, but a pairing may also contain socalled deadheads, where the crew member is not working but is just transportedas a passenger. Legs are naturally grouped in so called duty periods (workingdays), which are separated by lay-overs (overnight stops). In short and mediumhaul problems a pairing may consist of one up to about �ve duty periods. Inlong haul problems, longer pairings are often permitted. Legal pairings mustsatisfy a large number of governmental regulations and collective agreementswhich vary from airline to airline.

Crew Pairing Optimization 3The fourth planning problem is to assign pairings to named individuals. Thisproblem is denoted as the crew assignment or rostering problem. The objectiveis to cover all work (pairings) as well as training requirements, vacations etc.while satisfying work rules and regulations. Also, crew costs are to be mini-mized. If crew are paid a �xed salary (which is usually the case in Europe) onetries to maximize the utilization of crew in order to minimize the number ofcrew members.Next to fuel costs, crew costs constitute the largest direct operating cost ofairlines. In 1991 American Airlines reported spending $1.3 billion on crew [1].The corresponding �gure for Northwest Airlines (1989) has been reported to$1.05 billion [4] and United Airlines (1993) spent $0.6 billion just on pilots [15].For major European airlines the �gures are of the same magnitude. The crewcosts depend on the quality of the solution to the pairing problem as well as theassignment problem, but since it is not possible to make up for poor pairings inthe assignment problem, it is reasonable to expect that savings in the pairingsproblem will lead to savings in total crew costs.1.2 Characteristics of the crew pairingproblemThe crew pairing problems varies somewhat between di�erent airlines. Obvi-ously the problem of small airlines is much simpler than the problem of largerairlines, but there are also major di�erences between the problems in NorthAmerica and the problems arising in Europe and elsewhere. The problem ofNorth American airlines is well described in the literature, for example [1], [4]and [15]. Here we will highlight some of the di�erences between the situationin North America and Europe.Crew categoryOn any ight leg there is a need for a given number of crew of the di�erentcategories (captains, �rst o�cers, pursers, hostesses etc.). Crew in one categorycan usually not substitute crew in another category and di�erent rules applyfor each category, so the pairing problem decomposes by crew category. Withinthe same crew category di�erent rules may apply for di�erent crew members.This is for example the case for the Scandinavian airline SAS for crew membersfrom di�erent countries. There are however some links between the di�erentcrew categories since the robustness of the pairings speaks in favor of changingcrew (on the airplane) for all crew categories at the same point. This issue can

4 Chapter 1be addressed by solving the problem for one crew category �rst and trying touse the airplane changes selected for the other crew categories as well.FleetCockpit crew (pilots) are usually only quali�ed to y one type of aircraft.Therefore this problem also decomposes by eet. The number of daily ightsfor major airlines is typically more than 100 for the smallest eet and between500 and 1000 for the largest. Cabin crew are often quali�ed to y several typesof airplanes. United Airlines decompose the cabin crew problem in to threeproblems: wide body, narrow body and narrow body with more than three ight attendants [15]. The largest of these problems consist of 1716 daily legswhere the corresponding �gure for cockpit crew is 622. The pairing problemfor cabin crew is also larger than for cockpit crew in the sense that each legusually requires one captain and one �rst o�cer but several hostesses. Still,the cockpit crew problems are the most important ones due to the high salariesfor these crews.Network StructureMajor North American airlines operate a so called hub and spoke network.A few airports (the hubs) are regularly connected to each other and to manyother airports (the spokes). The timetable is constructed such that passengersarriving at a hub can make connections to many outgoing ights without muchdelay. In practice this means that a large number of ights arrive at the hubwithin a short time interval. Shortly after, a large number of ights leave thehub. This enables the airline to o�er transportation between most spokes viathe hub with minimal waiting time. It is easy to realize that this kind of net-work structure creates extremely many possible pairings. [15] notes that "eacharrival into Chicago can have more than 100 possible departures. It is also notuncommon for a pairing to pass through Chicago more than once and each timethe combinatorials multiply". In Europe the hub and spoke network structureis not (yet) predominant, so incoming crew can only continue on a relativelysmall number of ights. Therefore the number of possible pairings tends to besmaller in typical European problems than in typical North American problems.Rules and RegulationsTo be legal, pairings must respect governmental rules and collective agreements.In United States the Federal Aviation Administration (FAA) regulations tendto be the most important rules. These limit the length of duty periods andspecify the rest necessary between duty periods. There are exceptions to the

Crew Pairing Optimization 5rules permitting violation of some limits if some extra rest is given, but still therules are relatively simple and identical for all airlines. Airline speci�c collectiveagreements change this picture slightly, but the structure of the problem is thesame for all major North American airlines. In Europe, collective agreementsare usually much stronger than governmental regulations. The collective agree-ments are typically very detailed and change often. Also, the rules are quitedi�erent from airline to airline. Furthermore, the rules actually used are oftenpoorly documented compared to North America where the rules give a muchbetter description of the actual solution space.Regularity of the timetableNorth American airlines typically operate the same ights Monday to Friday.During the weekend a subset of these ights are operated. The timetables ofEuropean airlines vary much more from day to day. It is for example verycommon to operate particular legs one, two or three times a week.Cost structureIn North America crews are usually paid on the basis of so called credit hours.These are calculated as the maximumof actual ying time and some guaranteedminimum hours (for example a minimum of 5 hours per duty period). Thequality of a solution to the pairing problem is given by the ratio between credithours and ying time. For good solutions this ratio is one plus a few per cent.European crews are often paid a �xed salary, but still crew utilization is animportant factor.The main similarities and di�erences between the crew pairing problems facedby North American and European airlines are summarized in table 1.2 REVIEW OF EXISTINGOPTIMIZATION METHODS2.1 The daily, weekly and fully datedproblemsA solution to a pairing problem (for a given crew category and eet) is a numberof pairings such that all ights in the planning horizon are covered as many

6 Chapter 1North America EuropeCrew Problem decomposes by crew category since crew of onecategory category can generally not substitute another category.Fleet For cockpit crew the problem decomposes by eet type.For cabin crew the problem does not necessarily decompose,since cabin crews are quali�ed to y several types of airplanes.Network Hub and spoke structure. Less structure.structure Timetable constructed tomake many connections possible.Rules and FAA regulations are the Complicated collectiveregulations most important. agreements whichchange often.Regularity Same timetable from Monday Less regularity fromof the to Friday. Reduced day to day.timetable timetable in weekends.Cost Payments based on Crews are paid a �xed salary.structure credit hours.Table 1 Similarities and di�erences between Europe and North America.times as needed. We will denote this as a fully dated solution since it speci�esparticular days for the operation of the pairings. This problem is not attackeddirectly, since the number of ight legs within a planning horizon of for exampleone month is many thousands. Instead one solves a sequence of three problemsof which the �rst two are approximations of the fully dated problem.The daily problemThe assumption of the daily problem is that the timetable is the same everyday, and almost all published research on crew pairing focusses on this problem.The implicit assumption is that a good daily solution is the hardest part of theproblem. This may be appropriate in North America, but is more questionablein Europe due to the irregularities of the ight schedules.A solution to the daily problem consists of a number of pairings such that everyleg is covered on one (arbitrary) day. From this solution one can construct afully dated solution which repeats itself daily, covering all legs on all days asdemonstrated in the following example.

Crew Pairing Optimization 7Leg number From To Departure Arrival1 A B 6.30 13.302 B A 14.30 21.303 B C 10.15 11.454 C B 12.15 13.455 B C 14.15 15.456 C B 16.15 17.45Table 2 A small example with six ights.P1 1-lo-2 (2) P7 5-6 (1) P13 3-lo-4-5-6 (2)P2 1-lo-3-4-2 (2) P8 3-4-5-6 (1) P14 3-4-5-lo-4 (2)P3 1-5-lo-4-2 (2) P9 2-lo-1 (2) P15 3-4-5-lo-4-5-6 (2)P4 1-5-6-lo-2 (2) P10 2-lo-1-5-6 (2) P16 5-lo-4 (2)P5 3-4 (1) P11 3-lo-4 (2) P17 5-lo-4-5-6 (2)P6 3-6 (1) P12 3-lo-6 (2)lo: layoverTable 3 All possible pairings for the problem of table 2. The cost of eachpairing is given in brackets.An exampleConsider the timetable given in table 2, and assume the following rules. Feasiblepairings start and end at one of the two crew bases located in A and B. Theymay consist of at most two duty periods. Each duty period must have a durationof at most 12 hours. The layover of a two duty period pairing must be at least9 hours, or 1.5 times the length of the �rst duty period if this is longer, andat most 32 hours. The crew is paid a �xed salary, so we can assume that thecost of any legal pairing is proportional to the number of duty periods in thepairing. Because of the small size of the problem, one can enumerate all feasiblepairings, see table 3.Covering leg 1 and 2 requires a two duty period pairing, but this pairing cancover no more than two of the remaining four legs. Therefore a second pairingof one duty period is needed, so the cost of a daily solution can not be lessthan three (duty periods per day). One example of an optimal solution to the

8 Chapter 1daily problem is pairing P1 and P8. In order to construct pairings covering alllegs on all days, pairing P8 is operated every day. Clearly this covers leg 3, 4,5 and 6 every day. Pairing P1 is operated by two crews every day. The �rstcrew covers the �rst duty period (in this case leg number 1). The second crewcovers the second duty period (in this case leg number 2). The next day the�rst crew covers the second duty period of the pairing while a new crew coversthe �rst duty period etc. The daily cost of operating this schedule is equal tothe cost of the daily solution, in this case three duty periods per day. Figure 2gives a graphical representation of the solution.6 6 610 10 1014 14 1418 18 1822 22 22

2

3 4 5 6

1 2

3 4 5

3 4 5 6

1

1

2

Day k+1Day kDay k-1

6Figure 2 An optimal solution to the daily problem with a cost of three dutyperiods per day. Each line represents a pairing.It is interesting to note that the assumption that the timetable is identical forall days, does not imply that the duty periods should be the same every day.This is an implicit consequence of solving the problem as a daily problem -the problem itself does not require identical duty periods every day. Thereforesolving the daily problem optimallymay not produce the best possible solution.In fact we can produce a cheaper solution to the problem considered above, see�gure 3. This solution requires 2.5 crews per day on average. Pairings are notrepeated daily but with a cycle of two days. The solution exploits the fact thatthe two day pairing, which cover the two long legs (1 and 2), can cover two ofthe four short legs (3, 4, 5 and 6) either on the �rst day of the pairing or onthe second day of the pairing. By letting the two day pairing alternate betweencovering two short legs on the �rst day and on the second day, we manage to

Crew Pairing Optimization 9cover all short legs every other day, thus saving one duty period every otherday.6 6 610 10 1014 14 1418 18 1822 22 22

Day k+1Day kDay k-1

1

1

2

2

3

3

3

4

4

4

5

5

5

6

6

6

1

2

Figure 3 A better solution using only 2.5 duty periods per day.The weekly problemThe assumption of the weekly problem is that the timetable repeats itself everyweek. Here one must construct pairings such that all ights within a week arecovered by one pairing. The starting point for solving the weekly problem istypically the solution to the daily problem. This solution is however not feasibleon a weekly basis and the degree of infeasibility depends on the regularity ofthe timetable. In North America the weekly problem is denoted the weeklyexceptions problem, since the task is restricted to modifying the daily solutionto the weekend exceptions. In Europe there are much more exceptions and thedaily solution may not be a very good starting point at all.The fully dated problemTo construct a fully dated solution one must take care of the di�erences betweenweeks. There are two major sources of such di�erences: change of timetableand holidays. Due to varying demand, airlines change timetable several timesa year. This gives rise to the so called transition or cross-over problem. Thee�ect of holidays are typically that some ights that would usually have beenoperated are cancelled. Also, extra ights may have been introduced. Thisclearly also destroys the feasibility of a weekly solution. Due to the increasedcompetition between airlines and the development of computer based systemsthat can reschedule fast, one must expect that timetables will become lessregular in the future.

10 Chapter 12.2 The Set Partitioning / Covering modelThe main di�culty in modeling the crew pairing problem is that the set offeasible pairings is very di�cult to characterize mathematically in any otherway than by enumeration. In addition, the cost of a pairing is usually a com-plex function of its components. Therefore, all published methods attemptto separate the problem of generating pairings from the problem of selectingthe best subset of these pairings. The remaining optimization problem is thenmodelled under the assumption that the set of feasible pairings and their costsare explicitly available, and can be expressed as follows:minimize Xp2P cpxp subject toXp2P aipxp = ni 8i 2 IXp2P bjpxp � mj 8j 2 Jxp � 0 and integerThe set of feasible pairings is denoted P and xp; p 2 P; is an integer decisionvariable determining how many times pairing p is used. The cost of pairing p isdenoted cp, so the objective is to minimize total costs of the pairings used. Theset of legs is denoted I and pairing p covers leg i 2 I aip times. The number oftimes leg i must be covered is ni. For cockpit crew this is typically 1, but forcabin crew it may depend on the expected number of passengers, the priorityof the leg and other issues. The �rst constraint set expresses that each leg mustbe covered exactly the desired number of times. In some cases it is permittedto over-cover a leg, implying that some of the crew are deadheading on the leg.In this case a Set Covering type problem is obtained. Partitioning solutionsare preferred, because deadheading incurs extra costs and are unpopular withthe crew. Therefore many airlines do not accept deadheads in the solution tothe daily problem.The second constraint set represents the set of other global constraints and aredenoted J . These may be base constraints requiring the workload of each baseto be within speci�ed limits. In this case bjp is the workload assigned to thebase corresponding to constraint j if pairing p is used. The maximal possibleworkload is given by mj . Also constraints on the number of pairings of variouslengths can be modeled this way.

Crew Pairing Optimization 11The Set Partitioning type model is valid for as well the daily problem as theweekly problem and the fully dated problem. For the example considered insection 2.1 the daily problem is:minimize 2x1 + 2x2 + 2x3 + 2x4 + x5 + x6 + x7 + x8 + 2x9 + 2x10+2x11 + 2x12 + 2x13 + 2x14 + 2x15 + 2x16 + 2x17 s:t:x1 + x2 + x3 + x4 + x9 + x10 = 1x1 + x2 + x3 + x4 + x9 + x10 = 1x2 + x5 + x6 + x8 + x11 + x12 + x13 + x14 + x15 = 1x2 + x3 + x5 + x8 + x11 + x13 + 2x14 + 2x15+ x16 + x17 = 1x3 + x4 + x7 + x8 + x10 + x13 + x14 + 2x15 + x16 + 2x17 = 1x4 + x6 + x7 + x8 + x10 + x12 + x13 + x15 + x17 = 1x1; x2; x3; x4; x5; x6; x7; x8; x9; x10; x11; x12; x13; x14; x15; x16; x17 2 f0; 1gThis problem has several optimal solutions with an objective function valueof 3, for example x1 = x8 = 1 and xi = 0 for all other variables. Note thatthe numbering of the variables corresponds to the numbering of the pairingsin table 3, so this solution corresponds to the solution displayed in �gure 2.One optimal solution to the continuous (linear programming) relaxation of theproblem is x2 = x4 = x8 = 1=2 and xi = 0 for other variables with an objectivefunction value of 2.5. This is equivalent to using pairing P2, P4 and P8 everyother day which happens to be what the solution displayed in �gure 3 does.In general the continuous relaxation gives a lower bound on the best non-dailysolution, but this bound is not always tight.A main problem with the Set Partitioning type model is that the number offeasible pairings jP j is extremely large even for relatively small problems, soeven generating the data of the optimization problem is often impossible. In[4] a 71 leg problem is reported to permit more than a quarter of a millionpairings. Large daily problems with several hundred legs may easily permitseveral billions of pairings [20]. To some extent, this problem can be overcomeby considering a small subset of P 0 � P of pairings only. Generation of pairingsand solving the Set Partitioning type problem is then done iteratively. Ineach Set Partitioning iteration one selects the best solution from the pairingsin P 0. In each generation iteration new pairings are generated and includedin P 0. Some of the old pairings in P 0 are deleted, but one keeps at leastthe pairings used in the last solution to the Set Partitioning type problem.Therefore the solution can never get worse in the course of iterations. The

12 Chapter 1number of iterations performed usually depends on the computer time availableand whether progress is being made.Another di�culty is that the resulting Set Partitioning problems are very largeand di�cult to solve. Even when only the �rst constraint set is present andni = 1 for all i, the problem is NP-hard [19], so it is very unlikely that thereexists an e�cient algorithmwhich will always solve the problem optimally. Thisis usually addressed by solving the problem with some heuristic.2.3 Methods for the generation problemIn this section we describe methods for generating pairings. Total generation ofall pairings is only possible for small problems. For larger problems generationmust be restricted to a limited part of the problem, or to partial generation forall ight legs. Also, a combination is clearly possible - partial generation for alimited part of the problem.Total generation for a limited part of the problemThe traditional approach has been to apply local optimization on an initialsolution. One limits the attention to a small number of pairings in the currentsolution. These pairings can be chosen more or less randomly. The objectiveis to �nd an optimal solution for the subproblem chosen. First a number ofpairings in the current solution are selected. Then all possible pairings for thelegs on selected pairings are generated. Finally a set partitioning problem, withvariables corresponding to the pairings generated and the pairings of the oldsolution, is solved. The solution obtained, which can clearly not be worse thanthe old solution, is maintained for the next iteration. Alternatively one maykeep a larger number of good pairings for the next iteration.Examples of systems using this approach includes the TRIP system [1] whichhas been used by American Airlines and Continental Airlines, the TPACS sys-tem [15] previously used by United Airlines and the ALLPS system marketedby Unisys and previously used at Northwest Airlines and USAir. Since it isonly possible to generate all pairings for a rather small number of legs, theoutlined method may well end in a local minimum. To avoid this one may,in some iterations, accept a new solution which does not decrease costs. [1]describes other heuristic techniques to avoid local minima.

Crew Pairing Optimization 13Published research has focussed on limiting the size of the subproblem by con-sidering only a few pairings, but the number of possibilities can be reduced inmany other ways. Some of the possibilities are to:Maintain the solution outside a speci�ed time interval (for example oneday) and generate all possibilities within this time interval.Limit the number of connections at the hubs.Impose extra constraints to forbid pairings which are not likely to be usedin good solutions.The �rst possibility is generally applicable, while the other two possibilitiesrequire the knowledge of an experienced planner to be most e�cient. TheCarmen system (to be described in more detail in section 3) implements theseand other subproblem reduction methods.Partial generation for all legsThe idea in these methods is to generate good pairings considering all legs atthe same time. A key question is what characterizes a good pairing. To someextent, the linear programming theory gives an answer to this. Consider thecontinuous relaxation of the Set Partitioning type problem. If this relaxation isvery good, which is commonly the case, it is reasonable to assume that pairingsused in the continuous solution (i.e. variables for which xp > 0) will be usefulto obtain an integer solution as well.If one were to solve the continuous relaxation one would start out with a basis,calculate reduced costs for all variables (pairings) and introduce the variablewith smallest reduced cost in the basis. This is not computationally feasible,due to the extremely large number of variables, but it is actually possibleto solve the continuous relaxation, by exploitation of the so called columngeneration technique (see [10] for a review of applications of column generationin time constrained routing and scheduling). The idea is to �nd the pairingwith smallest reduced cost as the column generation problem, without explicitlycalculating the reduced cost of all the variables. In the crew pairing contextit turns out that this problem is a constrained shortest path problem. Theapproach was introduced in [17] and is implemented in the ALTITUDE systemmarketed by Ad Opt Technologies. This system is used at Air Transat and ata large U.S. carrier and has been tested at Air France [9].

14 Chapter 1A more heuristic implementation of the same idea is to solve the constrainedshortest path problem heuristically, that is to use heuristics that can come upwith pairings with low reduced cost. This idea is sketched in [1] and seems tobe implemented in the new pairing optimization system developed by IBM andSabre Decision Technologies, used at American Airlines and USAir [20], and theRALPH system developed for Delta Air Lines [18]. However, no details havebeen reported. Even though none of these systems have been well documentedin the literature it seems reasonable to conclude that the trend (at least in NorthAmerica) is to use partial generation for all legs instead of total generation fora limited part of the problem.2.4 Methods for the Set Partitioning typeproblemDue to the many applications of the Set Partitioning and Set Covering prob-lems, a large number of papers have treated these problems and many exact andheuristic algorithms have been proposed. Space does not allow a comprehensivereview of this research, so we will only focus on the main ideas.Methods for solving these problems often depend on the e�cient solution oftheir continuous relaxation, which for Set Partitioning and Set Covering typeproblems is known to be di�cult and highly degenerate [2]. Recent advances inLP-technology have reduced this problem somewhat. Especially the emergenceof interior point methods have improved problem solving capability drastically.[12] has tested the CPLEX [7] primal simplex, dual simplex and interior pointalgorithm on the seven problems solved in [22]. On the smaller problems (lessthan 100,000 non-zeros in the coe�cient matrix) the solution time is small forall algorithms, but the largest problem with more than 500,000 non-zeros inthe coe�cient matrix was solved in 364 seconds by the interior point algorithm,where primal simplex needed about one hour and dual simplex needed morethan two hours. [2] reports solving a 837 constraint, 5.5millionvariable problemto LP-optimum in about one hour using the so called SPRINT (partial pricing)approach. [20] reports solving problems with even more variables. It seemsreasonable to conclude that a large number of variables is no longer a problemfor the LP-technology, but still problems arise when the number of constraintsincrease much above 1000.Exact algorithms

Crew Pairing Optimization 15Most exact optimization approaches for the Set Partitioning problem are basedon Branch-and-Bound. Lower bounds are usually calculated by solving thecontinuous relaxation but Lagrangean relaxation may also be used. Upperbounds can be calculated using any heuristic.Computational experiments show that the gap between the optimal objectiveof the continuous relaxation and the optimal objective of the integer programis very small. Small problems often have integer solutions but may have agap of up to a few per cent. Larger problems rarely have integer solutions tothe continuous relaxation, but the gap is always extremely small. Of the 11problems with more than 100 constraints considered in [16] the largest gap was0.7%. In a study of over one hundred large problems from several Europeanairlines, the gap was almost always less than 0.5% and for the largest problems(more than one million non-zeros in the coe�cient matrix) the typical gap was0.1% [12].Branching on single variables is generally very ine�cient. [2] reports somesuccess using the "follow-on" branching strategy proposed by [21]. Either legnumber j follows after leg number i for a pairing in the solution or it does not.Using this fact may eliminate a large number of variables in both branches.[16] proposes a Branch-and-Cut algorithm for the Set Partitioning problem.First the LP-relaxation is solved. If the optimal solution is fractional a violatedvalid inequality is generated if possible. Several classes of strong valid inequal-ities are used. Solutions are reported for a large number of relatively smallproblems provided by di�erent North American airlines. The largest problemsolved had about one million variables and 145 constraints. It consisted of allfeasible pairings (in the daily problem) for the smallest eet of a major NorthAmerican airline. This problem was solved to proven optimality in less than ahalf hour on a CONVEX model C-220. No branching was necessary but 389valid inequalities had to be inserted to obtain an integer solution.Heuristic algorithmsMany heuristics have been proposed. One possibility is to use a Branch-and-Bound based method but to stop before proven optimality. The simplest im-plementation of this idea is to �x the largest fractional xi value from the LP-solution to 1. This eliminates the constraints covered by this variable and allother variables covering these constraints. The procedure is applied until theremaining problem is of manageable size. [2] reports reasonable results forsmaller problems using this approach. One may think of the methods as a

16 Chapter 1partial evaluation of the branching tree and it will work with any branchingstrategy.The di�culty of the LP can be avoided by attacking the problem from the dualside. A natural way to do this is by Lagrangean Relaxation. One associatesa Lagrangean multiplier �i with each constraint i of the problem. This multi-plier can be interpreted as a price given for covering the associated constraint.Pairings are used (that is xp = 1) if the cost is less than or equal to the sumof multipliers of the constraint covered by the pairing, that is if cp �Pi aip�i.This is equivalent to the simplex (linear programming) optimality criterion re-quiring that the reduced cost cp �Pi aip�i, where �i is a simplex multiplier,is non-positive for all basis variables.Lagrangean Relaxation yields an integer solution but some constraints may bemultiply covered and some may not be covered at all. Therefore multipliersare adjusted. If Pp aipxp is more than ni, �i must be reduced to make itless attractive to cover the constraint. If Pp aipxp is less than ni, �i must beincreased.One can show that there exist multipliers yielding an optimal feasible solution ifand only if the continuous relaxation has an optimal integer solution [19]. Thisis rarely the case, so one must apply so called Lagrangean heuristics to modifythe solution and obtain feasibility. In a recent benchmark between Italianuniversities on Set Partitioning problems arising in train crew scheduling thetwo most successful approaches ([5] and [6]) were both based on the LagrangeanRelaxation idea. Another dual approach has been suggested by Wedelin [22].This is the method used in the Carmen system and is described further insection 3.1.3 THE CARMEN PAIRINGCONSTRUCTION SYSTEMThe Carmen system comprises a complete set of tools for editing pairings andrules, as well as fully automatic generation of complete optimized schedules.Both pairing construction and roster generation can be handled by the system,although we will here focus on the former. Figure 4 gives an overview of themain components of the system.

Crew Pairing Optimization 17Graphicalediting andcontrol

Automatic

scheduling

system

Rule

flights

crew data

external tables

rules

Reportgeneratorreport specifications

pairings etc.

statistics

compilerFigure 4 Overview of the Carmen system.The graphical system provides the user interface, with editing and data han-dling functionality, and is the standard means of accessing and controlling thesystem. Data about ights, crews, etc. can be loaded into the system, and theproblem can be solved manually with the graphical editing and rule-checkingtools. For automatic scheduling, any part of the problem can be selected, op-timization parameters can be set, and the resulting problem can be sent o� tothe separate optimization module. It is also possible to monitor the progress ofall running optimization jobs, and to load the solutions back to the graphicalsystem for subsequent editing and examination.An important and unique feature of the Carmen system is that the usuallycomplicated rules for feasible pairings are not hardwired into any part of thesystem, but are input as any other data, written and maintained by the airlinesthemselves. The rules are entered in an application speci�c rule language toa separate module, the rule compiler, which provides a consistent interface fortesting whether a given pairing, or part of a pairing, is feasible or not. Also thecost function for optimization is entered in this way. The main user advantagesof using a rule language is that only one description of all rules have to bewritten, they can be easily changed and maintained, and it is easy to perform

18 Chapter 1various what-if analyses. Also, it becomes possible for the users to control theautomatic pairing generation process in a exible way.In addition, there is a report generator, which interprets a rule language, whereformatted output of pairings, rosters and statistics can easily be de�ned.3.1 The Carmen automatic schedulingmoduleFigure 5 gives an overview of the automatic scheduling algorithm in the Carmensystem. The design re ects the desire to limit the combinatorial explosion forboth generation and optimization. To enable planning periods of one or severalweeks, an overall local search is therefore added, where an initial solution iscreated, and where subproblems of reasonable size are then repeatedly selectedfor reoptimization. In the pairing generator, basically consisting of a depth-�rstsearch, the search tree is pruned to avoid massive generation of useless pairings.Also, to handle the large problems created by the generator, a new type of setcovering optimizer is used. These di�erent parts will now be considered indetail.Subproblem selectionA common size for a large weekly problem is around 4000 legs/week, and withtypically 3-5 legs per day in a pairing, this would give an intractable depth ofthe search tree in the generator. However, for a weekly problem it turns outto be a reasonable heuristic to solve daily subproblems. A partial explanationis that during the day it is usually best to �nd very tight connections, and inparticular simply to follow the aircraft: the crew is already in place, if there isa delay the crew and the plane is synchronized etc. Overnight however, it isusually better to �nd a connection giving the crew a rest time as close to theaverage as possible, and many reasonable connections are possible. We notealso that it is highly desirable to be able to solve a whole day at a time, sinceit can be very di�cult to �nd good subproblem selection heuristics for dailyproblems.Given some initial solution, a daily window is then opened as a subproblem andoptimized in the hope of �nding an improvement. With this technique, calledsplit-improve, each day is optimized in turn, creating small improvements untila local optimum is reached. Typically, the days will be traversed 3-5 times.Note also that selecting di�erent daily subproblems in a weekly problem is not

Crew Pairing Optimization 19set covering

pairinggenerator

optimizer

subproblemselection

crew and flight data

subproblem solution

complete solution

subproblem

rule system

initialsolution

generateinitialsolution

Figure 5 Overview of the Carmen scheduling algorithm.the same as solving the daily problem of section 2.1, which assumes a dailyregularity of the timetable.An initial solution is created by creating a schedule from left to right, addingone day at a time using the ordinary generator but with other parameters thanfor the subsequent reoptimization process. We here note that it is importantto make the initial solution as good as possible, since local reoptimization maynot be able to change global properties of the solution.For some problems it is can be useful to select the subproblems with a di�erentstrategy, known as k-opt. Here, a limited number of pairings in a given solutionare opened over the whole planning period, and re-optimize the subproblem

20 Chapter 1created by the legs in these pairings only. Clearly, these di�erent subproblemselection strategies can also be used interchangeably, to reach a better solutionthan with any single strategy. For a more thorough discussion of subproblemheuristics we refer to [11].A di�cult issue signi�cantly adding to the complexity of de�ning the subprob-lems, is the problem of deadheading, and a considerable proportion of the codedeals with this problem. Unfortunately, it is usually not su�cient to use onlythe ights to be scheduled as connections, but passive transfers of crews, orso called deadheads, on other ights are necessary to obtain solutions of highquality. In a deadhead preprocessing step a limited number of additional ightsmust be added to the chosen subproblem solely for this purpose. In the genera-tion, these ights will be used just as any other ights, but in the optimizationstep, there will be no requirement for these legs to be covered.Since it is impossible to add all existing ights (possibly even with other air-lines!) to a particular problem, it also turns out to be useful to examine thesubproblem solution in a heuristic postprocessing step, trying to replace thechosen passive connections (corresponding to over-covers in the set coveringproblem) by better combinations, and trying to analyze what deadheads mightbe useful in the next iteration. One example is to compare pairs of pairings,to see if a crossover of the pairings is possible so that sequences of deadhead ights can be replaced by one single other deadhead ight.The pairing generatorThe basic and conceptually simple algorithm for generation is a depth �rstsearch in a search tree determined by the connection matrix representing alllegal connections between legs. This approach, in contrast to the column gen-eration approach, has been consciously chosen to enable separation of the rulesfrom the algorithms. Search always begins from the subset of legs known asstart legs, being legs directly from a crew base, or connecting to a �xed part ofa pairing (outside of the subproblem selected) from such a base. Analogously,stop legs leading back to the crew base can be identi�ed.To make the generator reasonably e�cient, the depth-�rst search is restrictedin several di�erent ways:The search is limited by a maximum branching width on the search tree.Typically this width is around 5-8 connections.

Crew Pairing Optimization 21It is possible to indicate a preference for which connection or connectionsshould be searched �rst, such as following the aircraft, in order to increasethe chance that good pairings will in fact be found within the limitedsearch width. Another possibility is to solve matching problems for eachairport, and use this as a guide to good connections.in every step of the depth �rst search, the pairing built so far is checkedfor legality, the only interface to the rules being a test function telling ifthe given legs violate any of the rules. If it is illegal, this branch is notinvestigated further. It is important to note that since the legality rules areprogrammable by the end user, they can also be used to actively enforcenot only genuine legality rules but also additional rules for the purpose ofpruning the search. For speci�c problems, an experienced user will oftenbe able to know that some connections are useless etc, and this informationcan be very useful.The optimizerSince one wants to generate a large number of pairings in the generation step,for the Carmen system typically between 10000 and 1000000 pairings, the op-timization problems are very large, and also high quality solutions are clearlynecessary. Using standard techniques, the optimizer therefore easily becomesa bottleneck in the system. In some systems, this is handled by restrictingthe number of pairings generated, and by using a more complicated optimiz-ing generator. However, it is then very di�cult to separate the rules from thegenerator, which is a signi�cant design advantage of the Carmen system.As a �rst step, preprocessing is applied to reduce the size of the problem. Thispreprocessing is quite straightforward algorithmically, and consists of repeatedapplication of simple and well known reduction rules, see e.g. [13]. However,the problems will still be very large, and to solve this, the Carmen systemuses a new type of optimizing algorithm. This optimizer has been describedelsewhere, and we refer to [22] for a full technical description. However, we willoutline some basic principles and ideas. The main design objective has been tosolve large problems, with as high quality as possible. This makes branchingstrategies less attractive, and instead the following design strategy was chosen:Approximation, in the sense of explicit deviation from exact, optimizationmethods should be actively used as an algorithmic design principle.

22 Chapter 1Only very simple operations with low complexity should be allowed, toensure a low complexity of the algorithm. Also, computational structureshould be emphasized, to allow for possible parallelization.In addition, the optimizer has been designed without any problem speci�cheuristics, to ensure the exible application of the algorithm and its implemen-tation to 0-1 integer programs in general.The basic strategy is to manipulate the cost function (and hereby the reducedcosts) using the invariants given by the constraints, until the solution can beeasily determined. To ensure low complexity of the operations, a central oper-ational design aspect of the algorithm is that the changes of the costs are donefor one constraint at a time.We now outline how the algorithm works for the Set Covering problem, thatis ni = 1 and there are only covering constraints present, cf. section 2.2.As for a Lagrangean Relaxation algorithm, the aim is to �nd multipliers suchthat all constraints are covered and over-covered constraints have multiplier 0.Mathematically, this corresponds to �nding a set of multipliers � � 0 such thatthe function '(�) is maximized, where'(�) = min (0�xp�1) [Xp cpxp +Xi �i(1�Xp aipxp)]The algorithm attempts to �nd multipliers that maximize ', where the multi-pliers should also have the property to give a unique solution in the x-variables.If this is possible, then an optimal feasible integer solution to the original prob-lem has also been found. However, this is rarely the case, so straightforwarditeration of the multipliers �i usually converges to a lot of zeros in the reducedcosts, violating the desired uniqueness in the solution.The critical idea of the algorithm is therefore to allow some manipulation of thecost function that is not invariant, so that a relaxation with these propertiescan be found. This is done by treating positive and negative reduced costsdi�erently, e�ectively pushing them away from the value of zero. Clearly, thisdisturbance should be as small as possible, so that the problem that is actuallysolved will have a solution that is also good for the original problem. Therefore,the amplitude of the disturbances are successively increasing during iteration,until convergence occurs.The details of this algorithm are described in [22], and it is also shown that fordi�erent amplitudes the algorithm can be interpreted in terms of linear pro-

Crew Pairing Optimization 23gramming, dynamic programming, and as a greedy algorithm. The increasingamplitude therefore e�ectively achieves an interpolation between these di�erentalgorithmic design principles.In practice, it turns out that for set covering, the optimizer can easily andpredictably solve very large set covering problems up to about two million vari-ables (with 5-10 times as many non-zeros in the coe�cient matrix), the limitingfactor being not running time but memory. When the algorithm was imple-mented in 1992 it was signi�cantly faster than commercial linear programmingand Branch-and-Bound based optimizers such as CPLEX [22] also for moder-ately sized problems, while the solution quality was about the same. A recentstudy [12] has shown that if the integrallity gap is small enough, CPLEX canbe competitive on smaller problems with up to about one million non-zeros inthe coe�cient matrix.3.2 The rule systemAll rules and cost functions for the Carmen system are written in the rulelanguage, designed to be as convenient as possible for specifying rules. Therestrictions of the language and the design of the compiler also makes it impos-sible to crash the system through rule programming errors.When a rule set has been written it is compiled and linked, and can then beused by any part of the system. At present, the compilation target is C codethat is linked dynamically into the system. Compilations can be tailored toeither manual or automatic rule checking, and can be specialized to speci�cconstraints by partial evaluation. Empirically, only a small set of the rulesare actually applicable to any particular problem, and such optimizations cantherefore speed up the rule checking process considerably.The rule languageThe rule language is a highly specialized and strictly type checked functionallanguage, sharing many general properties with such languages, the fundamen-tal exception being that recursion is not allowed. General information aboutfunctional languages can be found elsewhere, and we will here outline somespeci�c properties of the rule language.The basic purpose of a rule set is to determine the conditions under which aline of work for an individual is legal or not. The language provides a large

24 Chapter 1number of prede�ned access functions for accessing the data in a line of work.New expressions and functions operating on this data can be de�ned, and arule program is simply a collection of such functions and expressions. Thetop level construct is the rule, which in its basic form is a boolean function,its value determining whether this rule is violated or not. The language itselfdoes not specify the order in which rules are called, and any repetitions of rulechecks, looping over di�erent lines of work etc. are handled automatically bythe system.The lowest level of the line of work is the leg, or other similar activity suchas training. However, for easy and convenient access to the data, the legsare clustered on several prede�ned levels. Such clustering includes "rotation","rotation day" i.e. all rotations in a particular day, and "line of work" whichis the top level. Most access functions refer to individual legs, such as "aircrafttype", "departure" etc, but some refer directly to a higher level. The languagecontains prede�ned constructs for working on these higher levels, so that forexample the total ying time on a working day can easily be expressed.In addition, the rule language provides a lot of specialized functionality tofacilitate the description of rules, some examples being:data types and functions for easy handling of time calculationsinternal and external tables for additional dataexternal parameters for modifying the rules without recompilationconsistent handling of inadequate data with the "void" valuefacilities for grouping and activation of rules and rule setsnumerical penalties and exceptions to enable soft rules and temporary rulerelaxationAs an example of what an actual rule might look like, we give the followingsource code for maximumwork time in a duty period:rule max_duty_a =%fdp_length% <= %max_duty_acclimatized%;

Crew Pairing Optimization 25remark "Maximum scheduled FDP acclimatized";end%fdp_length% = last(leg, arrival) - first(leg, departure) + 2:00;%max_duty_acclimatized% = matrix m_max_duty_acclimatized;matrix m_max_duty_acclimatized =%landings%, %local_checkin% -> %max_duty_acclimatized%;(0,1), 2, 3, 4, 5, - ;(06:00,07:59); 12:00, 11:45, 11:00, 10:15, 9:00, 0:00;(08:00,12:59); 12:00, 12:00, 12:00, 11:45, 10:15, 0:00;(13:00,17:59); 12:00, 12:00, 11:30, 10:45, 9:15, 0:00;(18:00,21:59); 12:00, 11:15, 10:30, 9:45, 9:00, 0:00;(22:00,05:59); 11:00, 10:15, 9:30, 9:00, 9:00, 0:00;endIn this code, the rule %max duty a% speci�es that the expression %fdp length%must be less than or equal to the expression %max duty acclimatized%. Theseexpressions are then de�ned, %fdp length% by accessing some data in the line ofwork, and %max duty acclimatized% by the use of a "matrix", whose (scalar)value is determined by table lookup based on the values of %landings% and%local checkin%.4 PRACTICAL EXPERIENCE WITH THECARMEN SYSTEMThe Carmen system is now in production at Alitalia, KLM, Lufthansa andSAS. These airlines use the Carmen system for cockpit as as well as for cabincrew. Currently the system is being modi�ed for railway crew scheduling. Thisnew system is planned to go into production at the Swedish Railways during1996.The airlines using the Carmen system today operate 3000 to 10000 ight legsa week. The total set of crew pairings have to cover 2-3 cockpit positions,and 3 to 20 cabin crew positions. To create and manage this set of pairings

26 Chapter 1through all stages of planning an airline needs a team of 2-5 full time systemusers. It is also common that the airline keeps a full time person assigned towriting rules and report speci�cations. The fact that the Carmen system ishighly programmable strongly in uences how the system is actually used, anda number of qualitatively new issues have appeared.De�ning the rulesFor many European airlines, the rule set is not strictly de�ned, and rules aredeveloped in a feedback process where they are modi�ed after inspecting theoptimized schedules. For example, the rule writer can implement proposedrule modi�cations, allowing easy evaluation of the cost and other aspects ofthese changes, and this information is used in union negotiations. It has beenestimated by one airline that the capability to control the cost impact of rulechanges gives even higher savings than optimization only, given the original setof rules. Airlines using the Carmen system have raised pairing productivity by3 - 10 percent during the period the system has been in use.It is also common that the hard legal and contractual rules are much lessrestrictive than the rules actually applied by a planner. If, for instance, it isallowed to work 12 hours a day the planner may still have good reasons not tocreate longer days than 10 hours. One reason for this could be that another ruleprohibits work more than 42 hours in 7 days so "too long" duty periods willbe useless in rostering. Another reason could be that the planner knows thatcrews will call sick on too hard working days so the gain in the early planningstage will be lost later on. The way this is usually handled in the system is bystrong penalties on pairings coming close to the rule limits.Di�culties of rule programmingGiving control to the user through the rule system, some issues that otherwisewould occur only as implementation problems appear at the user level, and itbecomes necessary and sometimes di�cult to enforce the skill and discipline inwriting the rules. This is true especially since the rules will typically be calledvery many times in the pairing generator, and the rule checking can easilydominate the total running time.First, it turns out that a complete rule implementation covering all eets,longhaul, shorthaul, all crew categories, di�erent union agreements, schedul-ing standards etc. is very large. It is not uncommon that these complete rulesets contain 10 - 20 times as many rules as are relevant for a single optimizationproblem. Managing the large rule set becomes a problem in itself which is often

Crew Pairing Optimization 27in con ict with the need to optimize rules for each speci�c planning problem.It has therefore been non-trivial to obtain production performance comparableto the performance of much simpler test programs used in initial tests. Onesolution has been to develop the partial evaluator, that e�ectively �lters outaspects of the rules that are not relevant for a particular problem.While the rule language can be used to create more or less arbitrary rules, caremust also be taken so that the feasible set of pairings de�ned by the rules hasthe property that any part of a legal pairing is also legal. If not, the searchalgorithm in the generator will have di�culties in �nding legal pairings. For in-stance, a rule can be phrased: "it is allowed to have a rest time shorter than 10hours if the crew member returns to base within 8 hours after the terminationof that rest time". If all pairings which do not return to base within 8 hoursare illegal, the generator may not �nd any pairings returning to base becausethe �rst leg on the route back will always be illegal. In the Carmen system thisproblem is handled by detection mechanisms giving warning messages in run-time. That way the rule writer gets feedback about these subchain illegalitiesand can correct her rules. In the example above, she would rephrase the ruleto allow all pairings with duty periods shorter than 8 hours after a short resttime.Rules to control generationAnother aspect of rule writing is that rules can be added to the rule set toactively reduce the search space for the generator. This is important in practice,and makes it possible to exploit user experience and the special characteristicsof individual problems.For example, there are problems where one day pairings are preferred but wherealso a few �ve day pairings are necessary. Almost all of the computing timewould probably be spent on �nding those few 5 day pairings, if nothing isdone speci�cally to focus the search on shorter pairings. With the system, thisproblem is handled by inventing rules de�ning the conditions under which theintractable pairings are allowed. For instance: "5 day pairings are only allowedif destinations ATH or BEY are touched". Many heuristic rules like this haveto be invented to make the system e�cient for large problems. This, of course,requires that the person responsible for writing rules has a good understandingof how the generation process works.A way to build know-how on smart rule writing is to encourage users fromdi�erent airlines and railways to meet and exchange ideas and experiences.Such a user group for Carmen has been formed recently. Perhaps also, as the

28 Chapter 1European airline community gets more accustomed to automatic scheduling,the hard rules will evolve to more accurately de�ne the solution space.DeadheadingAnother di�cult issue is deadheading. Although deadheads are intractable andgood pairing solutions only contain a few, it may require more work to �ndthose few deadheads than to search connections for on-duty ights. A smallcharter problem with 500 on-duty legs, may require intelligent search in a set of20000 potential deadhead legs. Sometimes deadheading on other airlines, trainsor limousines are preferred. Double deadheading is not unusual on irregularlonghaul schedules. The end user therefore needs to tune a number of deadheadsearch parameters to �nd a good compromise between speed and the program'sability to �nd appropriate deadheads. Obviously, a more extensive deadheadsearch can be a�orded on the small charter problem than on a big shorthaulproblem.The fact that the Carmen system uses a set covering approach to select pairingsadds another problem dimension to deadheading. Deadheads can be created bythe set covering optimizer because it is cheaper to cover a leg twice. If a pairingturns illegal when an on-duty leg is changed to a deadhead leg, the set coveringsolution may be useless. A good example of this problem is the Alitalia MD80 eet of 1993, when all crews were based in Rome. A large number of ightsdeparted from Milan and deadheading between Rome and Milan was necessary.However, the minimum connection time in Milan was 10 minutes longer if onearrived to Milan by a deadhead ight. Therefore, when the set covering opti-mizer created deadheads out of legs with short (and e�cient) connections thosepairings became illegal. This problem can be attacked in two ways. First, therule writer has to avoid unnecessary rules to restrict deadheading and replacesuch rules with penalties. Secondly, the heuristic reshu�ing of deadheads dur-ing the solution process, together with explicit search for deadhead alternativescan minimize this problem.5 CONCLUSIONS AND FUTUREDEVELOPMENTSThe pairing optimization problem is a key problem in the resource managementof airlines. A number of systems developed and used in North America havebeen described in the literature. In Europe most major airlines have chosen to

Crew Pairing Optimization 29use the Carmen pairing construction system. We believe that the success of thissystem is mainly due to the integration of manual and automatic scheduling,robust and high quality optimization, and a unique degree of user programma-bility.The Carmen system is continuously being developed and improved. Cur-rently the rule language is being revised to improve both rule writing and rulechecking. Also a major development project in cooperation with Lufthansa,Chalmers University of Technology, Gothenburg, Sweden and University of Pa-tras, Greece has just been launched. This project is supported by the Espritprogram of the European Community and the objective is to further developthe modeling and optimization techniques of the Carmen system. In addition,parallel implementations will be investigated, to enable further reduction of theplanning cycles.REFERENCES[1] Anbil, R., E. Gelman, B. Patty and R. Tanga (1991) "Recent Advances inCrew-Pairing Optimization at American Airlines", Interfaces, vol. 21. no.1, pp. 62-74.[2] Anbil, R., R. Tanga and E.L. Johnson (1992), "A global approach to crew-pairing optimization", IBM Systems Journal, vol. 31, no. 1, pp. 71-78.[3] Anbil, R., C. Barnhart, L. Hatay, E.L. Johnson and V.S. Ramakrishnan(1993), "Crew-pairing Optimization at American Airlines Decision Tech-nology",Optimization in Industry, eds.: Ciriani, T.A. and R.C. Leachman,John Wiley and Sons Ltd..[4] Barutt, J. and T. Hull (1990), "Airline Crew Scheduling: Supercomputersand Algorithms", SIAM News, vol. 23, no. 6, pp. 1 and 20-22.[5] Caparara, A., M. Fischetti and P. Toth (1995), A Heuristic Algorithm forthe Set Covering Problem, working paper.[6] Ceria, S., P. Nobili and A. Sassano (1995), A Lagrangean-based Heuristicfor Large-scale Covering Problems, working paper.[7] Cplex Optimization Inc. (1994), Using the CPLEX Callable Library, CplexOptimization Inc., Suite 279, 930 Tahoe Blvd., Bldg. 802, Incline Village,NV 89451-9436, USA.

30 Chapter 1[8] Desaulniers, G., J. Desrosiers, M.M. Solomon and F. Soumis (1994), DailyAircraft Routing and Scheduling, Research report G-94-21, GERAD, Mon-treal, Canada.[9] Desaulniers, G., J. Desrosiers, Y. Dumas, S. Marc, B. Rioux, M.M.Solomon and F. Soumis (1995), Crew Pairing at Air France, Researchreport G-93-39, GERAD, Montreal, Canada.[10] Desrosiers, J., Y. Dumas, M.M. Solomon and F. Soumis (1995), "TimeConstrained Routing and Scheduling", in Handbooks in Operations Re-search and Management Science, vol. 8: Network Routing, eds.: Ball, M.O.,T.L. Magnanti, C.L Monma and G.L. Nemhauser, North-Holland, Ams-terdam, The Netherlands.[11] Elmroth T. and Housos E. (1996), "Automatic Subproblem Optimizationfor Airline Crew Scheduling", Interfaces (to be published).[12] Engel, F. (1995), Summary over test runs, Internal report, Carmen Sys-tems AB, Gothenburg, Sweden.[13] Gar�nkel, R.S. and G.L. Nemhauser (1972), Integer Programming, JohnWiley and Sons.[14] Gershko�, I. (1989), "Optimizing Flight Crew Schedules", Interfaces, vol.19, no. 4, pp. 29-43.[15] Graves, G.W., R.D. McBride and I. Gershko� (1993), "Flight CrewScheduling", Management Science, vol. 39, no. 6, pp. 736-745.[16] Ho�man, K.L. and M. Padberg (1993), "Solving Airline Crew SchedulingProblems by Branch-and-Cut", Management Science, vol. 39, no. 6, pp.657-682.[17] Lavoie, S., M. Minoux and E. Odier (1988), "A new approach for crewpairing problems by column generation with an application to air trans-portation", European Journal of Operational Research, vol. 35, pp. 45-58.[18] Marsten, R. (1994), Crew Scheduling with RALPH, Presentation givenat the workshop "Optimization in Production and Transportation", TheHague, The Netherlands, November 9-11, 1994.[19] Nemhauser, G.L and L.A. Wolsey (1988), Integer and Combinatorial Op-timization, Wiley - Interscience.[20] Pulleyblank, W.R. (1994), An Airline Crew Pairing Optimization Sys-tem, Presentation given at the workshop "Optimization in Production andTransportation", The Hague, The Netherlands, November 9-11, 1994.

Crew Pairing Optimization 31[21] Ryan, D.M. and J.C. Falkner (1987), " A Bus Crew Scheduling SystemUsing a Set Partitioning Model", Asia Paci�c Journal of Operational Re-search, no. 4, pp. 39-56.[22] Wedelin, D. (1995), "An algorithm for large scale 0-1 integer program-ming with application to airline crew scheduling", Annals of OperationsResearch, vol. 57, pp. 283-301.