Package | Description |
---|---|
org.cpsolver.coursett.constraint |
University Course Timetabling: Constraints.
|
org.cpsolver.coursett.criteria |
University Course Timetabling: Criteria.
|
org.cpsolver.coursett.criteria.additional |
University Course Timetabling: Additional (Experimental) Criteria.
|
org.cpsolver.coursett.custom |
University Course Timetabling: Various customizations.
|
org.cpsolver.coursett.model |
University Course Timetabling: Model.
|
org.cpsolver.coursett.sectioning |
Additional Student Sectioning Algorithms.
|
Modifier and Type | Method and Description |
---|---|
protected List<Student> |
ExtendedStudentConflicts.getCommonStudents(Long offeringId1,
Long offeringId2) |
Set<Student> |
JenrlConstraint.getInstructors() |
Set<Student> |
JenrlConstraint.getStudents() |
Modifier and Type | Method and Description |
---|---|
void |
JenrlConstraint.decJenrl(Assignment<Lecture,Placement> assignment,
Student student)
Decrement the number of joined enrollments (during student final
sectioning)
|
double |
JenrlConstraint.getJenrlWeight(Student student) |
void |
JenrlConstraint.incJenrl(Assignment<Lecture,Placement> assignment,
Student student)
Increment the number of joined enrollments (during student final
sectioning)
|
Modifier and Type | Method and Description |
---|---|
void |
StudentConflict.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
boolean |
StudentConflict.isApplicable(Student student,
Lecture l1,
Lecture l2) |
Modifier and Type | Method and Description |
---|---|
int |
IgnoredCommittedStudentConflict.countCommittedConflicts(Student student,
Placement placement) |
void |
ImportantStudentConflict.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
void |
InstructorStudentConflict.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
void |
QuadraticStudentConflict.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
void |
StudentMinimizeDaysOfWeek.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
void |
StudentMinimizeScheduleHoles.incJenrl(Assignment<Lecture,Placement> assignment,
JenrlConstraint jenrl,
double studentWeight,
Double conflictPriority,
Student student) |
boolean |
ImportantStudentConflict.isApplicable(Student student,
Lecture l1,
Lecture l2) |
boolean |
ImportantStudentHardConflict.isApplicable(Student student,
Lecture l1,
Lecture l2) |
Modifier and Type | Method and Description |
---|---|
int |
DeterministicStudentSectioning.DeterministicInitialSectioning.compare(Student s1,
Student s2)
Sort students by their curriculum information and id
|
Modifier and Type | Method and Description |
---|---|
protected InitialSectioning.Group[] |
DeterministicStudentSectioning.studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations) |
protected InitialSectioning.Group[] |
DeterministicStudentSectioning.studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures) |
Constructor and Description |
---|
DeterministicInitialSectioning(Progress progress,
Long offeringId,
Collection<?> lectureOrConfigurations,
Collection<Student> students) |
Modifier and Type | Field and Description |
---|---|
protected Collection<Student> |
InitialSectioning.iStudents |
Modifier and Type | Method and Description |
---|---|
Student |
FinalSectioning.Move.firstStudent() |
Student |
FinalSectioning.MoveBetweenCfgs.firstStudent() |
Student |
FinalSectioning.Move.secondStudent() |
Student |
FinalSectioning.MoveBetweenCfgs.secondStudent() |
Modifier and Type | Method and Description |
---|---|
Set<Student> |
Lecture.conflictStudents(Assignment<Lecture,Placement> assignment)
List of students of this class which are in conflict with any other
assignment
|
Set<Student> |
Lecture.conflictStudents(Assignment<Lecture,Placement> assignment,
Placement value)
List of students of this class in conflict with the given assignment
|
Set<Student> |
TimetableModel.getAllStudents() |
List<Student> |
InitialSectioning.Group.getStudents() |
List<Student> |
StudentGroup.getStudents()
Return students of this group
|
Set<Student> |
Lecture.initialStudentConflicts()
List of student conflicts caused by the initial assignment of this
lecture
|
Set<Student> |
Lecture.sameStudents(Lecture lecture)
List of students enrolled in this class as well as in the given class
|
Set<Student> |
Configuration.students() |
Set<Student> |
Lecture.students()
List of enrolled students
|
Modifier and Type | Method and Description |
---|---|
void |
Lecture.addStudent(Assignment<Lecture,Placement> assignment,
Student student)
Add an enrolled student
|
void |
InitialSectioning.addStudent(Student student) |
void |
InitialSectioning.Group.addStudent(Student student) |
void |
StudentGroup.addStudent(Student student)
Add student to this group
|
void |
TimetableModel.addStudent(Student student) |
boolean |
InitialSectioning.Group.canEnroll(Student student) |
int |
Student.compareTo(Student s) |
List<Lecture> |
Lecture.conflictLectures(Assignment<Lecture,Placement> assignment,
Student student)
Lectures different from this one, where it is student conflict of the
given student between this and the lecture
|
FinalSectioning.MoveBetweenCfgs |
FinalSectioning.createMove(Assignment<Lecture,Placement> assignment,
Configuration firstConfig,
Student firstStudent,
Configuration secondConfig,
Student secondStudent) |
FinalSectioning.Move |
FinalSectioning.createMove(Assignment<Lecture,Placement> assignment,
Lecture firstLecture,
Student firstStudent,
Lecture secondLecture,
Student secondStudent) |
FinalSectioning.Move |
FinalSectioning.createMove(Assignment<Lecture,Placement> assignment,
Lecture firstLecture,
Student firstStudent,
Lecture secondLecture,
Student secondStudent,
FinalSectioning.Move parentMove) |
protected void |
TimetableModel.decJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Decrement
JenrlConstraint between the given two classes by the given student |
FinalSectioning.MoveBetweenCfgs |
FinalSectioning.findMove(Assignment<Lecture,Placement> assignment,
Configuration config,
Student student) |
FinalSectioning.Move |
FinalSectioning.findMove(Assignment<Lecture,Placement> assignment,
Lecture lecture,
Student student) |
Lecture |
Lecture.getChild(Student student,
Long subpartId) |
double |
InitialSectioning.Group.getDistance(Student student) |
double |
Student.getDistance(Student student) |
double |
Student.getSameGroupWeight(Student other) |
double |
InitialSectioning.Group.getStudentWeight(Student student) |
boolean |
Configuration.hasConflict(Assignment<Lecture,Placement> assignment,
Student student) |
boolean |
Lecture.hasStudent(Student student)
Returns true if the given student is enrolled
|
protected void |
TimetableModel.incJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Increment
JenrlConstraint between the given two classes by the given student |
boolean |
InitialSectioning.Group.isEnrolled(Student student) |
int |
Lecture.isInConflict(Assignment<Lecture,Placement> assignment,
Student student)
True if this lecture is in a student conflict with the given student
|
void |
Lecture.removeStudent(Assignment<Lecture,Placement> assignment,
Student student)
Remove an enrolled student
|
void |
InitialSectioning.Group.removeStudent(Student student) |
void |
TimetableModel.removeStudent(Student student) |
double |
InitialSectioning.Group.size(Student student) |
int |
FinalSectioning.test(Assignment<Lecture,Placement> assignment,
Student student,
Lecture lecture) |
Modifier and Type | Method and Description |
---|---|
void |
DefaultStudentSectioning.initialSectioning(Assignment<Lecture,Placement> assignment,
Long offeringId,
String courseName,
Collection<Student> students,
Collection<Configuration> configurations)
Enroll students into the given offering during the initial data load using
InitialSectioning . |
void |
StudentSectioning.initialSectioning(Assignment<Lecture,Placement> assignment,
Long offeringId,
String courseName,
Collection<Student> students,
Collection<Configuration> configurations)
Enroll students into the given offering during the initial data load.
|
static void |
InitialSectioning.initialSectioningCfg(Assignment<Lecture,Placement> assignment,
Progress p,
Long offeringId,
String courseName,
Collection<Student> students,
List<Configuration> configurations) |
protected void |
DefaultStudentSectioning.initialSectioningLectures(Assignment<Lecture,Placement> assignment,
Long offeringId,
String courseName,
Collection<Student> students,
Collection<Lecture> lectures)
Enroll students into the given classes during the initial data load using
InitialSectioning . |
protected InitialSectioning.Group[] |
DefaultStudentSectioning.studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations)
Section students into configurations.
|
protected InitialSectioning.Group[] |
DefaultStudentSectioning.studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures)
Section students into lectures.
|
Constructor and Description |
---|
MoveBetweenCfgs(Configuration firstConfig,
Student firstStudent,
Configuration secondConfig,
Student secondStudent) |
Constructor and Description |
---|
InitialSectioning(Progress progress,
Long offeringId,
Collection<?> lectureOrConfigurations,
Collection<Student> students) |
Modifier and Type | Method and Description |
---|---|
Student |
SctStudent.getStudent()
Student for which the possible enrollments are being computed
|
Modifier and Type | Method and Description |
---|---|
int |
SctSectioning.GroupBasedInitialSectioning.compare(Student s1,
Student s2) |
int |
SctStudent.compare(Student s1,
Student s2)
Compare two students using their curriculum information
|
protected void |
SctModel.decJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Decrement
JenrlConstraint between the given two classes by the given student |
protected void |
StudentSwap.decJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Decrement
JenrlConstraint between the given two classes by the given student |
Neighbour<Lecture,Placement> |
StudentSwapGenerator.generateSwap(TimetableModel model,
Assignment<Lecture,Placement> assignment,
Student student,
Configuration config) |
double |
StudentSwap.getJenrConflictWeight(List<StudentConflict> criteria,
Student student,
Placement p1,
Placement p2)
Compute student conflict weigth between two classes.
|
protected void |
SctModel.incJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Increment
JenrlConstraint between the given two classes by the given student |
protected void |
StudentSwap.incJenrl(Assignment<Lecture,Placement> assignment,
Student student,
Lecture l1,
Lecture l2)
Increment
JenrlConstraint between the given two classes by the given student |
Modifier and Type | Method and Description |
---|---|
protected boolean |
SctSectioning.hasStudentGroups(Collection<Student> students) |
protected boolean |
StudentSwapSectioning.hasStudentGroups(Collection<Student> students) |
protected InitialSectioning.Group[] |
SctSectioning.studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations) |
protected InitialSectioning.Group[] |
StudentSwapSectioning.studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations) |
protected InitialSectioning.Group[] |
SctSectioning.studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures) |
protected InitialSectioning.Group[] |
StudentSwapSectioning.studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures) |
Constructor and Description |
---|
SctStudent(SctModel model,
Student student)
Constructor.
|
StudentSwap(TimetableModel model,
Assignment<Lecture,Placement> assignment,
Student student,
Collection<Lecture> lectures)
Move a student into some other lectures of the offering.
|
StudentSwap(TimetableModel model,
Assignment<Lecture,Placement> assignment,
Student firstStudent,
Student secondStudent,
Long offeringId)
Create a swap of two students of an offering.
|
Constructor and Description |
---|
GroupBasedInitialSectioning(Progress progress,
Long offeringId,
Collection<?> lectureOrConfigurations,
Collection<Student> students) |