[ library(ic_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, cumulative : cumulative / 4