public class ExamDistributionConstraint extends ConstraintWithContext<Exam,ExamPlacement,ExamDistributionConstraint.Context>
| Modifier and Type | Class and Description |
|---|---|
class |
ExamDistributionConstraint.Context |
static class |
ExamDistributionConstraint.DistributionType |
static interface |
ExamDistributionConstraint.PairCheck |
static interface |
ExamDistributionConstraint.PeriodCheck |
static interface |
ExamDistributionConstraint.RoomCheck |
| Modifier and Type | Field and Description |
|---|---|
static int |
sDistSameRoom
Deprecated.
|
iConstraintListeners, iIdsMaxSize| Constructor and Description |
|---|
ExamDistributionConstraint(long id,
ExamDistributionConstraint.DistributionType type,
boolean hard,
int weight)
Constructor
|
ExamDistributionConstraint(long id,
int type,
boolean hard,
int weight)
Deprecated.
|
ExamDistributionConstraint(long id,
String type,
boolean hard,
int weight)
Constructor
|
ExamDistributionConstraint(long id,
String type,
String pref)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
check(ExamPlacement first,
ExamPlacement second)
|
void |
computeConflicts(Assignment<Exam,ExamPlacement> assignment,
ExamPlacement givenPlacement,
Set<ExamPlacement> conflicts)
Compute conflicts -- there is a conflict if the other variable is
assigned and
check(ExamPlacement, ExamPlacement) is
false |
int |
countViolations(Assignment<Exam,ExamPlacement> assignment)
Return number of all violated pairs for a soft constraint
|
int |
countViolations(Assignment<Exam,ExamPlacement> assignment,
ExamPlacement p)
Return number of violated pairs for a soft constraint and the given placement
|
ExamDistributionConstraint.Context |
createAssignmentContext(Assignment<Exam,ExamPlacement> assignment)
Create a new assignment context for the given assignment.
|
boolean |
equals(Object o)
Compare with other constraint for equality
|
ExamDistributionConstraint.DistributionType |
getDistributionType() |
int |
getType()
Constraint type
|
String |
getTypeString()
Constraint type name
|
int |
getWeight()
If not hard, penalty for violation
|
boolean |
inConflict(Assignment<Exam,ExamPlacement> assignment,
ExamPlacement givenPlacement)
Check for conflict -- there is a conflict if the other variable is
assigned and
check(ExamPlacement, ExamPlacement) is
false |
boolean |
isConsistent(ExamPlacement first,
ExamPlacement second)
Consistency check --
check(ExamPlacement, ExamPlacement) is
called |
boolean |
isHard()
True if hard (must be satisfied), false for soft (should be satisfied)
|
boolean |
isPeriodRelated()
True if the constraint is related to periods
|
boolean |
isRoomRelated()
True if the constraint is related to rooms
|
boolean |
isSatisfied(Assignment<Exam,ExamPlacement> assignment)
Return true if this is hard constraint or this is a soft constraint
without any violation
|
boolean |
isSatisfied(Assignment<Exam,ExamPlacement> assignment,
ExamPlacement p)
Return true if this is hard constraint or this is a soft constraint
without any violation
|
String |
toString()
String representation -- constraint type name (exam 1, exam 2)
|
assigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, setModel, unassignedaddConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, getDescription, getId, getModel, getName, hashCode, removeConstraintListener, removeVariable, variables@Deprecated public static int sDistSameRoom
public ExamDistributionConstraint(long id, ExamDistributionConstraint.DistributionType type, boolean hard, int weight)
id - constraint unique idtype - constraint typehard - true if the constraint is hard (cannot be violated)weight - if not hard, penalty for violation@Deprecated public ExamDistributionConstraint(long id, int type, boolean hard, int weight)
ExamDistributionConstraint(long, DistributionType, boolean, int)id - constraint unique idtype - constraint typehard - true if the constraint is hard (cannot be violated)weight - if not hard, penalty for violationpublic ExamDistributionConstraint(long id, String type, String pref)
id - constraint unique idtype - constraint type (EX_SAME_PREF, EX_SAME_ROOM, or EX_PRECEDENCE)pref - preference (R/P for required/prohibited, or -2, -1, 0, 1, 2
for preference (from preferred to discouraged))public ExamDistributionConstraint(long id, String type, boolean hard, int weight)
id - constraint unique idtype - constraint type namehard - true if the constraint is hardweight - constraint penalty if violated (for soft constraint)public boolean isHard()
isHard in class Constraint<Exam,ExamPlacement>public int getWeight()
public int getType()
public ExamDistributionConstraint.DistributionType getDistributionType()
public String getTypeString()
ExamDistributionConstraint.DistributionType.getReference())public void computeConflicts(Assignment<Exam,ExamPlacement> assignment, ExamPlacement givenPlacement, Set<ExamPlacement> conflicts)
check(ExamPlacement, ExamPlacement) is
falsecomputeConflicts in class Constraint<Exam,ExamPlacement>assignment - current assignmentgivenPlacement - value to be assigned to its variableconflicts - resultant set of conflicting valuespublic boolean inConflict(Assignment<Exam,ExamPlacement> assignment, ExamPlacement givenPlacement)
check(ExamPlacement, ExamPlacement) is
falseinConflict in class Constraint<Exam,ExamPlacement>assignment - current assignmentgivenPlacement - given valuepublic boolean isConsistent(ExamPlacement first, ExamPlacement second)
check(ExamPlacement, ExamPlacement) is
calledisConsistent in class Constraint<Exam,ExamPlacement>first - a valuesecond - a value@Deprecated public boolean check(ExamPlacement first, ExamPlacement second)
ExamDistributionConstraint.DistributionType.isSatisfied(ExamPlacement, ExamPlacement)first - assignment of the first examsecond - assignment of the second exampublic boolean equals(Object o)
equals in class Constraint<Exam,ExamPlacement>public boolean isSatisfied(Assignment<Exam,ExamPlacement> assignment)
assignment - current assignmentpublic boolean isSatisfied(Assignment<Exam,ExamPlacement> assignment, ExamPlacement p)
assignment - current assignmentp - exam assignment to be madepublic int countViolations(Assignment<Exam,ExamPlacement> assignment, ExamPlacement p)
assignment - current assignmentp - exam assignment to be madepublic int countViolations(Assignment<Exam,ExamPlacement> assignment)
assignment - current assignmentpublic boolean isRoomRelated()
public boolean isPeriodRelated()
public ExamDistributionConstraint.Context createAssignmentContext(Assignment<Exam,ExamPlacement> assignment)
HasAssignmentContextassignment - an assignment for which there needs to be an assignment context