Activity Networks and Precedence Tables

Activity Networks and Precedence Tables

Activity networks are graphical representations where edges denote activities or tasks, typically labelled with weights to represent the time required to complete the activity. Vertices signify the connections between activities, illustrating dependencies and task flow. For example, if activity C depends on the completion of activities A and B, the network would feature two edges representing A and B into a vertex, with an edge for C from that vertex, as represented by the image below. This structure effectively visualises dependencies, identifying A and B as the immediate predecessors of C.

Directed edges, A and B, into vertex with directed edge C from it.

Activity networks serve as the foundation for applying network mathematics to optimise scheduling problems. They can be constructed using precedence tables, which summarise the connections and dependencies between tasks. A precedence table typically consists of two columns: one listing the tasks or activities and the other identifying the immediate predecessors for each activity.

An example of a precedence table is given below:

Activity Immediate Predecessor
A -
B A
C B
D A, C
E B, D
F B, D
G E, F

An activity network can be constructed from a precedence table by systematically examining the immediate predecessors and connecting them in a network diagram. Activities without immediate predecessors are the starting points in the network, originating from the starting vertex. Similarly, activities without successors lead to the ending vertex, marking the completion of the network.

In some cases, an activity may share some, but not all, immediate predecessors with another activity. To accurately represent such dependencies, a dummy activity is introduced into the network. A dummy activity is a placeholder that is represented by a dotted edge. It has no actual task associated with it and is always assigned a weight of 0, as it serves solely to represent the connection without contributing to the overall time or cost of the project.

This can be illustrated in the following activity network, where there is a dummy from activity A to D. This means that activity D has immediate predecessors A and C.

Directed edges A-B-C-D, with an additional dotted edge labelled “dummy” from the vertex after A to the vertex before D.

Worked Example

Construct an activity network from the following precedence table:

Activity Immediate Predecessor
A -
B A
C B
D A, C
E B, D
F B, D
G E, F

To construct the activity network, we begin with the starting vertex and label the activity that does not have any immediate predecessors.

Directed edge labelled “A” from the starting vertex to the next.

Next, we include activities that follow without shared predecessors. For example, activities B and C can be added directly as they do not share dependencies.

Directed edge labelled “A” from the starting vertex to the next. Directed edges labelled “B” and “C” are added to form A-B-C. The newly added components are in red.

Activity D has two immediate predecessors: A and C. Since A is also a shared predecessor with B, a dummy activity is required to accurately represent these dependencies. As edges in a network are generally represented with straight lines, the network can be adjusted to maintain the same information whilst including the dummy activity.

Directed edges A-B-C are adjusted in their positions to add a dummy edge after A to the vertex before D. Activity C also goes into the vertex before D. The newly added components are in red.

For Activities E and F, which share all their predecessors (B and D), they can come out from the vertex where B and D go into. However, B is also shared with Activity C, requiring another dummy activity to connect B to the vertex with D. The network should again be adjusted to account for this dummy activity while preserving logical flow.

Directed edges A-B-C-D, with a dummy activity from the vertex after A to the vertex before D. An additional dummy goes from the vertex after B to the vertex after D. Both E and F come out of the vertex after D and the dummy from B, and are in red.

Finally, Activity G, the only remaining activity, becomes the end activity. It depends on both E and F, which share the same vertex. In this case, a dummy activity is introduced to ensure the dependencies are represented correctly.

Directed edges A-B-C-D-E, with a dummy activity from the vertex after A to the vertex before D and a dummy activity from the vertex after B to the vertex after D. Activity F also comes out of the vertex after D. Activity G is drawn from the vertex after E to the end, and an additional dummy is added from the vertex after F to the vertex before G. The newly added components are in red.