Package org.jacop.constraints
Class Cumulative
java.lang.Object
org.jacop.constraints.DecomposedConstraint<Constraint>
org.jacop.constraints.Constraint
org.jacop.constraints.Cumulative
- All Implemented Interfaces:
SatisfiedPresent
Cumulative implements the cumulative/4 constraint using edge-finding
algorithm and profile information on the resource use.
- Version:
- 4.9
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CumulativeProfiles
private static final boolean
private static final boolean
protected boolean
It specifies if the edge finding algorithm should be used.private Comparator
<IntDomain> private Comparator
<IntDomain> protected boolean
It specifies if the profiles should be computed to propagate onto limit variable.IntVar[]
It specifies/stores duration variables for each corresponding task.(package private) static AtomicInteger
It specifies the limit of the profile of cumulative use of resources.private Profile
It contains information about maximal profile contributed by tasks.private Profile
It contains information about minimal profile contributed by regions for certain occupied by tasks.IntVar[]
It specifies/stores resource variable for each corresponding task.protected boolean
It specifies if the data from profiles should be used to propagate onto limit variable.IntVar[]
It specifies/stores start variables for each corresponding task.private Comparator
<Task> private Comparator
<Task> private Task[]
Fields inherited from class org.jacop.constraints.Constraint
afcWeight, atomicExecution, consistencyPruningEvents, constraintScope, earlyTerminationOK, increaseWeight, numberId, scope, trace, watchedVariableGrounded
Fields inherited from class org.jacop.constraints.DecomposedConstraint
queueIndex
-
Constructor Summary
ConstructorsConstructorDescriptionCumulative
(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit) It creates a cumulative constraint.Cumulative
(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit, boolean edgeFinding) It creates a cumulative constraint.Cumulative
(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit, boolean edgeFinding, boolean profile) It creates a cumulative constraint.Cumulative
(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit) It creates a cumulative constraint.Cumulative
(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean edgeFinding) It creates a cumulative constraint.Cumulative
(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean doEdgeFinding, boolean doProfile) It creates a cumulative constraint.Cumulative
(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean doEdgeFinding, boolean doProfile, boolean setLimit) It creates a cumulative constraint. -
Method Summary
Modifier and TypeMethodDescription(package private) boolean
private boolean
(package private) boolean
void
consistency
(Store store) It is a (most probably incomplete) consistency function which removes the values from variables domains.private void
edgeFindingDown
(Store store) private void
edgeFindingUp
(Store store) private int
private boolean
fitTasksAfter
(List<Task> s, int est0) private boolean
fitTasksBefore
(List<Task> s, int lct0) int
(package private) Task[]
getTasks()
private boolean
intervalOverlap
(int min1, int max1, int min2, int max2) private int
private int
private long
minOverlap
(Task t, int est, int lct) private void
private void
private void
profileCheckInterval
(Store store, IntVar Start, IntVar Duration, Interval i, IntVar Resources, int mustUseMin, int mustUseMax) private void
profileCheckTasks
(Store store) private void
removeFromS_Est
(List<Task> s) private void
removeFromS_Lct
(List<Task> s) boolean
It checks if the constraint is satisfied.toString()
It produces a string representation of a constraint state.private void
updateTasksRes
(Store store) Methods inherited from class org.jacop.constraints.Constraint
afc, arguments, cleanAfterFailure, decompose, getConsistencyPruningEvent, getGuideConstraint, getGuideValue, getGuideVariable, grounded, grounded, id, impose, impose, imposeDecomposition, increaseWeight, intArrayToString, long2int, numberArgs, queueVariable, removeConstraint, requiresMonotonicity, setConsistencyPruningEvent, setConstraintScope, setScope, setScope, setScope, setScope, setScope, setWatchedVariableGrounded, supplyGuideFeedback, toInt, toInt, updateAFC, watchedVariableGrounded
Methods inherited from class org.jacop.constraints.DecomposedConstraint
auxiliaryVariables, checkInput, checkInput, checkInputForDuplication, checkInputForDuplicationSkipSingletons, checkInputForNullness, checkInputForNullness, checkInputForNullness, derivative, getDubletonsSkipSingletons, imposeDecomposition
-
Field Details
-
idNumber
-
debug
private static final boolean debug- See Also:
-
debugNarr
private static final boolean debugNarr- See Also:
-
maxProfile
It contains information about maximal profile contributed by tasks. -
minProfile
It contains information about minimal profile contributed by regions for certain occupied by tasks. -
cumulativeProfiles
-
Ts
-
doEdgeFinding
protected boolean doEdgeFindingIt specifies if the edge finding algorithm should be used. -
doProfile
protected boolean doProfileIt specifies if the profiles should be computed to propagate onto limit variable. -
setLimit
protected boolean setLimitIt specifies if the data from profiles should be used to propagate onto limit variable. -
limit
It specifies the limit of the profile of cumulative use of resources. -
starts
It specifies/stores start variables for each corresponding task. -
durations
It specifies/stores duration variables for each corresponding task. -
resources
It specifies/stores resource variable for each corresponding task. -
domainMaxComparator
-
domainMinComparator
-
taskAscEctComparator
-
taskDescLstComparator
-
-
Constructor Details
-
Cumulative
public Cumulative(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean doEdgeFinding, boolean doProfile) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.doEdgeFinding
- true if edge finding algorithm should be used.doProfile
- specifies if the profiles should be computed in order to reduce limit variable.
-
Cumulative
public Cumulative(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean doEdgeFinding, boolean doProfile, boolean setLimit) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.doEdgeFinding
- true if edge finding algorithm should be used.doProfile
- specifies if the profiles should be computed in order to reduce limit variable.setLimit
- specifies if limit variable will be prunded.
-
Cumulative
public Cumulative(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.
-
Cumulative
public Cumulative(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit, boolean edgeFinding) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.edgeFinding
- true if edge finding algorithm should be used.
-
Cumulative
public Cumulative(List<? extends IntVar> starts, List<? extends IntVar> durations, List<? extends IntVar> resources, IntVar limit, boolean edgeFinding, boolean profile) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.edgeFinding
- true if edge finding algorithm should be used.profile
- specifies if the profiles should be computed in order to reduce limit variable.
-
Cumulative
It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.
-
Cumulative
public Cumulative(IntVar[] starts, IntVar[] durations, IntVar[] resources, IntVar limit, boolean edgeFinding) It creates a cumulative constraint.- Parameters:
starts
- variables denoting starts of the tasks.durations
- variables denoting durations of the tasks.resources
- variables denoting resource usage of the tasks.limit
- the overall limit of resources which has to be used.edgeFinding
- true if edge finding algorithm should be used.
-
-
Method Details
-
after
-
before
-
between
-
consistency
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.
-
edgeFindingDown
-
edgeFindingUp
-
est
-
fitTasksAfter
-
fitTasksBefore
-
getDefaultConsistencyPruningEvent
public int getDefaultConsistencyPruningEvent()- Specified by:
getDefaultConsistencyPruningEvent
in classConstraint
-
getTasks
Task[] getTasks() -
intervalOverlap
private boolean intervalOverlap(int min1, int max1, int min2, int max2) -
lct
-
maxArea
-
minOverlap
-
notFirst
-
notLast
-
profileCheckInterval
-
profileCheckTasks
-
removeFromS_Est
-
removeFromS_Lct
-
satisfied
public boolean satisfied()Description copied from interface:SatisfiedPresent
It checks if the constraint is satisfied. It can return false even if constraint is satisfied but not all variables in its scope are grounded. It needs to return true if all variables in its scope are grounded and constraint is satisfied.Implementations of this interface for constraints that are not PrimitiveConstraint may require constraint imposition and consistency check as a requirement to work correctly.
- Specified by:
satisfied
in interfaceSatisfiedPresent
- Returns:
- true if constraint is possible to verify that it is satisfied.
-
toString
Description copied from class:Constraint
It produces a string representation of a constraint state.- Overrides:
toString
in classConstraint
-
updateTasksRes
-