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.9
  • 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)
    • imposeDecomposition

      public void imposeDecomposition(Store store)
      It imposes DiffnDecomposed in a given store.
      Overrides:
      imposeDecomposition in class Constraint
      Parameters:
      store - the constraint store to which the constraint is imposed to.
    • decompose

      public List<Constraint> decompose(Store store)
      Description copied from class: Constraint
      It returns an array list of constraint which are used to decompose this constraint. It actually creates a decomposition (possibly also creating variables), but it does not impose the constraint.
      Overrides:
      decompose in class Constraint
      Parameters:
      store - the constraint store in which context the decomposition takes place.
      Returns:
      an array list of constraints used to decompose this constraint.
    • auxiliaryVariables

      public List<Var> auxiliaryVariables()
      Overrides:
      auxiliaryVariables in class DecomposedConstraint<Constraint>
      Returns:
      null if no auxiliary variables were created, otherwise a list with variables.
    • toString

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