15-853 page1 15-853:algorithms in the real world linear and integer programming v – case study:...

20
15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

Upload: harold-mills

Post on 14-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page1

15-853:Algorithms in the Real World

Linear and Integer Programming V– Case Study: Airline Crew Scheduling

Page 2: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page2

American Airlines (soon USAirways)

Problem: Schedule crew (pilots and flight attendants) on flight segments to minimize cost.– over 25,000 pilots and flight attendants– over $1.5 Billion/year in crew costs

Assumes the flight segments are already fixed.Methods described today:

– 1970-1992: TRIP (Trip Reevaluation and Improvement Program). Local optimization given an initial guess

– 1992-present? Global optimization (approximate)

Page 3: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page3

Algorithms in the Real World

Editor’s note from a paper on the topic: “A crew resource planning manager at the subject company confirmed to me that the work described in this paper has been in regular operational use since its completion, that it has been used to support labor negotiations, and that while its benefits have not been quantified, the system is an improvement over the prior system and is working well. For commercial reasons, the subject company wants to remain anonymous.

Page 4: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page4

Crew Pairings

Example: A 2 day crew pairing with DFW (Dallas-Fort Worth) as the base.

Duty period 1Sign in: 8:00DFW 9:00-10:00 AUS (segment 1)AUS 11:00-13:00 ORD (segment 2)ORD 14:00-15:00 SFO (segment 3)

Overlay in SFODuty period 2

Sign in: 7:00SFO 8:00-9:00 LAX (segment 4)LAX 10:00-11:45 SAN (segment 5)SAN 13:00-19:30 DFW (segment 6)Sign out: 19:45

Page 5: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page5

Properties of Pairings

National pairings typically last 2 or 3 days.

Crew work 4 or 5 pairings per month.

Collection of pairings in a month is a Bidline.– Other work has considered optimizing the

bidlines. Today we will just discuss pairings.– Crew “bid” on the bidlines (seniority based)

Page 6: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page6

Constraints on Pairings

Union and Federal Aviation Agency (FAA) rules

Some example constraints– 8 hours flying per duty period– 12 hours total duty time– Minimum layover time – depends on hours

of flying in previous duty period– Minimum time between flights in a duty

period

Page 7: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page7

Cost of Pairings

Cost can include both direct and indirect costs (e.g. employee satisfaction).

Example contributions to “cost”.– Total duty period time– Time away from base (TAFB)– Number and locations of overlays– Number of time zone changes– Cost of changing planes

Page 8: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page8

Overall Goal

Cover all segments with a set of valid pairings that minimize costs.

Must also consider number of crew available at crew bases.

Crew pairings (as well as flight schedules) are generated on a monthly basis.

Problem is simplified since flights are pretty much the same every day. The monthly boundaries can cause some problems.

Page 9: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page9

Possible Approach

Consider all valid pairings and generate cost for each.

Now solve as a set covering problem:Given m sets and n items:

otherwise 0,

included is jset if ,1iset ofcost

otherwise ,0

i item includes jset if ,1

j

i

ij

x

c

A

minimize: cTx

subject to: Ax 1, x binary

Problem: Billions of possible pairings

Page 10: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page10

Example Formulation

Segments to be covered:1. DFW 9-12 LGA

2. LGA 13-15 ORD

3. ORD 16-18 RDU

4. ORD 17-19 DFW

5. RDU 19-21 LGA6. RDU 19-21 DFW7. LGA 14-16 ORD8. DFW 16-18 RDU

Pairings:1. DFW 9-12 LGA 14-16 ORD 17-19 DFW (1,7,4)2. LGA 13-15 ORD 16-18 RDU 19-21 LGA (2,3,5)3. ORD 16-18 RDU 19-21 DFW 9-12 LGA 13-15 ORD

(3,6,1,2)4. DFW 16-18 RDU 19-21 DFW (8,6)5. DFW 16-18 RDU 19-21 LGA 14-16 ORD 17-19 DFW

