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.9
  • Field Details

    • idNumber

      static final 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 Details

    • 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, 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, 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 Details

    • 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.
    • getDefaultConsistencyPruningEvent

      public int getDefaultConsistencyPruningEvent()
      Specified by:
      getDefaultConsistencyPruningEvent in class Constraint
    • 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 String toString()
      Description copied from class: Constraint
      It produces a string representation of a constraint state.
      Overrides:
      toString in class Constraint