Package org.jacop.constraints
Class Subcircuit
java.lang.Object
org.jacop.constraints.DecomposedConstraint<Constraint>
org.jacop.constraints.Constraint
org.jacop.constraints.Alldifferent
org.jacop.constraints.Alldiff
org.jacop.constraints.Subcircuit
- All Implemented Interfaces:
SatisfiedPresent,UsesQueueVariable
Subcircuit constraint assures that all variables build a
subcircuit. Value of every variable x[i] points to the next variable in
the subcircuit. If a variable does not belong to a subcircuit it has value of
its position, i.e., x[i] = i.
- Version:
- 4.10
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) BitSet(package private) boolean(package private) int(package private) SophisticatedLengauerTarjan(package private) int(package private) static AtomicInteger(package private) Random(package private) int(package private) int(package private) int[](package private) int(package private) Store(package private) boolean(package private) boolean(package private) int[]Fields inherited from class org.jacop.constraints.Alldifferent
grounded, list, positionMapping, variableQueueFields inherited from class org.jacop.constraints.Constraint
afcWeight, atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, trace, watchedVariableGroundedFields inherited from class org.jacop.constraints.DecomposedConstraint
queueIndex -
Constructor Summary
ConstructorsConstructorDescriptionSubcircuit(List<? extends IntVar> list) It constructs a circuit constraint.Subcircuit(IntVar[] list) It constructs a circuit constraint. -
Method Summary
Modifier and TypeMethodDescription(package private) voidalldifferent(Store store, LinkedHashSet<IntVar> fdvs) voidconsistency(Store store) It is a (most probably incomplete) consistency function which removes the values from variables domains.private voidintIt retrieves the pruning event which causes reevaluation of the constraint.private booleangraphDominance(int root) voidIt imposes the constraint in a given store.(package private) booleanprivate booleanreversedGraphDominance(int root) booleanIt checks if the constraint is satisfied.private intprivate voidsccsBasedPruning(Store store) toString()It produces a string representation of a constraint state.private intvisit(int k) Methods inherited from class org.jacop.constraints.Alldiff
getDefaultConsistencyPruningEvent, queueVariableMethods inherited from class org.jacop.constraints.Alldifferent
notSatisfiedMethods inherited from class org.jacop.constraints.Constraint
afc, arguments, cleanAfterFailure, decompose, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, imposeDecomposition, increaseWeight, intArrayToString, long2int, numberArgs, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, toInt, toInt, updateAFC, watchedVariableGroundedMethods inherited from class org.jacop.constraints.DecomposedConstraint
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
-
Field Details
-
idNumber
-
store
Store store -
firstConsistencyCheck
boolean firstConsistencyCheck -
useSCC
boolean useSCC -
useDominance
boolean useDominance -
idd
int idd -
sccLength
int sccLength -
val
int[] val -
valueIndex
-
firstConsistencyLevel
int firstConsistencyLevel -
graphDominance
SophisticatedLengauerTarjan graphDominance -
sccCounter
int sccCounter -
stack
int[] stack -
stack_pointer
int stack_pointer -
cycleVar
BitSet cycleVar -
random
Random random
-
-
Constructor Details
-
Subcircuit
It constructs a circuit constraint.- Parameters:
list- variables which must form a circuit.
-
Subcircuit
It constructs a circuit constraint.- Parameters:
list- variables which must form a circuit.
-
-
Method Details
-
consistency
Description copied from class:ConstraintIt is a (most probably incomplete) consistency function which removes the values from variables domains. Only values which do not have any support in a solution space are removed.- Overrides:
consistencyin classAlldiff- Parameters:
store- constraint store within which the constraint consistency is being checked.
-
alldifferent
-
getConsistencyPruningEvent
Description copied from class:ConstraintIt retrieves the pruning event which causes reevaluation of the constraint.- Overrides:
getConsistencyPruningEventin classConstraint- Parameters:
var- variable for which pruning event is retrieved- Returns:
- it returns the int code of the pruning event (GROUND, BOUND, ANY, NONE)
-
needsListPruning
boolean needsListPruning() -
impose
Description copied from class:ConstraintIt imposes the constraint in a given store. -
satisfied
public boolean satisfied()Description copied from interface:SatisfiedPresentIt checks if the constraint is satisfied. It can return false even if constraint is satisfied but not all variables in its scope are grounded. It needs to return true if all variables in its scope are grounded and constraint is satisfied.Implementations of this interface for constraints that are not PrimitiveConstraint may require constraint imposition and consistency check as a requirement to work correctly.
- Specified by:
satisfiedin interfaceSatisfiedPresent- Overrides:
satisfiedin classAlldifferent- Returns:
- true if constraint is possible to verify that it is satisfied.
-
toString
Description copied from class:ConstraintIt produces a string representation of a constraint state. -
sccsBasedPruning
-
sccs
-
visit
private int visit(int k) -
dominanceFilter
private void dominanceFilter() -
graphDominance
private boolean graphDominance(int root) -
reversedGraphDominance
private boolean reversedGraphDominance(int root)
-