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, tracequeueIndex| 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, watchedVariableGroundedauxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecompositionpublic 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)
Constraintimpose in class Constraintstore - the constraint store to which the constraint is imposed to.public void consistency(Store s)
Constraintconsistency in class Constraints - 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 Constraintpublic boolean satisfied()
SatisfiedPresentImplementations 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 SatisfiedPresentpublic String toString()
ConstrainttoString in class ConstraintCopyright © 2022. All rights reserved.