public class StudentDistanceBackToBackConflicts extends ExamCriterion
ExamPeriod.prev()
or following
ExamPeriod.next()
period and the distance
ExamPlacement.getDistanceInMeters(ExamPlacement)
between these two exams
is greater than ExamModel.getBackToBackDistance()
. Distance
back-to-back conflicts are only considered between consecutive periods
that are of the same day.
AbstractCriterion.ValueContext, AbstractCriterion.ValueUpdateType
iBest, iDebug, iWeight, sDoubleFormat, sPercentFormat
sMaxSize
Constructor and Description |
---|
StudentDistanceBackToBackConflicts() |
Modifier and Type | Method and Description |
---|---|
void |
configure(DataProperties properties)
Configure the criterion if needed
|
double |
getBackToBackDistance()
Back-to-back distance.
|
void |
getInfo(Assignment<Exam,ExamPlacement> assignment,
Map<String,String> info)
Adds some information into the table with information about the solution
|
String |
getName()
Criterion name
|
double |
getValue(Assignment<Exam,ExamPlacement> assignment,
ExamPlacement value,
Set<ExamPlacement> conflicts)
Value of a proposed assignment (including hard conflicts)
|
double |
getWeightDefault(DataProperties config)
Defines default weight (when
AbstractCriterion.getWeightName() parameter is not present in the criterion). |
String |
getWeightName()
Defines weight name (to be used to get the criterion weight from the configuration).
|
void |
getXmlParameters(Map<String,String> params)
Put all the parameters of this criterion into a map that is used to write parameters section of the examination XML file.
|
String |
getXmlWeightName()
Name of the weight parameter in the parameters section of the examination XML file.
|
boolean |
isPeriodCriterion()
True if this criterion is based on period assignment.
|
void |
setBackToBackDistance(double backToBackDistance)
Back-to-back distance.
|
void |
setXmlParameters(Map<String,String> params)
Set all the parameters of this criterion from a map that is read from the parameters section the examination XML file.
|
String |
toString(Assignment<Exam,ExamPlacement> assignment)
Simple text representation of the criterion and its value.
|
getBounds, getPeriodValue, getRoomValue, isRoomCriterion, setWeight
afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, createAssignmentContext, getAbbreviation, getAssignmentContextReference, getBest, getBounds, getBounds, getBounds, getContext, getContext, getExtendedInfo, getInfo, getModel, getPerc, getPercentage, getPercRev, getValue, getValue, getValue, getValue, getValueUpdateType, getWeight, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, getWeightedValue, inc, inc, init, setAssignmentContextReference, setModel, setValueUpdateType, variableAdded, variableRemoved
public StudentDistanceBackToBackConflicts()
public void configure(DataProperties properties)
Criterion
configure
in interface Criterion<Exam,ExamPlacement>
configure
in class AbstractCriterion<Exam,ExamPlacement>
properties
- configurationpublic String getWeightName()
AbstractCriterion
getWeightName
in class ExamCriterion
public String getXmlWeightName()
ExamCriterion
getXmlWeightName
in class ExamCriterion
public double getWeightDefault(DataProperties config)
AbstractCriterion
AbstractCriterion.getWeightName()
parameter is not present in the criterion).getWeightDefault
in class AbstractCriterion<Exam,ExamPlacement>
config
- solver configurationpublic double getBackToBackDistance()
public void setBackToBackDistance(double backToBackDistance)
backToBackDistance
- back-to-back distance in meterspublic void getXmlParameters(Map<String,String> params)
ExamCriterion
getXmlParameters
in class ExamCriterion
params
- map of parameters (parameter = value) to be populatedpublic void setXmlParameters(Map<String,String> params)
ExamCriterion
setXmlParameters
in class ExamCriterion
params
- map of parameters (parameter = value) loaded from XMLpublic double getValue(Assignment<Exam,ExamPlacement> assignment, ExamPlacement value, Set<ExamPlacement> conflicts)
Criterion
assignment
- current assignmentvalue
- given valueconflicts
- values conflicting with the given valuepublic String getName()
Criterion
getName
in interface Criterion<Exam,ExamPlacement>
getName
in class AbstractCriterion<Exam,ExamPlacement>
public void getInfo(Assignment<Exam,ExamPlacement> assignment, Map<String,String> info)
InfoProvider
getInfo
in interface InfoProvider<Exam,ExamPlacement>
getInfo
in class ExamCriterion
assignment
- current assignmentinfo
- info tablepublic String toString(Assignment<Exam,ExamPlacement> assignment)
AbstractCriterion
AbstractCriterion.getAbbreviation()
and x is the current value AbstractCriterion.getValue(Assignment)
.toString
in interface Criterion<Exam,ExamPlacement>
toString
in class AbstractCriterion<Exam,ExamPlacement>
assignment
- current assignmentpublic boolean isPeriodCriterion()
ExamCriterion
ExamPlacement.getTimeCost(Assignment)
.isPeriodCriterion
in class ExamCriterion