Overview | Group | Tree | Graph | Index | Concepts |
Description |
The type timetable constraint performs propagation based on the transition types of the activities.
These types are set with the function IlcActivity::setTransitionType
.
The main purpose of the type timetable constraint is to offer an alternative way of propagating transition times instead of through a disjunctive constraint. For more details on the differences between handling transition times with a disjunctive constraint and a type timetable constraint see Transition Time in Scheduler Engine.
The type timetable constraint states that two activities that have a different type are incompatible and it propagates the following constraints.
Let act1 and act2 be two activities that have types type1 and type2 respectively, and let tt(typeX, typeY) be the transition time from typeX to typeY. If both act1 and act2 actually require the resource and have a minimal duration greater than 0 and if type1 is different from type2, the type timetable constraint assures that:
endTime(act1) + tt(type1, type2) ≤ startTime(act2) or
endTime(act2) + tt(type2, type1) ≤ startTime(act1)
If type1 is equal to type2 and tt(type1, type2) != 0, the type timetable constraint assures that:
endTime(act1) + tt(type1, type2) ≤ startTime(act2) or
endTime(act2) + tt(type2, type1) ≤ startTime(act1) or
(startTime(act1) = startTime(act2) and endTime(act1) = endTime(act2))
If type1 is equal to type2 and tt(type1, type2) = 0, one of the following two cases will occur:
The type timetable constraint enforces batching activities. A boolean argument in the function that makes the type timetable constraint allows you to declare the batching options.
Note that the type timetable constraint is available only for discrete resources and discrete energy resources.
Some restrictions exist when transition times are taken into account by the type timetable constraint:
IlcTransitionTimeObject
that defines the transition time for the resource must have been built with an instance of IlcTransitionTable
. IlcTimeExtent::IlcFromStartToEnd
are taken into account. Resource constraints having a time extent different from IlcTimeExtent::IlcFromStartToEnd
are ignored.See Also
IlcActivity, IlcTransitionTable, Transition Time in Scheduler Engine.