Lecture 19: Airline Scheduling Problem
Inputs:
- Set of flights to cover
- Pairs of flights that can use the same plane
- Set of k planes
Output:
- Schedule showing how to use our k planes to cover the flights
Flow graph G:
vertices = source, sink
foreach flight i, start ui & dest vi
1) foreach flight i, an edge (ui, vi) with capacity 1 and lower bound 1. We want to cover each flight.
2) foreach flight i and j such that j is “reachable” from i, we have an edge (ui, vi) with capacity 1 and lower bound 0. We want to reuse a plane if possible.
3) foreach flight i, an edge (s, ui) with capacity 1 and lower bound 0, so that a plane can start its day on any flight.
4) foreach flight j, and edge (vj, t) with capacity 1 and lower bound 0, so that a plane can end its day anywhere.
5) an edge (s,t) with capacity k and lower bound 0, so that we don’t have to use all the planes.

Algorithm:
Construct G
Find circulation
“There exists a feasible circulation iff there exists a valid schedule”
Pf(=>): Assume a feasible circulation, meaning each flight is covered by lowe bound on 1. We can read off the schedule by finding edges with flow 1.
Pf(=<): Assume a valid schedule. The schedule can be used to define a circulation. A valid schedule implies all flights are covered which implies that all lower bounds are satisfied.
This entry was posted on Monday, March 7th, 2005 at 12:06 pm and is tagged with flow graph, nbsp nbsp nbsp nbsp nbsp, source sink, flow 1, vj, circulation, planes, algorithm, pairs, lowe, lt, flights, airline. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback.
Leave a Reply
Please take time to enjoy the archives: May 2005 (1) April 2005 (11) March 2005 (11) February 2005 (15) January 2005 (7)
Fresh, related resources:
- There were no results.
