Airline Operations Lecture #3 1.206J April 29, 2003 Summary Lecture #2 ? Achieving good passenger service reliability at an acceptable operating costs Disrupted passengers suffer long delays on average (320 minutes) versus non disrupted passengers (14 minutes) Connecting itineraries have a much higher risk of being disrupted than local itineraries (2.7x) Late disruptions are often difficult to recover the same day, much higher flight delay and cancellations at the end of the day Delays accumulate along the day, resulting in relatively high percentage of overnight passengers among disrupted (20%), but still small percentage (0.7% of passengers) G13 G18 G14G13 G14G18 G15G13 G15G18 G16G13 G19 G1A G1B G1C G14G13 G14G14 G14G15 G14G16 G14G17 G14G18 G14G19 G14G1A G14G1B G14G1C G15G13 G15G14 G15G15 G15G16 G15G17 G33G4FG44G51G51G48G47 G24G55G55G4CG59G44G4F G37G4CG50G48 G0BG4BG52G58G55G56G0C G33 G52 G56G4C G57 G4C G59 G48 G49G4F G4C G4A G4B G57 G44G55 G55G4C G59 G44 G4F G47 G48 G4F G44G5C G0B G50 G4C G51 G58G57 G48 G56 G0C Average flight delay per hour, August 2000 Our approach Wisely postpone artificially departures to maintain bank integrity and prevent passengers from missing connections Wisely canceled flights if necessary to prevent delays to propagate and the negative effects on passengers We want our solutions to be feasible for aircraft (maintenance) and crews (schedule) Guarantee solution feasibility: GBE Artificially postponing flight departures does not disrupt more crews: Maintain flight sequence feasibility (duty) Does not include flight copies that violate crew regulation (Maximum Duty Elapsed Time) Do we guarantee maintenance routing feasibility? Summary Lecture #2 (Cont.) Minimize Sum of Disrupted Passengers (M1) GBE Works well (20CPU) for day with severe flight schedule disruptions. Why? Because number of variables relatively small (O(F + I) and number of constraints O(F + I)) And binary variables GBE Downside: do not consider disrupted passenger and non disrupted passenger delays: May decide to postpone a flight by 30 minutes with 100 passenger on board to recover only 1 disrupted passenger who could have been recovered effectively Minimizing Sum of Passenger Delays (M2) GBE Problem becomes much bigger if all the recovery itineraries are included GBE Hard to solve using B&B GBE (M1/M2) equivalent to (FAM/ODFAM): capacity constraints tend to lead to fraction solutions of LP relaxation pp pP t ff tT f tt tt ff ff (f ,t) In(j) (f,t) Out(j) ff pf tu fgp g C(u)d(g) a(f) tt pf,a f Minimize n st : x z 1 xy xy xyRes(a,ft,) z xx1 [0;1]; x {0,1}; y 0 ∈ ∈ ?+ ∈∈ ?? ∈< ?? ×ρ ?? ?? += += + += ? ρ ≥ +?ρ ≤ ρ ∈∈≥ ∑ ∑ ∑∑ ∑ ∑ GBE Objective: Minimize sum of disrupted passengers GBE Flight coverage constraints GBE Aircraft balance for each sub fleet type GBE Initial and end of the day aircraft resource constraints GBE Passenger cancellation constraints GBE Missed connected passengers constraints GBE Only flight copy variables, x, have to be binary Minimizing Sum of Disrupted Passengers Minimizing passenger delay Need to consider all potential copies of recovery itineraries for each passenger Large scale problem: 500,000 integer variables; 12 hours CPU using B&B deep first search methodology ii pp pPiI p t ff tT f tt tt ff ff (f ,t) In(j) (f,t) Out(j) 00 ff i pp iI p ti t pff fi pPiI p it t pf f bq xz1 fF xy xy xy j qn qCx q0;x{0,1};y0 Min ∈∈ ∈ ?+ ∈∈ + ? ∈ ∈∈ += ?∈ += + += = δ≤× ≥∈ ≥ ∑∑ ∑ ∑∑ ∑ ∑ ∑∑ Summary Lecture #2 (Cont.) GBE Approximate models to minimize sum of passenger delay From Model #1, estimate delay if itinerary is disrupted. From Model #2, limit the number of itinerary copy to include only good ones. GBE Objective function: minimizing estimated passenger dissatisfaction Fine grained down to Passenger Name Record Assign a cost (expected future revenue loss of delay d for PNR p) based on: G83 Fare class G83 Disruption history G83 Loyalty (FFP) Same objective can be used in sorting passengers for recovery priority Lecture #3 Outline Airline schedule recovery framework Aircraft routing feasibility Disrupted passenger re-routing under seat uncertainty: GBE Heuristics GBE Optimal GBE Optimal with bumping control G24G4CG55G4FG4CG51G48 G56G5CG56G57G48G50 G56G57G44G57G48G1D G24G4CG55G46G55G44G49G57G1D G53G52G56G4CG57G4CG52G51G0F G50G44G4CG51G57G48G51G44G51G46G48G0F G52G53G48G55G44G57G4CG52G51G44G4F G26G55G48G5AG56G1D G53G52G56G4CG57G4CG52G51G0F G47G4CG56G55G58G53G57G4CG52G51 G56G57G44G57G58G56G0F G47G58G57G5C G57G4CG50G48G0F G49G4FG4CG4AG4BG57 G57G4CG50G48G0F G48G57G46G11 G33G44G56G56G48G51G4AG48G55G56G1D G53G52G56G4CG57G4CG52G51G0F G47G48G56G57G4CG51G44G57G4CG52G51G0F G33G24G37G0F G47G4CG56G55G58G53G57G4CG52G51 G56G57G44G57G58G56 G29G4FG4CG4AG4BG57 G46G52G53G5C G4AG48G51G48G55G44G57G4CG52G51 G44G4FG4AG52G55G4CG57G4BG50 G32G53G48G55G44G57G4CG52G51G56 G49G52G55G48G46G44G56G57G56 G29G4FG4CG4AG4BG57 G47G48G53G44G55G57G58G55G48 G57G4CG50G48G56G0F G3BG0D G44G51G47 G49G4FG4CG4AG4BG57 G46G44G51G46G48G4FG4FG44G57G4CG52G51G56 G3DG0D G52G53G57G4CG50G4CG5DG48G55 G24G4CG55G46G55G44G49G57 G55G52G58G57G4CG51G4A G45G44G56G48G47 G52G51 G0BG3BG0DG0FG3DG0DG0C ? G29G48G44G56G4CG45G4FG48 G55G52G58G57G48 G35G22 G3CG48G56 G31G52 G33G55G48G59G48G51G57 G4CG51G49G48G44G56G4CG45G4FG48 G44G4CG55G46G55G44G49G57 G55G52G58G57G48 G56G5AG44G53G56 G30G52G47G4CG49G5C G49G4FG4CG4AG4BG57 G47G48G53G44G55G57G58G55G48 G56G52G4FG58G57G4CG52G51 G32G45G57G44G4CG51 G49G48G44G56G4CG45G4FG48 G44G4CG55G46G55G44G49G57 G55G52G58G57G48 G35GB7 G44G51G47 G44G56G56G52G46G4CG44G57G48G47 G52G53G57G4CG50G44G4F G56G52G4FG58G57G4CG52G51 G0BG3BGB7G0DG0FG3DGB7G0DG0C G32G53G57G4CG50G44G4F G47G4CG56G55G58G53G57G48G47 G53G44G56G56G48G51G4AG48G55 G55G48G10G55G52G58G57G4CG51G4A G26G52G51G56G4CG47G48G55G4CG51G4A G56G48G44G57 G44G59G44G4CG4FG44G45G4CG4FG4CG57G5C G58G51G46G48G55G57G44G4CG51G57G5C G35G48G46G52G59G48G55G5C G53G55G4CG52G55G4CG57G5C G53G52G4FG4CG46G4CG48G56 G26G55G48G5A G52G53G48G55G44G57G4CG52G51G56 G55G48G46G52G59G48G55G5CG0F G35G48G53G44G4CG55 G53G44G4CG55G4CG51G4AG56 Resource Dependability: Ripple effects Source: Sabre, 1998 DFW-LAX LAX-ONT DFW-SNA LAX-SMF PC CC A PC CC A Cockpit Crew rest at SMF SNA-SJC SNA-RNO SNA-SEA SMF-LAX ONT-LAX Aircraft maintenance at ONT PC CC: deadheading A PC: Pilot Crew; CC: Cabin Crew; A: Aircraft Flight copy generations We have developed a technique to minimize the number of flight copies Four types of flight copies are generated: GBE Aircraft ready times GBE Copies to prevent passengers from missing connections GBE Consequence of type 2, aircraft postponement propagation GBE Schedule (for cancellations) G24G4CG55G4FG4CG51G48 G56G5CG56G57G48G50 G56G57G44G57G48G1D G24G4CG55G46G55G44G49G57G1D G53G52G56G4CG57G4CG52G51G0F G50G44G4CG51G57G48G51G44G51G46G48G0F G52G53G48G55G44G57G4CG52G51G44G4F G26G55G48G5AG56G1D G53G52G56G4CG57G4CG52G51G0F G47G4CG56G55G58G53G57G4CG52G51 G56G57G44G57G58G56G0F G47G58G57G5C G57G4CG50G48G0F G49G4FG4CG4AG4BG57 G57G4CG50G48G0F G48G57G46G11 G33G44G56G56G48G51G4AG48G55G56G1D G53G52G56G4CG57G4CG52G51G0F G47G48G56G57G4CG51G44G57G4CG52G51G0F G33G24G37G0F G47G4CG56G55G58G53G57G4CG52G51 G56G57G44G57G58G56 G29G4FG4CG4AG4BG57 G46G52G53G5C G4AG48G51G48G55G44G57G4CG52G51 G44G4FG4AG52G55G4CG57G4BG50 G32G53G48G55G44G57G4CG52G51G56 G49G52G55G48G46G44G56G57G56 G29G4FG4CG4AG4BG57 G47G48G53G44G55G57G58G55G48 G57G4CG50G48G56G0F G3BG0D G44G51G47 G49G4FG4CG4AG4BG57 G46G44G51G46G48G4FG4FG44G57G4CG52G51G56 G3DG0D G52G53G57G4CG50G4CG5DG48G55 G24G4CG55G46G55G44G49G57 G55G52G58G57G4CG51G4A G45G44G56G48G47 G52G51 G0BG3BG0DG0FG3DG0DG0C ? G29G48G44G56G4CG45G4FG48 G55G52G58G57G48 G35G22 G3CG48G56 G31G52 G33G55G48G59G48G51G57 G4CG51G49G48G44G56G4CG45G4FG48 G44G4CG55G46G55G44G49G57 G55G52G58G57G48 G56G5AG44G53G56 G30G52G47G4CG49G5C G49G4FG4CG4AG4BG57 G47G48G53G44G55G57G58G55G48 G56G52G4FG58G57G4CG52G51 G32G45G57G44G4CG51 G49G48G44G56G4CG45G4FG48 G44G4CG55G46G55G44G49G57 G55G52G58G57G48 G35GB7 G44G51G47 G44G56G56G52G46G4CG44G57G48G47 G52G53G57G4CG50G44G4F G56G52G4FG58G57G4CG52G51 G0BG3BGB7G0DG0FG3DGB7G0DG0C G32G53G57G4CG50G44G4F G47G4CG56G55G58G53G57G48G47 G53G44G56G56G48G51G4AG48G55 G55G48G10G55G52G58G57G4CG51G4A G26G52G51G56G4CG47G48G55G4CG51G4A G56G48G44G57 G44G59G44G4CG4FG44G45G4CG4FG4CG57G5C G58G51G46G48G55G57G44G4CG51G57G5C G35G48G46G52G59G48G55G5C G53G55G4CG52G55G4CG57G5C G53G52G4FG4CG46G4CG48G56 G26G55G48G5A G52G53G48G55G44G57G4CG52G51G56 G55G48G46G52G59G48G55G5CG0F G35G48G53G44G4CG55 G53G44G4CG55G4CG51G4AG56 Routing recovery Define maintenance critical aircraft, aircraft that have to be at a maintenance station before the end of the day Routing feasibility: if all the maintenance critical aircraft are at a maintenance station at the end of the day Identify all the swapped aircraft routes of maintenance critical aircraft: Set MCS. For each swap s, can we select a non critical aircraft with a route going to a maintenance station? GBE If yes, withdraw s from MCS, assign aircraft to new routes GBE Otherwise do the algorithm: G14 G15 G16 G17 G14 G15 G16 G30G44G4CG51G57G48G51G44G51G46G48 G56G57G44G57G4CG52G51 G35G52G58G57G48G0BG44G0C G35G52G58G57G48G0BG45G0C G36G5AG44G53 G52G53G53G52G55G57G58G51G4CG57G5C G14 G15 G16 G17 G14 G15 G16 G30G44G4CG51G57G48G51G44G51G46G48 G56G57G44G57G4CG52G51 G35G52G58G57G48G0BG44G0C G35G52G58G57G48G0BG45G0C G36G5AG44G53 G52G53G53G52G55G57G58G51G4CG57G4CG48G56 G14 G15 G35G52G58G57G48G0BG46G0C Neighborhood search algorithm Neighborhood search algorithm to recover from routing infeasibility For each infeasible swap s in MCS do: GBESTEP 1: For each window of readiness WR(n), search for an aircraft with a route that goes terminates at a maintenance station before the end of the day of operations and have a readiness windows that intersect with WR(n) (including the infeasible routes). If one route is found, swap the two aircraft routes and move to the next infeasible swap. Otherwise, no simple route swap is found for all readiness windows and go to STEP 2. GBESTEP 2: Generate a feasible route that goes from WR(n) to a maintenance station and all the sub-routes belong to non critical route. GBESTEP 3: If no route swap found, include swaps in set of infeasible swaps Forbid flight copies leading to routing infeasibility and run the optimization model again. Algorithm’s complexity STEP 1: runs in O(A*F) STEP 2: runs in O(A*F^n) with n number of route swap opportunities Can we find routing feasible solutions effectively using this approach? Routing disrupted passenger under seat uncertainty Build the list of disrupted passengers according to a priority rule (First Disrupted First Recovered, fare class, loyalty (FFP)) High fare tickets are often fully refundable. No shows (NS rate ≈20%). Number of seats available on flight f is uncertain Passenger centric approach: for each passenger in recovery list what is the recovery itinerary with the lowest expected arrival delay Example G29G4FG4CG4AG4BG57 G06 G33G27G37 G29G27G37 G33G24G37 G29G24G37 G29G48G44G56G4CG45G4CG4FG4CG57G5C G53G55G52G45G44G45G4CG4FG4CG57G5C G24G10G2B G14 G16G1DG13G13G33G30 G16G1DG13G18G33G30 G17G1DG13G13G33G30 G17G1DG13G16G33G30 G14G13G13G08 G24G10G25 G15 G16G1DG16G13G33G30 G16G1DG16G18G33G30 G18G1DG16G13G33G30 G18G1DG16G14G33G30 G1AG13G08 G2BG10G25 G16 G17G1DG16G13G33G30 G17G1DG16G15G33G30 G18G1DG16G13G33G30 G18G1DG16G17G33G30 G1AG13G08 G2BG10G25 G17 G18G1DG13G13G33G30 G18G1DG13G14G33G30 G19G1DG13G13G33G30 G19G1DG13G18G33G30 G1AG13G08 G2BG10G25 G18 G19G1DG13G13G33G30 G19G1DG13G17G33G30 G1AG1DG13G13G33G30 G1AG1DG13G16G33G30 G1AG13G08 G35G48G46G52G59G48G55G5C G4CG57G4CG51G48G55G44G55G5C G29G4FG4CG4AG4BG57 G56G57G55G4CG51G4A G24G55G55G4CG59G44G4F G47G48G4FG44G5C G0BG50G4CG51G58G57G48G56G0C G29G48G44G56G4CG45G4CG4FG4CG57G5C G53G55G52G45G44G45G4CG4FG4CG57G5C G24G10G25 G15 G15G1AG14 G1AG13G08 G24G10G2BG10G25 G14G10G16 G15G1AG16 G1AG13G08 G24G10G2BG10G25 G14G10G17 G16G13G18 G1AG13G08 G24G10G25 G14G10G18 G16G19G16 G1AG13G08 Fast heuristic model Heuristics chooses itinerary #1 Probability of staying overnight is 30% whereas it is 2.7% for itinerary 2 and itinerary 2 arrives only 2 minutes after itinerary 1. Sub optimal model but very fast (O(log(I)) Optimal routing algorithm State = {Airport location, Forecasted Flight Time Departure} G36G57G44G57G48 G36G0BG4CG0C G2FG52G46G0BG36G0BG4CG0CG0C G37G4CG50G48G0BG36G0BG4CG0CG0C G29G4FG4CG4AG4BG57G0BG36G0BG4CG0CG0C G14 G24 G16G1DG13G18G33G30 G49G0BG14G0C G15 G24 G16G1DG16G18G33G30 G49G0BG15G0C G16 G2B G17G1DG16G15G33G30 G49G0BG16G0C G17 G2B G18G1DG13G14G33G30 G49G0BG17G0C G18 G2B G19G1DG13G17G33G30 G49G0BG18G0C G19 G25 G16G1DG16G18G33G30 G37 G1A G25 G17G1DG16G15G33G30 G37 G1B G25 G18G1DG13G14G33G30 G37 G1C G25 G19G1DG13G17G33G30 G37 Optimal routing algorithm (Cont.) Build Markov chain Decisions, u: GBE u(j) = 1 if book flight j, = 0 otherwise Cost(s(j)) = AAT(f) – PAT(p) if s(j)∈? = 0 otherwise Can restrict the decision space to chose only one itinerary Optimal routing algorithm (Cont.) State space size: O(2^F) 10 flights in recovery list means at most 1024 states Can include bumping cost in decisions: Assume that you have estimated the value of one hour of delay for PNR p. You can reward a passenger to free up his/her seat. What is the best (itinerary, reward) decisions to minimize airline returns (passenger delay cost – “bumping” rewards) Passenger routing algorithm performance PMIX provides the optimal passenger routings; We found that PDC is close to optimality (PMIX) to route the passengers When passengers are disrupted at the hub (flight cancellation or missed connection), PDC provides the optimal recovery most of the time because only one route typically goes from the hub to destination airport (hub and spoke topology); Only when passengers are disrupted at the origin spoke (first flight canceled), does PDC might provide sub-optimal solution origin destination Questions? Discussion items? G36G52G55G57 G2F G44G46G46G52G55G47G4CG51G4A G57G52 G56G48G55G59G4CG46G48G53G52G4FG4CG46G5C G27G4CG56G55G58G53G57G48G47G22 G3CG48G56 G31G52 G35G48G50G52G59G48G56G48G44G57 G49G55G52G50 G55G48G50G44G4CG51G4CG51G4AG4CG51G59G48G51G57G52G55G5C G37G44G4EG48G51G48G5BG57 G47G4CG56G55G58G53G57G48G47G53G44G56G56G48G51G4AG48G55 G4CG51 G2F G35G48G50G52G59G48G56G48G44G57G56G49G55G52G50 G55G48G50G44G4CG51G4CG51G4AG4CG51G59G48G51G57G52G55G5C G24G56G56G4CG4AG51G44G4FG4F G51G52G51G10G47G4CG56G55G58G53G57G48G47 G53G44G56G56G48G51G4AG48G55G56 G57G52G57G4BG48G4CG55 G53G4FG44G51G51G48G47G4CG57G4CG51G48G55G44G55G4CG48G56 G25G58G4CG4FG47G57G4BG48G4FG4CG56G57G52G49G47G4CG56G55G58G53G57G48G47 G53G44G56G56G48G51G4AG48G55G56G0F G2F G29G4FG4CG4AG4BG57 G47G48G4FG44G5CG56G44G51G47 G49G4FG4CG4AG4BG57 G46G44G51G46G48G4FG4FG44G57G4CG52G51G56 G33G44G56G56G48G51G4AG48G55 G45G52G52G4EG4CG51G4AG56 G49G52G55 G48G44G46G4B G56G46G4BG48G47G58G4FG48G47 G4CG57G4CG51G48G55G44G55G5C G2CG56 G2F G20G91 G22 G3CG48G56 G31G52 G28G31G27 G35G48G46G52G55G47 G53G44G56G56G48G51G4AG48G55 G47G48G4FG44G5C G29G4CG51G47G45G48G56G57 G55G48G46G52G59G48G55G5CG4CG57G4CG51G48G55G44G55G5CG44G51G47G44G56G56G4CG4AG51G53G44G56G56G48G51G4AG48G55 G33G44G56G56G48G51G4AG48G55 G27G48G4FG44G5C G36G57G44G57G4CG56G57G4CG46G56 G2CG31G33G38G37G36 G33G35G28G33G35G32G26G28G36G36G2C G31G2A G33G27G26 G35G48G46G52G55G47 G53G44G56G56G48G51G4AG48G55 G47G48G4FG44G5C