Main Menu

empty days

Started by kohegen, July 08, 2011, 09:24:17 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kohegen

Hi, firstly i wanted to say thats FET is great and respect for you Liviu i know how hard is to create such algorithm (ive done timetabling alg based on GA but it sucks compared to this!).

Ok, whats my prob?
I want for all studentSets and teachers to have as many as possible empty days.
My constraints are:

  • each studentSet and teacher have NotAvailableTimes.
  • StudentsMinGapsBetweenBuildingChanges and TeachersMinGapsBetweenBuildingChanges
  • MinGapsBetweenActivities set to minimum 1 for activities of each StudentSet (thats slow)
Which constraints should i use to obtain this timetable?
i used incrementally StudentsSetMinHoursDaily but results was not satisfactory.



Liviu Lalescu

#1
Thank you for appreciation!

I would suggest an incremental approach with max working days per week. For teachers, you have directly constraint max days per week. For students you may use students (set) works in an hourly interval max days per week, interval=whole day.

Note: max days per week is highly optimized and tested. The trick with interval max days per week, interval=whole day, is not tested by many and may not be perfectly optimized (though I tried).

Another note: if you have say 3 teachers and 3 students sets, you could add T1->max 3 days, while T2 and T3 have max 4 days (so, go with individual constraints for each teacher/students set, and reduce for each teacher/students set, in turn; first to reduce are most important constrains).

Edited to add: another possible trick is to add for each teacher/subgroup dummy activities, split into a single component, with duration = n_hours_per_day. But max hours per day and other constraints might not agree and give an impossible to solve timetable.

Please let me know.

kohegen

Thank you for advice.

interval max days per week works nice thats what i needed.

I will test this constraint, if something goes wrong i will let you know.

Thanks