|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.cpsolver.ifs.criteria.AbstractCriterion<Exam,ExamPlacement>
net.sf.cpsolver.exam.criteria.ExamCriterion
net.sf.cpsolver.exam.criteria.RoomSizePenalty
public class RoomSizePenalty
Cost for using room(s) that are too big. I.e., a difference between total room size
(computed using either ExamRoom.getSize()
or ExamRoom.getAltSize()
based
on Exam.hasAltSeating()
) and the number of students Exam.getSize()
.
A weight for room size penalty can be set by problem
property Exams.RoomSizeWeight, or in the input xml file, property
roomSizeWeight).
The difference function can be made polynomial by using Exams.RoomSizeFactor parameter
(defaults to 1.0). The value of this criteria is then cubed by the power of this room
size factor. This is to be able to favor a room swap between two exams at the same period,
in which a smaller exam takes a smaller room. To do this, set Exams.RoomSizeFactor to
a number bigger than one that is close to one (e.g., 1.05).
Nested Class Summary |
---|
Nested classes/interfaces inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion |
---|
AbstractCriterion.ValueUpdateType |
Field Summary |
---|
Fields inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion |
---|
iBest, iDebug, iValue, iValueUpdateType, iWeight, sDoubleFormat, sPercentFormat |
Constructor Summary | |
---|---|
RoomSizePenalty()
|
Method Summary | |
---|---|
void |
getInfo(Map<String,String> info)
Adds some information into the table with information about the solution |
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). |
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 |
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. |
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()
|
Methods inherited from class net.sf.cpsolver.exam.criteria.ExamCriterion |
---|
getBounds, getPeriodValue, getRoomValue, isRoomCriterion, setWeight |
Methods inherited from class net.sf.cpsolver.ifs.criteria.AbstractCriterion |
---|
afterAssigned, afterUnassigned, beforeAssigned, beforeUnassigned, bestRestored, bestSaved, clearCache, computeBounds, constraintAdded, constraintRemoved, getBest, getBounds, getInfo, getModel, getName, getPerc, getPercRev, getValue, getValue, getWeight, getWeightedBest, getWeightedValue, getWeightedValue, getWeightedValue, inc, variableAdded, variableRemoved |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public RoomSizePenalty()
Method Detail |
---|
public boolean init(Solver<Exam,ExamPlacement> solver)
ModelListener
init
in interface ModelListener<Exam,ExamPlacement>
init
in class AbstractCriterion<Exam,ExamPlacement>
solver
- IFS solverpublic 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>
public void getXmlParameters(Map<String,String> params)
ExamCriterion
getXmlParameters
in class ExamCriterion
public void setXmlParameters(Map<String,String> params)
ExamCriterion
setXmlParameters
in class ExamCriterion
public double getValue(ExamPlacement value, Set<ExamPlacement> conflicts)
Criterion
public void getInfo(Map<String,String> info)
InfoProvider
getInfo
in interface InfoProvider<Exam>
getInfo
in class ExamCriterion
public String toString()
toString
in class Object
public boolean isPeriodCriterion()
ExamCriterion
ExamPlacement.getTimeCost()
.
isPeriodCriterion
in class ExamCriterion
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |