public class StudentSwapSectioning extends DefaultStudentSectioning implements InfoProvider<Lecture,Placement>
iFinalSectioning, iModel, sDF2
Constructor and Description |
---|
StudentSwapSectioning(TimetableModel model) |
Modifier and Type | Method and Description |
---|---|
protected List<StudentConflict> |
getStudentConflictCriteria() |
static double |
gp(Solution<Lecture,Placement> solution)
Student group percentage of a solution
|
static double |
gp(TimetableModel model)
Student group percentage of a solution
|
static double |
gp(TimetableModel model,
Collection<Lecture> variables)
Student group percentage of a solution subset
|
protected double |
group(Neighbour<Lecture,Placement> n,
Assignment<Lecture,Placement> assignment)
Student group weight change of a student swap
|
static double |
group(TimetableModel model)
Student group weight of a solution
|
boolean |
hasFinalSectioning()
Return true if final student sectioning is implemented.
|
protected boolean |
hasStudentGroups(Collection<Student> students) |
protected double |
objective(Neighbour<Lecture,Placement> n,
Assignment<Lecture,Placement> assignment)
Student conflict weight change of a student swap
|
protected double |
objective(Solution<Lecture,Placement> solution)
Student conflict weight of a solution
|
void |
resection(Assignment<Lecture,Placement> assignment,
Lecture lecture,
boolean recursive,
boolean configAsWell)
Perform sectioning on the given lecture
|
protected InitialSectioning.Group[] |
studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations)
Section students into configurations.
|
protected InitialSectioning.Group[] |
studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures)
Section students into lectures.
|
void |
switchStudents(Solution<Lecture,Placement> solution,
TerminationCondition<Lecture,Placement> termination)
Run student final sectioning (switching students between sections of the same
class in order to minimize overall number of student conflicts).
|
protected double |
value(Neighbour<Lecture,Placement> n,
Assignment<Lecture,Placement> assignment)
Combined weight change of a student swap
|
protected double |
value(Solution<Lecture,Placement> solution)
Combined weight of a solution
|
getClassLabel, getInfo, getInfo, getProgress, initialSectioning, initialSectioningLectures
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getInfo, getInfo
public StudentSwapSectioning(TimetableModel model)
protected List<StudentConflict> getStudentConflictCriteria()
public boolean hasFinalSectioning()
DefaultStudentSectioning
hasFinalSectioning
in interface StudentSectioning
hasFinalSectioning
in class DefaultStudentSectioning
protected double objective(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)
protected double group(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)
protected double value(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)
protected double objective(Solution<Lecture,Placement> solution)
public static double group(TimetableModel model)
public static double gp(TimetableModel model, Collection<Lecture> variables)
public static double gp(TimetableModel model)
public static double gp(Solution<Lecture,Placement> solution)
public void switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)
DefaultStudentSectioning
switchStudents
in interface StudentSectioning
switchStudents
in class DefaultStudentSectioning
solution
- current solutiontermination
- termination condition (optional)public void resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)
DefaultStudentSectioning
resection
in interface StudentSectioning
resection
in class DefaultStudentSectioning
assignment
- current assignmentlecture
- given lecturerecursive
- recursively resection lectures affected by a student swapconfigAsWell
- resection students between configurations as wellprotected boolean hasStudentGroups(Collection<Student> students)
protected InitialSectioning.Group[] studentsToConfigurations(Long offeringId, Collection<Student> students, Collection<Configuration> configurations)
DefaultStudentSectioning
InitialSectioning.getGroups()
.studentsToConfigurations
in class DefaultStudentSectioning
offeringId
- instructional offering idstudents
- list of students to be sectionedconfigurations
- list of configurations the students are to be sectioned intoInitialSectioning.Group
protected InitialSectioning.Group[] studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)
DefaultStudentSectioning
InitialSectioning.getGroups()
.studentsToLectures
in class DefaultStudentSectioning
offeringId
- instructional offering idstudents
- list of students to be sectionedlectures
- list of lectures the students are to be sectioned intoInitialSectioning.Group