FRAMES NO FRAMES

IloResourceIntegralConstraint

public IloConstraint IloResourceIntegralConstraint(const IloResource resource, IloSchedVariable leftVariable, const IloGranularFunction func, IloBool ignoredSuspensionAtStartEnd=IloTrue)
Definition file: ilsched/ilogfbase.h
Include file: <ilsched/iloscheduler.h>

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: