public class MaxHalfDaysFlexibleConstraint extends FlexibleConstraint
| Modifier and Type | Class and Description |
|---|---|
class |
MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext |
FlexibleConstraint.Block, FlexibleConstraint.FlexibleConstraintContext, FlexibleConstraint.FlexibleConstraintType, FlexibleConstraint.PlacementTimeComparatoriConstraintType, iDayOfWeekOffset, iPreciseDateComputation, iPreference, iReference, iWeeksiConstraintListeners, iIdsMaxSize| 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, getDayOfWeekOffset, getName, getOwner, getPrologPreference, getReference, getRelevantPlacements, getType, getWeeks, isConsistent, isHard, isPreciseDateComputation, mergeToBlocks, shareWeeksAndDay, toStringassigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, unassignedaddConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, removeConstraintListener, removeVariable, variablespublic MaxHalfDaysFlexibleConstraint(Long id, String owner, String preference, String reference)
public void setModel(Model<Lecture,Placement> model)
ConstraintsetModel 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)
FlexibleConstraintgetNrViolations in class FlexibleConstraintassignment - current assignmentconflicts - conflicting placements to be unassignedassignments - assigned placementspublic void computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)
ConstraintcomputeConflicts 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)
ConstraintMacPropagation).inConflict in class Constraint<Lecture,Placement>assignment - current assignmentvalue - given valuepublic FlexibleConstraint.FlexibleConstraintContext createAssignmentContext(Assignment<Lecture,Placement> assignment)
HasAssignmentContextcreateAssignmentContext in interface HasAssignmentContext<Lecture,Placement,FlexibleConstraint.FlexibleConstraintContext>createAssignmentContext in class FlexibleConstraintassignment - an assignment for which there needs to be an assignment context