public class StudentLuchBreak extends StudentConflict
StudentConflict
and it creates a conflict whenever there are
two classes (that share students) overlapping with the lunch time which are one
after the other with a break in between smaller than the requested lunch break.
Lunch time is defined by StudentLunch.StartSlot and StudentLunch.EndStart
properties (default is 11:00 am - 1:30 pm), with lunch break of at least
StudentLunch.Length slots (default is 30 minutes). Such a conflict is weighted
by Comparator.StudentLunchWeight, which defaults to Comparator.StudentConflictWeight.
AbstractCriterion.ValueContext, AbstractCriterion.ValueUpdateType
iIncludeConflicts
iBest, iDebug, iWeight, sDoubleFormat, sPercentFormat
sMaxSize
Constructor and Description |
---|
StudentLuchBreak() |
Modifier and Type | Method and Description |
---|---|
void |
getInfo(Assignment<Lecture,Placement> assignment,
Map<String,String> info)
Adds some information into the table with information about the solution
|
void |
getInfo(Assignment<Lecture,Placement> assignment,
Map<String,String> info,
Collection<Lecture> variables)
Adds some information into the table with information about the solution,
only consider variables from the given set
|
String |
getPlacementSelectionWeightName() |
double |
getWeightDefault(DataProperties config)
Defines default weight (when
AbstractCriterion.getWeightName() parameter is not present in the criterion). |
boolean |
inConflict(Placement p1,
Placement p2) |
boolean |
init(Solver<Lecture,Placement> solver)
Notification that the model was initialized by the solver.
|
boolean |
isApplicable(Lecture l1,
Lecture l2) |
boolean |
nolunch(Placement p1,
Placement p2) |
applicable, bestRestored, committed, configure, distance, getBounds, getBounds, getMetrics, getValue, getValue, hard, ignore, incJenrl, isApplicable, jointEnrollment, jointEnrollment, overlaps, slots, uncommitted, workday
getPlacementSelectionAdjustmentsName, getPlacementSelectionWeight, getPlacementSelectionWeightDefault
afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, createAssignmentContext, getAbbreviation, getAssignmentContextReference, getBest, getBounds, getBounds, getContext, getContext, getExtendedInfo, getModel, getName, getPerc, getPercentage, getPercRev, getValue, getValue, getValue, getValueUpdateType, getWeight, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightName, inc, inc, setAssignmentContextReference, setModel, setValueUpdateType, toString, variableAdded, variableRemoved
public StudentLuchBreak()
public boolean init(Solver<Lecture,Placement> solver)
ModelListener
init
in interface ModelListener<Lecture,Placement>
init
in class AbstractCriterion<Lecture,Placement>
solver
- IFS solverpublic boolean isApplicable(Lecture l1, Lecture l2)
isApplicable
in class StudentConflict
public double getWeightDefault(DataProperties config)
AbstractCriterion
AbstractCriterion.getWeightName()
parameter is not present in the criterion).getWeightDefault
in class AbstractCriterion<Lecture,Placement>
config
- solver configurationpublic String getPlacementSelectionWeightName()
getPlacementSelectionWeightName
in class StudentConflict
public boolean inConflict(Placement p1, Placement p2)
inConflict
in class StudentConflict
public void getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)
InfoProvider
getInfo
in interface InfoProvider<Lecture,Placement>
getInfo
in class AbstractCriterion<Lecture,Placement>
assignment
- current assignmentinfo
- info tablepublic void getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)
InfoProvider
getInfo
in interface InfoProvider<Lecture,Placement>
getInfo
in class AbstractCriterion<Lecture,Placement>
assignment
- current assignmentinfo
- info tablevariables
- sub-problem