69
A Dial-A-Flight Problem Martin Savelsbergh

A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

  • View
    231

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-A-Flight Problem

Martin Savelsbergh

Page 2: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

“Per-Seat, On-Demand” Jet ServicesHow to Keep Air Transportation Moving at the Speed of Business

Page 3: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Project Team

• 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

Page 4: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 5: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Page 6: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Eclipse 500

• Crew– 1 pilot

• Cruise speed– 431 miles/hr

• Maximum range– 1,473 miles

• Maximum altitude– 41,000 ft

• Capacity– 5 passengers

Page 7: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Business Model

• Outward facing– On-demand booking– Competitive pricing– High quality & reliable service– Large coverage area

• Inward facing– Dynamic route creation– Passenger aggregation

Page 8: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Optimization Problems

• Order acceptance (on-line)

• Schedule optimization (off-line)

• Revenue management

• Disruption recovery models

• Strategic planning

Uncertainty

Page 9: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Optimization Problems

Order AcceptanceGiven a list of accepted flight requests and a new flight request. Decide whether the new flight request be accommodated.

Schedule OptimizationGiven a list of flight requests, create feasible itineraries for the planes in the fleet so as to satisfy all flight requests at minimum cost.

Page 10: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Flight Request

• Origin

• Destination

• Earliest departure time

• Latest arrival time

• Number of passengers

• Weight

Page 11: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 12: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 13: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 14: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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)

Page 15: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Representation

A A

A

B

C

B

R1

R2

C

R2

C

R2

B

C

R3

B

C

R3

B

C

R3

C C C C

A

B

R1

R2

C

R2

A1 A2 A3

B6B5B4

C7 C8 C9 C10

Page 16: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Illustrative Route I:

C

R3

C,9

A,1B

A1

B5C9

Airport

A

B

C

Action

Select BDeadhead

Select CPickup R3

Drop off R3

B,5

Departure

1

5

9

Page 17: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Illustrative Route II:

C

R3

C,9

A,1B

R1R2

A1

B5C9

Airport

A

B

C

Action

Select BPickup R1Pickup R2

Drop off R1Pickup R3

Drop off R2Drop off R3

Departure

1

5

9

Page 18: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 19: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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?

Page 20: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 21: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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)

Page 22: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

A

B

C

20 30 40100

Many “equivalent” solutions:

Request 1

Equivalent Solutions: Same cost, same sequence. Different take-off times.

Request 2

DeparturesArrivals

A

B

C

R1

R2

Page 23: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

A

B

C

20 30 40100

We maintain only the Earliest Departure (ED) solution

(Always take off as early/soon as possible)

Request 1Request 2

DeparturesArrivals

A

B

C

R1

R2

Page 24: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

A

B

C

20 30 40100

Request 1Request 2Request 3

Even small problems can be very complex:

Intermediate connections => many solutions.

DeparturesArrivalsIntermediate Connections

A

B

C

R1

R3

R2

Page 25: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

A

B

C

20 30 40100

Request 1Request 2Request 3

There aren’t very many ED solutions

• Allows tackling small-medium problems• Exploits properties of the cost function• Are there more opportunities?

DeparturesArrivalsIntermediate Connections

A

B

C

R1

R3

R2

Page 26: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 27: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 28: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 29: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 30: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 31: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 32: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Generation

Page 33: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Eliminating Edges

R1

R2R1

R1

Using “satisfy at most once” constraint to identify infeasible edges in the network

Page 34: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Eliminating Edges

Eliminate redundant edges

Page 35: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Eliminating Nodes

Eliminate redundant nodes

Page 36: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Eliminating Nodes

Eliminating a node may eliminate side constraints

Connecting two arcs into a single arc may allow eliminating that arc

Page 37: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Network Reduction

Instance: Initial graph Reduced graph

Nodes Edges Nodes Edges Nodes % Edges %

R1Y1Q4B

(28)

166336 469149 18192 314080 10.93% 66.94%

171613 485399 18837 325275 10.97% 67.01%

175245 495579 19086 331662 10.89% 66.92%

R1Y1Q3A

(17)

59649 166213 7255 114184 12.16% 68.69%

58933 160653 6979 108680 11.84% 67.64%

59437 164120 7056 110572 11.87% 67.34%

R1Y1Q2C

(9)

