[ library(edge_finder3) | 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_finder : cumulative / 4, cumulative : cumulative / 4, ic_cumulative : cumulative / 4