Diagnosing a failed generation
Generation "fails" when the solver cannot fit everything in: it returns the best partial timetable it found, and the lessons it had to sacrifice remain in the bar of sticky notes to place (a red banner summarises the blockage). The problem is almost always over-constraint: too many lessons for the open time slots, or constraints too tight to fit together. The remedy is to loosen what can be loosened — that is what this page is about. To understand how the solver prioritises and what it sacrifices, see Automatic generation; for the catalogue of conflicts on an already-built timetable, see Conflicts and diagnostic.
The diagnostic is a lead, not a verdict
When a lesson cannot be placed, Omniscol highlights the entity that caused the most problems across its attempts — "this teacher does not have enough time slots", "this class does not fit in its grid". This is a heuristic: the reported entity is the one that comes up most often in the blockages, not necessarily the single cause. Constraints are interdependent — loosening elsewhere can unblock everything. So take the message as a direction to investigate: the real remedy is often to ease the overall over-constraint (a few more time slots, less strict availability) rather than fixating on the entity pointed out.
Most frequent causes
1. Availability too restrictive
A teacher has marked so many periods as impossible that not enough time slots remain to place their lessons.
Diagnosis: examine the availability screen of the teacher concerned. Count the free time slots and compare with their teaching hours.
Resolutions:
- Relax some periods (turn black into red — undesirable but not impossible),
- Redistribute the courses (assign part of them to another teacher),
- Talk with the teacher if the availability is negotiable.
2. No compatible classroom
A subject requires a specialisation for which no classroom has been created, or all the matching classrooms are occupied on the only possible time slots.
Resolutions:
- Create the missing specialisation on a suitable classroom,
- Reduce the specialisation constraint,
- Add a classroom.
3. Insufficient capacity
The headcount of a group / class exceeds the capacity of all the candidate classrooms.
Resolutions:
- Assign a larger classroom,
- Assign several classrooms to the same course (the total capacity is the sum),
- Split the class / group.
4. Structurally impossible alignment
The hours of the aligned groups differ, or the parent classes have incompatible time grids, or an aligned teacher can only be in one place.
Resolutions:
- Harmonise the hours across the aligned groups,
- Unalign and create one course per class,
- Check that the sites of the aligned classes share a common time grid on the target time slot.
5. Too many lessons for the grid
When a class or a teacher obviously has more hours than open time slots, a warning flags it upstream (tab Generation, hours vs time slots counters). The tricky case is more insidious: taken in isolation, no obvious overflow, but the accumulation of constraints between teachers and classes — and their interplay — eventually no longer fits.
Resolutions:
- Reduce the hours entered,
- Extend the time grid (open Wednesday afternoon, for example),
- Relax a few unavailability periods, targeting the periods that many entities avoid at the same time: the accumulation saturates the grid.
6. Too many incompatibilities
Stacking "no X after Y" constraints can create a system with no solution.
Resolution: replace some incompatibilities with softer pedagogical weights.
7. Not enough classrooms (bottleneck)
Very frequent: even if each classroom is suitable, their number is not enough to absorb the demand at the same moment. Lessons pile up on the same time slots and the shortage of classrooms becomes the bottleneck that keeps everything from fitting.
Resolutions:
- Add classrooms (or share some between classes),
- Spread the demand by widening the time grid,
- Reduce the constraints that concentrate lessons on few time slots.
8. Several sites: travel eats into the hours
With several sites, the travel times between locations reduce the time slots a teacher (or a class) can actually use: changing site costs time, which is no longer available to place a lesson. Effective availability tightens and the puzzle gets harder.
Resolutions:
- Group a teacher's lessons on the same site within the day,
- Check the declared travel times between sites,
- Limit back-and-forth trips between sites within the same day.
Checklist before relaunching a generation
- Do all classes have an assigned site?
- Do all classes have their subjects and their teachers?
- Do all groups used in courses have a theoretical headcount or a manageable capacity?
- Is the availability of all teachers validated?
- No critical (red) alert on the Generation tab?
Built-in diagnostic tools
- Generation tab — upstream: statistics (courses / hours per teacher, per class, per site) and warnings (hours vs time slots, critical alerts to fix before launching).
- Unplaced lessons (sticky notes, on the right) — after a failure: the output of an incomplete generation. The placement button (pin) on each one shows, through the colored placeholders, why no spot works.
- Detection of forgotten groups: groups defined but with no course assigned.
How-to
Diagnosing a failed generation
-
When generation fails, Omniscol shows a red banner, keeps the partial timetable visible, and puts the lessons it could not fit in the sticky notes bar, on the right.
-
Read the banner: it gives a direction (a heuristic, see above), not a verdict.
-
Start from the unplaced lessons, not from "conflicts". Generation never creates a conflict: it simply sets aside what does not fit. Take a lesson from the sticky notes and click its placement button (pin, Place on timetable).
-
Read the colored time slots. Omniscol shows all the candidate time slots; for a lesson that is impossible to place, they are all blocked. Look for why, in the order of the three usual blockers: the teacher busy or unavailable, the class (or the group) busy, or no classroom free and compatible. The reason appears when hovering over the time slot.
-
Loosen the blocking constraint — depending on the case: relax availability, add or free up a classroom, harmonise an alignment, widen the grid (see the causes above) — then relaunch.
-
Before relaunching, go through the checklist above (sites assigned, subjects and teachers in place, headcounts entered, availability validated, no critical alert on the Generation tab).