(8,5,7,4)

Page 11: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page11

Example Formulation (cont.)

11011000

10100000

00100111

00010110

01001001

TA

54321 cccccc

Page 12: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page12

Old System, TRIP (->1992)

1. Select an initial solution (set of pairings)Typically a modification from previous month

2. Repeat the following until no more improvements: - Select small set of pairings from current solution

Typically 5-10 pairings from the same region- Generate all valid pairings that cover the same

segments, and cost for eachTypically a few thousand

- Optimize over these pairings using the set-partitioning problem.

Advantage: Small subproblemsProblem: Only does local optimization

Page 13: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page13

Newer System

Anbil, Tanga, Jonhson:1. Generate large “pool: of pairings

About 6 million.2. Solve LP approximation using specialized

techniques3. Use “branch-and-bound” for IP solution, with

heuristic pruning

Each LP takes about an hour (possibly faster now)Does not guarantee best solution because of the

pruning step, but much better than TRIP.

Page 14: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page14

Generating the Pool of Pairings

Disclaimer: This is speculative since the authors say very little about it.

Generating 6 million initial pairings out of billions of possible pairings1. Generate graph

- Vertex: time and airport- Edge: flight-segment, wait-time, or

overlay- Edge weight: “excess cost” of edge

2. Find 6 million shortest valid paths (e.g.by union rules) in the graph that start and end at a crew base

This is a heuristic that prefers short TAFB.

Page 15: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page15

Shortest Path Graph

Each edge is given a weight based on approximate cost (full cost not known without rest of pairing)

DFW

LGA

ORD

RDU

time

Day 1 Day 2 Day 3

Page 16: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page16

Solving the LP Approximation

1. Select a small set of m columns (pairings),Call this submatrix A. m = 5000

2. Repeat until optimal solution found- Optimize problem based on A- Use the basic variables to “price” the

remaining variables and set A to the m “best (i.e. pick 5000 minimum reduced costsr = cbB-1N –cn)

Page 17: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page17

Using the LP for the IP

Algorithm:• Solve the LP approximation across 6 million columns• Select about 10K pairings with best reduced cost• Repeat until all segments have a follow on:

1. For all non-zero pairings, consider all adjacent segments (si,sj) in the itineraries

2. Add weights from the pairing that include them, and select maximum sum across all (si, sj).

3. Fix (si, sj) and throw out all pairings that include (si,sk), k j

4. Solve the LP again5. Add new columns from original 6 million if

system becomes infeasible

Page 18: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page18

Example: from before

11011000

10100000

00100111

00010110

01001001

TA

1 7 4 1/2

2 3 5 1/2

3 6 1 2 1/2

8 6 1/2

8 5 7 4 1/2

Segment pairs (1,7)

(1,2)

(2,3)

(3,5)

(7,4)

rest

Summed weights

1/2 1/2 1 1/2 1 1/2

segments LP solution

We therefore fix (2,3) : LGA 13-15 ORD 16-18 RDU and (7,4): LGA 14-16 ORD 17-19 DFW We don’t throw out any pairings since 2 and 7 are not followedby anything other than 3 and 4, respectively

Page 19: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page19

Additional Constraints

Need to account for the number of crew available at each base– Add constraints with maximum and

minimum hours available from each baseNeed to patch between months.

– Separately schedule first two days of each month with additional constraints put in from previous month.

Handling canceled or delayed flights.– Currently done by hand – every base has a

small set of reserve crew.

Page 20: 15-853 Page1 15-853:Algorithms in the Real World Linear and Integer Programming V – Case Study: Airline Crew Scheduling

15-853 Page20

Some Conclusions

• Use of special purpose techniques• Mostly separates the optimization from the

cost and constraints rules.• Solves 6 million variable LP as a substep.• It is hard to get specifics on money saved

(initial papers were much more forthcoming)