Class Diffn


  • public class Diffn
    extends Nooverlap
    Diffn constraint assures that any two rectangles from a vector of rectangles does not overlap in at least one direction. It is a simple implementation which does not use sophisticated techniques for efficient backtracking.
    Version:
    4.8
    • Constructor Detail

      • Diffn

        public Diffn​(IntVar[][] rectangles)
        It specifies a diff constraint.
        Parameters:
        rectangles - list of rectangles which can not overlap in at least one dimension.
      • Diffn

        public Diffn​(IntVar[][] rectangles,
                     boolean strict)
        It specifies a diff constraint.
        Parameters:
        rectangles - list of rectangles which can not overlap in at least one dimension.
        strict - true- zero size rectangles need to be between other rectangles; false- these rectangles can be anywhere
      • Diffn

        public Diffn​(IntVar[] origin1,
                     IntVar[] origin2,
                     IntVar[] length1,
                     IntVar[] length2)
        It constructs a diff constraint.
        Parameters:
        origin1 - list of variables denoting origin of the rectangle in the first dimension.
        origin2 - list of variables denoting origin of the rectangle in the second dimension.
        length1 - list of variables denoting length of the rectangle in the first dimension.
        length2 - list of variables denoting length of the rectangle in the second dimension.
      • Diffn

        public Diffn​(IntVar[] origin1,
                     IntVar[] origin2,
                     IntVar[] length1,
                     IntVar[] length2,
                     boolean strict)
        It constructs a diff constraint.
        Parameters:
        origin1 - list of variables denoting origin of the rectangle in the first dimension.
        origin2 - list of variables denoting origin of the rectangle in the second dimension.
        length1 - list of variables denoting length of the rectangle in the first dimension.
        length2 - list of variables denoting length of the rectangle in the second dimension.
        strict - true- zero size rectangles need to be between other rectangles; false- these rectangles can be anywhere
      • Diffn

        public Diffn​(java.util.List<? extends java.util.List<? extends IntVar>> rectangles)
        It specifies a diffn constraint.
        Parameters:
        rectangles - list of rectangles which can not overlap in at least one dimension.
      • Diffn

        public Diffn​(java.util.List<? extends java.util.List<? extends IntVar>> rectangles,
                     boolean strict)
        It specifies a diffn constraint.
        Parameters:
        rectangles - list of rectangles which can not overlap in at least one dimension.
        strict - true- zero size rectangles need to be between other rectangles; false- these rectangles can be anywhere
      • Diffn

        public Diffn​(java.util.List<? extends IntVar> o1,
                     java.util.List<? extends IntVar> o2,
                     java.util.List<? extends IntVar> l1,
                     java.util.List<? extends IntVar> l2)
        It constructs a diff constraint.
        Parameters:
        o1 - list of variables denoting origin of the rectangle in the first dimension.
        o2 - list of variables denoting origin of the rectangle in the second dimension.
        l1 - list of variables denoting length of the rectangle in the first dimension.
        l2 - list of variables denoting length of the rectangle in the second dimension.
      • Diffn

        public Diffn​(java.util.List<? extends IntVar> o1,
                     java.util.List<? extends IntVar> o2,
                     java.util.List<? extends IntVar> l1,
                     java.util.List<? extends IntVar> l2,
                     boolean strict)
        It constructs a diff constraint.
        Parameters:
        o1 - list of variables denoting origin of the rectangle in the first dimension.
        o2 - list of variables denoting origin of the rectangle in the second dimension.
        l1 - list of variables denoting length of the rectangle in the first dimension.
        l2 - list of variables denoting length of the rectangle in the second dimension.
        strict - true- zero size rectangles need to be between other rectangles; false- these rectangles can be anywhere
    • 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 Nooverlap
        Parameters:
        store - constraint store within which the constraint consistency is being checked.
      • areaCheck

        private void areaCheck()
      • profile

        private void profile()
      • sweepPruning

        private void sweepPruning​(Rectangle r,
                                  java.util.BitSet o,
                                  int dim)
      • updateSweepLine

        private void updateSweepLine​(java.util.List<Interval> sweepLine,
                                     Diffn.Event e)
      • blocking

        private boolean blocking​(java.util.List<Interval> sweepLine,
                                 int start,
                                 int end,
                                 int length)
      • toString

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