3

I'm planning to develop an expert system that automatically fits the school faculty's work load (time, teaching load, etc), and generate class sections, room that is at least 90% accurate with what the Director of a certain department wants to assign the schedule for a certain semester.

What algorithm to use? Heuristics? Optimization? Any suggestions or help is highly appreciated!

6
  • You need a Dynamic Scheduling algorithm. Commented Jan 21, 2011 at 17:06
  • 1
    This is a bit localized and impossible to answer in its current form. Commented Jan 21, 2011 at 17:09
  • Henk: Any links or reference to that algorithm? Commented Jan 21, 2011 at 17:14
  • Aaron: What do you mean its a bit localized and impossible to answer? What part did u not understand Commented Jan 21, 2011 at 17:14
  • @inluis, yeah, bad joke. Just see @Aaron's comment. Commented Jan 21, 2011 at 17:34

4 Answers 4

1

Two friends of mine did something similar for a class project. They used the simulated annealing heuristic. They concluded that it might not be the best tool for the job.

Hey, knowing what not to do can be useful, right? :)

Sign up to request clarification or add additional context in comments.

4 Comments

So did they fail their class project? :P
They probably didn't implement it right. It took me 2 releases in Drools Planner to get it right. But when you get it right... it can blow genetic algorithms, tabu search, etc out of the water. See my benchmarks here: blog.athico.com/2010/07/…
Interinsting results you got there. Maybe their case was more complicated than your test cases. They tried this pretty ambitiously on an actual school timetable, scheduling classrooms, classes, teachers, courses... with various additional realistic constraints, such as "X can't teach on Mondays" and "pupils shouldn't have more than one hour of free time in a row". While easily implemented, these may have limited the search space too much, making good solutions harder to find.
That's what we're planning to implement right now and only have a total of 3 months in developing it while having other school stuffs. Sigh, this is weird. school giving expert system for 3 months is really unrealistic.
1

Here are some general observations:

1) Manual scheduling is rarely attempted from scratch. Instead, somebody starts with the schedule for the previous year and alters it to take account of changes in requirements. One way of mimicing this with a computer is to use a hill-climbing algorithm, which repeatedly tries a number of small changes to improve a solution so far. This can then be started off at the current schedule.

2) Does the manual process ever terminate with the conclusion that the requirements are collectively unachievable and that some of them must be dropped? In that case your algorithm must be transparent enough that failures can be understood, or at least capable of proposing such changes (e.g. by maximising a penalty function which allows it to produce a "least bad" solution which does not satisfy all of the original constraints). I know of one case where a sophisticated constraint-based approach was replaced by a much simpler algorithm because failures of the constraint-based system did not give enough user feed back.

3) Curiously enough, the next generation system did not use sophisticated scheduling at all. It turned out - roughly speaking - that at the time the decisions had to be made not all of the consequences of sophisticated scheduling decisions could be forseen, and, in the long run, a simple predictable schedule that could be maintained indefinitely was more productive than constantly rearranging schedules to grab small momentary advantages.

Comments

1

Take a look at the curriculum course lesson scheduling example of Drools Planner (open source, java I am afraid). It uses meta-heuristics such as simulated annealing and tabu search.

Comments

0

Here is a paper on dynamic scheduling using genetic algorithms... you might find some of the ideas here useful... even if the domain isn't the same, I think the idea is more generally applicable.

1 Comment

Already checked that, thanks anyway. I think its not that helpful

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.