public class MaxHalfDaysFlexibleConstraint extends FlexibleConstraint
Modifier and Type | Class and Description |
---|---|
class |
MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext |
FlexibleConstraint.Block, FlexibleConstraint.FlexibleConstraintContext, FlexibleConstraint.FlexibleConstraintType, FlexibleConstraint.PlacementTimeComparator
iConstraintType, iPreference, iReference, iWeeks
iConstraintListeners, iId
sMaxSize
Constructor and Description |
---|
MaxHalfDaysFlexibleConstraint(Long id,
String owner,
String preference,
String reference) |
Modifier and Type | Method and Description |
---|---|
void |
computeConflicts(Assignment<Lecture,Placement> assignment,
Placement value,
Set<Placement> conflicts)
The only method which has to be implemented by any constraint.
|
FlexibleConstraint.FlexibleConstraintContext |
createAssignmentContext(Assignment<Lecture,Placement> assignment)
Create a new assignment context for the given assignment.
|
protected int |
getHalfDay(TimeLocation time)
Returns index of the half day
|
protected int |
getNrHalfDays()
Returns number of half-days in a day
|
double |
getNrViolations(Assignment<Lecture,Placement> assignment,
Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments)
Return current number of violations.
|
boolean |
inConflict(Assignment<Lecture,Placement> assignment,
Placement value)
Returns true if the given assignment is inconsistent with the existing
assignments respecting this constraint.
|
void |
setModel(Model<Lecture,Placement> model)
Sets the model which the constraint belongs to
|
getCurrentPreference, getName, getOwner, getPrologPreference, getReference, getRelevantPlacements, getType, getWeeks, isConsistent, isHard, mergeToBlocks, toString
assigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, unassigned
addConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, removeConstraintListener, removeVariable, variables
public MaxHalfDaysFlexibleConstraint(Long id, String owner, String preference, String reference)
public void setModel(Model<Lecture,Placement> model)
Constraint
setModel
in class ConstraintWithContext<Lecture,Placement,FlexibleConstraint.FlexibleConstraintContext>
model
- problem modelprotected int getNrHalfDays()
protected int getHalfDay(TimeLocation time)
time
- given timepublic double getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)
FlexibleConstraint
getNrViolations
in class FlexibleConstraint
assignment
- current assignmentconflicts
- conflicting placements to be unassignedassignments
- assigned placementspublic void computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)
Constraint
computeConflicts
in class Constraint<Lecture,Placement>
assignment
- current assignmentvalue
- value to be assigned to its variableconflicts
- resultant set of conflicting valuespublic boolean inConflict(Assignment<Lecture,Placement> assignment, Placement value)
Constraint
MacPropagation
).inConflict
in class Constraint<Lecture,Placement>
assignment
- current assignmentvalue
- given valuepublic FlexibleConstraint.FlexibleConstraintContext createAssignmentContext(Assignment<Lecture,Placement> assignment)
HasAssignmentContext
createAssignmentContext
in interface HasAssignmentContext<Lecture,Placement,FlexibleConstraint.FlexibleConstraintContext>
createAssignmentContext
in class FlexibleConstraint
assignment
- an assignment for which there needs to be an assignment context