Calculations for Scheduling with Leads, Lags and Windows
This description assumes an activity-on-node project network representation, since this representation is much easier to use with complicated precedence relationships. The possible precedence relationships accommodated by the procedure contained in Table 2-9 are finish-to-start leads, start-to-start leads, finish-to-finish lags and start-to-finish lags. Windows for earliest starts or latest finishes are also accomodated.With an activity-on- node representation, we assume that an initiation and a termination activity are included to mark the beginning and end of the project. The set of procedures described in Table 2-9 does not provide for automatic splitting of activities.
The first step in the scheduling algorithm is to sort activities such that no higher numbered activity precedes a lower numbered activity. With numbered activities, durations can be denoted D(k), where k is the number of an activity. Other activity information can also be referenced by the activity number. Note that node events used in activity-on-branch representations are not required in this case.
The forward pass calculations compute an earliest start time (ES(k)) and an earliest finish time (EF(k)) for each activity in turn (Table 2-9). In computing the earliest start time of an activity k, the earliest start window time (WES), the earliest finish window time (WEF), and each of the various precedence relationships must be considered. Constraints on finish times are included by identifying minimum finish times and then subtracting the activity duration. A default earliest start time of day 0 is also insured for all activities. A second step in the procedure is to identify each activity's earliest finish time (EF(k)).
The backward pass calculations proceed in a manner very similar to those of the forward pass (Table 2-9). In the backward pass, the latest finish and the latest start times for each activity are calculated. In computing the latest finish time, the latest start time is identified which is consistent with precedence constraints on an activity's starting time. This computation requires a minimization over applicable window times and all successor activities. A check for a feasible activity schedule can also be imposed at this point: if the late start time is less than the early start time (LS(k) < ES(k)), then the activity schedule is not possible.
The result of the forward and backward pass calculations are the earliest start time, the latest start time, the earliest finish time, and the latest finish time for each activity. The activity float is computed as the latest start time less the earliest start time. Note that window constraints may be instrumental in setting the amount of float, so that activities without any float may either lie on the critical path or be constrained by an allowable window.