[ library(edge_finder) | Reference Manual | Alphabetic Index ]
# cumulative(+StartTimes, +Durations, +Resources, ++ResourceLimit)

Cumulative constraint on specified tasks.
*StartTimes*
- List of start times for tasks (integer variables or integers)
*Durations*
- List of duration for tasks (integer variables or integers)
*Resources*
- List of resource uages by tasks (integer 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 integer
variables 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.

Any input variables which do not already have finite bounds will be
given default bounds of -10000000 to 10000000.

This constraint can propagate more information than the implementation
in library(ic_cumulative) and library(cumulative).

## See Also

disjunctive / 2, cumulative / 5, 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_finder3 : cumulative / 4, cumulative : cumulative / 4, ic_cumulative : cumulative / 4