public class SuggestionSelection extends BranchBoundSelection implements OnlineSectioningSelection
BranchBoundSelection
of the batch solver. The
selections adds the ability to provide required free times and sections and to prefer certain sections.
If a course request has preferred sections, StudentWeights.PreferenceFactor parameter is used
to penalize selection of a non-preferred section.Modifier and Type | Class and Description |
---|---|
class |
SuggestionSelection.Selection
Extension of
BranchBoundSelection.Selection including checking of
required free times and sections. |
BranchBoundSelection.BranchBoundNeighbour
Modifier and Type | Field and Description |
---|---|
protected Hashtable<CourseRequest,Set<Section>> |
iPreferredSections |
protected Hashtable<CourseRequest,Config> |
iRequiredConfig |
protected Set<FreeTimeRequest> |
iRequiredFreeTimes |
protected Hashtable<CourseRequest,Hashtable<Subpart,Section>> |
iRequiredSection |
protected Set<CourseRequest> |
iRequiredUnassinged |
iBranchWhenSelectedHasNoConflict, iDistanceConflict, iDistConfWeight, iFilter, iMinimizePenalty, iModel, iNbrIterations, iNbrNoSolution, iNbrTimeoutReached, iOrder, iStudentQuality, iStudents, iTimeout, iTimeOverlaps, iTimesToAvoidHeuristics, iTotalTime, sDebug
Constructor and Description |
---|
SuggestionSelection(DataProperties properties) |
Modifier and Type | Method and Description |
---|---|
BranchBoundSelection.BranchBoundNeighbour |
select(Assignment<Request,Enrollment> assignment,
Student student)
Compute student schedule
|
void |
setMaxOverExpected(double maxOverExpected)
Set hard limit on the
OverExpectedCriterion penalty. |
void |
setModel(OnlineSectioningModel model)
Set online sectioning model
|
void |
setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections)
Set preferred sections
|
void |
setRequiredFreeTimes(Set<FreeTimeRequest> requiredFreeTimes)
Set required free times
|
void |
setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections)
Set required sections
|
void |
setRequiredUnassinged(Set<CourseRequest> requiredUnassignedRequests)
Set course requests that are to be left unassigned
|
addStudent, getFilter, getInfo, getInfo, getSelection, init, init, neighbourFailed, neighbourSelected, nextStudent, selectNeighbour, setModel, valueSelected, variableSelected, withFilter
protected Set<FreeTimeRequest> iRequiredFreeTimes
protected Hashtable<CourseRequest,Config> iRequiredConfig
protected Hashtable<CourseRequest,Hashtable<Subpart,Section>> iRequiredSection
protected Hashtable<CourseRequest,Set<Section>> iPreferredSections
protected Set<CourseRequest> iRequiredUnassinged
public SuggestionSelection(DataProperties properties)
public void setPreferredSections(Hashtable<CourseRequest,Set<Section>> preferredSections)
OnlineSectioningSelection
setPreferredSections
in interface OnlineSectioningSelection
preferredSections
- preferred sections for each course requestpublic void setRequiredSections(Hashtable<CourseRequest,Set<Section>> requiredSections)
OnlineSectioningSelection
setRequiredSections
in interface OnlineSectioningSelection
requiredSections
- required sections for each course requestpublic void setRequiredFreeTimes(Set<FreeTimeRequest> requiredFreeTimes)
OnlineSectioningSelection
setRequiredFreeTimes
in interface OnlineSectioningSelection
requiredFreeTimes
- required free timespublic BranchBoundSelection.BranchBoundNeighbour select(Assignment<Request,Enrollment> assignment, Student student)
OnlineSectioningSelection
select
in interface OnlineSectioningSelection
assignment
- current assignmentstudent
- student in questionpublic void setModel(OnlineSectioningModel model)
OnlineSectioningSelection
setModel
in interface OnlineSectioningSelection
model
- online sectioning modelpublic void setRequiredUnassinged(Set<CourseRequest> requiredUnassignedRequests)
OnlineSectioningSelection
setRequiredUnassinged
in interface OnlineSectioningSelection
requiredUnassignedRequests
- course requests that are required to be left unassignedpublic void setMaxOverExpected(double maxOverExpected)
OnlineSectioningSelection
OverExpectedCriterion
penalty.setMaxOverExpected
in interface OnlineSectioningSelection
maxOverExpected
- max over-expected limit