4.2.2.7. Scheduling constraints¶
In this section: alternative, cumulative, disjunctive, disjunctive_strict, span.
alternative¶
predicate alternative(var opt int: s0,
var int: d0,
array [int] of var opt int: s,
array [int] of var int: d)

Alternative constraint for optional tasks. The task with start time s0 and duration d0 spans the optional tasks with start times s[i] and durations d[i]), and at most one of those tasks can occur. 
cumulative¶
1. predicate cumulative(array [int] of var int: s,
array [int] of var int: d,
array [int] of var int: r,
var int: b)
2. predicate cumulative(array [int] of var opt int: s,
array [int] of var int: d,
array [int] of var int: r,
var int: b)


disjunctive¶
1. predicate disjunctive(array [$$T] of var int: s,
array [$$T] of var int: d)
2. predicate disjunctive(array [$$T] of var opt int: s,
array [$$T] of var int: d)


disjunctive_strict¶
1. predicate disjunctive_strict(array [$$T] of var int: s,
array [$$T] of var int: d)
2. predicate disjunctive_strict(array [$$T] of var opt int: s,
array [$$T] of var int: d)


span¶
predicate span(var opt int: s0,
var int: d0,
array [$$E] of var opt int: s,
array [$$E] of var int: d)

Span constraint for optional tasks. Task (s0,d0) spans the optional tasks (s[i],d[i]) in the array arguments. 