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

  • Constructor Details

    • 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(List<? extends 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(List<? extends 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(List<? extends IntVar> o1, List<? extends IntVar> o2, List<? extends IntVar> l1, 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(List<? extends IntVar> o1, List<? extends IntVar> o2, List<? extends IntVar> l1, 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 Details

    • 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, BitSet o, int dim)
    • updateSweepLine

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

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

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