D1 4.3 - Finding the critical path
Use forward and backward passes to calculate event times, activity start and finish times, and every critical path. You will also calculate a lower bound for the workers needed to meet the minimum project duration.
A project must wait for its longest dependency chain
Can a one-hour activity join two fixed-time events without being critical? In this project, joins an event fixed at hour to the finish fixed at hour . Its one hour of work leaves room to move. Identifying critical work needs the activity's duration as well as its endpoint event times.
You already know
Activities are directed arcs and events wait for every incoming activity. A dummy is a zero-duration directed dependency. Recall the project network from D1 4.1, 4.2; each real activity below has its duration in hours.
The network and duration table define the project used throughout this lesson.
| Activity | Start event | Finish event | Duration, hours |
|---|---|---|---|
| Dummy | |||
[DIAGRAM: asset_name: Activity network with project durations; asset_slug: 9fm0-d1173-duration-network; caption: Arc brackets give durations in hours, while the dashed dummy has duration zero; description: The six-event network from the preceding lesson is redrawn with activity durations A(4), B(3), C(5), D(2), E(4), F(3), G(2), H(1). H follows a high curved route from event 2 to event 6. A dashed arrow from event 2 to event 3 represents the zero-duration dummy. All arrows and labels are clear, and numbers inside circles identify events.]

A directed start-to-finish path lists activities that must happen in sequence, so the project cannot finish sooner than that path's total duration. With sufficient resources, the longest such path determines the minimum completion time. This assumes the stated dependencies and fixed durations are the only restrictions; a limited workforce can impose a later finish.
Early and late event times
The early event time is the earliest time event can occur. The late event time is the latest it can occur without delaying the chosen project finish.
Use time at the start. For the minimum-duration analysis, the late finish time is set equal to the earliest finish time.
An early time is an “all prerequisites ready” time, so a merge uses the greatest incoming completion. A late time must protect every successor, so it uses the smallest outgoing allowance.
Key idea
First find the earliest possible finish without resource restrictions. Then work backwards from that same finish to identify how late each event may occur.
Check which chain controls the time lower bound.
Forward pass: take the maximum at every merge
Work in an order where every event's incoming tails have already been processed. Add each incoming activity duration to its tail's early time, then take the largest arrival.
Forward-pass algorithm
For an arc of duration ,
A dummy contributes duration , but its incoming arrival must still be considered.
Not in the formula booklet: learn it.
The maximum ensures the event waits for every prerequisite, including one carried by a dummy.
Worked example 1: the original forward pass
Question. Calculate all early event times for the pictured project.
Plan. Start with event , then evaluate all incoming arrivals at each later event.
Why this step? At event , finishes at hour , but the dummy carries the requirement to wait until finishes at hour .
Answer. ; minimum completion time hours.
Check. Path takes hours, so the project cannot finish earlier.
Change only 's duration from hours to hours. The later arrival at its merge can now control another branch.
Worked example 2: a changed incoming maximum
Question. Recalculate the early event times when takes hours.
Plan. Keep , update the merge at event , then propagate that change.
Why this step? A change need not affect every downstream early time. Event still waits for the longer branch, while event moves later.
Answer. Early times ; minimum project duration remains hours.
Check. Both and now have duration .
All subsequent examples return to the original durations unless a change is explicitly stated.
Watch out
Wrong: average the arrival times at a merge or choose the smallest. Right: the event cannot happen before its last prerequisite finishes, so take the maximum.
Make a smaller change to the same incoming activity.
Backward pass: protect every successor with a minimum
Fix the project finish at its earliest time. Work backwards, subtracting each outgoing duration from the late time at its head. Choose the smallest allowance, because all outgoing activities must still fit.
Backward-pass algorithm
In Pearson's stacked event boxes, write the early event time in the top box and the late event time in the bottom box.
Not in the formula booklet: learn it.
The small event labels in the diagrams identify which box is being discussed; they are not extra times.
Worked example 3: the original backward pass
Question. Find every late event time for the original project, finishing at hour .
Plan. Start at event and work backwards through every outgoing arc.
Why this step? At event , choosing instead of would let finish after its permitted event- time of .
Answer. .
Check. Every late time is at least its early time, and the start remains at , consistent with a minimum-duration finish.
Change only 's duration from to hours. Its early arrival ties 's at event , so all early event times and the -hour finish stay unchanged.
Worked example 4: a tighter outgoing allowance
Question. Find the late event times with taking hours and the project still finishing at hour .
Plan. Recompute the allowance along , then continue backwards.
Why this step? A longer activity can tighten a late event time even when no early time changes. The early and late passes answer different questions.
Answer. Late times .
Check. Event must now occur at hour , leaving exactly hours for to reach event at hour .
[DIAGRAM: asset_name: Early and late event boxes for the original project; asset_slug: 9fm0-d1173-original-times; caption: Early times are above late times; the original critical route is A, C, F; description: The project network has two stacked boxes at each event, with early times 0,4,4,9,8,12 above late times 0,4,6,9,10,12 for events 1 to 6. Every real arc is labelled with its original duration and every arc has an arrowhead. A, C and F are blue. The dashed dummy from event 2 to 3 is not critical. Small event identifiers sit outside the timing boxes, and the diagram key states top equals early, bottom equals late.]

The displayed boxes return to the original project, ready for the activity calculations that follow.
Watch out
Wrong: take a backward maximum because the forward pass used a maximum. Right: take a minimum, protecting the earliest deadline among all outgoing requirements.
Change 's duration to a value between the two worked examples.
Event times give four activity times
An activity can start when its tail event first occurs. To finish as late as allowed without delaying the project, it must reach its head event by that event's late time.
Continue this lesson.
You’re previewing NovaLearn without an account. Create a free account to read the rest.
Create free account