This problem is more complicated than it seems.
As others have said, this is an NP-complete problem, but let them analyze what it means.
Basically, this means that you should look at all the possible combinations.
But “watching” does not tell you what you need to do.
Making all possible combinations is easy. This can lead to a huge amount of data, but you should not have problems understanding the concepts of this part of the problem.
The second problem is to assess whether a given combination is good, bad, or better than the previous “good” solution.
To do this, you need more than just "this is a possible solution."
For example, the same teacher who works 5 days a week for X weeks in a row? Even if this is a working solution, it may not be a better solution than alternating between two people, so that each teacher does each week. Oh, have you thought about this? Remember that these are the people you are dealing with, and not just the problem of resource allocation.
Even if one teacher can work full time for 16 consecutive weeks, it may not be the optimal solution compared to the one in which you try to alternate teachers, and this kind of balancing is very difficult to integrate into the software.
To summarize, creating a good solution to this problem will cost a lot, for many people. Therefore, it is not an easy task to break and solve. Be prepared to make several goals that are not 100%, and calling them "good enough."
Lasse Vågsæther Karlsen Feb 05 '10 at 10:10
source share