to start improving the current timetable. Automatic generator will find the best solution by rearranging cards in order to solve all constraints and avoid any conflicts.
During the generation process, pinned cards won't be moved and if needed some cards can be ignored.
Total generation progress is displayed in the window title as well as progress for specific categories:
card conflicts, forbidden periods, class windows, same day subjects, unwanted or mandatory periods, class and teacher warnings.
Automatic timetable generation
Generator tips & tricks
- The recommended approach is first to generate a timetable without any constraints and then gradually add them.
- The generator will always try to find a better solution no matter how hard the constraints are. If there is no progress for a couple of minutes or so, stop the generator and revise constraints or data.
- Always follow basic timetabling rule: One school resource during one period can be scheduled in only one lesson, otherwise, there is a conflict.
In some cases you need to add more than one group/class/teacher/room in the lesson, in order to resolve this. More in the blog post.
- Generator can ignore specific cards, e.g. lunch or teacher meetings. More about ignoring cards in the blog post.
- The pin
can also help you ignore some errors and warnings. Just pin the problematic cards and notifications will disappear.
- Open notifications first, using
and keep it open while improving timetable. Read more about notifications and how to ignore some of them.
- All changes can be reverted by using Undo
and there is also a history icon
which lets you see all previous changes and undo one or more actions.
Generator priority levels
Automatic generator is supposed to solve about thirty highly complex requirements.
Since these are commonly conflicted and it is usually impossible to solve them all,
priority levels have been introduced, which the generator manages in the following way:
lower priority requirements will not be solved as long as there are unsolved higher priority requirements.
The problem is that the generator is not always capable of detecting that some requirements cannot be satisfied
and will keep trying to solve them at all costs, perpetually working without progress,
leaving the rest of the timetable in poor state.
That's why it is necessary to prepare quality data in order to help the generator do its best.
Notifications are an irreplaceable tool for this task.
However, some of the oversights made while entering data cannot be seen even in the notifications.
The problem can be solved only if you abide by the following rules:
- Do not expect an instantly perfect timetable, because it is impossible to know beforehand whether such timetable is even possible.
- At first, set moderate requirements and let the generator automatically create the timetable.
- Only when you manage to get a valid timetable should you gradually increase the requirements
and start the automatic improvement again.
The generator recognizes three levels of priority, each consisting of a number of individual requirements:
1 - Fatal error level
This group includes:
- cards distributed on forbidden positions
- card conflicts
- class windows
As long as any of these errors exist, the generator will not be working on improving the rest of the timetable.
Here are some typical beginner mistakes that should be avoided at all costs:
- A teacher/class has so many forbidden periods that some of his cards must be placed on a forbidden position
- There are more lessons you want to put in a room than the total number of periods in the timetable
- Too many forbidden positions for a specific lesson and related resources
2 - Difficult warning level
Difficult warning level includes only one item: a subject appears in some class timetables more than once a day.
You should make sure to enter as many subjects as really taught in the school and choose the right subject for each lesson.
3 - Warning level
There are over twenty of warnings that will often appear in notifications.
The generator will solve them only when all other errors and warnings have been solved.