Class DisjointConditional

All Implemented Interfaces:
SatisfiedPresent, Stateful, UsesQueueVariable

public class DisjointConditional extends Diff
DisjointConditional constraint assures that any two rectangles from a vector of rectangles does not overlap in at least one direction. The execption from this rule is specified on the list of tuple [recti, rectj, C], where recti and rectj are integers representing given rectangles positions on the list of rectangles (starting from 1) and C is FDV 0..1. When C=1 then rectnagles must not overlap otherwise the overlaping is not checked.
Version:
4.9
  • Field Details

  • Constructor Details

    • DisjointConditional

      public DisjointConditional(Rectangle[] rectangles, ExclusiveList exclusionList, boolean doProfile)
      It specifies a diff constraint.
      Parameters:
      rectangles - list of rectangles which can not overlap in at least one dimension.
      exclusionList - it is a list of exclusive items. Each item consists of two ints and a variable.
      doProfile - should the constraint compute and use the profile functionality.
    • DisjointConditional

      public DisjointConditional(List<List<? extends IntVar>> rectangles, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition)
      It creates Disjoint conditional constraint.
      Parameters:
      rectangles - the rectangles within a constraint.
      exceptionIndices - a list of pairs of conditionally overlaping rectangles.
      exceptionCondition - a variable specifying if a corresponding pair is nonoverlapping.
    • DisjointConditional

      public DisjointConditional(List<List<? extends IntVar>> rectangles, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition, boolean profile)
      It creates Disjoint conditional constraint.
      Parameters:
      rectangles - the rectangles within a constraint.
      exceptionIndices - it specifies a list of pairs, where each pair specifies two rectangles which conditionally overlap.
      exceptionCondition - a variable specifying if a corresponding pair is nonoverlapping.
      profile - it specifies if the profiles are used and computed within the constraint.
    • DisjointConditional

      public DisjointConditional(List<? extends IntVar> o1, List<? extends IntVar> o2, List<? extends IntVar> l1, List<? extends IntVar> l2, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition)
      It constructs a disjoint conditional constraint.
      Parameters:
      o1 - variables specifying the origin in the first dimension.
      o2 - variables specifying the origin in the second dimension.
      l1 - variables specifying the length in the first dimension.
      l2 - variables specifying the length in the second dimension.
      exceptionIndices - it specifies a list of pairs, where each pair specifies two rectangles which conditionally overlap.
      exceptionCondition - a variable specifying if a corresponding pair is nonoverlapping.
    • DisjointConditional

      public DisjointConditional(List<? extends IntVar> o1, List<? extends IntVar> o2, List<? extends IntVar> l1, List<? extends IntVar> l2, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition, boolean profile)
      It constructs a disjoint conditional constraint.
      Parameters:
      o1 - variables specifying the origin in the first dimension.
      o2 - variables specifying the origin in the second dimension.
      l1 - variables specifying the length in the first dimension.
      l2 - variables specifying the length in the second dimension.
      exceptionIndices - it specifies a list of pairs, where each pair specifies two rectangles which conditionally overlap.
      exceptionCondition - a variable specifying if a corresponding pair is nonoverlapping.
      profile - it specifies if the profiles are being computed and used within a constraint.
    • DisjointConditional

      public DisjointConditional(IntVar[] origin1, IntVar[] origin2, IntVar[] length1, IntVar[] length2, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition)
      It constructs a disjoint conditional constraint.
      Parameters:
      origin1 - variables specifying the origin in the first dimension.
      origin2 - variables specifying the origin in the second dimension.
      length1 - variables specifying the length in the first dimension.
      length2 - variables specifying the length in the second dimension.
      exceptionIndices - it specifies a list of pairs, where each pair specifies two rectangles which conditionally overlap.
      exceptionCondition - a variable specifying if a corresponding pair is nonoverlapping.
    • DisjointConditional

      public DisjointConditional(IntVar[] o1, IntVar[] o2, IntVar[] l1, IntVar[] l2, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition, boolean profile)
      It constructs a disjoint conditional constraint.
      Parameters:
      o1 - variables specifying the origin in the first dimension.
      o2 - variables specifying the origin in the second dimension.
      l1 - variables specifying the length in the first dimension.
      l2 - variables specifying the length in the second dimension.
      exceptionIndices - list of rectangles that may not be considered
      exceptionCondition - conditions for rectangles that may not be considered
      profile - it specifies if the profiles are being used and computed within that constraint.
    • DisjointConditional

      public DisjointConditional(IntVar[][] rectangles, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition)
      It creates Disjoint conditional constraint.
      Parameters:
      rectangles - the rectangles within a constraint.
      exceptionIndices - list of rectangles that may not be considered
      exceptionCondition - conditions for rectangles that may not be considered
    • DisjointConditional

      public DisjointConditional(IntVar[][] rectangles, List<List<Integer>> exceptionIndices, List<? extends IntVar> exceptionCondition, boolean profile)
      It creates Disjoint conditional constraint.
      Parameters:
      rectangles - the rectangles within a constraint.
      exceptionIndices - list of rectangles that may not be considered
      exceptionCondition - conditions for rectangles that may not be considered
      profile - it specifies if the profiles are being computed and used within that constraint.
  • Method Details