Class Table

All Implemented Interfaces:
Stateful, UsesQueueVariable

public class Table extends Constraint implements UsesQueueVariable, Stateful
Table implements the table constraint using a method presented in

"Compact-Table: Efficient Filtering Table Constraints with Reversible Sparse Bit-Sets" Jordan Demeulenaere, Renaud Hartert, Christophe Lecoutre, Guillaume Perez, Laurent Perron, Jean-Charles Régin, Pierre Schaus. Proc. International Conference on Principles and Practice of Constraint Programming, CP 2016. pp 207-223

Version:
4.9
  • Field Details

    • store

      Store store
    • x

      public IntVar[] x
      Variables within the scope of table constraint
    • tuple

      public int[][] tuple
      Tuples specifying the allowed values
    • varMap

      Map<IntVar,Integer> varMap
    • rbs

      Main data structure for the constraint
    • supports

      Map<Integer,long[]>[] supports
      Data specifying support tuples for each variable; static structure created once when constraint is posed.
    • residues

      Map<Integer,Integer>[] residues
    • variableQueue

      Set<IntVar> variableQueue
    • noNoGround

      int noNoGround
    • idNumber

      static AtomicInteger idNumber
    • debug

      static final boolean debug
      See Also:
  • Constructor Details

    • Table

      public Table(IntVar[] list, int[][] tuples)
      It constructs a table constraint.
      Parameters:
      list - the variables in the scope of the constraint.
      tuples - the tuples which define alloed values.
    • Table

      public Table(IntVar[] list, int[][] tuples, boolean reuseTuplesArgument)
      It constructs a table constraint.
      Parameters:
      list - the variables in the scope of the constraint.
      tuples - the tuples which define alloed values.
      reuseTuplesArgument - specifies if the table of tuples should be used directly without copying.
  • Method Details

    • makeSupportAndWords

      long[] makeSupportAndWords(int nw)
    • setBit

      private void setBit(int n, long[] a)
    • validTuple

      private boolean validTuple(int index)
    • getDefaultConsistencyPruningEvent

      public int getDefaultConsistencyPruningEvent()
      Specified by:
      getDefaultConsistencyPruningEvent in class Constraint
    • impose

      public void impose(Store store)
      Description copied from class: Constraint
      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.
    • updateTable

      void updateTable(Set<IntVar> fdvs)
    • filterDomains

      void filterDomains()
    • queueVariable

      public void queueVariable(int level, Var v)
      Description copied from class: Constraint
      This is a function called to indicate which variable in a scope of constraint has changed. It also indicates a store level at which the change has occurred.
      Overrides:
      queueVariable in class Constraint
      Parameters:
      level - the level of the store at which the change has occurred.
      v - variable which has changed.
    • 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