15990 43421 1921 29343 12.01% 67.57%

15780 43356 1923 28949 12.18% 66.77%

16408 44927 1971 30336 12.01% 67.52%

Page 38: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 39: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 40: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Select a subset of plane itineraries

Optimally solve the Instance defined by the

selected itineraries

Initial solution

Update solution

Page 41: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 42: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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)

Page 43: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 44: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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) …

Page 45: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Boss

Grunt 1

Grunt 2

Grunt ?

. . .

Master

Designed so that the workers can coordinate

themselves

Master/grunts ask questionsBoss answers questions

Parallel Framework

Page 46: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

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

Page 47: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Wait

Send job toboss

Initialize optimization

problem

Master

Bossready?

No

Yes Bossdone?

Yes

Wait

No

Receive bestsolution

from boss

Halt

Page 48: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Wait

Receive jobfrom master

Initialize

Boss

Newjob

msg?

No

Yes

Time is up?

Yes

NoIdlegruntmsg?

NoYes

Bettersolution?

Send best solution to grunt

Updatebest solution

Bossdonemsg?

WaitNo

Yes

Send best solution to master

Yes

No

Receive solution

from grunt

Wait

Page 49: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Wait

Send solutionto boss

Grunt

Idlegrunt?

No

Yes

Yes

No Receive bestsolution

from bossInitialize

Bettersolution?

Reoptimizeuntil solution

improves

Page 50: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Computational Results

Size Probability

2 20%

3 33%

4 27%

5 13%

6 7%

Metric Probability

Random 25%

Airport 1 25%

Airport 2 25%

Airport 3 25%

Experimental Setup

Page 51: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Flying timeLegs Deadheads LODs Improvement

2087202823 843 2572 -

1882892663 778 2597 -

1870872605 715 2575 -

Number of planes: 312Number of airports: 46

~11 legs per itinerary~9 LODs per itinerary

Page 52: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Flying timeLegs Deadheads LODs Improvement

1934152732 757 2572 7.3%

1798042579 688 2597 4.5%

1794852541 648 2575 4.1%

5 grunts, 6 hours, random

Flying timeLegs Deadheads LODs Improvement

2087202823 843 2572 -

1882892663 778 2597 -

1870872605 715 2575 -

Base solution

Page 53: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Flying timeLegs Deadheads LODs Improvement

1934152732 757 2572 7.3%

1798042579 688 2597 4.5%

1794852541 648 2575 4.1%

5 grunts, 6 hours, random

Flying timeLegs Deadheads LODs Improvement

1911332671 694 2572 8.4%

1777282506 622 2597 5.6%

1770952487 598 2575 5.3%

5 grunts, 6 hours, airport metric

Page 54: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Flying timeLegs Deadheads LODs Improvement

1911332671 694 2572 8.4%

1777282506 622 2597 5.6%

1770952487 598 2575 5.3%

5 grunts, 6 hours, airport metric

Flying timeLegs Deadheads LODs Improvement

2087202637 667 2572 9.6%

1882892500 614 2597 6.0%

1870872468 583 2575 5.8%

10 grunts, 6 hours, airport metric

Page 55: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

Flying timeLegs Deadheads LODs Improvement

1910912667 696 2572 8.4%

1782772523 637 2597 5.3%

1776672495 602 2575 5.0%

10 grunts, 4 hours, airport metric

Flying timeLegs Deadheads LODs Improvement

2087202637 667 2572 9.6%

1882892500 614 2597 6.0%

1870872468 583 2575 5.8%

10 grunts, 6 hours, airport metric

Page 56: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search

10 grunts, 6hrs, airport metric

710000

720000

730000

740000

750000

760000

770000

0 50 100 150 200 250 300 350 400

Page 57: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search Analysis

Success Rate Neighborhood Size

0

5

10

15

20

25

30

2 3 4 5 6

Page 58: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Local Search Analysis

Success Rate Metric

0

2

4

6

8

10

12

14

1 2 3 4

1: Random2: Airport metric 13: Airport metric 24: Airport metric 3

Page 59: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Column Generation Formulation

= 1

≤ 1

LOD

Plane

Itin

erar

y

Page 60: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Pricing Problem

• Observations– Pricing problem decomposes by plane– Pricing problem is a constrained shortest path

