public class ExtendedStudentConflicts extends GlobalConstraint<Lecture,Placement> implements ModelListener<Lecture,Placement>
iConstraintListeners, iId
Constructor and Description |
---|
ExtendedStudentConflicts() |
Modifier and Type | Method and Description |
---|---|
void |
afterAssigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement value)
Called after a value is assigned to its variable (
Value.variable() ). |
void |
afterUnassigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement value)
Called after a value is unassigned from its variable (
Value.variable() ). |
void |
beforeAssigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement value)
Called before a value is assigned to its variable (
Value.variable() ). |
void |
beforeUnassigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement value)
Called before a value is unassigned from its variable (
Value.variable() ). |
protected boolean |
checkStudentForStudentConflicts(Lecture l1,
Lecture l2) |
protected void |
clearCache() |
void |
computeConflicts(Assignment<Lecture,Placement> assignment,
Placement placement,
Set<Placement> conflicts)
The only method which has to be implemented by any constraint.
|
void |
constraintAdded(Constraint<Lecture,Placement> constraint)
Constraint is added to the model
|
void |
constraintRemoved(Constraint<Lecture,Placement> constraint)
Constraint is removed from the model
|
protected List<Student> |
getCommonStudents(Long offeringId1,
Long offeringId2) |
String |
getName()
Constraint's name -- for printing purposes
|
boolean |
inConflict(Assignment<Lecture,Placement> assignment,
Placement placement)
Returns true if the given assignment is inconsistent with the existing
assignments respecting this constraint.
|
boolean |
init(Solver<Lecture,Placement> solver)
Notification that the model was initialized by the solver.
|
boolean |
isConsistent(Placement p1,
Placement p2)
Returns true if the given assignments are consistent respecting this
constraint.
|
protected boolean |
isIgnoreClass(Lecture lecture) |
void |
setModel(Model<Lecture,Placement> model)
Sets the model which the constraint belongs to
|
String |
toString() |
void |
variableAdded(Lecture variable)
Variable is added to the model
|
void |
variableRemoved(Lecture variable)
Variable is removed from the model
|
addVariable, assigned, assignedVariables, countAssignedVariables, removeVariable, unassigned, variables
addConstraintListener, compareTo, computeConflictsNoForwardCheck, constraintListeners, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener
public ExtendedStudentConflicts()
public void setModel(Model<Lecture,Placement> model)
Constraint
setModel
in class Constraint<Lecture,Placement>
model
- problem modelprotected void clearCache()
protected List<Student> getCommonStudents(Long offeringId1, Long offeringId2)
protected boolean isIgnoreClass(Lecture lecture)
protected boolean checkStudentForStudentConflicts(Lecture l1, Lecture l2)
public void computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)
Constraint
computeConflicts
in class Constraint<Lecture,Placement>
assignment
- current assignmentplacement
- value to be assigned to its variableconflicts
- resultant set of conflicting valuespublic boolean inConflict(Assignment<Lecture,Placement> assignment, Placement placement)
Constraint
MacPropagation
).inConflict
in class Constraint<Lecture,Placement>
assignment
- current assignmentplacement
- given valuepublic boolean isConsistent(Placement p1, Placement p2)
Constraint
MacPropagation
).isConsistent
in class Constraint<Lecture,Placement>
p1
- a valuep2
- a valuepublic String getName()
Constraint
getName
in class Constraint<Lecture,Placement>
public void variableAdded(Lecture variable)
ModelListener
variableAdded
in interface ModelListener<Lecture,Placement>
variable
- added variablepublic void variableRemoved(Lecture variable)
ModelListener
variableRemoved
in interface ModelListener<Lecture,Placement>
variable
- removed variablepublic void constraintAdded(Constraint<Lecture,Placement> constraint)
ModelListener
constraintAdded
in interface ModelListener<Lecture,Placement>
constraint
- added constraintpublic void constraintRemoved(Constraint<Lecture,Placement> constraint)
ModelListener
constraintRemoved
in interface ModelListener<Lecture,Placement>
constraint
- removed constraintpublic void beforeAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)
ModelListener
Value.variable()
).beforeAssigned
in interface ModelListener<Lecture,Placement>
assignment
- current assignmentiteration
- current iterationvalue
- value to be assignedpublic void beforeUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)
ModelListener
Value.variable()
).beforeUnassigned
in interface ModelListener<Lecture,Placement>
assignment
- current assignmentiteration
- current iterationvalue
- value to be unassignedpublic void afterAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)
ModelListener
Value.variable()
).afterAssigned
in interface ModelListener<Lecture,Placement>
assignment
- current assignmentiteration
- current iterationvalue
- value to be assignedpublic void afterUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)
ModelListener
Value.variable()
).afterUnassigned
in interface ModelListener<Lecture,Placement>
assignment
- current assignmentiteration
- current iterationvalue
- value to be unassignedpublic boolean init(Solver<Lecture,Placement> solver)
ModelListener
init
in interface ModelListener<Lecture,Placement>
solver
- IFS solver