I'm developing an application to help school principals in dedicating teachers to classes and courses over the hours of a week (scheduling). The scenario is roughly something like this:
- User enters the list of teachers and their free times into the system
- User enters the list of courses for this semester
- User enters the list of available classes into the system
Well, up to here, there is no big deal. Just simple CRUD operations and nothing extraordinary. However, now what makes this system useful is that the application should automatically and based on an algorithm create the semester scheduling.
I think you've got the main idea here. For example application should suggest that teacher A should go to class 1 for mathematics, and at the same time teacher B should go to class 2 for physics. This way all of the classes would be dedicated to lessons and teacher times won't overlap each other. Piece a cake for school principal.
However, I can't find a good algorithm for this resource dedication. I mean it seems hard to me.
Searching Google resulted in articles from different websites, but they are of no help and use to me. For example:
Is there any algorithm out there, or any application or engine which can help me here? Does this requirements have a known name, like for example time scheduling engine?
Any help would be appreciated.