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.7
    • Field Detail

      • x

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

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

        java.util.Map<IntVar,​java.lang.Integer> varMap
      • supports

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

        java.util.Map<java.lang.Integer,​java.lang.Integer>[] residues
      • variableQueue

        java.util.Set<IntVar> variableQueue
      • noNoGround

        int noNoGround
      • idNumber

        static java.util.concurrent.atomic.AtomicInteger idNumber
    • Constructor Detail

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

      • makeSupportAndWords

        long[] makeSupportAndWords​(int nw)
      • setBit

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

        private boolean validTuple​(int index)
      • 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​(java.util.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 java.lang.String toString()
        Description copied from class: Constraint
        It produces a string representation of a constraint state.
        Overrides:
        toString in class Constraint