700 likes | 847 Views
A Dial-A-Flight Problem Martin Savelsbergh. “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed of Business. Georgia Tech Mo Bazaraa Faram Engineer Daniel Espinoza Renan Garcia Marcos Goycoolea George Nemhauser Martin Savelsbergh. ILOG Emilie Danna
E N D
A Dial-A-Flight Problem Martin Savelsbergh
“Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed of Business
Georgia Tech Mo Bazaraa Faram Engineer Daniel Espinoza Renan Garcia Marcos Goycoolea George Nemhauser Martin Savelsbergh ILOG Emilie Danna Zonghau Gu DayJet Eugene Traits Alex Khmelnitsky Project Team
Per-Seat, On-Demand Jet Services • Background • Security delays at major airports • Rigid schedules of commercial airlines • Hub-and-spoke network of commercial airlines • Affordable small jet planes • Large number of small, underused airports
Eclipse 500 • Crew • 1 pilot • Cruise speed • 431 miles/hr • Maximum range • 1,473 miles • Maximum altitude • 41,000 ft • Capacity • 5 passengers
Business Model • Outward facing • On-demand booking • Competitive pricing • High quality & reliable service • Large coverage area • Inward facing • Dynamic route creation • Passenger aggregation
Optimization Problems • Order acceptance (on-line) • Schedule optimization (off-line) • Revenue management • Disruption recovery models • Strategic planning Uncertainty
Optimization Problems Order Acceptance Given a list of accepted flight requests and a new flight request. Decide whether the new flight request be accommodated. Schedule Optimization Given a list of flight requests, create feasible itineraries for the planes in the fleet so as to satisfy all flight requests at minimum cost.
Flight Request • Origin • Destination • Earliest departure time • Latest arrival time • Number of passengers • Weight
Feasible Plane Itinerary • Two shifts (morning/afternoon) • Starting & ending at the home base • No more than one intermediate stop for a passenger (no plane change) • No more than five passengers on board at any time • Maximum number of flying hours (per shift) • Maximum number of working hours (per shift) • Maximum weight
Multi-commodity Network Flow Model • Nodes – Define events characterizing an itinerary of a plane • Pick up a passenger • Drop off a passenger • Fly from airport A to airport B • … • Arcs – Link events that can follow each other in an itinerary of a plane
Node Definitions • Node specifying that a plane is at airport A at time t without passengers • Node specifying that a plane at airport A will take off at time t for airport B • Node specifying that request R will be satisfied by a plane at airport A taking off at time t for airport B A,t B,t R,t
Illustrative Example: • Airports A, B and C • Flying times: • (A,B): 4 • (A,C): 6 • (B,C): 4 • Three requests • R1: A to B (Early: 1, Late: 6) • R2: A to C (Early: 1, Late: 8) • R3: B to C (Early: 4, Late: 10)
Network Representation A1 A2 A3 A A A B C B C A C R1 R2 R1 R2 R2 R2 R2 B B B C C C B R3 R3 R3 B4 B5 B6 C7 C8 C9 C10 C C C C C
Illustrative Route I: A1 A,1 Airport A B C Action Select B Deadhead Select C Pickup R3 Drop off R3 Departure 1 5 9 B B,5 C R3 B5 C9 C,9
Illustrative Route II: A1 A,1 Airport A B C Action Select B Pickup R1 Pickup R2 Drop off R1 Pickup R3 Drop off R2 Drop off R3 Departure 1 5 9 B R1 R2 C R3 B5 C9 C,9
Multi-commodityNetwork Flow Model • For each plane • Network flow structure • Capacity limit • Flying time limit • Weight limit • Satisfy a request at most once • Across planes • Satisfy all flight requests
Model Refinements • Can we reduce the network size? • Can we identify edges that are in no optimal solution? • Can we identify nodes that are in no optimal solution? • Can we use the side-constraints to eliminate edges? • Can we discard non-optimal solutions? • Can we discard some optimal solutions?
Time Discretization • Regular discretization • Flexible discretization • Allow different discretization for each airport • Allow non-regular discretization for each airport • Start from a regular discretization • Add critical times for a request • Add times associated with best-known schedule
Network Generation • Include only feasible nodes • e.g., earliest arrival time at an airport • Include only necessary flights • e.g., no indirect flights unless a passenger has to be picked up or dropped off • Enforce that planes depart as early as possible (objective = minimize flying time)
A R1 B R2 C 0 10 40 20 30 Network Generation Many “equivalent” solutions: Request 1 A Request 2 B Departures Arrivals C Same cost, same sequence. Different take-off times. Equivalent Solutions:
0 10 40 20 30 Network Generation We maintain only the Earliest Departure (ED) solution Request 1 A A Request 2 R1 B B Departures R2 C Arrivals C (Always take off as early/soon as possible)
A R1 B R2 R3 C 0 10 40 20 30 Network Generation Even small problems can be very complex: Request 1 A Request 2 Request 3 B Departures C Arrivals Intermediate Connections Intermediate connections => many solutions.
A R1 B R2 R3 C 0 10 40 20 30 Network Generation There aren’t very many ED solutions Request 1 A Request 2 Request 3 B Departures C Arrivals Intermediate Connections • Allows tackling small-medium problems • Exploits properties of the cost function • Are there more opportunities?
Eliminating Edges R1 R2 R1 Using “satisfy at most once” constraint to identify infeasible edges in the network R1
Eliminating Edges Eliminate redundant edges
Eliminating Nodes Eliminate redundant nodes
Eliminating Nodes Eliminating a node may eliminate side constraints Connecting two arcs into a single arc may allow eliminating that arc
Solving Large Instances • Feasible solution always available (constructed during order acceptance) • Multi-commodity network flow model too big for large instances • Multi-commodity network flow very fast for small instances
Local Search • A solution consists of a set of plane itineraries serving all requests • Any subset of plane itineraries and the requests served by these itineraries defines a smaller instance • Any solution to the smaller instance can replace the itineraries in the original instance
Local Search Initial solution Select a subset of plane itineraries Optimally solve the Instance defined by the selected itineraries Update solution
Local Search • How to select the size of the subset of planes? • Trade-off between improvement potential and computational requirements • How to select the subset of planes? • Random • Instance/solution characteristics • Parallel implementation • Run several local searches on several processors
Airport Metrics • Airport metric 1 • Choose first jet randomly • Choose remaining jets among those with a base within a radius of 30 miles from the base of the first jet chosen (randomly) • Airport metric 2 • Choose first jet randomly • Choose remaining jets based on the number of airports in their itinerary that are within 30 miles from the base of the first jet chosen (maximize) • Airport metric 3 • Choose first jet randomly • Choose remaining jets based on the number of airports in their itinerary that coincide with the airports in the itinerary of the first jet chosen (maximize)
LOD Metrics • Based on “commonality” of two LODs • Each LOD has an earliest departure time and a latest arrival time • Evaluate whether it is possible to satisfy both LODs with a single plane, and, if so, determine the flexibility in the initial departure time • Example • (A,B),[100,500] • (A,B),[200,600] Departure: [200,300] • Flying time AB: 200
LOD Metrics • (A,B) & (A,C) A-B-C & A-C-B & A-B-A-C & A-C-A-B • (A,C) & (B,C) A-B-C & B-A-C & A-C-B-C & B-C-A-C • (A,B) & (B,C) A-B-C & B-C-A-B • (A,B) & (C,D) …
Parallel Framework Designed so that the workers can coordinate themselves Master Boss Master/grunts ask questions Boss answers questions Grunt 1 Grunt 2 . . . Grunt ?
Parallel Local Search • Communication • Each processor works on the complete instances • Only improved solutions have to be shared • Synchronization • Asynchronous setup • Solution exchange only when an improvement is identified
Master Boss ready? Boss done? Initialize optimization problem Send job to boss Receive best solution from boss Yes Yes No No Wait Wait Halt
Boss Boss done msg? Time is up? Idle grunt msg? Wait Wait No No Yes No Yes Receive solution from grunt Yes Initialize Send best solution to master Better solution? New job msg? Send best solution to grunt Receive job from master Yes No Update best solution No Wait Yes
Grunt Reoptimize until solution improves Yes Better solution? Idle grunt? Initialize Receive best solution from boss Send solution to boss No Yes No Wait
Computational Results Experimental Setup Size Probability Metric Probability 2 20% Random 25% 3 33% Airport 1 25% 4 27% Airport 2 25% 5 13% Airport 3 25% 6 7%