You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The critical path method, or critical path analysis, is an algorithm for scheduling a set of project activities. It is commonly used in conjunction with the program evaluation and review technique.
This is a python program that
takes an activity table with each activity's predecessors and duration and stores it into a graph
using a modified Breadth First Search algorithm to traverse the graph and determine the correct path
calculates number of attributes for each activity following the selected path, these attributes are :
DU = Activity Duration
ES = Early Start Time
EF = Early Finish Time
LS = Late Start Time
LF = Late Finish Time
SK = Slack Value
draws a plot showing the the graph, attributes for each node and critical path (green nodes),
Here is Some Sample Tests And It's Output
Activity
Predecessors
Duration
A
-
7
B
A
9
C
A
3
D
B
8
E
C
5
F
C
4
G
D E F
2
H
G
1
Activity
Predecessors
Duration
A
-
5
B
-
4
C
A
7
D
A
3
E
B
2
F
D
9
G
B C
8
Activity
Predecessors
Duration
A
-
3
B
A
4
C
A
2
D
B
5
E
C
1
F
C
2
G
D E
4
H
F G
3
Activity
Predecessors
Duration
A
-
3
B
A
60
C
A
5
D
A
15
E
B
6
F
D
40
G
C E
10
H
F
7
I
G
6
J
H I
12
Activity
Predecessors
Duration
A
-
7
B
A
7
C
B
14
D
A
14
E
D
14
F
D
14
G
E
21
H
F
7
I
G
7
J
C H
1
K
E
7
L
E
7
M
L
7
N
I J K M
7
Activity
Predecessors
Duration
A
-
2
B
A
4
C
B
3
D
B
2
E
C D
10
F
B
4
Activity
Predecessors
Duration
A
-
16
B
-
20
C
-
30
D
B
15
E
B
10
F
D
3
G
D
16
H
A
15
I
E F
12
Activity
Predecessors
Duration
A
-
8
B
-
2
C
A
5
D
B
4
E
C D
6
F
E
7
G
D
7
H
G
5
I
E
6
Calculating Duration From Optimistic, Most probable and Pessimistic Time
Activity
Predecessors
Optimistic Time
Most probable Time
Pessimistic Time
A
-
6
9
12
B
A
3
4
11
C
A
2
5
14
D
B C
4
6
8
E
C
1
1.5
5
F
E
5
6
7
G
D
7
8
15
H
B
1
2
3
| Variance | 7.22222222 |
| Standard Deviation | 2.68741925 |
| Propability on 26 day | 4.9% |
Used Tools:
Python -obviously-
Pandas: to import the data from csv files and store it in adjacency list for the graph
Networkx: to make the graph, nodes, edges, colors, arrows and everything
Graphviz: to calculate the positions for the graph nodes by "dot" engine