public class DiscouragedRoomConstraint extends RoomConstraint implements WeakeningConstraint<Lecture,Placement>
RoomConstraint
, however, it tries to minimize the usage of the room
as much as possible.Modifier and Type | Class and Description |
---|---|
class |
DiscouragedRoomConstraint.DiscouragedRoomConstraintContext |
RoomConstraint.RoomConstraintContext
iConstraintListeners, iId
sMaxSize
Constructor and Description |
---|
DiscouragedRoomConstraint(DataProperties config,
Long id,
String name,
Long buildingId,
int capacity,
RoomSharingModel roomSharingModel,
Double x,
Double y,
boolean ignoreTooFar,
boolean constraint) |
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.
|
RoomConstraint.RoomConstraintContext |
createAssignmentContext(Assignment<Lecture,Placement> assignment)
Create a new assignment context for the given assignment.
|
String |
getName()
Room name
|
boolean |
inConflict(Assignment<Lecture,Placement> assignment,
Placement value)
Returns true if the given assignment is inconsistent with the existing
assignments respecting this constraint.
|
String |
toString() |
void |
unassigned(Assignment<Lecture,Placement> assignment,
long iteration,
Placement placement)
Given value is unassigned from its variable.
|
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.
|
addPartition, assigned, checkRoomSize, checkRoomSize, getAvailableArray, getBuildingId, getCapacity, getConstraint, getIgnoreTooFar, getParentRoom, getPartitions, getPosX, getPosY, getResource, getResourceId, getResourceOfWeek, getRoomName, getSharingModel, getType, isAvailable, isAvailable, isConsistent, setCoordinates, setModel, setNotAvailable, setType
getAssignmentContextReference, getContext, getContext, setAssignmentContextReference
addConstraintListener, addVariable, assignedVariables, compareTo, computeConflictsNoForwardCheck, constraintListeners, countAssignedVariables, countVariables, equals, getDescription, getId, getModel, hashCode, isHard, removeConstraintListener, removeVariable, variables
public DiscouragedRoomConstraint(DataProperties config, Long id, String name, Long buildingId, int capacity, RoomSharingModel roomSharingModel, Double x, Double y, boolean ignoreTooFar, boolean constraint)
public void computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)
Constraint
computeConflicts
in class RoomConstraint
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 RoomConstraint
assignment
- current assignmentvalue
- given valuepublic String getName()
RoomConstraint
getName
in class RoomConstraint
public String toString()
toString
in class RoomConstraint
public 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 RoomConstraint.RoomConstraintContext createAssignmentContext(Assignment<Lecture,Placement> assignment)
HasAssignmentContext
createAssignmentContext
in interface HasAssignmentContext<Lecture,Placement,RoomConstraint.RoomConstraintContext>
createAssignmentContext
in class RoomConstraint
assignment
- an assignment for which there needs to be an assignment contextpublic void unassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)
Constraint
unassigned
in class RoomConstraint
assignment
- current assignmentiteration
- current iterationplacement
- unassigned value