IBM ILOG Scheduler User's Manual > Getting Started with Scheduler > Scheduler Building Blocks > Temporal Constraints |
Temporal Constraints |
INDEX
![]() |
In Scheduler there are two types of temporal constraints. Precedence constraints, instances of the class IloPrecedenceConstraint
, are used to specify when one activity must start or end with respect to the start or end time of another activity. Time-bound constraints, instances of the class IloTimeBoundConstraint
, are used to specify when one activity must start or end with respect to a given time. All temporal constraints must be added to the model.
Precedence constraints restrict the order of activities. They constrain an activity to start or end before, at, or after the start or end time of another activity.
Precedence constraints are created through member functions of the class IloActivity
. They must be added to the model of the associated scheduling problem to be considered in the search for solutions.
Precedence constraints may involve the concept of delay. Delay is an amount of time that must elapse between the two variables involved in the precedence constraint. If delay is negative, it indicates the inverse of the maximal duration allowed to elapse between the two variables. In other words, endpoint2 can occur before endpoint1, but the difference between them cannot exceed -
delay. The delay can be a numerical constraint or a numerical variable.
If act1
and act2
denote activities, and delay
is a number (0
by default), then:
act2.endsAfterEnd(act1, delay)
constrains at least the given delay
to elapse between the end of act1
and the end of act2
. It imposes the inequality endTime(act2) >= endTime(act1) + delay
.
act2.endsAfterStart(act1, delay)
constrains at least the given delay
to elapse between the start of act1
and the end of act2
. It imposes the inequality endTime(act2) >= startTime(act1) + delay
.
act2.endsAtEnd(act1, delay)
constrains the given delay
to separate the end of act1
and the end of act2
. It imposes the equality endTime(act2) == endTime(act1) + delay
.
act2.endsAtStart(act1, delay)
constrains the given delay
to separate the start of act1
and the end of act2
. It imposes the equality endTime(act2) == startTime(act1) + delay
.
act2.startsAfterEnd(act1, delay)
constrains at least the given delay
to elapse between the end of act1
and the start of act2
. It imposes the inequality startTime(act2) >= endTime(act1) + delay
.
act2.startsAfterStart(act1, delay)
constrains at least the given delay
to elapse between the start of act1
and the start of act2
. It imposes the inequality startTime(act2) >= startTime(act1) + delay
.
act2.startsAtEnd(act1, delay)
constrains the given delay
to separate the end of act1
and the start of act2
. It imposes the equality startTime(act2) == endTime(act1) + delay
.
act2.startsAtStart(act1, delay)
constrains the given delay
to separate the start of act1
and the start of act2
. It imposes the equalitystartTime(act2) == startTime(act1) + delay
.
© Copyright IBM Corp. 1987, 2009. Legal terms. | PREVIOUS NEXT |