University Course Timetabling Group Constraint Types (v2.4)
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.
When prohibited or (strongly) discouraged: 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 different 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.
When prohibited or (strongly) discouraged: 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.
When prohibited or (strongly) discouraged: 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)
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.
When prohibited or (strongly) discouraged: 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 Room)
Classes must be offered in adjacent time segments and must be placed in the same room. Given classes must also be taught on the same days.
When prohibited or (strongly) discouraged: 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) (At Least 1 Hour Between)
Given classes have to have 1 hour or more in between.
When prohibited or (strongly) discouraged: 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. Given classes must also be taught on the same days.
When prohibited or (strongly) discouraged: 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 Hour(s) Between)
Given classes must have exactly 1 hour in between the end of one and the beginning of another. As with the Back-To-Back constraint, given classes must be taught on the same days.
When prohibited or (strongly) discouraged: classes can not have 1 hour 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.
When prohibited or (strongly) discouraged: every pair of classes in the constraint must overlap in time.

SPREAD (Spread In Time)
Given classes have to be spread in time (overlapping of the classes in time needs to be minimized).
This constraint can only be required.

BTB_DAY (Back-To-Back Day)
Classes must be offered on adjacent days and may be placed in different rooms.
When prohibited or (strongly) discouraged: classes can not be taught on adjacent days. They also can not be taught on the same days. This means that there must be at least one day between these classes.

CAN_SHARE_ROOM (Can Share Room)
Given classes can share the room (use the room in the same time) if the room is big enough.
This constraint can only be required.

SAME_INSTR (Same Instructor)
Given classes are treated as they are taught by the same instructor, i.e., they cannot overlap in time and if they are back-to-back the assigned rooms cannot be too far (instructor limit is used).
If the constraint is required and the classes are back-to-back, discouraged and strongly discouraged distances between assigned rooms are also considered.
This constraint can only be required, preferred or strongly preferred.

SAME_STUDENTS (Same Students)
Given classes are treated as they are attended by the same students, i.e., they cannot overlap in time and if they are back-to-back the assigned rooms cannot be too far (student limit is used).
This constraint can only be required, preferred or strongly preferred.

MIN_GRUSE(10x1h) (Minimize Use Of 1h Groups)
Minimize number of groups of time that are used by the given classes. The time is spread into the following 10 groups of one hour: 7:30a-8:30a, 8:30a-9:30a, 9:30a-10:30a, ... 4:30p-5:30p.

MIN_GRUSE(5x2h) (Minimize Use Of 2h Groups)
Minimize number of groups of time that are used by the given classes. The time is spread into the following 5 groups of two hours: 7:30a-9:30a, 9:30a-11:30a, 11:30a-1:30p, 1:30p-3:30p, 3:30p-5:30p.

MIN_GRUSE(3x3h) (Minimize Use Of 3h Groups)
Minimize number of groups of time that are used by the given classes. The time is spread into the following 3 groups: 7:30a-10:30a, 10:30a-2:30p, 2:30p-5:30p.

MIN_GRUSE(2x5h) (Minimize Use Of 5h Groups)
Minimize number of groups of time that are used by the given classes. The time is spread into the following 2 groups: 7:30a-12:30a, 12:30a-5:30p.

MEET_WITH (Meet Together)
Given classes are meeting together (same as if the given classes require constraints CAN_SHARE_ROOM, SAME_ROOM, SAME_TIME and SAME_DAYS all together).
This constraint can only be required.

PRECEDENCE (Precedence)
Given classes have to be taught in the given order (the first meeting of the first class has to end before the first meeting of the second class etc.)
When prohibited or (strongly) discouraged: classes have to be taught in the order reverse to the given one

MIN_ROOM_USE (Minimize Number Of Rooms Used)
Minimize number of rooms used by the given set of classes.

NDB_GT_1 (More Than 1 Day Between)
Given classes must have two or more days in between.
When prohibited or (strongly) discouraged: given classes must be offered on adjacent days or with at most one day in between.

CH_NOTOVERLAP (Children Cannot Overlap)
If parent classes do not overlap in time, children classes can not overlap in time as well.
Note: This constraint only needs to be put on the parent classes. Preferred configurations are Required All Classes or Pairwise (Strongly) Preferred.

FOLLOWING_DAY (Next Day)
The second class has to be placed on the following day of the first class (if the first class is on Friday, second class have to be on Monday).
When prohibited or (strongly) discouraged: The second class has to be placed on the previous day of the first class (if the first class is on Monday, second class have to be on Friday).
Note: This constraint works only between pairs of classes.

EVERY_OTHER_DAY (Two Days After)
The second class has to be placed two days after the first class (Monday → Wednesday, Tuesday → Thurday, Wednesday → Friday, Thursday → Monday, Friday → Tuesday).
When prohibited or (strongly) discouraged: The second class has to be placed two days before the first class (Monday → Thursday, Tuesday → Friday, Wednesday → Monday, Thursday → Tuesday, Friday → Wednesday).
Note: This constraint works only between pairs of classes.