SMART Seminar Series: Using Column-and-Row Generation to Solve the Integrated Airline Recovery Problem
1. Using column-and-row generation to solve the
integrated airline recovery problem
Stephen J Maher
Zuse Institute Berlin
Berlin, Germany
14th November 2014
1 / 31
2. Need for airline recovery
The real world is uncertain
◮ It is almost impossible to achieve 100% on-time performance.
◮ Events are difficult to predict, effects are unknown.
On-Time Arrival Performance National (April 2014)
On Time - 79.64%
Air Carrier Delay - 5.34%
Weather Delay - 0.4%
National Aviation System Delay - 5.75%
Security Delay - 0.02%
Aircraft Arriving Late - 7.47%
Cancelled - 1.15%
Diverted - 0.22%
Figure: On-Time Arrival Performance National (April 2014). Source: Bureau of Transportation
Statistics, Airline Service Quality Performance 234
2 / 31
11. Achieving fast airline recovery solutions
Common Strategies:
◮ Sequential solution process.
◮ Limiting recovery options.
◮ Approximation of problem - Select subset of flights, crew or aircraft.
6 / 31
12. Alternative approach for fast recovery solutions
Features of this approach
◮ Solved using column-and-row generation.
◮ No approximation is made regarding the included crew and aircraft.
◮ Time to return back to schedule given by a recovery window.
◮ Full set of recovery options used.
7 / 31
14. Integrated Recovery Problem - IRP
Objective: Minimise the cost of recovery.
◮ Additional crew costs (including reserve crew)
◮ Flight delay and cancellation costs (considering the delayed
passengers).
Constraints:
◮ Every flight must be operated by exactly one crew and one aircraft.
◮ otherwise the flight is cancelled.
◮ Crew and aircraft must terminate at permissible overnight bases.
◮ If a flight is delayed, crew and aircraft must operate the same departure
time for that flight.
9 / 31
15. Considering passengers - IRP-PR
Objective: Minimise the cost of recovery.
◮ Additional crew costs (including reserve crew)
◮ Flight delay and cancellation costs (considering the delayed, reallocated
and stranded passengers).
Constraints:
◮ Every flight must be operated by exactly one crew and one aircraft.
◮ otherwise the flight is cancelled.
◮ Crew and aircraft must terminate at permissible overnight bases.
◮ If a flight is delayed, crew, aircraft and passengers must operate the
same departure time for that flight.
10 / 31
16. Recovery policies
◮ Generate new crew pairings and aircraft routes.
◮ Flight delays.
◮ Flight cancellations.
11 / 31
17. Recovery policies
◮ Generate new crew pairings and aircraft routes.
◮ Flight delays.
◮ Flight cancellations.
11 / 31
18. Recovery policies
◮ Generate new crew pairings and aircraft routes.
◮ Flight delays.
◮ Flight cancellations.
11 / 31
19. Flight delays - Using flight copies
Flight delays are modelled using the technique of flight copies.
12 / 31
20. Flight cancellations - Reallocation of passengers
Assigning passengers to the next available flight.
13 / 31
21. Flight cancellations - Reallocation of passengers
Assigning passengers to the next available flight.
13 / 31
22. Flight cancellations - Reallocation of passengers
Assigning passengers to the next available flight.
13 / 31
23. Flight cancellations - Reallocation of passengers
Assigning passengers to the next available flight.
13 / 31
27. Integration of crew and aircraft
Delay Consistency Constraints.
X
k∈K
X
p∈Pk
r
Xakv
xk
jp p −∈R
X
p∈Pr
arv
jp yrp
= 0 8j 2 ND
, 8v 2 Uj
14 / 31
28. Integration of crew and passengers
Passenger Reallocation Constraints.
X
k∈K
X
p∈Pk
akv
jp xk
p Maxcap − Pax(j) −X
i∈Nj
X
p∈Pi
hv
ijpzip 0 8j 2 ND
, 8v 2 Uj
15 / 31
29. Solution approaches
Column Generation
◮ Commonly applied to airline optimisation problems.
◮ Master problem - Ensure complete coverage of flights with crew and
aircraft, provide reallocation options for passengers.
◮ Subproblem - Generate feasible strings of flights for crew and aircraft,
and reallocation schemes for passengers.
Row Generation
◮ Reduce the size of the master problem by eliminating rows.
◮ Dynamically reintroduce rows back to the master problem.
16 / 31
33. Forming the reduced problem
(RMP)
min cK xK + cRyR + dNzN
s.t. AK xK + AK
NzN = bK
ARyR = bR
AK
DxK − ARD
yR = 0
AK
DxK − AZ
DzN = 0
xK
yR
zN 0
, , 1. Original formulation of integrated
problem.
18 / 31
34. Forming the reduced problem
(RMP)
min cK xK + cRyR + dNzN
s.t. AK xK + AK
NzN = bK
ARyR = bR
ˆAK
DxK − ˆARD
yR = 0
A′K
xK D − A′R
yR D = 0
AK
ˆDxK − AZ
ˆDzN = 0
A′K
xK − A′Z
zN D D = 0
xK
yR
zN 0
, , 1. Original formulation of integrated
problem.
2. Partition delay consistency
constraints into allowable and
non-allowable delays.
18 / 31
35. Forming the reduced problem
(SRMP)
min cK xK + cRyR + dNzN
s.t. AK xK + AK
NzN = bK
ARyR = bR
ˆAK
DxK − ˆARD
yR = 0
AK
ˆDxK − AZ
ˆDzN = 0
xK
yR
zN 0
, , 1. Original formulation of integrated
problem.
2. Partition delay consistency
constraints into allowable and
non-allowable delays.
3. Formulate and solve the problem
using only the allowable delay
constraints.
18 / 31
36. Solving the SRMP
◮ The SRMP contains less rows than the RMP. Hence, it is expected to
have reduced complexity.
◮ The elimination of rows from the RMP results in variable fixings in the
column generation subproblems.
◮ Each row in the SRMP represents an allowable delay option.
◮ The optimal solution to the SRMP is an upper bound on the optimal
solution to the RMP.
19 / 31
37. Solving the SRMP - Column generation
Aircraft Variables
◮ Shortest path problem solved for each aircraft.
Crew Variables
◮ Multiple label shortest path problem solved for each crew. Must satisfy
complex work rules.
Cancellation Variables
◮ Bounded knapsack problem solved for each flight.
◮ The use of flight copies means a reformulation of subproblem is required for
an efficient solution approach.
20 / 31
38. Row generation
Two part procedure:
◮ Compute an optimal dual solution to the RMP.
◮ Identify rows that are expected to improve the current upper bound.
21 / 31
39. Row generation - Optimal dual solution
(RMP′)
min cK xK + cRyR + dNzN
+ ˜cR ˜yR + ˜dN ˜zN
s.t. AK xK + AK
NzN + ˜AK
N ˜zN = bK
RD
ARyR + AR ˜yR ˜= bR
AK
ˆDxK − AˆyR = 0
− A′R
D ˜yR = 0
DzN = 0
ˆAK
DxK − ˆAZ
D ˜zN = 0
− A′Z
xK
, yR
, zN 0
Aim: Compute RMP′ dual solution.
22 / 31
40. Row generation - Optimal dual solution
(RMP′)
min cK xK + cRyR + dNzN
+ ˜cR ˜yR + ˜dN ˜zN
s.t. AK xK + AK
NzN + ˜AK
N ˜zN = bK
RD
ARyR + AR ˜yR ˜= bR
AK
ˆDxK − AˆyR = 0
− A′R
D ˜yR = 0
DzN = 0
ˆAK
DxK − ˆAZ
D ˜zN = 0
− A′Z
xK
, yR
, zN 0
Aim: Compute RMP′ dual solution.
1. Identify that SRMP optimal
solution is optimal for RMP′.
22 / 31
41. Row generation - Optimal dual solution
(RMP′)
min cK xK + cRyR + dNzN
+ ˜cR ˜yR + ˜dN ˜zN
s.t. AK xK + AK
NzN + ˜AK
N ˜zN = bK
RD
ARyR + AR ˜yR ˜= bR
AK
ˆDxK − AˆyR = 0
− A′R
D ˜yR = 0
DzN = 0
ˆAK
DxK − ˆAZ
D ˜zN = 0
− A′Z
xK
, yR
, zN 0
Aim: Compute RMP′ dual solution.
1. Identify that SRMP optimal
solution is optimal for RMP′.
2. Compute Dual: For each row in
A′R
D , solve aircraft variable
subproblem forcing a non-zero.
22 / 31
42. Row generation - Optimal dual solution
(RMP′)
min cK xK + cRyR + dNzN
+ ˜cR ˜yR + ˜dN ˜zN
s.t. AK xK + AK
NzN + ˜AK
N ˜zN = bK
RD
ARyR + AR ˜yR ˜= bR
AK
ˆDxK − AˆyR = 0
− A′R
D ˜yR = 0
DzN = 0
ˆAK
DxK − ˆAZ
D ˜zN = 0
− A′Z
xK
, yR
, zN 0
Aim: Compute RMP′ dual solution.
1. Identify that SRMP optimal
solution is optimal for RMP′.
2. Compute Dual: For each row in
A′R
D , solve aircraft variable
subproblem forcing a non-zero.
3. Compute Dual: For each row in
A′Z
D , solve cancellation variable
subproblem forcing a non-zero.
22 / 31
43. Row generation - Identify bound improving rows
Given an optimal dual solution to the RMP′:
◮ Solve the crew variable subproblem, permitting the use of all possible
delay options.
◮ If a negative reduced cost column is found, add it to the SRMP.
◮ If the column has a non-zero in an eliminated row, add the row to the SRMP
◮ If no rows are added to the SRMP, then the optimal solution is found.
23 / 31
44. Implementation issues
◮ Not guaranteed to be faster than standard column generation
◮ Employed a row generation warm-up procedure.
◮ Solve RMP for a given number of iterations.
◮ Form SRMP by eliminating all delay consistency constraints containing only
zero coefficients.
◮ Variable fixing heuristic to improve the convergence of branch-and-price.
◮ Identify all variables with a zero reduced cost in the RMP optimal solution at
the root node.
◮ At all successive nodes, only permit the use of delay options used by these
variables.
24 / 31
46. Data and scenarios
Data
◮ Planning stage consists of 262 flights, serviced by 79 crew groups and
48 aircraft.
◮ Flight network has 11 overnight bases for aircraft and 4 crew bases.
Scenarios
◮ 16 scenarios based on airport closures at different times and different
lengths.
◮ 2 major airports in the network.
◮ Each major airport closed for 3 or 5 hours at either 6am, 7am, 8am and
9am.
◮ Recovery window = 6 hours, 7 flight copies.
26 / 31
48. Runtime comparison CRG and CG
Runtime of the IRP-PR using column generation and column-and-row generation
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Scenario Number
3.0
2.5
2.0
1.5
1.0
0.5
0.0
Runtime (x1000 sec)
Time Cutoff - 2700sec
Approach
Colgen
CRG
Figure: 3 hour closure: scenarios 0-7. 5 hour closure: scenarios 8-15. 7 flight copies,
maximum runtime of 2700 seconds (45 minutes).
28 / 31
49. Runtime comparison CRG and CG
◮ Easy scenarios: moderate improvement. Hard scenarios: significant
improvement.
◮ Average relative improvement in solution runtimes is 24.35%.
◮ Improvement observed in all parts of the solution process. E.g. LP solve
and column generation.
29 / 31
50. Scenario completion - Enhancements
16
14
12
10
8
6
4
2
0 500 1000 1500 2000 2500
Runtime (seconds)
0
Number of scenarios solved
Comparison of enhancement techniques for the IRP-PR
Enhancements
Neither Enhancement
Warmup Only
Heuristic Only
Both Enhancements
Figure: Performance profile of column-and-row generation using different
enhancement techniques over 16 disruption scenarios. Maximum runtime of 2700
seconds (45 minutes).
30 / 31
51. Conclusions
◮ Considering passengers in the recovery process significantly reduces
the operational costs.
◮ Applying column-and-row generation helps to improve the solution
runtimes.
◮ While solution runtimes are improved on average, there are instances
with worse runtime performance.
◮ Combination of acceleration techniques are useful for the overall
performance of the algorithm.
31 / 31