PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
F
D
3
6
E
time 5
A B C G H I
0 4 2 4 6 0
1
PERT/CPM
Algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
0
earliest finish time 0
F
D
3
6 0
E
5
0 0 0 0 0 0
A B C G H I
0 4 2 4 6 0
2
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
0
0
F
D
3
6 0
E
5
4
0 X
0 0 0 0 0
A B C G H I
0 4 2 4 6 0
3
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
10 0
X0
F
D
3
6 0
E
5
4 6
0 X
0 X
0 0 0 0
A B C G H I
0 4 2 4 6 0
4
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
10 0
X0
F
D
3
6 0
E
5
4 6 10 12
0 X
0 X
0 X0 X0 0
A B C G H I
0 4 2 4 6 0
5
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 10 12
0 X
0 X
0 X0 X0 0
A B C G H I
0 4 2 4 6 0
6
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 X
10 X
12
19 21
0 X
0 X
0 X0 X0 0
A B C G H I
0 4 2 4 6 0
7
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 X
10 X
12 13
19 21
0 X
0 X
0 X0 X0 X0
A B C G H I
0 4 2 4 6 0
8
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 X
10 X
12 13
19 X
21
0 X
0 X
0 X0 X0 25 X0
A B C G H I
0 4 2 4 6 0
9
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 X
10 X
12 X
13
19 X
21 25
0 X
0 X
0 X0 X0 25 X0
A B C G H I
0 4 2 4 6 0
10
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10 X0
X0
F
D
15
3
6 X0
E
5
4 6 X
10 X
12 X
13
19 X
21 25
0 X
0 X
0 X0 X0 25 X0
A B C G H I
0 4 2 4 6 0
11
PERT/CPM
PERT/CPM algorithm.
Compute topological order of vertices: A B C D E F G H I.
Initialize fin[v] = 0 for all vertices v.
Consider vertices v in topological order:
– for each edge v-w, set fin[w] = max(fin[w], fin[v] + time[w])
13
10
F
D
3
6 15
E
critical path
5
0 4 6 19 25 25
A B C G H I
0 4 2 4 6 0
12