V
- VariableT
- Valuepublic interface Assignment<V extends Variable<V,T>,T extends Value<V,T>>
Model
. This class decouples
an assignment of variables (classes extending Variable
) to their values
(classes extending Value
) from the Model
. This is needed for
any kind of parallel computations, or in general, to be able to hold multiple
different assignments in memory.AssignmentContextReference
to
AssignmentContext
, so that each constraint, criterion, neighborhood selection
etc. can hold its own assignment dependent information. See ConstraintWithContext
or
NeighbourSelectionWithContext
for more details.Variable
,
Value
,
Model
,
AssignmentContext
Modifier and Type | Method and Description |
---|---|
T |
assign(long iteration,
T value)
Assign the given value to its variable.
|
Collection<T> |
assignedValues()
The list of assigned values in the assignment.
|
Collection<V> |
assignedVariables()
The list of assigned variables in the assignment.
|
<C extends AssignmentContext> |
clearContext(AssignmentContextReference<V,T,C> reference)
Clear an assignment context that is associated with the given a reference.
|
<C extends AssignmentContext> |
getAssignmentContext(AssignmentContextReference<V,T,C> reference)
Assignment context for a reference.
|
int |
getIndex()
Assignment index.
|
long |
getIteration(V variable)
Returns iteration of the last assignment.
|
T |
getValue(V variable)
Returns assignment of a variable, null if not assigned
Replacement for
Variable.getAssignment() . |
int |
nrAssignedVariables()
Number of assigned variables in this assignment.
|
int |
nrUnassignedVariables(Model<V,T> model)
Number of assigned variables in the assignment.
|
T |
unassign(long iteration,
V variable)
Unassign the given variable.
|
T |
unassign(long iteration,
V variable,
T value)
Unassign the given variable, but only if the current assignment differs from the given value.
|
Collection<V> |
unassignedVariables(Model<V,T> model)
The list of variables of the model that have no value in this assignment.
|
int getIndex()
T getValue(V variable)
Variable.getAssignment()
.variable
- problem variablelong getIteration(V variable)
Variable.getLastIteration()
.variable
- problem variableT assign(long iteration, T value)
Variable.assign(int, Value)
.iteration
- current iterationvalue
- a new value to be assigned to variable Value.variable()
.T unassign(long iteration, V variable)
Variable.unassign(int)
.iteration
- current iterationvariable
- variable to be unassignedT unassign(long iteration, V variable, T value)
Variable.unassign(int)
.iteration
- current iterationvariable
- variable to be unassignedvalue
- target valueint nrAssignedVariables()
Model.nrAssignedVariables()
.Collection<V> assignedVariables()
getValue(Variable)
is not null in this assignment.
Replacement for Model.assignedVariables()
.Collection<T> assignedValues()
getValue(Variable)
for all assigned variables in this assignment.int nrUnassignedVariables(Model<V,T> model)
Model.nrUnassignedVariables()
.model
- existing model (the assignment does not keep track about all existing variables, that is what the Model.variables()
is for)Collection<V> unassignedVariables(Model<V,T> model)
getValue(Variable)
is null in this assignment.
Replacement for Model.unassignedVariables()
model
- existing model (the assignment does not keep track about all existing variables, that is what the Model.variables()
is for)<C extends AssignmentContext> C getAssignmentContext(AssignmentContextReference<V,T,C> reference)
ConstraintWithContext
).C
- assignment context typereference
- a reference (which can be stored within the model, e.g., as an instance variable of a constraint)AssignmentContext
<C extends AssignmentContext> void clearContext(AssignmentContextReference<V,T,C> reference)
C
- assignment context typereference
- a reference (which can be stored within the model, e.g., as an instance variable of a constraint)