DE1 - Activity-on-node networks

DE1 - Activity-on-node networks

A project can contain jobs that run together and jobs that must wait. You will turn a list of dependencies into an activity-on-node network, read the information in each node and recognise whether the network represents the intended project.

Translate dependencies

A display needs a frame, printed panels and a final assembly. Must printing wait for the frame? A list of jobs alone does not answer that: you need to know which jobs depend on which others.

Suppose A builds the frame in 4 hours, B prints panels in 3 hours, and C assembles them in 2 hours after both A and B. A and B may run together. C must wait for both. Draw a box for each activity and arrows A→CA\to C, B→CB\to C.

Activity-on-node network

An activity-on-node network is a directed graph whose nodes represent activities and whose arrows represent precedence requirements. An arrow X→YX\to Y means that Y cannot start until X has finished. It does not mean that Y must start immediately.

An immediate predecessor is an activity listed as directly required before another. If A→C→DA\to C\to D, A is also a predecessor of D, but its requirement is already enforced through C. A precedence network for a project must be acyclic: no directed route may lead back to its starting activity. Otherwise an activity would have to wait for itself.

Worked example 1: two independent starting jobs

Question. Construct the activity-on-node network for this project. Durations are in hours.

ActivityDurationImmediate predecessors
A4None
B3None
C2A, B
D1C

Plan. Make one labelled node per row, then draw an arrow from every listed predecessor.

Put A and B at the left. Draw A→CA\to C and B→CB\to C, because C needs both. Draw C→DC\to D, because D needs C. Write the durations inside their respective nodes.

Answer. Nodes A(4), B(3), C(2), D(1), with arrows A→CA\to C, B→CB\to C, C→DC\to D.

Check. Read each node's incoming arrows back as a table: none, none, A and B, C. This reproduces every row and imposes no order between A and B.

Change only B's predecessor. This tests whether the picture can distinguish “can run together” from “must wait”.

Worked example 2: one added dependency

Question. Use the same durations A(4), B(3), C(2), D(1), but now B requires A, C requires A and B, and D requires C. Construct a network.

Plan. Keep the original requirements and add the new arrow into B.

Draw A→BA\to B, A→CA\to C, B→CB\to C, C→DC\to D. The arrow A→CA\to C is redundant for timing, because the route through B already makes C wait for A; retaining it faithfully records the supplied table. No arrow returns towards A, so there is no cycle.

Answer. The four arrows above represent the revised table. B can no longer run alongside A.

Check. The order A, B, C, D respects every arrow. In particular, the new network rules out starting B before A finishes.

[DIAGRAM: asset_name: One changed predecessor; asset_slug: aqa7367-activity-precedence; caption: Adding A to B changes parallel starting activities into a forced order; description: Two activity-on-node networks show boxes A duration 4, B duration 3, C duration 2 and D duration 1. Left has arrows A to C, B to C and C to D. Right has the same arrows plus A to B, highlighted in clay. Arrows carry no activity durations.]
Adding A to B changes parallel starting activities into a forced order

Watch out

“C requires A and B” means two incoming arrows. Joining A to B instead invents an order between jobs which may be independent.

Build the next network directly from its predecessor column.

Start, finish and duration fields

An activity taking 4 hours and starting at time 3 finishes at time 7. A time is a position on the clock; a duration is a length of time. We measure from time zero, when the project is released. A job occupying [3,7)[3,7) uses the interval from time 3 up to time 7. Another job may start exactly at 7.

A node's layout needs a key. One useful layout has the activity name above three fields: earliest start, duration, latest finish. A resource requirement may appear on an extra row. Do not assume that every printed network uses your preferred arrangement.

Node information

For an activity of fixed duration dd, its finish time is its start time plus dd. An earliest start is the first permitted start under the precedence model. A latest finish is a deadline compatible with the specified project completion target. The two fields describe different bounds; they need not describe the same scheduled execution.

Read an early placement and a late placement separately, keeping the duration fixed.

[DIAGRAM: asset_name: Reading a keyed activity node; asset_slug: aqa7367-activity-node-fields; caption: The node gives earliest start 3 duration 4 and latest finish 9 hours; description: A rectangular activity-on-node box has Activity P in its upper row and three lower fields containing 3, 4 and 9, keyed respectively as earliest start, duration and latest finish. Beside it, an earliest placement gives finish 3 plus 4 equals 7 hours and a latest placement gives start 9 minus 4 equals 5 hours. A note distinguishes the six-hour early-to-late window from the four-hour working duration.]
The node gives earliest start 3 duration 4 and latest finish 9 hours

Worked example 3: reading a labelled node

Question. A node for activity P has earliest start 3 hours, duration 4 hours and latest finish 9 hours. Find its finish if it starts earliest, and its start if it finishes latest.

Plan. Add duration to the early start; subtract duration from the late finish.

early finish=3+4=7,late start=9−4=5.\text{early finish}=3+4=7,\qquad \text{late start}=9-4=5.

These are two possible placements, [3,7)[3,7) and [5,9)[5,9), rather than a six-hour execution.

Answer. Early finish 7 hours; late start 5 hours.

Check. Each placement has length 4: 7−3=9−5=47-3=9-5=4.

Now increase only the duration, keeping the two stated bounds. Notice which window shrinks.

Continue this lesson.

You’re previewing NovaLearn without an account. Create a free account to read the rest.

Create free account