Medium constraints are usually considered to be those constraints that fall into the gray area between the hard and soft constraints [15]. In our implementation, we define medium constraints to be constraints such as time and space conflicts which, like hard constraints, cannot physically be violated (for example, it is not possible for a student to be in two different classes at the same time). However we consider these constraints to be medium rather than hard if it is possible to relax the constraints by by making adjustments to the specification of the problem. The primary example is student preferences. We cannot expect to be able to satisfy all student class preferences -- in some cases, certain students will have to adjust their preferences or postpone taking a particular class since some classes will have time conflicts, or will be oversubscribed. In the problem we have studied, students specify their class preferences, plus a number of alternate choices. Our program attempts to satisfy a student's main preferences, but in many cases it will have to choose from the list of alternates, and in some cases will not be able to schedule the number of classes requested, even using the list of alternates.
Medium constraints have a high penalty attached to them, although not as high as that associated with the hard constraints. In the final schedule the penalty of these constraints should be minimized and preferably reduced to zero. Some examples of medium constraints are: