# Purdue University Timetabling: Group Constraints

SAME_ROOM (same room)
Given classes must be taught in the same room. For prohibited and (strongly) discouraged version -- any pair of classes in the constraint cannot be taught in the same room. Therefore, if the constraint is preferred: if all its classes are in the same room, resultant preference is -1, if there are two classes in different rooms, preference is 0 If the constraint is discouraged: if two classes are in the same room, preference is 1, if all classes (every pair of classes) are in different rooms, preference is 0. This schema applies to all other group constraints as well.
SAME_TIME (same time)
Given classes must be taught at the same time of day (independent of the actual day the classes meet). For the classes of the same length, this is the same constraint as SAME_START. For classes of different length, the shorter one cannot start before, nor end after, the longer one. For prohibited and (strongly) discouraged version -- one class may not meet on any day at a time of day that overlaps with that of the other. For example, one class can not meet M 7:30 while the other meets F 7:30. Note the difference here from the DIFF_TIME constraint that only prohibits the actual class meetings from overlapping.
SAME_START (same start time)
Given classes must start during the same half-hour period of a day (independent of the actual day the classes meet). For instance, MW 7:30 is compatible with TTh 7:30 but not with MWF 8:00. For prohibited and (strongly) discouraged version -- any pair of classes in the given constraint cannot start during the same half-hour period of any day of the week.
SAME_DAYS (same days)
Given classes must be taught on the same days. In case of classes of different time patterns, a class with fewer meetings must meet on a subset of the days used by the class with more meetings. For example, if one class pattern is 3x50, all others given in the constraint can only be taught on Monday, Wednesday, or Friday. For a 2x100 class MW, MF, WF is allowed but TTh is prohibited. For prohibited and (strongly) discouraged version -- any pair of classes classes cannot be taught on the same days (cannot overlap in days). For instance, if one class is MFW, the second has to be TTh.
BTB_TIME (back-to-back time)
Classes must be offered in adjacent time segments but may be placed in different rooms. Given classes must also be taught on the same days. For prohibited and (strongly) discouraged version -- no pair of classes can be taught back-to-back. They may not overlap in time, but must be taught on the same days. This means that there must be at least half-hour between these classes.
BTB (back-to-back)
Same as back-to-back time, but classes must also be placed in the same room. For prohibited and (strongly) discouraged version -- classes cannot be back-to-back. There must be at least half-hour between these classes, and they must be taught on the same days and in the same room.
NHB_GTE(1) (greater than or equal to 1 hour between)
Given classes have to have 1 hour or more in between. For prohibited and (strongly) discouraged version -- given classes have to have less than 1 hour in between.
NHB_LT(6) (less than 6 hours between)
Given classes must have less than 6 hours from end of first class to the beginning of the next. Similar to other NHB and BTB constraints (see below), given classes must be taught on the same days. For prohibited and (strongly) discouraged version -- given classes must have 6 or more hours between. This constraint does not carry over from classes taught at the end of one day to the beginning of the next.
NHB(x) (x hr(s) between)
Given classes must have exactly x hours in between the end of one and the beginning of another. As with the BTB_TIME constraint, given classes must be taught on the same days. For prohibited and (strongly) discouraged version -- classes can not have x hours in between. They may not overlap in time but must be taught on the same days.
DIFF_TIME (different time)
Given classes cannot overlap in time. They may be taught at the same time of day if they are on different days. For instance, MF 7:30 is compatible with TTh 7:30. For prohibited and (strongly) discouraged version -- every pair of classes in the constraint must overlap in time.

[back]