problem (on the directed acyclic network)• Capacity• Flying time• Weight• Satisfy at most once

– Pricing problem involves all LODs

Page 61: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Constrained Shortest Path

• Three phase approach– Pure shortest path (s t)– Shortest path with capacity constraint (t s)– Shortest path with all constraints

Shortest path provides lower bound completion cost

s t

Constraints:• Capacity• Flying time• Weight• Serve request ≤ 1

Page 62: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Pricing Problem

• Once the pricing problem has been solved, it is extremely fast to generate additional itineraries with slightly higher costs

Page 63: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Branching

• Two level branching– Departure window

• Two itineraries with fractional values will have at least one LOD in common

• Restrict the departure time of a common LOD in such a way that the itineraries end up on different branches

– Plane• In case the departure time of the common LOD is

exactly the same in each itinerary restrict the LOD to a particular plane

Page 64: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Parallellization

• Observations– The pricing problem decomposes by plane– Solve the pricing problem for each plane at a

separate processor

Page 65: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Computational Results

LODsInitial

integer

Best integer (BP)

Best integer (mip)

Improvement

Root LP bound

Best bound

Gap closed in the BP tree

Remaining gap

BP nodes

Columns (total)

Columns (root)

Time (root)

80 4622 4592 4592 0.65% 4569.0 4569.0 0.01% 0.50% 2137 38870 5312 87.2

97 4745 4745 4714 0.65% 4613.8 4613.9 0.08% 2.12% 897 38795 17778 229.7

107 5241 5241 5241 0.00% 5034.2 5088.3 26.17% 2.91% 270 101975 46337 447.0

108 5870 5870 5870 0.00% 5711.5 5723.3 7.40% 2.50% 386 75646 41240 489.2

115 5230 5230 5230 0.00% 4967.2 4967.3 0.04% 5.02% 461 40447 30740 344.6

98 5779 5779 5760 0.33% 5740.3 5741.2 4.23% 0.33% 1187 26138 10160 192.6

115 5905 5905 5905 0.00% 5632.8 5650.3 6.42% 4.31% 345 50553 30258 316.4

88 4727 4727 4711 0.34% 4670.6 4671.1 1.21% 0.85% 1210 26852 7757 203.1

110 6057 6057 6057 0.00% 5864.8 5892.4 14.38% 2.72% 554 48688 24828 234.2

110 5288 5288 5288 0.00% 5078.8 5078.8 0.00% 3.96% 88 39150 36773 1034.1

82 4431 4431 4429 0.05% 4342.4 4344.7 2.72% 1.90% 1378 26520 7861 150.3

93 4767 4767 4764 0.06% 4688.2 4700.0 15.55% 1.34% 945 39394 12843 194.0

93 4807 4807 4806 0.02% 4777.7 4782.5 16.84% 0.49% 1268 38704 7050 212.1

114 5627 5627 5627 0.00% 5333.0 5379.3 15.75% 4.40% 260 61467 47833 409.4

97 4732 4732 4732 0.00% 4476.5 4493.0 6.45% 5.05% 610 46302 33668 244.2

108 5572 5572 5365 3.72% 5275.2 5301.2 28.96% 1.19% 401 71810 31183 264.8

110 5092 5092 5092 0.00% 4995.6 5006.2 11.01% 1.68% 523 37385 12734 474.5

103 5976 5976 5976 0.00% 5578.9 5593.9 3.78% 6.39% 551 45834 30652 196.8

Page 66: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Next Big Challenge: Order Acceptance

Page 67: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Real-Time IP Solving

Single new row

Newcolumns

Solved IP

How can we use the already solved sub-problem which contains 99% of the rows to solve the new problem?

Page 68: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Real-Time IP Solving

• Typically, as the example shows, the instances that we solve are highly correlated and differ by small data changes or the addition of a row or column

• But the absence of a nice duality theory for IP means that IP sensitivity analysis is much, much harder than the elegant and computationally simple LP sensitivity analysis.

• So in the absence of starting from scratch, do we benefit by– Saving the previous solution(s)?– Saving whole or part of the solution tree?

Page 69: A Dial-A-Flight Problem Martin Savelsbergh. A Dial-a-Flight Problem “Per-Seat, On-Demand” Jet Services How to Keep Air Transportation Moving at the Speed

A Dial-a-Flight Problem

Questions?