Student initial sectioning (before a solver is started).
Many course offerings consist of multiple classes, with students enrolled in
the course divided among them. These classes are often linked by a set of
constraints, namely:
- Each class has a limit stating the maximum number of students who can be
enrolled in it.
- A student must be enrolled in exactly one class for each subpart of a
course.
- If two subparts of a course have a parent-child relationship, a student
enrolled in the parent class must also be enrolled in one of the child
classes.
Moreover, some of the classes of an offering may be required or prohibited
for certain students, based on reservations that can be set on an offering, a
configuration, or a class.
Before implementing the solver, an initial sectioning of students into
classes is processed. This sectioning is based on Carter's homogeneous
sectioning and is intended to minimize future student conflicts. However, it
is still possible to improve on the number of student conflicts in the
solution. This can be accomplished by moving students between alternative
classes of the same course during or after the search (see
FinalSectioning
).