public class MaxBreaksFlexibleConstraint extends FlexibleConstraint implements WeakeningConstraint<Lecture,Placement>
Modifier and Type | Class and Description |
---|---|
class |
MaxBreaksFlexibleConstraint.MaxBreaksFlexibleConstraintContext |
FlexibleConstraint.Block, FlexibleConstraint.FlexibleConstraintContext, FlexibleConstraint.FlexibleConstraintType, FlexibleConstraint.PlacementTimeComparator
Modifier and Type | Field and Description |
---|---|
protected int |
iMaxBlocksOnADay |
iConstraintType, iPreference, iReference, iWeeks
iConstraintListeners, iId
sMaxSize
Constructor and Description |
---|
MaxBreaksFlexibleConstraint(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.
|
List<FlexibleConstraint.Block> |
getBlocks(Assignment<Lecture,Placement> assignment,
int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week) |
double |
getNrViolations(Assignment<Lecture,Placement> assignment,
Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments)
Return current number of violations.
|
void |
weaken(Assignment<Lecture,Placement> assignment)
Weaken the constraint.
|
void |
weaken(Assignment<Lecture,Placement> assignment,
Placement value)
Weaken the constraint enough so that it can assign the given
value.
|
getCurrentPreference, getName, getOwner, getPrologPreference, getReference, getRelevantPlacements, getType, getWeeks, isConsistent, isHard, mergeToBlocks, toString
assigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, setModel, unassigned
addConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, inConflict, removeConstraintListener, removeVariable, variables
protected int iMaxBlocksOnADay
public MaxBreaksFlexibleConstraint(Long id, String owner, String preference, String reference)
public List<FlexibleConstraint.Block> getBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)
public 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 void weaken(Assignment<Lecture,Placement> assignment)
WeakeningConstraint
weaken
in interface WeakeningConstraint<Lecture,Placement>
assignment
- current assignmentpublic void weaken(Assignment<Lecture,Placement> assignment, Placement value)
WeakeningConstraint
weaken
in interface WeakeningConstraint<Lecture,Placement>
assignment
- current assignmentvalue
- a conflicting value to be assignedpublic 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