Class ElementSetVariable

  • All Implemented Interfaces:
    Stateful

    public class ElementSetVariable
    extends Constraint
    implements Stateful
    ElementSetVariable constraint defines a relation list[index - indexOffset] = value. This version uses bounds consistency.

    The first element of the list corresponds to index - indexOffset = 1. By default indexOffset is equal 0 so first value within a list corresponds to index equal 1.

    If index has a domain from 0 to list.length-1 then indexOffset has to be equal -1 to make addressing of list array starting from 1.

    Version:
    4.8
    • Field Detail

      • idNumber

        static final java.util.concurrent.atomic.AtomicInteger idNumber
      • firstConsistencyCheck

        boolean firstConsistencyCheck
      • firstConsistencyLevel

        int firstConsistencyLevel
      • index

        public final IntVar index
        It specifies variable index within an element constraint list[index - indexOffset] = value.
      • value

        public final SetVar value
        It specifies variable value within an element constraint list[index - indexOffset] = value.
      • indexOffset

        private final int indexOffset
        It specifies indexOffset within an element constraint list[index - indexOffset] = value.
      • list

        public final SetVar[] list
        It specifies list of variables within an element constraint list[index - indexOffset] = value. The list is addressed by positive integers (>=1) if indexOffset is equal to 0.
    • Constructor Detail

      • ElementSetVariable

        public ElementSetVariable​(IntVar index,
                                  SetVar[] list,
                                  SetVar value,
                                  int indexOffset)
        It constructs an element constraint.
        Parameters:
        index - variable index
        list - list of variables from which an index-th element is taken
        value - a value of the index-th element from list
        indexOffset - shift applied to index variable.
      • ElementSetVariable

        public ElementSetVariable​(IntVar index,
                                  java.util.List<? extends SetVar> list,
                                  SetVar value)
        It constructs an element constraint.
        Parameters:
        index - variable index
        list - list of variables from which an index-th element is taken
        value - a value of the index-th element from list
      • ElementSetVariable

        public ElementSetVariable​(IntVar index,
                                  java.util.List<? extends SetVar> list,
                                  SetVar value,
                                  int indexOffset)
        It constructs an element constraint.
        Parameters:
        index - variable index
        list - list of variables from which an index-th element is taken
        value - a value of the index-th element from list
        indexOffset - shift applied to index variable.
      • ElementSetVariable

        public ElementSetVariable​(IntVar index,
                                  SetVar[] list,
                                  SetVar value)
        It constructs an element constraint.
        Parameters:
        index - variable index
        list - list of variables from which an index-th element is taken
        value - a value of the index-th element from list
    • Method Detail

      • isStateful

        public boolean isStateful()
        Description copied from interface: Stateful
        This function can be overriden by any constraint to specify dynamic conditions (based on the domain of variables at imposition level to decide if it is a stateful constraint.
        Specified by:
        isStateful in interface Stateful
        Returns:
        true if constraint is stateful.
      • impose

        public void impose​(Store store)
        It imposes the constraint in a given store.
        Overrides:
        impose in class Constraint
        Parameters:
        store - the constraint store to which the constraint is imposed to.
      • 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.
        Specified by:
        consistency in class Constraint
        Parameters:
        store - constraint store within which the constraint consistency is being checked.
      • removeLevel

        public void removeLevel​(int level)
        Description copied from interface: Stateful
        This function is called in case of the backtrack, so a constraint can clear the queue of changed variables which is no longer valid. This function is called *before* all timestamps, variables, mutablevariables have reverted to their previous value.
        Specified by:
        removeLevel in interface Stateful
        Parameters:
        level - the level which is being removed.
      • toString

        public java.lang.String toString()
        Description copied from class: Constraint
        It produces a string representation of a constraint state.
        Overrides:
        toString in class Constraint