Class 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 Detail

      • idNumber

        static java.util.concurrent.atomic.AtomicInteger idNumber
      • 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
      • 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 class Alldiff
        Parameters:
        store - constraint store within which the constraint consistency is being checked.
      • alldifferent

        void alldifferent​(Store store,
                          java.util.LinkedHashSet<IntVar> fdvs)
      • 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 class Constraint
        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.
        Overrides:
        impose in class Alldiff
        Parameters:
        store - the constraint store to which the constraint is imposed to.
      • 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 interface SatisfiedPresent
        Overrides:
        satisfied in class Alldifferent
        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.
        Overrides:
        toString in class Alldiff
      • 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)