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 amp nbsp, flow graph, source sink, flow 1, vertices, vj, dest, circulation, planes, algorithm, ui, 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