In a nutshell, timetabling is the assignment of time slots to a set of
events, subject to constraints on these assignments. Generally,
a constraint places a restriction on when and where classes may be
scheduled.
A constraint can be hard, medium or soft [#49##1#]. The medium and soft
constraints have an associated cost (or penalty), and if they are not
satisfied, the goal is to minimize this cost. The hard constraints must
be satisfied, so their associated cost must be reduced to zero.
In short, the three types of constraints used are:
- Hard - These are constraints that must be satisfied.
- Medium - These are constraints that should be satisfied, if
possible, but are not required for a valid solution or a legal schedule.
- Soft - These constraints have a lower priority (and thus lower
cost) but it is preferable to minimize this cost.