public class ExtensionalSupportMDD extends Constraint implements SatisfiedPresent
This implementation uses technique developed/improved by Roland Yap and his student. Paper presented at CP2008. We would like to thank Roland for answering our detailed questions about the implementation. It is a slightly improved version to what was presented at the conference.
This constraint uses a lot of memory, despite using an MDD. However, if the constraint is imposed multiple times (50+) its overall usage of memory maybe advantageous. Always test against STR version.
Modifier and Type | Field and Description |
---|---|
static boolean |
debugAll
It specifies if the debugging information is printed.
|
MDD |
mdd
It specifies a multiple value decision diagram used by this constraint.
|
atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, trace
queueIndex
Constructor and Description |
---|
ExtensionalSupportMDD(IntVar[] vars,
int[][] table)
It constructs extensional support constraint.
|
ExtensionalSupportMDD(MDD diagram)
It creates an extensional constraint.
|
Modifier and Type | Method and Description |
---|---|
void |
consistency(Store s)
It is a (most probably incomplete) consistency function which removes the
values from variables domains.
|
int |
getDefaultConsistencyPruningEvent() |
void |
impose(Store store)
It imposes the constraint in a given store.
|
boolean |
satisfied()
It checks if the constraint is satisfied.
|
boolean |
seekSupport(int nodeId,
int level)
It checks if the node at a given level of MDD has a support.
|
String |
toString()
It produces a string representation of a constraint state.
|
afc, arguments, cleanAfterFailure, decompose, getConsistencyPruningEvent, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, imposeDecomposition, increaseWeight, intArrayToString, long2int, numberArgs, queueVariable, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, updateAFC, watchedVariableGrounded
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
public static final boolean debugAll
public MDD mdd
public ExtensionalSupportMDD(MDD diagram)
diagram
- multiple-valued decision diagram describing allowed tuples.public ExtensionalSupportMDD(IntVar[] vars, int[][] table)
vars
- the variables in the scope of the constraint.table
- list of tuples which are allowed.public void impose(Store store)
Constraint
impose
in class Constraint
store
- the constraint store to which the constraint is imposed to.public void consistency(Store s)
Constraint
consistency
in class Constraint
s
- constraint store within which the constraint consistency is being checked.public boolean seekSupport(int nodeId, int level)
nodeId
- the position of the node in the MDD.level
- number of variable associated with the node.public int getDefaultConsistencyPruningEvent()
getDefaultConsistencyPruningEvent
in class Constraint
public boolean satisfied()
SatisfiedPresent
Implementations of this interface for constraints that are not PrimitiveConstraint may require constraint imposition and consistency check as a requirement to work correctly.
satisfied
in interface SatisfiedPresent
public String toString()
Constraint
toString
in class Constraint
Copyright © 2022. All rights reserved.