Cumulative Constraint and Resource Profiles

## 4.2 Cumulative Constraint and Resource Profiles

The library cumulative implements the cumulative scheduling constraint. It is based on the IC library and is loaded using one of

>     :- use_module(library(ic_cumulative)).
>     :- lib(ic_cumulative).

cumulative(+StartTimes, +Durations, +Resources, ++ResourceLimit)
  A cumulative scheduling constraint. StartTimes, Durations and Resources are lists of equal length 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.
profile(+StartTimes, +Durations, +Resources, -Profile)
  StartTimes, Durations, Resources and Profile are lists of equal length N of integer variables or integers with the same meaning as in cumulative/4. The list Profile indicates the level of resource usage at the starting point of each task.