Any algorithm to dedicate a set of known resources to a set of known requirements (scheduling)

Posted by Saeed Neamati on Programmers See other posts from Programmers or by Saeed Neamati
Published on 2012-12-04T07:47:37Z Indexed on 2012/12/04 11:26 UTC
Read the original article Hit count: 235

Filed under:
|

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:

  1. User enters the list of teachers and their free times into the system
  2. User enters the list of courses for this semester
  3. 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:

http://en.wikipedia.org/wiki/Resource_allocation or http://en.wikipedia.org/wiki/Scheduling_(production_processes)

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.

© Programmers or respective owner

Related posts about algorithms

Related posts about resources