Skip to content
  • Home
  • Blog
  • Automating the timetable: writing constraints correctly

Automating the timetable: writing constraints correctly

7 min read ARK Yazılım

An automatic timetable depends far less on a clever solver than on well-written constraints. Separating what is mandatory from what is preferred is half the work.

Building a timetable is a mathematically hard problem. But in practice, the difficulty lies less in the solver than in how the constraints are written.

Separate hard constraints from preferences

"A teacher cannot teach two classes in the same period" is a hard rule; violate it and the timetable is invalid. "Put maths in the morning" is a preference; if it is not met, the timetable is still usable.

Treat them as the same thing and the solver finds nothing, making the timetable look unsolvable.

Read the infeasibility

When no timetable can be produced, the real information is which constraint blocked it. A good system does not say "no solution found"; it tells you which teacher's weekly load exceeds their available hours.

Be ready for change

A teacher's availability will change mid-term. Being able to regenerate the whole timetable is the single biggest difference from planning by hand — one change no longer means rewriting the entire grid.

Measure the result

Once the timetable is generated, the indicators to look at are clear:

  • Free periods per teacher
  • Classroom utilisation rate
  • Balance of daily lesson load
  • Share of block-lesson rules satisfied

Conclusion

Automatic timetabling does not take the planner's job away; it takes over the repetitive part, freeing the planner to think about the rules instead.

Timetable Planning