Load
The real amount of work to place: which teacher teaches which lesson to which class and for how many weekly hours.
Timetable quality is largely determined before the solver starts. When lesson loads, real capacity, mandatory rules and quality preferences are separated correctly, Dersiva can produce more consistent trials and explain unplaced lessons more clearly.
The real amount of work to place: which teacher teaches which lesson to which class and for how many weekly hours.
A rule the solver must never violate, such as a truly unavailable day or a strict daily maximum.
A quality target to improve where possible, such as reducing gaps or balancing teaching days.
Before generation, review teacher, class, lesson and assignment totals. Planned weekly teacher load should match assignments, while each class must have enough usable weekly periods for its total lesson demand.
Every assignment should carry the correct teacher, class/section, lesson and weekly-hour value. Planned and remaining load make it easier to see which teacher or lesson group still requires capacity during placement.
Only rules that truly cannot be violated should be hard constraints. Turning every preference into a hard rule unnecessarily shrinks the solution space. Lock mandatory conditions first and leave quality preferences as objectives where possible.
Enter days a teacher truly cannot work as unavailable. If only certain periods are available, model the real time availability. Make sure enough total open slots remain to carry the teacher’s weekly load.
Dersiva can use different daily maximum lesson limits for different teachers. When a limit is strict, the solver must distribute the weekly load across the remaining days. A very low daily maximum can make a timetable difficult even when enough days appear to be open.
Block requirements and patterns such as 2+2+1 define the operational structure of a lesson. They must be evaluated together with the real daily capacity of the class and teacher availability.
Having enough hours somewhere in the week is not enough. A lesson needs the teacher, class and lesson pattern to be available at the same time. Day-specific class capacity and teacher daily capacity together create the real solution space.
Fast mode is useful for short feasibility and data trials; Balanced mode targets a general speed/quality compromise; Quality mode can spend more optimization time searching for a better result. Do not start with the longest solve when you are still validating data.
After pre-checks, the solver builds the model, searches the feasible space under mandatory rules and optimizes quality objectives. Treat the result as a trial first; the first successful solve should not automatically become the applied timetable.
If a few hours remain unplaced, identify which teacher, class, day and constraints meet at the bottleneck. Instead of randomly removing rules, check capacity, daily maxima, block patterns and conflicting assignments in a controlled order.
You can produce different trials with Fast, Balanced or Quality modes. Even with the same completion rate, gaps, dense days, short days and distribution quality may differ. Compare them in history and select only the reviewed timetable as applied.
If the application closes at the start of solving, do not treat it as an infeasible timetable by default. Retry with Safe Diagnostic Mode — 1 Worker; verify OR-Tools native components, Microsoft Visual C++ runtime and logs. If 1 Worker succeeds while normal solving closes, investigate the runtime/native/multi-worker layer separately.
Short trials for data and feasibility checks.
General compromise between speed and quality.
More optimization time to search for a stronger quality result.
Are weekly load and teacher totals correct?
Are there enough teacher/class overlapping open slots?
Do daily maximum, class slots and block length fit together?
Are multiple hard rules eliminating the same solution space?
A solver reporting no feasible placement and an application closing inside the native solver call are different failure classes. Safe Diagnostic Mode, logs and runtime prerequisites help distinguish them.
The next guide will explain why two complete timetables can have very different quality, using gaps, density, short days, lesson weight, student load and school-wide fairness.