public class OnlineSectioningCriterion extends Object implements MultiCriteriaBranchAndBoundSelection.SelectionCriterion
Modifier and Type | Class and Description |
---|---|
static class |
OnlineSectioningCriterion.TimeToAvoid
Time to be avoided.
|
Modifier and Type | Field and Description |
---|---|
protected double[] |
iQalityWeights |
Constructor and Description |
---|
OnlineSectioningCriterion(Student student,
OnlineSectioningModel model,
Assignment<Request,Enrollment> assignment,
Hashtable<CourseRequest,Set<Section>> preferredSections)
Constructor
|
Modifier and Type | Method and Description |
---|---|
boolean |
canImprove(Assignment<Request,Enrollment> assignment,
int maxIdx,
Enrollment[] current,
Enrollment[] best)
Bound
|
int |
compare(Assignment<Request,Enrollment> assignment,
Enrollment[] current,
Enrollment[] best)
Compare two solutions
|
int |
compare(Assignment<Request,Enrollment> assignment,
Enrollment e1,
Enrollment e2)
Compare two enrollments
|
Set<DistanceConflict.Conflict> |
getDistanceConflicts(Enrollment[] assignment,
int idx)
Distance conflicts of idx-th assignment of the current schedule
|
protected OnlineSectioningModel |
getModel() |
protected Set<Section> |
getPreferredSections(Request request) |
Request |
getRequest(int index) |
protected Student |
getStudent() |
Set<StudentQuality.Conflict> |
getStudentQualityConflicts(Enrollment[] assignment,
int idx) |
Set<TimeOverlapsCounter.Conflict> |
getTimeOverlappingConflicts(Enrollment[] assignment,
int idx)
Time overlapping conflicts of idx-th assignment of the current schedule
|
protected List<OnlineSectioningCriterion.TimeToAvoid> |
getTimesToAvoid() |
double |
getTotalWeight(Assignment<Request,Enrollment> assignment,
Enrollment[] enrollemnts)
For backward compatibility, return a weighted sum
|
protected double |
getWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
Set<DistanceConflict.Conflict> distanceConflicts,
Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
Deprecated.
|
protected double |
getWeight(Assignment<Request,Enrollment> assignment,
Enrollment enrollment,
Set<StudentQuality.Conflict> conflicts) |
boolean |
isFreeTime(int index) |
protected double[] iQalityWeights
public OnlineSectioningCriterion(Student student, OnlineSectioningModel model, Assignment<Request,Enrollment> assignment, Hashtable<CourseRequest,Set<Section>> preferredSections)
student
- current studentmodel
- online student sectioning modelassignment
- current assignmentpreferredSections
- preferred sectionsprotected OnlineSectioningModel getModel()
protected Student getStudent()
protected Set<Section> getPreferredSections(Request request)
protected List<OnlineSectioningCriterion.TimeToAvoid> getTimesToAvoid()
public Set<DistanceConflict.Conflict> getDistanceConflicts(Enrollment[] assignment, int idx)
public Set<TimeOverlapsCounter.Conflict> getTimeOverlappingConflicts(Enrollment[] assignment, int idx)
public Set<StudentQuality.Conflict> getStudentQualityConflicts(Enrollment[] assignment, int idx)
@Deprecated protected double getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<DistanceConflict.Conflict> distanceConflicts, Set<TimeOverlapsCounter.Conflict> timeOverlappingConflicts)
StudentWeights.getWeight(Assignment, Enrollment, Set, Set)
, only count this
side of distance conflicts and time overlaps.protected double getWeight(Assignment<Request,Enrollment> assignment, Enrollment enrollment, Set<StudentQuality.Conflict> conflicts)
public Request getRequest(int index)
public boolean isFreeTime(int index)
public int compare(Assignment<Request,Enrollment> assignment, Enrollment[] current, Enrollment[] best)
MultiCriteriaBranchAndBoundSelection.SelectionCriterion
compare
in interface MultiCriteriaBranchAndBoundSelection.SelectionCriterion
assignment
- current assignmentcurrent
- current solutionbest
- best known solutionpublic boolean canImprove(Assignment<Request,Enrollment> assignment, int maxIdx, Enrollment[] current, Enrollment[] best)
MultiCriteriaBranchAndBoundSelection.SelectionCriterion
canImprove
in interface MultiCriteriaBranchAndBoundSelection.SelectionCriterion
assignment
- current assignmentmaxIdx
- current request indexcurrent
- current solutionbest
- best known solutionpublic double getTotalWeight(Assignment<Request,Enrollment> assignment, Enrollment[] enrollemnts)
MultiCriteriaBranchAndBoundSelection.SelectionCriterion
getTotalWeight
in interface MultiCriteriaBranchAndBoundSelection.SelectionCriterion
assignment
- current assignmentenrollemnts
- current solutionpublic int compare(Assignment<Request,Enrollment> assignment, Enrollment e1, Enrollment e2)
MultiCriteriaBranchAndBoundSelection.SelectionComparator
compare
in interface MultiCriteriaBranchAndBoundSelection.SelectionComparator
assignment
- current assignmente1
- first enrollmente2
- second enrollment