Overview | Group | Tree | Graph | Index | Concepts |
This function creates an integral constraint from the function
func
on all the activities requiring the resource
res
. If the time extent is IloNever
or
IloAlways
, the resource constraint will be ignored.
For each such activity, the integral of the function func
is
computed over the activity duration, divided by the granularity, and
properly rounded (see IloGranularFunction
). It is then set to
be equal to the value of the variable designated by
leftVar:
Such a function can be used to specify detailed, time-varying constraints
for all activities on a resource. For example, such a function can be used
to specify precisely how the duration of an activity depends on its start
and end times. Whenever the processing time is used
(IloProcessingTimeVariable
), every activity executing on the
resource must be breakable, and the granular function func
must
take a value less than or equal to its granularity. Otherwise an error will
be raised when starting to solve the problem.
The suspension of activities at the start or end (see IloActivity::canBeSuspendedAtStart
and IloActivity::canBeSuspendedAtEnd
) is by default not taken
into account. To take forbidden suspensions into account, the argument
ignoreSuspensionAtStartEnd
may be set to IlcFalse
.
Then, the resulting integral constraint will accordingly prevent activities
to start/end in intervals where the granular function func
has
zero values.
For more information, see Functional and Integral Constraints on Resources.
See Also:
IloGranularFunction, IloSchedVariable