Package org.jacop.constraints.diffn
Class Nooverlap
- java.lang.Object
-
- org.jacop.constraints.DecomposedConstraint<Constraint>
-
- org.jacop.constraints.Constraint
-
- org.jacop.constraints.diffn.Nooverlap
-
- Direct Known Subclasses:
Diffn
public class Nooverlap extends Constraint
Nooverlap 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.7
-
-
Field Summary
Fields Modifier and Type Field Description (package private) boolean
doAreaCheck
(package private) static java.util.concurrent.atomic.AtomicInteger
idNumber
(package private) TimeStamp<java.util.BitSet>[]
overlapping
Defines first position of the variable that is not ground to 1(package private) Rectangle[]
rectangle
It specifies the list of rectangles which are of interest for this diff constraint.(package private) int
stamp
current stamp(package private) Store
store
(package private) boolean
strict
defines how to treat rectangles with width zero strict = true means they still need to be between other rectangles strict = false these rectangles can be anywhere(package private) static boolean
trace
(package private) static boolean
traceNarr
(package private) static int
x
(package private) static int
y
-
Fields inherited from class org.jacop.constraints.Constraint
atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope
-
Fields inherited from class org.jacop.constraints.DecomposedConstraint
queueIndex
-
-
Constructor Summary
Constructors Constructor Description Nooverlap(java.util.List<? extends java.util.List<? extends IntVar>> rectangle)
It specifies a diffn constraint.Nooverlap(java.util.List<? extends java.util.List<? extends IntVar>> rectangle, boolean strict)
It specifies a diffn constraint.Nooverlap(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.Nooverlap(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.Nooverlap(IntVar[][] rectangle)
It specifies a diff constraint.Nooverlap(IntVar[][] rectangle, boolean strict)
It specifies a diff constraint.Nooverlap(IntVar[] origin1, IntVar[] origin2, IntVar[] length1, IntVar[] length2)
It constructs a diff constraint.Nooverlap(IntVar[] origin1, IntVar[] origin2, IntVar[] length1, IntVar[] length2, boolean strict)
It constructs a diff constraint.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
consistency(Store store)
It is a (most probably incomplete) consistency function which removes the values from variables domains.(package private) void
energyCheck(Rectangle r, java.util.BitSet rects)
int
getDefaultConsistencyPruningEvent()
void
impose(Store store)
It imposes the constraint in a given store.boolean
notSatisfied()
(package private) void
prune(Rectangle r, java.util.BitSet rects)
private void
prune(Rectangle ri, Rectangle rj, int dim)
(package private) void
pruning()
boolean
satisfied()
java.lang.String
toString()
It produces a string representation of a constraint state.-
Methods inherited from class org.jacop.constraints.Constraint
afc, arguments, cleanAfterFailure, decompose, getConsistencyPruningEvent, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, imposeDecomposition, increaseWeight, intArrayToString, numberArgs, queueVariable, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, updateAFC, watchedVariableGrounded
-
Methods inherited from class org.jacop.constraints.DecomposedConstraint
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
-
-
-
-
Field Detail
-
idNumber
static java.util.concurrent.atomic.AtomicInteger idNumber
-
trace
static final boolean trace
- See Also:
- Constant Field Values
-
traceNarr
static final boolean traceNarr
- See Also:
- Constant Field Values
-
x
static final int x
- See Also:
- Constant Field Values
-
y
static final int y
- See Also:
- Constant Field Values
-
strict
boolean strict
defines how to treat rectangles with width zero strict = true means they still need to be between other rectangles strict = false these rectangles can be anywhere
-
store
Store store
-
rectangle
Rectangle[] rectangle
It specifies the list of rectangles which are of interest for this diff constraint.
-
overlapping
TimeStamp<java.util.BitSet>[] overlapping
Defines first position of the variable that is not ground to 1
-
stamp
int stamp
current stamp
-
doAreaCheck
boolean doAreaCheck
-
-
Constructor Detail
-
Nooverlap
public Nooverlap(IntVar[][] rectangle)
It specifies a diff constraint.- Parameters:
rectangle
- list of rectangles which can not overlap in at least one dimension.
-
Nooverlap
public Nooverlap(IntVar[][] rectangle, boolean strict)
It specifies a diff constraint.- Parameters:
rectangle
- 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
-
Nooverlap
public Nooverlap(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.
-
Nooverlap
public Nooverlap(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
-
Nooverlap
public Nooverlap(java.util.List<? extends java.util.List<? extends IntVar>> rectangle)
It specifies a diffn constraint.- Parameters:
rectangle
- list of rectangles which can not overlap in at least one dimension.
-
Nooverlap
public Nooverlap(java.util.List<? extends java.util.List<? extends IntVar>> rectangle, boolean strict)
It specifies a diffn constraint.- Parameters:
rectangle
- 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
-
Nooverlap
public Nooverlap(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.
-
Nooverlap
public Nooverlap(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.- Specified by:
consistency
in classConstraint
- Parameters:
store
- constraint store within which the constraint consistency is being checked.
-
pruning
void pruning()
-
prune
void prune(Rectangle r, java.util.BitSet rects)
-
energyCheck
void energyCheck(Rectangle r, java.util.BitSet rects)
-
getDefaultConsistencyPruningEvent
public int getDefaultConsistencyPruningEvent()
- Specified by:
getDefaultConsistencyPruningEvent
in classConstraint
-
impose
public void impose(Store store)
Description copied from class:Constraint
It imposes the constraint in a given store.- Overrides:
impose
in classConstraint
- Parameters:
store
- the constraint store to which the constraint is imposed to.
-
satisfied
public boolean satisfied()
-
notSatisfied
public boolean notSatisfied()
-
toString
public java.lang.String toString()
Description copied from class:Constraint
It produces a string representation of a constraint state.- Overrides:
toString
in classConstraint
-
-