V
 VariableT
 Valuepublic class DbtPropagation<V extends Variable<V,T>,T extends Value<V,T>> extends MacPropagation<V,T> implements SolverListener<V,T>
MacPropagation
and this DBT propagation is
that all notassigned values of an assigned variable are marked as nogood.
Also, when a dead end is reached, unassignment or failure takes place. MacPropagation.NoGood
iConstraints, iIteration
sMaxSize
Constructor and Description 

DbtPropagation(Solver<V,T> solver,
DataProperties properties)
Constructor.

Modifier and Type  Method and Description 

void 
afterAssigned(Assignment<V,T> assignment,
long iteration,
T value)
Propagation takes place every time a value is assigned to a variable.

void 
afterUnassigned(Assignment<V,T> assignment,
long iteration,
T value)
Undo propagation when a value is unassigned.

void 
neighbourFailed(Assignment<V,T> assignment,
long iteration,
Neighbour<V,T> neighbour)
Called when
ParallelSolver failed to assign the given neighbour 
boolean 
neighbourSelected(Assignment<V,T> assignment,
long iteration,
Neighbour<V,T> neighbour)
A neighbour was selected

boolean 
valueSelected(Assignment<V,T> assignment,
long iteration,
V variable,
T value)
If no value is selected (because of a dead end), make some unassignments.

boolean 
variableSelected(Assignment<V,T> assignment,
long iteration,
V variable)
If no variable is selected (all variables are assinged), unassign the
last assigned variable.

addConstraint, beforeAssigned, contains, createAssignmentContext, goodValues, isGood, noGood, propagate, setGood, setNoGood, undoPropagate
getAssignmentContextReference, getContext, getContext, init, setAssignmentContextReference, unregister
beforeUnassigned, constraintAdded, constraintRemoved, getModel, getProperties, getSolver, isRegistered, register, variableAdded, variableRemoved
public DbtPropagation(Solver<V,T> solver, DataProperties properties)
solver
 current solverproperties
 solver configurationpublic void afterAssigned(Assignment<V,T> assignment, long iteration, T value)
afterAssigned
in interface ModelListener<V extends Variable<V,T>,T extends Value<V,T>>
afterAssigned
in class MacPropagation<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationvalue
 value to be assignedMacPropagation.propagate(Assignment, Variable)
public void afterUnassigned(Assignment<V,T> assignment, long iteration, T value)
afterUnassigned
in interface ModelListener<V extends Variable<V,T>,T extends Value<V,T>>
afterUnassigned
in class MacPropagation<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationvalue
 value to be unassignedMacPropagation.undoPropagate(Assignment, Variable)
public boolean variableSelected(Assignment<V,T> assignment, long iteration, V variable)
DbtVariableSelection
):
variableSelected
in interface SolverListener<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationvariable
 selected variableDbtVariableSelection.selectVariable(Solution)
public boolean valueSelected(Assignment<V,T> assignment, long iteration, V variable, T value)
DbtValueSelection
),
(explanation for that is the computed union of explanations without the last assignment).
valueSelected
in interface SolverListener<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationvariable
 selected variablevalue
 selected variableDbtVariableSelection.selectVariable(Solution)
public boolean neighbourSelected(Assignment<V,T> assignment, long iteration, Neighbour<V,T> neighbour)
SolverListener
neighbourSelected
in interface SolverListener<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationneighbour
 neighbourpublic void neighbourFailed(Assignment<V,T> assignment, long iteration, Neighbour<V,T> neighbour)
SolverListener
ParallelSolver
failed to assign the given neighbourneighbourFailed
in interface SolverListener<V extends Variable<V,T>,T extends Value<V,T>>
assignment
 current assignmentiteration
 current iterationneighbour
 neighbour