1. predicate cumulatives(array [$$E] of var int: s,
array [$$E] of var int: d,
array [$$E] of var int: r,
array [$$E] of var $$M: m,
array [$$M] of var int: b,
bool: upper)
2. predicate cumulatives(array [$$E] of var opt int: s,
array [$$E] of var int: d,
array [$$E] of var int: r,
array [$$E] of var $$M: m,
array [$$M] of var int: b,
bool: upper)
|
We have a set of tasks given by start times s, durations d,
resource requirements r, and machines m. We also have a set of
machines given by resource bounds b. Finally, we have a Boolean
flag upper. The constraint requires that forall i, m[i]
is in the index set of b and that for each machine j and time
instant t, either no task assigned to j executes at t, or
the total resource requirement of such tasks is not greater
than, if upper is true, or not less than, if upper is false,
the given bound b[j]. Resource requirements can be positive
(for consumption) or negative (for production).
Assumptions:
We have a set of optional tasks given by start times s, durations d,
resource requirements r, and machines m. We also have a set of
machines given by resource bounds b. Finally, we have a Boolean
flag upper. The constraint requires that forall i, m[i]
is in the index set of b and that for each machine j and time
instant t, either no task assigned to j executes at \t, or
the total resource requirement of such tasks is not greater
than, if upper is true, or not less than, if upper is false,
the given bound b[j]. Resource requirements can be positive
(for consumption) or negative (for production).
Assumptions:
|