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
public class Subcircuit extends Alldiff
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.8
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.BitSet
cycleVar
(package private) boolean
firstConsistencyCheck
(package private) int
firstConsistencyLevel
(package private) SophisticatedLengauerTarjan
graphDominance
(package private) int
idd
(package private) static java.util.concurrent.atomic.AtomicInteger
idNumber
(package private) java.util.Random
random
(package private) int
sccCounter
(package private) int
sccLength
(package private) int[]
stack
(package private) int
stack_pointer
(package private) Store
store
(package private) boolean
useDominance
(package private) boolean
useSCC
(package private) int[]
val
(package private) java.util.Hashtable<Var,java.lang.Integer>
valueIndex
-
Fields inherited from class org.jacop.constraints.Alldifferent
grounded, list, positionMapping, variableQueue
-
Fields inherited from class org.jacop.constraints.Constraint
afcWeight, atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, trace, watchedVariableGrounded
-
Fields inherited from class org.jacop.constraints.DecomposedConstraint
queueIndex
-
-
Constructor Summary
Constructors Constructor Description Subcircuit(java.util.List<IntVar> list)
It constructs a circuit constraint.Subcircuit(IntVar[] list)
It constructs a circuit constraint.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
alldifferent(Store store, java.util.LinkedHashSet<IntVar> fdvs)
void
consistency(Store store)
It is a (most probably incomplete) consistency function which removes the values from variables domains.private void
dominanceFilter()
int
getConsistencyPruningEvent(Var var)
It retrieves the pruning event which causes reevaluation of the constraint.private boolean
graphDominance(int root)
void
impose(Store store)
It imposes the constraint in a given store.(package private) boolean
needsListPruning()
private boolean
reversedGraphDominance(int root)
boolean
satisfied()
It checks if the constraint is satisfied.private int
sccs(Store store)
private void
sccsBasedPruning(Store store)
java.lang.String
toString()
It produces a string representation of a constraint state.private int
visit(int k)
-
Methods inherited from class org.jacop.constraints.Alldiff
getDefaultConsistencyPruningEvent, queueVariable
-
Methods inherited from class org.jacop.constraints.Alldifferent
notSatisfied
-
Methods 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, watchedVariableGrounded
-
Methods inherited from class org.jacop.constraints.DecomposedConstraint
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
-
-
-
-
Field Detail
-
idNumber
static java.util.concurrent.atomic.AtomicInteger idNumber
-
store
Store store
-
firstConsistencyCheck
boolean firstConsistencyCheck
-
useSCC
boolean useSCC
-
useDominance
boolean useDominance
-
idd
int idd
-
sccLength
int sccLength
-
val
int[] val
-
valueIndex
java.util.Hashtable<Var,java.lang.Integer> valueIndex
-
firstConsistencyLevel
int firstConsistencyLevel
-
graphDominance
SophisticatedLengauerTarjan graphDominance
-
sccCounter
int sccCounter
-
stack
int[] stack
-
stack_pointer
int stack_pointer
-
cycleVar
java.util.BitSet cycleVar
-
random
java.util.Random random
-
-
Constructor Detail
-
Subcircuit
public Subcircuit(IntVar[] list)
It constructs a circuit constraint.- Parameters:
list
- variables which must form a circuit.
-
Subcircuit
public Subcircuit(java.util.List<IntVar> list)
It constructs a circuit constraint.- Parameters:
list
- variables which must form a circuit.
-
-
Method Detail
-
consistency
public void consistency(Store store)
Description copied from class:Constraint
It 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:
consistency
in classAlldiff
- Parameters:
store
- constraint store within which the constraint consistency is being checked.
-
getConsistencyPruningEvent
public int getConsistencyPruningEvent(Var var)
Description copied from class:Constraint
It retrieves the pruning event which causes reevaluation of the constraint.- Overrides:
getConsistencyPruningEvent
in 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
public void impose(Store store)
Description copied from class:Constraint
It imposes the constraint in a given store.
-
satisfied
public boolean satisfied()
Description copied from interface:SatisfiedPresent
It 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:
satisfied
in interfaceSatisfiedPresent
- Overrides:
satisfied
in classAlldifferent
- Returns:
- true if constraint is possible to verify that it is satisfied.
-
toString
public java.lang.String toString()
Description copied from class:Constraint
It produces a string representation of a constraint state.
-
sccsBasedPruning
private void sccsBasedPruning(Store store)
-
sccs
private int sccs(Store store)
-
visit
private int visit(int k)
-
dominanceFilter
private void dominanceFilter()
-
graphDominance
private boolean graphDominance(int root)
-
reversedGraphDominance
private boolean reversedGraphDominance(int root)
-
-