ClassSchedulingProblem constructor with parameters: numOfStudents, classesPerStudent, numOfClasses, numOfTimeSlots, enrollmentProportion
see field documentation for details of each
This implementation of steepest descent looks at all possible single changes to a class
time schedule and selects the one which most greatly decreases the number of conflicts.
class 1 enrollment divided by class n enrollment
we use a simple model where classes are ordered by decreasing enrollment and assume this is proportional to the position in the order