[ 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, 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