Classical task-scheduling assignment

Posted by Bruno on Stack Overflow See other posts from Stack Overflow or by Bruno
Published on 2011-04-21T21:32:51Z Indexed on 2012/09/18 3:38 UTC
Read the original article Hit count: 201

Filed under:
|
|

I am working on a flight scheduling app (disclaimer: it's for a college project, so no code answers, please). Please read this question w/ a quantum of attention before answering as it has a lot of peculiarities :(

First, some terminology issues:
You have planes and flights, and you have to pair them up. For simplicity's sake, we'll assume that a plane is free as soon as the flight using it prior lands.

Flights are seen as tasks:

  • They have a duration
  • They have dependencies
  • They have an expected date/time for beginning

Planes can be seen as resources to be used by tasks (or flights, in our terminology).

Flights have a specific type of plane needed. e.g. flight 200 needs a plane of type B. Planes obviously are of one and only one specific type, e.g., Plane Airforce One is of type C.

A "project" is the set of all the flights by an airline in a given time period.

The functionality required is:

  • Finding the shortest possible duration for a said project

  • The earliest and latest possible start for a task (flight)

  • The critical tasks, with basis on provided data, complete with identifiers of preceding tasks.

  • Automatically pair up flights and planes, so as to get all flights paired up with a plane. (Note: the duration of flights is fixed)

  • Get a Gantt diagram with the projects scheduling, in which all flights begin as early as possible, showing all previously referred data graphically (dependencies, time info, etc.)

So the questions is: How in the world do I achieve this? Particularly:

  • We are required to use a graph.
    • What do the graph's edges and nodes respectively symbolise?
  • Are we required to discard tasks to achieve the critical tasks set?

If you could also recommend some algorithms for us to look up, that'd be great.

© Stack Overflow or respective owner

Related posts about algorithm

Related posts about scheduling