public class DistributionPenalty extends ExamCriterion
ExamDistributionConstraint) can be set by problem property
Exams.RoomDistributionWeight, or in the input xml file, property
roomDistributionWeight.
AbstractCriterion.ValueUpdateType| Modifier and Type | Field and Description |
|---|---|
protected Integer |
iSoftDistributions |
iBest, iDebug, iValue, iValueUpdateType, iWeight, sDoubleFormat, sPercentFormat| Constructor and Description |
|---|
DistributionPenalty() |
| Modifier and Type | Method and Description |
|---|---|
protected double[] |
computeBounds()
Compute bounds (bounds are being cached by default).
|
double |
getPeriodValue(ExamPlacement value)
Period related distribution penalty, i.e., sum weights of violated
distribution constraints
|
double |
getRoomValue(ExamPlacement value)
Room related distribution penalty, i.e., sum weights of violated
distribution constraints
|
double |
getValue(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).
|
String |
getXmlWeightName()
Name of the weight parameter in the parameters section of the examination XML file.
|
void |
inc(double value)
Outside update of the criterion (usefull when the criterion is driven by a set of constraints).
|
boolean |
init(Solver<Exam,ExamPlacement> solver)
Notification that the model was initialized by the solver.
|
boolean |
isPeriodCriterion()
True if this criterion is based on period assignment.
|
boolean |
isRoomCriterion()
True if this criterion is based on room assignment.
|
String |
toString() |
getBounds, getInfo, getXmlParameters, setWeight, setXmlParametersafterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, constraintAdded, constraintRemoved, getBest, getBounds, getInfo, getModel, getName, getPerc, getPercRev, getValue, getValue, getWeight, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, variableAdded, variableRemovedprotected Integer iSoftDistributions
public DistributionPenalty()
public boolean init(Solver<Exam,ExamPlacement> solver)
ModelListenerinit in interface ModelListener<Exam,ExamPlacement>init in class AbstractCriterion<Exam,ExamPlacement>solver - IFS solverpublic String getWeightName()
AbstractCriteriongetWeightName in class ExamCriterionpublic String getXmlWeightName()
ExamCriteriongetXmlWeightName in class ExamCriterionpublic double getWeightDefault(DataProperties config)
AbstractCriterionAbstractCriterion.getWeightName() parameter is not present in the criterion).getWeightDefault in class AbstractCriterion<Exam,ExamPlacement>public double getValue(ExamPlacement value, Set<ExamPlacement> conflicts)
Criterionpublic boolean isRoomCriterion()
ExamCriterionExamPlacement.getRoomCost().isRoomCriterion in class ExamCriterionpublic double getRoomValue(ExamPlacement value)
getRoomValue in class ExamCriterionpublic boolean isPeriodCriterion()
ExamCriterionExamPlacement.getTimeCost().isPeriodCriterion in class ExamCriterionpublic void inc(double value)
Criterioninc in interface Criterion<Exam,ExamPlacement>inc in class AbstractCriterion<Exam,ExamPlacement>public double getPeriodValue(ExamPlacement value)
getPeriodValue in class ExamCriterionprotected double[] computeBounds()
AbstractCriterioncomputeBounds in class AbstractCriterion<Exam,ExamPlacement>