public class MaxHolesFlexibleConstraint extends FlexibleConstraint implements WeakeningConstraint<Lecture,Placement>
| Modifier and Type | Class and Description |
|---|---|
class |
MaxHolesFlexibleConstraint.MaxHolesFlexibleConstraintContext |
FlexibleConstraint.Block, FlexibleConstraint.FlexibleConstraintContext, FlexibleConstraint.FlexibleConstraintType, FlexibleConstraint.PlacementTimeComparatoriConstraintType, iDayOfWeekOffset, iPreciseDateComputation, iPreference, iReference, iWeeksiConstraintListeners, iIdsMaxSize| Constructor and Description |
|---|
MaxHolesFlexibleConstraint(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.
|
int |
countHoles(Assignment<Lecture,Placement> assignment,
int dayCode,
Set<Placement> conflicts,
Placement value,
HashMap<Lecture,Placement> assignments,
BitSet week)
Count number of holes (free slots) between the given classes on given day and week.
|
FlexibleConstraint.FlexibleConstraintContext |
createAssignmentContext(Assignment<Lecture,Placement> assignment)
Create a new assignment context for the given assignment.
|
double |
getNrViolations(Assignment<Lecture,Placement> assignment,
Set<Placement> conflicts,
HashMap<Lecture,Placement> assignments)
Count violations, that is weekly average free time that is over the limit in hours.
|
boolean |
isConsistent(Placement value1,
Placement value2)
Returns true if the given assignments are consistent respecting this
constraint.
|
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, getDayOfWeekOffset, getName, getOwner, getPrologPreference, getReference, getRelevantPlacements, getType, getWeeks, isHard, isPreciseDateComputation, mergeToBlocks, shareWeeksAndDay, toStringassigned, getAssignmentContextReference, getContext, getContext, setAssignmentContextReference, setModel, unassignedaddConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, inConflict, removeConstraintListener, removeVariable, variablespublic MaxHolesFlexibleConstraint(Long id, String owner, String preference, String reference)
public int countHoles(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)
assignment - current assignmentdayCode - representation of days in week combinationconflicts - placements to be unassignedvalue - placement to be assignedassignments - placements of variablesweek - bitset representing a date patternpublic double getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)
getNrViolations in class FlexibleConstraintassignment - current assignmentconflicts - placements to be unassignedassignments - placements of variablespublic 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 void weaken(Assignment<Lecture,Placement> assignment)
WeakeningConstraintweaken in interface WeakeningConstraint<Lecture,Placement>assignment - current assignmentpublic boolean isConsistent(Placement value1, Placement value2)
ConstraintMacPropagation).isConsistent in class FlexibleConstraintvalue1 - a valuevalue2 - a valuepublic void weaken(Assignment<Lecture,Placement> assignment, Placement value)
WeakeningConstraintweaken in interface WeakeningConstraint<Lecture,Placement>assignment - current assignmentvalue - a conflicting value to be assignedpublic 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