[ library(cumulative) | Reference Manual | Alphabetic Index ]
cumulative(+StartTimes, +Durations, +Resources, ++ResourceLimit)
Cumulative constraint on specified tasks.
- StartTimes
- Collection of start times for tasks (fd variables or integers)
- Durations
- Collection of duration for tasks (fd variables or integers)
- Resources
- Collection of resource uages by tasks (fd variables or integers)
- ResourceLimit
- Maximum amount of resource available (integer)
Description
A cumulative scheduling constraint. StartTimes, Durations and Resources
are collections (a la collection_to_list/2) of equal size N of finite
domain variable or integers. ResourceLimit is an integer. The
declarative meaning is:
If there are N tasks, each starting at a certain start time, having
a certain duration and consuming a certain (constant) amount of
resource, then the sum of resource usage of all the tasks does not
exceed ResourceLimit at any time.
The (ic/fd)_edge_finder and (ic/fd)_edge_finder3 libraries implementation
of this predicate can provide stronger propagations.
See Also
profile / 4, eclipse_6 : collection_to_list / 2, lists : collection_to_list / 2, ic_edge_finder : cumulative / 4, ic_edge_finder3 : cumulative / 4, gfd : cumulative / 4, edge_finder : cumulative / 4, edge_finder3 : cumulative / 4, ic_cumulative : cumulative / 4