Flight scheduling algorithm?
For a school project, my team is creating a web application which will automate the process of scheduling when aeronautical flight students will fly throughout the semester. Right now, the flight department does this all with pencil and paper.
In the scheduling process, there are 3 variables - student class schedules, plane availability, and instructor schedules. The students have to fly about 3 hours/week, and certain groups of students have higher priority than others. It does not really matter which instructor they fly with, but it does matter which type (not specifically which plane though) they fly in.
We are trying to come up with an algorithm for handling this. What do you think the best approach would be? Do you think this could be in the realm of A.I. (e.g., a Kohonen self-organizing neural net perhaps?), or does it seem more like a normal algorithm (complex, of course)? And do you think this should incorporate the use of graphs?
Without regard to the language - let's suppose this was in C++ or Java - how would you do this?