Package | Description |
---|---|
net.sf.cpsolver.studentsct |
Student Sectioning Solver.
|
net.sf.cpsolver.studentsct.check |
Various checks of validity of a student sectioning solution.
|
net.sf.cpsolver.studentsct.constraint |
Student Sectioning: Constraints.
|
net.sf.cpsolver.studentsct.extension |
Student Sectioning: Various Extensions.
|
net.sf.cpsolver.studentsct.heuristics |
Student Sectioning: Heuristics.
|
net.sf.cpsolver.studentsct.heuristics.selection |
Student Sectioning: Various Neighbour Selection Criteria.
|
net.sf.cpsolver.studentsct.model |
Student Sectioning: Model.
|
net.sf.cpsolver.studentsct.reservation |
Student Sectioning: Reservations.
|
net.sf.cpsolver.studentsct.weights |
Student Sectioning Weightings: various students weight models
|
Modifier and Type | Method and Description |
---|---|
protected Enrollment |
StudentSectioningXMLLoader.loadEnrollment(Element enrollmentEl,
Request request)
Load enrollment
|
Modifier and Type | Method and Description |
---|---|
static Solution<Request,Enrollment> |
Test.batchSectioning(DataProperties cfg)
Batch sectioning test
|
Solution<Request,Enrollment> |
StudentSctBBTest.getSolution()
Compute and return the sectioning solution.
|
protected Solution<Request,Enrollment> |
StudentSectioningSaver.getSolution()
Solution to be saved
|
Solver<Request,Enrollment> |
StudentSectioningSaver.getSolver()
Solver
|
static Solution<Request,Enrollment> |
Test.onlineSectioning(DataProperties cfg)
Online sectioning test
|
static Solution<Request,Enrollment> |
Test.solveModel(StudentSectioningModel model,
DataProperties cfg)
Solve the student sectioning problem using IFS solver
|
Modifier and Type | Method and Description |
---|---|
void |
StudentSectioningModel.afterAssigned(long iteration,
Enrollment enrollment)
Called after an enrollment was assigned to a request.
|
void |
StudentSectioningModel.afterUnassigned(long iteration,
Enrollment enrollment)
Called before an enrollment was unassigned from a request.
|
double |
StudentPreferencePenalties.getPenalty(Enrollment enrollment)
Return penalty of an enrollment.
|
protected void |
StudentSectioningXMLSaver.saveEnrollment(Element assignmentEl,
Enrollment enrollment)
Save enrollment
|
Modifier and Type | Method and Description |
---|---|
void |
Test.TestSolutionListener.bestCleared(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.bestRestored(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.bestSaved(Solution<Request,Enrollment> solution) |
void |
Test.TestSolutionListener.getInfo(Solution<Request,Enrollment> solution,
Map<String,String> info) |
void |
Test.TestSolutionListener.getInfo(Solution<Request,Enrollment> solution,
Map<String,String> info,
Collection<Request> variables) |
static void |
Test.printInfo(Solution<Request,Enrollment> solution,
boolean computeTables,
boolean computeSectInfos,
boolean runChecks)
Print some information about the solution
|
static void |
Test.saveInfoToXML(Solution<Request,Enrollment> solution,
HashMap<String,String> extra,
File file)
Save solution info as XML
|
void |
Test.TestSolutionListener.solutionUpdated(Solution<Request,Enrollment> solution) |
Constructor and Description |
---|
StudentSectioningSaver(Solver<Request,Enrollment> solver)
Constructor
|
StudentSectioningXMLSaver(Solver<Request,Enrollment> solver)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Enrollment |
InevitableStudentConflicts.StudentCheck.firstConflict(Enrollment enrollment)
First conflicting enrollment
|
Enrollment[] |
InevitableStudentConflicts.StudentCheck.getBestAssignment()
Best schedule
|
Modifier and Type | Method and Description |
---|---|
Enrollment |
InevitableStudentConflicts.StudentCheck.firstConflict(Enrollment enrollment)
First conflicting enrollment
|
Modifier and Type | Method and Description |
---|---|
Enrollment |
LinkedSections.Assignment.getEnrollment(Request request,
int index)
Return enrollment of the given request
|
Enrollment |
LinkedSections.CurrentAssignment.getEnrollment(Request request,
int index)
Return
Variable.getAssignment() |
Enrollment |
LinkedSections.inConflict(Enrollment enrollment)
Check for conflicts.
|
Enrollment |
LinkedSections.inConflict(Enrollment enrollment,
LinkedSections.Assignment assignment)
Check for conflicts.
|
Modifier and Type | Method and Description |
---|---|
void |
LinkedSections.computeConflicts(Enrollment enrollment,
LinkedSections.Assignment assignment,
LinkedSections.ConflictHandler conflicts)
Compute conflicting enrollments.
|
void |
LinkedSections.computeConflicts(Enrollment enrollment,
LinkedSections.ConflictHandler conflicts)
Compute conflicting enrollments.
|
void |
ConfigLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the config's enrollment
(computed by
ConfigLimit.getEnrollmentWeight(Config, Request) )
exceeds the limit. |
void |
CourseLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the course's enrollment
(computed by
CourseLimit.getEnrollmentWeight(Course, Request) )
exceeds the limit. |
void |
LinkedSections.LinkedSectionsConstraint.computeConflicts(Enrollment value,
Set<Enrollment> conflicts)
Compute conflicts using
LinkedSections.computeConflicts(Enrollment, ConflictHandler) |
void |
RequiredReservation.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if there is a reservation that
the student must use, but the given enrollment does not use it.
|
void |
ReservationLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the reservation's remaning available space
(computed by
Reservation.getReservedAvailableSpace(Request) )
is below the requests weight Request.getWeight() . |
void |
SectionLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if there is a section which limit
(computed by
SectionLimit.getEnrollmentWeight(Section, Request) )
exceeds the section limit. |
void |
StudentConflict.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting when the student is enrolled into
another course / free time request that has an assignment that is
overlapping with one or more assignments of the given section.
|
boolean |
ConfigLimit.inConflict(Enrollment enrollment)
A given enrollment is conflicting, if the config's enrollment (computed by
ConfigLimit.getEnrollmentWeight(Config, Request) ) exceeds the
limit. |
boolean |
CourseLimit.inConflict(Enrollment enrollment)
A given enrollment is conflicting, if the course's enrollment (computed by
CourseLimit.getEnrollmentWeight(Course, Request) ) exceeds the
limit. |
Enrollment |
LinkedSections.inConflict(Enrollment enrollment)
Check for conflicts.
|
boolean |
LinkedSections.LinkedSectionsConstraint.inConflict(Enrollment value)
Check for conflict using
LinkedSections.inConflict(Enrollment) |
boolean |
RequiredReservation.inConflict(Enrollment enrollment)
A given enrollment is conflicting, if there is a reservation that
the student must use, but the given enrollment does not use it.
|
boolean |
ReservationLimit.inConflict(Enrollment enrollment)
A given enrollment is conflicting, if the config's enrollment (computed by
ConfigLimit.getEnrollmentWeight(Config, Request) ) exceeds the
limit. |
boolean |
SectionLimit.inConflict(Enrollment enrollment)
A given enrollment is conflicting, if there is a section which
limit(computed by
SectionLimit.getEnrollmentWeight(Section, Request) ) exceeds the
section limit. |
boolean |
StudentConflict.inConflict(Enrollment enrollment)
A given enrollment is conflicting when the student is enrolled into
another course / free time request that has an assignment that is
overlapping with one or more assignments of the given section.
|
Enrollment |
LinkedSections.inConflict(Enrollment enrollment,
LinkedSections.Assignment assignment)
Check for conflicts.
|
boolean |
LinkedSections.LinkedSectionsConstraint.isConsistent(Enrollment enrollment,
Enrollment other)
Check consistency using
LinkedSections.inConflict(Enrollment, Assignment) |
boolean |
StudentConflict.isConsistent(Enrollment e1,
Enrollment e2)
Two enrollments are consistent if they are not overlapping in time
|
boolean |
LinkedSections.ConflictHandler.onConflict(Enrollment conflict)
Called when there is a conflict, if false the computation of other conflicts is stopped.
|
Modifier and Type | Method and Description |
---|---|
void |
ConfigLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the config's enrollment
(computed by
ConfigLimit.getEnrollmentWeight(Config, Request) )
exceeds the limit. |
void |
CourseLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the course's enrollment
(computed by
CourseLimit.getEnrollmentWeight(Course, Request) )
exceeds the limit. |
void |
LinkedSections.LinkedSectionsConstraint.computeConflicts(Enrollment value,
Set<Enrollment> conflicts)
Compute conflicts using
LinkedSections.computeConflicts(Enrollment, ConflictHandler) |
void |
RequiredReservation.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if there is a reservation that
the student must use, but the given enrollment does not use it.
|
void |
ReservationLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if the reservation's remaning available space
(computed by
Reservation.getReservedAvailableSpace(Request) )
is below the requests weight Request.getWeight() . |
void |
SectionLimit.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting, if there is a section which limit
(computed by
SectionLimit.getEnrollmentWeight(Section, Request) )
exceeds the section limit. |
void |
StudentConflict.computeConflicts(Enrollment enrollment,
Set<Enrollment> conflicts)
A given enrollment is conflicting when the student is enrolled into
another course / free time request that has an assignment that is
overlapping with one or more assignments of the given section.
|
Modifier and Type | Method and Description |
---|---|
Enrollment |
DistanceConflict.Conflict.getE1()
First enrollment
|
Enrollment |
TimeOverlapsCounter.Conflict.getE1()
First enrollment
|
Enrollment |
DistanceConflict.Conflict.getE2()
Second enrollment
|
Enrollment |
TimeOverlapsCounter.Conflict.getE2()
Second enrollment
|
Modifier and Type | Method and Description |
---|---|
void |
DistanceConflict.afterAssigned(long iteration,
Enrollment value)
Called after a value is assigned to a variable.
|
void |
TimeOverlapsCounter.afterAssigned(long iteration,
Enrollment value)
Called after a value is assigned to a variable.
|
void |
DistanceConflict.afterUnassigned(long iteration,
Enrollment value)
Called after a value is unassigned from a variable.
|
void |
TimeOverlapsCounter.afterUnassigned(long iteration,
Enrollment value)
Called after a value is unassigned from a variable.
|
Set<DistanceConflict.Conflict> |
DistanceConflict.allConflicts(Enrollment enrollment)
The set of all conflicts (
DistanceConflict.Conflict objects) of the given
enrollment and other enrollments that are assignmed to the same student. |
Set<TimeOverlapsCounter.Conflict> |
TimeOverlapsCounter.allConflicts(Enrollment enrollment)
The set of all conflicts (
TimeOverlapsCounter.Conflict objects) of the given
enrollment and other enrollments that are assigned to the same student. |
void |
DistanceConflict.assigned(long iteration,
Enrollment value)
Called when a value is assigned to a variable.
|
void |
TimeOverlapsCounter.assigned(long iteration,
Enrollment value)
Called when a value is assigned to a variable.
|
void |
DistanceConflict.beforeAssigned(long iteration,
Enrollment value)
Called before a value is assigned to a variable.
|
void |
TimeOverlapsCounter.beforeAssigned(long iteration,
Enrollment value)
Called before a value is assigned to a variable.
|
Set<DistanceConflict.Conflict> |
DistanceConflict.conflicts(Enrollment e1)
Return a set of distance conflicts (
DistanceConflict.Conflict objects) of a
(course) enrollment. |
Set<DistanceConflict.Conflict> |
DistanceConflict.conflicts(Enrollment e1,
Enrollment e2)
Return a set of distance conflicts (
DistanceConflict.Conflict objects) between
given (course) enrollments. |
Set<TimeOverlapsCounter.Conflict> |
TimeOverlapsCounter.conflicts(Enrollment e1,
Enrollment e2)
Return a set of time overlapping conflicts (
TimeOverlapsCounter.Conflict objects) between
given (course) enrollments. |
double |
StudentConflictStatistics.countRemovals(long iteration,
Enrollment conflictValue,
Enrollment value) |
Set<TimeOverlapsCounter.Conflict> |
TimeOverlapsCounter.freeTimeConflicts(Enrollment enrollment)
Return a set of free time conflict of the given enrollment.
|
int |
DistanceConflict.nrAllConflicts(Enrollment enrollment)
Total sum of all conflict of the given enrollment and other enrollments
that are assignmed to the same student.
|
int |
TimeOverlapsCounter.nrAllConflicts(Enrollment enrollment)
Total sum of all conflict of the given enrollment and other enrollments
that are assigned to the same student.
|
int |
DistanceConflict.nrConflicts(Enrollment e1)
Return number of distance conflict of a (course) enrollment.
|
int |
DistanceConflict.nrConflicts(Enrollment e1,
Enrollment e2)
Return number of distance conflicts that are between two enrollments.
|
int |
TimeOverlapsCounter.nrConflicts(Enrollment e1,
Enrollment e2)
Return number of time overlapping conflicts that are between two enrollments.
|
int |
TimeOverlapsCounter.nrFreeTimeConflicts(Enrollment enrollment)
Total sum of all free time conflict of the given enrollment.
|
void |
DistanceConflict.unassigned(long iteration,
Enrollment value)
Called when a value is unassigned from a variable.
|
void |
TimeOverlapsCounter.unassigned(long iteration,
Enrollment value)
Called when a value is unassigned from a variable.
|
Modifier and Type | Method and Description |
---|---|
boolean |
DistanceConflict.init(Solver<Request,Enrollment> solver)
Initialize extension
|
boolean |
TimeOverlapsCounter.init(Solver<Request,Enrollment> solver)
Initialize extension
|
Constructor and Description |
---|
Conflict(Student student,
Enrollment e1,
Section s1,
Enrollment e2,
Section s2)
Constructor
|
Conflict(Student student,
int share,
Enrollment e1,
Assignment a1,
Enrollment e2,
Assignment a2)
Constructor
|
Constructor and Description |
---|
DistanceConflict(Solver<Request,Enrollment> solver,
DataProperties properties)
Constructor.
|
StudentConflictStatistics(Solver<Request,Enrollment> solver,
DataProperties properties) |
TimeOverlapsCounter(Solver<Request,Enrollment> solver,
DataProperties properties)
Constructor.
|
Modifier and Type | Field and Description |
---|---|
protected List<Enrollment> |
EnrollmentSelection.iTabu |
Modifier and Type | Method and Description |
---|---|
Enrollment |
EnrollmentSelection.selectValue(Solution<Request,Enrollment> solution,
Request selectedVariable)
Value selection
|
Modifier and Type | Method and Description |
---|---|
Neighbour<Request,Enrollment> |
TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents.selectNeighbour(Solution<Request,Enrollment> solution)
Return all (removed) dummy students into the problem
|
protected Iterator<Enrollment> |
RandomizedBacktrackNeighbourSelection.values(Request variable)
List of values of a variable.
|
Modifier and Type | Method and Description |
---|---|
boolean |
EnrollmentSelection.isAllowed(Enrollment value)
true, if it is allowed to assign given value
|
boolean |
EnrollmentSelection.isAllowed(Enrollment value,
Set<Enrollment> conflicts)
true, if it is allowed to assign given value
|
Modifier and Type | Method and Description |
---|---|
void |
StudentSctNeighbourSelection.changeSelection(Solution<Request,Enrollment> solution) |
protected RouletteWheelSelection<Request> |
RouletteWheelRequestSelection.getRoulette(Solution<Request,Enrollment> solution)
Populate roulette wheel selection, if null or empty.
|
void |
EnrollmentSelection.init(Solver<Request,Enrollment> solver)
Initialization
|
void |
RouletteWheelRequestSelection.init(Solver<Request,Enrollment> solver)
Initialization
|
void |
StudentSctNeighbourSelection.init(Solver<Request,Enrollment> solver) |
void |
TwoPhaseStudentSctNeighbourSelection.init(Solver<Request,Enrollment> solver)
Initialization -- also remove all the dummy students from the problem
|
void |
TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents.init(Solver<Request,Enrollment> solver) |
boolean |
EnrollmentSelection.isAllowed(Enrollment value,
Set<Enrollment> conflicts)
true, if it is allowed to assign given value
|
Neighbour<Request,Enrollment> |
TwoPhaseStudentSctNeighbourSelection.RestoreDummyStudents.selectNeighbour(Solution<Request,Enrollment> solution)
Return all (removed) dummy students into the problem
|
Enrollment |
EnrollmentSelection.selectValue(Solution<Request,Enrollment> solution,
Request selectedVariable)
Value selection
|
Request |
RouletteWheelRequestSelection.selectVariable(Solution<Request,Enrollment> solution)
Variable selection.
|
void |
StudentSctNeighbourSelection.setup(Solver<Request,Enrollment> solver) |
Modifier and Type | Field and Description |
---|---|
protected Enrollment[] |
BranchBoundSelection.Selection.iAssignment
Current assignment
|
protected Enrollment[] |
BranchBoundSelection.Selection.iBestAssignment
Best assignment
|
Modifier and Type | Field and Description |
---|---|
protected HashMap<CourseRequest,List<Enrollment>> |
BranchBoundSelection.Selection.iValues
Value cache
|
Modifier and Type | Method and Description |
---|---|
static Enrollment |
SwapStudentSelection.bestSwap(Enrollment conflict,
Enrollment enrl,
Set<Student> problematicStudents)
Identify the best swap for the given student
|
Enrollment |
BranchBoundSelection.Selection.firstConflict(int idx,
Enrollment enrollment)
First conflicting enrollment
|
Enrollment |
OnlineSelection.EpsilonSelection.firstConflict(int idx,
Enrollment enrollment)
First conflicting enrollment
|
Enrollment[] |
BranchBoundSelection.BranchBoundNeighbour.getAssignment()
Assignment
|
Enrollment[] |
BranchBoundSelection.Selection.getBestAssignment()
Best schedule
|
Enrollment |
SwapStudentSelection.Selection.getBestEnrollment()
The best enrollment found.
|
Modifier and Type | Method and Description |
---|---|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.branchAndBound(Solution<Request,Enrollment> solution)
Find best solution for the next student using
BranchBoundSelection . |
Neighbour<Request,Enrollment> |
BacktrackSelection.selectNeighbour(Solution<Request,Enrollment> solution) |
Neighbour<Request,Enrollment> |
BranchBoundSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbor.
|
Neighbour<Request,Enrollment> |
RandomUnassignmentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a student is randomly selected to be
unassigned.
|
Neighbour<Request,Enrollment> |
ResectionIncompleteStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
ResectionUnassignedStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
RndUnProblStudSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a problematic student is randomly selected to
be unassigned.
|
Neighbour<Request,Enrollment> |
StandardSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Employ the provided
VariableSelection and ValueSelection
and return the selected value as SimpleNeighbour . |
Neighbour<Request,Enrollment> |
SwapStudentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
For each student that does not have a complete schedule, try to find a
request and a student that can be moved out of an enrollment so that the
selected student can be assigned to the selected request.
|
protected List<Enrollment> |
BranchBoundSelection.Selection.values(CourseRequest request)
Returns list of available enrollments for a course request
|
Modifier and Type | Method and Description |
---|---|
static Enrollment |
SwapStudentSelection.bestSwap(Enrollment conflict,
Enrollment enrl,
Set<Student> problematicStudents)
Identify the best swap for the given student
|
Enrollment |
BranchBoundSelection.Selection.firstConflict(int idx,
Enrollment enrollment)
First conflicting enrollment
|
Enrollment |
OnlineSelection.EpsilonSelection.firstConflict(int idx,
Enrollment enrollment)
First conflicting enrollment
|
protected double |
BranchBoundSelection.Selection.getWeight(Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
Weight of an assignment.
|
boolean |
BranchBoundSelection.Selection.inConflict(int idx,
Enrollment enrollment)
True if the enrollment is conflicting
|
boolean |
OnlineSelection.EpsilonSelection.isAllowed(int idx,
Enrollment enrollment) |
Modifier and Type | Method and Description |
---|---|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.branchAndBound(Solution<Request,Enrollment> solution)
Find best solution for the next student using
BranchBoundSelection . |
void |
BacktrackSelection.init(Solver<Request,Enrollment> solver) |
void |
BranchBoundSelection.init(Solver<Request,Enrollment> solver) |
void |
OnlineSelection.init(Solver<Request,Enrollment> solver) |
void |
PriorityConstructionSelection.init(Solver<Request,Enrollment> solver)
Initialize
|
void |
RandomUnassignmentSelection.init(Solver<Request,Enrollment> solver)
Initialization
|
void |
ResectionIncompleteStudentsSelection.init(Solver<Request,Enrollment> solver) |
void |
ResectionUnassignedStudentsSelection.init(Solver<Request,Enrollment> solver) |
void |
RndUnProblStudSelection.init(Solver<Request,Enrollment> solver)
Initialization --
ProblemStudentsProvider.getProblemStudents() is
called |
void |
StandardSelection.init(Solver<Request,Enrollment> solver)
Initialization
|
void |
SwapStudentSelection.init(Solver<Request,Enrollment> solver)
Initialization
|
void |
BacktrackSelection.init(Solver<Request,Enrollment> solver,
String name) |
void |
BranchBoundSelection.init(Solver<Request,Enrollment> solver,
String name)
Initialize
|
protected void |
PriorityConstructionSelection.nextCycle(Solution<Request,Enrollment> solution)
Increment cycle
|
Neighbour<Request,Enrollment> |
BacktrackSelection.selectNeighbour(Solution<Request,Enrollment> solution) |
Neighbour<Request,Enrollment> |
BranchBoundSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
PriorityConstructionSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbor.
|
Neighbour<Request,Enrollment> |
RandomUnassignmentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a student is randomly selected to be
unassigned.
|
Neighbour<Request,Enrollment> |
ResectionIncompleteStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
ResectionUnassignedStudentsSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Select neighbour.
|
Neighbour<Request,Enrollment> |
RndUnProblStudSelection.selectNeighbour(Solution<Request,Enrollment> solution)
With the given probabilty, a problematic student is randomly selected to
be unassigned.
|
Neighbour<Request,Enrollment> |
StandardSelection.selectNeighbour(Solution<Request,Enrollment> solution)
Employ the provided
VariableSelection and ValueSelection
and return the selected value as SimpleNeighbour . |
Neighbour<Request,Enrollment> |
SwapStudentSelection.selectNeighbour(Solution<Request,Enrollment> solution)
For each student that does not have a complete schedule, try to find a
request and a student that can be moved out of an enrollment so that the
selected student can be assigned to the selected request.
|
Constructor and Description |
---|
BranchBoundNeighbour(Student student,
double value,
Enrollment[] assignment)
Constructor
|
SwapStudentNeighbour(double value,
Enrollment enrollment,
List<Enrollment> swaps)
Constructor
|
Constructor and Description |
---|
StandardSelection(DataProperties properties,
VariableSelection<Request,Enrollment> variableSelection,
ValueSelection<Request,Enrollment> valueSelection)
Constructor (variable and value selection are expected to be already
initialized).
|
StandardSelection(DataProperties properties,
VariableSelection<Request,Enrollment> variableSelection,
ValueSelection<Request,Enrollment> valueSelection)
Constructor (variable and value selection are expected to be already
initialized).
|
SwapStudentNeighbour(double value,
Enrollment enrollment,
List<Enrollment> swaps)
Constructor
|
Modifier and Type | Method and Description |
---|---|
Enrollment |
FreeTimeRequest.createEnrollment()
Create enrollment of this request
|
Enrollment |
CourseRequest.createEnrollment(Set<? extends Assignment> sections)
Create enrollment for the given list of sections.
|
Enrollment |
CourseRequest.createEnrollment(Set<? extends Assignment> sections,
Reservation reservation)
Create enrollment for the given list of sections.
|
Modifier and Type | Method and Description |
---|---|
List<Enrollment> |
CourseRequest.computeEnrollments()
Return all possible enrollments.
|
List<Enrollment> |
FreeTimeRequest.computeEnrollments()
Create all possible enrollments of this request -- there is only one
possible enrollment:
FreeTimeRequest.createEnrollment() |
abstract List<Enrollment> |
Request.computeEnrollments()
Compute available enrollments
|
List<Enrollment> |
CourseRequest.computeRandomEnrollments(int limitEachConfig)
Return a subset of all enrollments -- randomly select only up to
limitEachConfig enrollments of each config.
|
List<Enrollment> |
CourseRequest.getAvaiableEnrollments()
Return all enrollments that are available
|
List<Enrollment> |
CourseRequest.getAvaiableEnrollmentsSkipSameTime()
Return all enrollments that are available, pick only the first section of
the sections with the same time (of each subpart,
Section
comparator is used) |
Set<Enrollment> |
Assignment.getEnrollments()
Return the list of assigned enrollments that contains this assignment.
|
Set<Enrollment> |
Config.getEnrollments()
Set of assigned enrollments
|
Set<Enrollment> |
Course.getEnrollments()
Set of assigned enrollments
|
Set<Enrollment> |
FreeTimeRequest.getEnrollments()
Return the list of assigned enrollments that contains this assignment.
|
Set<Enrollment> |
Section.getEnrollments()
Set of assigned enrollments
|
List<Enrollment> |
CourseRequest.getEnrollmentsSkipSameTime()
Return all possible enrollments.
|
List<Enrollment> |
CourseRequest.getSelectedEnrollments(boolean availableOnly)
Return all enrollments that are selected (
CourseRequest.isSelected(Section) is true) |
List<Enrollment> |
Request.values()
Domain of this variable -- list of available enrollments.
|
Modifier and Type | Method and Description |
---|---|
void |
Request.assign(long iteration,
Enrollment enrollment)
Assign given enrollment to this request.
|
void |
Assignment.assigned(Enrollment enrollment)
Enrollment with this assignmnet was assigned to a
Request . |
void |
Config.assigned(Enrollment enrollment)
Called when an enrollment with this config is assigned to a request
|
void |
Course.assigned(Enrollment enrollment)
Called when an enrollment with this course is assigned to a request
|
void |
FreeTimeRequest.assigned(Enrollment enrollment)
Enrollment with this assignment was assigned to a
Request . |
void |
Section.assigned(Enrollment enrollment)
Called when an enrollment with this section is assigned to a request
|
int |
Student.countFreeTimeOverlaps(Enrollment enrollment)
Count number of free time slots overlapping with the given enrollment
|
boolean |
Enrollment.isOverlapping(Enrollment enrl)
True when this enrollment is overlapping with the given enrollment
|
void |
Assignment.unassigned(Enrollment enrollment)
Enrollment with this assignmnet was unassigned from a
Request . |
void |
Config.unassigned(Enrollment enrollment)
Called when an enrollment with this config is unassigned from a request
|
void |
Course.unassigned(Enrollment enrollment)
Called when an enrollment with this course is unassigned from a request
|
void |
FreeTimeRequest.unassigned(Enrollment enrollment)
Enrollment with this assignment was unassigned from a
Request . |
void |
Section.unassigned(Enrollment enrollment)
Called when an enrollment with this section is unassigned from a request
|
Modifier and Type | Method and Description |
---|---|
Set<Enrollment> |
Reservation.getEnrollments()
Enrollments assigned using this reservation
|
Modifier and Type | Method and Description |
---|---|
void |
Reservation.assigned(Enrollment enrollment)
Notify reservation about an unassignment
|
boolean |
Reservation.canEnroll(Enrollment enrollment)
True if the enrollment can be done using this configuration
|
boolean |
Reservation.isIncluded(Enrollment enrollment)
Return true if the given enrollment meets the reservation.
|
void |
Reservation.unassigned(Enrollment enrollment)
Notify reservation about an assignment
|
Modifier and Type | Method and Description |
---|---|
double |
OriginalStudentWeights.getTimeOverlapConflictWeight(Enrollment enrollment,
TimeOverlapsCounter.Conflict timeOverlap) |
double |
PriorityStudentWeights.getTimeOverlapConflictWeight(Enrollment e,
TimeOverlapsCounter.Conflict c) |
double |
StudentWeights.getTimeOverlapConflictWeight(Enrollment enrollment,
TimeOverlapsCounter.Conflict timeOverlap)
Return weight of a time overlapping conflict
|
double |
OriginalStudentWeights.getWeight(Enrollment enrollment) |
double |
PriorityStudentWeights.getWeight(Enrollment enrollment) |
double |
StudentWeights.getWeight(Enrollment enrollment)
Return base weight of the given enrollment
|
double |
OriginalStudentWeights.getWeight(Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts) |
double |
PriorityStudentWeights.getWeight(Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts) |
double |
StudentWeights.getWeight(Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
Return weight of the given enrollment
|
Modifier and Type | Method and Description |
---|---|
boolean |
EqualStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |
boolean |
OriginalStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |
boolean |
PriorityStudentWeights.isBetterThanBestSolution(Solution<Request,Enrollment> currentSolution) |