Question

Yes, it's a newb question.

I want to make a timetabling application that these points specific to my situation:

  1. At a single time, we are allocating a maximum of (3 teachers X 6 hours)X(3 classes X 35 hour workweek) at a single go, we are iteratively building the timetable.

  2. There will be impossible states and any impossible timetables must be notified without the application getting stuck- we expect this application to be pushed to it's limits.

  3. It must return results in a constant time or report that it failed.


I intend to run it as a JSP application on Tomcat 6. The execution is as:

  1. A PHP application "POSTs in" the entire data and rule set
  2. wait till it finishes executing
  3. read the response containing the optimized state

The JSP stuff is just for convenience, as it seems the easiest way to transfer and keep alive the program.

Correct me if this is an unmanageable situation.


Which of the Drools products makes it possible? Or is there a simpler configuration?

Was it helpful?

Solution

Drools Planner does. It even has a lesson scheduling example called curriculum course. Just start by copy pasting that example.

1) is not a problem, the example uses far bigger datasets. 2) Because timetabling is NP-complete proving 2) for any case in reasonable time is impossible. Lowerbound calculations are not yet supported, but could be partially helpful in some cases. 3) is not a problem. You configure how much time you want it to give. (or stop it asynchronously from another thread just before you need a solution).

The Tomcat with JSP approach should pose no problem.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top