FRAMES NO FRAMES

Type Timetable Constraint
PREVIOUS NEXT
Description
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:

  • No constraint on the start and end times of act1 and act2 is propagated. That is, activities of type1 can partially overlap.
  • The previous constraint occurs. That is, if two activities overlap, they start and end at the same time.

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:

  • The type timetable constraint alone does not propagate suspended transition times (See Calendars). Suspended transition times can be propagated by creating a precedence graph constraint or (on a unary or state resource) a disjunctive constraint.
  • The resource cannot be durable.
  • The instance of IlcTransitionTimeObject that defines the transition time for the resource must have been built with an instance of IlcTransitionTable.
  • Only resource constraints with a time extent equal to 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.

PREVIOUS NEXT