Title: Crew Pairing Optimization with Genetic Algorithms
1Crew Pairing Optimization with Genetic Algorithms
- Harry Kornilakis and Panagiotis Stamatopoulos
- Department of Informatics and Telecommunications
- University of Athens
- harryk,takis_at_di.uoa.gr
- The Crew Pairing Problem
- Solution to the Crew Pairing Problem
- Pairing Generation
- Optimization Using Genetic Algorithms
- Experimental Results
- Conclusions
2The Crew Pairing Problem (1/2)
- The Crew Pairing Problem (CPP) is an important
optimization problem that is part of the airline
crew scheduling procedure. - Crew scheduling Crew pairing Crew assignment
- Given a timetable containing all the flight legs
that an airline company must carry out, the
objective of the crew pairing problem is to
generate leg combinations (pairings) of minimum
cost that cover all given flight legs.
3The Crew Pairing Problem (2/2)
- A pairing is a round trip, consisting of a
sequence of legs, which starts and ends at the
crew's home base. - Each pairing is composed of a number of legal
workdays, called duties, which are separated by
rest periods. - The CPP is the problem of finding a set of
pairings, covering all legs that the airline has
to carry out, with a minimal cost.
4Constraints of the CPP
- Temporal constraints
- Spatial constraints
- Constraints concerning the type of airplane used
(fleet constraints) - Constraints due to laws and regulations (e.g.
maximum duration of a duty, minimum rest period
between two duties etc.)
5Further Considerations on the CPP
- Deadheading Crew members travelling as
passengers, in order to move to a specific
airport and continue a round trip. - Cost Function Usually depends on the crews
wages and can be quite complicated. - Modeling of the Constraints Highly non-linear
and hard to model constraints. Linear programming
inadequate. - Huge size of the search space
6Solving the Crew Pairing Problem (1/2)
- Two Phase Procedure
- 1. Pairing Generation A large number of legal
pairings, composed of the legs in the timetable,
is generated. - 2. Optimization A subset of the generated
pairings is selected, so that every flight leg in
the schedule is included in at least one pairing
and the total cost is minimized.
7Solving the Crew Pairing Problem (2/2)
- Pairing generation is also divided in two phases
- We generate a large set of legal duties from the
flight legs - We generate the set of pairings by using the
duties previously found
8Pairing Generation (1/2)
- L Set of all the flight legs
- Constraints defined as a function C 2L ?
0,1, where 2L is the powerset of L, C (p)1 if
p is a legal pairing and C (p)0, if not. - We want to generate a set of pairings
- P p ? 2L C (p)1, i.e. the set of
pairings that satisfy all the constraints. - Checking for the satisfaction of the constraints
is independent of the optimization phase.
9Pairing Generation (2/2)
- First Phase Generation of duties from legs
- Implemented as a depth-first search in the space
of all possible subsets of the set of all flight
legs. - The number of legal duties found might be too
large, so we also perform an algorithm that
selects the best in order to use them in the next
phase. - Second Phase Generation of pairings from duties
- Works similarly to the first phase but instead of
duties it generates pairings.
10Optimization (1/2)
- Modeled as a set covering problem
- Given a set M with m elements and n subsets ?j of
M with associated costs cj , j 1,2 n, select a
number of these subsets such that every element
of M is contained in a least one selected subset
and the total cost of all selected subsets is
minimum. - Set covering has been proven to be NP-complete
(Garey Johnson, 1979)
11Optimization (2/2)
- Existing Methods for the set covering problem
- Exact Methods For average sized problems
- Approximate Methods Give approximate solution to
large sized problems - Our Method is a modification of an algorithm by
Beasley Chu (1996)
12Genetic Algorithms (1/2)
- Genetic algorithms (GA) Methods for random
search based on the evolutionary process of
species, found in nature. - Each possible solution is encoded as a string
(chromosome). Each character of the chromosome is
called a gene. - The quality of each solution is represented by a
real valued function defined over the set of all
chromosomes (fitness function).
13Genetic Algorithms (2/2)
- Two of the fittest members of the population are
selected and combined to produce a new solution
(crossover). Then a few random genes of the new
solution are changed (mutation) in order to avoid
local minima in the search. - New individuals replace the weaker members of the
existing population.
14Genetic Algorithm for Crew Pairing Optimization
(1/4)
- Binary String Coding Each chromosome has length
equal to number of pairings. Each gene
corresponds to one pairing. If the gene is 1 then
the corresponding pairing is in the solution,
otherwise it is not. - Fitness Function Si ci gi
deadheadingPenalty deadheadedFlights - ci is the cost if the i-th pairing
- gi is the value of the i-th gene of the solution
- deadheadingPenalty is a constant to penalize
deadheaded flights - deadheadedFlights is the number of deadheaded
flights
15Genetic Algorithm for Crew Pairing Optimization
(2/4)
- Selection of Parents based on their order in the
population, sorted in descending order based on
their fitness function, not on the absolute value
of the fitness. - Crossover Uniform crossover, i.e. if the i-th
gene of both parents is 1 (respectively 0) then
the i-th gene of the offspring is set to 1
(respectively 0). Otherwise its value is randomly
selected. - Mutation A few genes of the new solution are
randomly set to 1 or 0 with probability that
depends on the density (the percentage of genes
equal to 1) of the fittest individual of the
population.
16Genetic Algorithm for Crew Pairing Optimization
(3/4)
- Correcting the Solution After crossover and
mutation the new solution might be infeasible. - Correction Algorithm The value of some genes is
changed to 1 until every flight leg is covered
and the solution becomes feasible. For each
uncovered leg in the solution, we add a pairing
that covers that leg. To select one pairing among
all the pairings which contain that particular
leg, we use a heuristic that favors pairings of
low cost that cover as many uncovered legs as
possible and as few legs already covered as
possible.
17Genetic Algorithm for Crew Pairing Optimization
(4/4)
- Randomly generate an initial population of
chromosomes. - Repeat until a satisfactory solution is reached
- Select two of the fittest members of the
population for parents. - Apply the crossover operator on the two parents
to produce a child chromosome. - Apply the mutation operator on the child
chromosome. - Correct the child chromosome so that it becomes
a feasible solution. - Select one of the weakest members of the
population to be replaced. - Replace the selected individual with the child.
18Experimental Results
- Input data Real data from the flight schedule of
Olympic Airways (737-200 fleet, April 1998),
which was composed of 2100 flight legs, passing
through 29 different airports. - Constraints Based on the regulations of the
Olympic Airlines for cockpit crews. - Pairing Generation 22090 legal duties and then
11981 legal parings were generated and stored. - Optimization After 20000 generations a solution
of cost 976004 and of zero deadheading was found.
19Progress of the Optimization (1/2)
20Progress of the Optimization (2/2)
21Comparison of our Method and Parachute (1/2)
- We compared our result with the result found by
the project PARACHUTE, a project that combines
constraint programming with parallel computing.
We ran PARACHUTE on the same data set and used
the same constraints. - Our method gave a solution of cost lower by
194148 (16.5).
22Comparison of our Method and Parachute (2/2)
23Conclusions
- We separated the Crew Pairing Problem in two
phases. - A depth-first search was used in the first phase
and a genetic algorithm in the second. - Experimental results with real data were
satisfactory improving on previous result and
showing that the solution is viable.