ENCE 603 Management Science Applications in Project Management Lectures 5-7
Project Management LP Models in Scheduling, Integer Programming
Spring 2009 Instructor: Dr. Steven A. Gabriel [Link]/~sgabriel
1 Copyright 2008, Dr. Steven A. Gabriel
Outline
Project Scheduling Critical Path Method (CPM) AON and AOA methods Project Crashing Precedence Diagramming Method (PDM) Gantt Charts
2 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
Project activities described by a network Can use the activity-on-node (AON) model Nodes are activities, arrows (arcs) indicate the precedence relationships Could also consider the activity-on-arc (AOA) model which has arcs for activities with nodes being the starting and ending points AON used frequently in practical, non-optimization situations, AOA is used in optimization settings First AON, then AOA Main idea for both is to determine the critical path (e.g., tasks whose delay will cause a delay for the whole project)
3 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
Sample project network (AON) (read left to right) Dashed lines indicate dummy activities Key: Activity, Duration (days)
4 Copyright 2008, Dr. Steven A. Gabriel
Network Analysis
Network Scheduling: Main purpose of CPM is to determine the critical path Critical path determines the minimum completion time for a project Use forward pass and backward pass routines to analyze the project network Network Control: Monitor progress of a project on the basis of the network schedule Take correction action when required Crashing the project Penalty/reward approach
5 Copyright 2008, Dr. Steven A. Gabriel
Activity on Node (AON) Representation of Project Networks
6 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
A: Activity identification (node) ES: Earliest starting time EC: Earliest completion time LS: Latest starting time LC: Latest completion time t: Activity duration P(A): set of predecessor nodes to node A S(A): set of successor nodes to node A
7 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
In tabular form Activity Predecessor A n/a B n/a C n/a D A E C F A G B,D,E Duration 2 6 4 3 5 4 2
Sample Computations ES(A) =Max{EC(j), j in P(A)}=EC(start)=0 EC(A)=ES(A)+tA=0+2=2 ES(B)= EC(start)=0 EC(B)=ES(B)+ tB=0+6=6 ES(F)= EC(A)=2 EC(F)= ES(F)+4=6, etc. F,4 D,3 end
A,2
start
B,6
G,2
C,4
Copyright 2008, Dr. Steven A. Gabriel
E,5
8
Project Networks
Notation: Above node ES(i), EC(i), below node LS(i),LC(i) Zero project slack convention in force
0,2 A,2 4,6 0,0 start 0,0 0,4 C,4 0,4 0,6 B,6 3,9 4,9 E,5 4,9 Sample Computations LC(F) =Min{LS(i), i in S(F))}=11 LS(F)=LC(F)-tF=11-4=7 etc.
9 Copyright 2008, Dr. Steven A. Gabriel
2,6 F,4 2,5 D,3 6,9 G,2 9,11 7,11 9,11 end 11,11 11,11
Project Networks
During the forward pass, it is assumed that each activity will begin at its earliest starting time An activity can begin as soon as the last of its predecessors has finished C must wait for both A and B to finish before it can start Completion of the forward pass determines the C earliest completion time of the project
A B
During the backward pass, it is assumed that each activity begins at its latest completion time Each activity ends at the latest starting time of the first activity in the project network
10
Copyright 2008, Dr. Steven A. Gabriel
Project Networks
Note: 1=first node (activity),n=last node,i,j=arbitrary nodes, P(i)= immediate predecessors of node i, S(j)= immediate successors of node j, Tp=project deadline time
1 3 2 5 4
P(3)= {1,2} S(3)= {4,5}
Rule 1: ES(1)=0 (unless otherwise stated) Rule 2: ES(i)=Max j in P(i) {EC(j)}
i1 i i2
Why do we use max of the predecessor ECs in rule 2?
11
i3
Copyright 2008, Dr. Steven A. Gabriel
Project Networks
Rule 3: EC(i)=ES(i)+ti Rule 4: EC(Project)=EC(n) Rule 5: LC(Project)=EC(Project) zero project slack convention (unless otherwise stated for example, see Rule 6) Rule 6: LC(Project)=Tp Rule 7: LC(j) =Min i in S(j) LS(i) Rule 8: LS(j)=LC(j)-tj
j1
Why do we use min in the successor LSs in rule 7?
j2 j3
12 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
Total Slack: Amount of time an activity may be delayed from its earliest starting time without delaying the latest completion time of the project TS(j)=LC(j)-EC(j) or TS(j)=LS(j)-ES(j) Those activities with the minimum total slack are called the critical activities (e.g., kitchen cabinets) Examples of activities that might have slack Free Slack: Amount of time an activity may be delayed from its earliest starting time without delaying the starting time of any of its immediate successors. FS(j)= Min i in S(j) {ES(i)-EC(j) Lets consider the sample network relative to critical activities and slack times
13 Copyright 2008, Dr. Steven A. Gabriel
CPM-Determining the Critical Path AON
Step 1: Complete the forward pass Step 2: Identify the last node in the network as a critical activity Step 3: If activity i in P(j) and activity j is critical, check if EC(i)=ES(j). If yes activity i is critical. When all i in P(j) done, mark j as completed Step 4: Continue backtracking from each unmarked node until the start node is reached
14 Copyright 2008, Dr. Steven A. Gabriel
CPM-Forward Pass Example AON 2,6
0,2 A,2 2,5 0,0 start 0,4 C,4
Activity A B C D E F G Predecessor A C A B,D,E Duration 2 6 4 3 5 4 2
F,4 D,3 11,11 9,11 end B,6 4,9 E,5
Notation: Above node ES(i), EC(i)
0,6
G,2
Sample Computations ES(A) =Max{EC(j), j in P(A)}=EC(start)=0 EC(A)=ES(A)+tA=0+2=2 ES(B)= EC(start)=0 EC(B)=ES(B)+ tB=0+6=6 ES(F)= EC(A)=2 EC(F)= ES(F)+4=6, etc.
15
Copyright 2008, Dr. Steven A. Gabriel
CPM-Backward Pass Example AON
Notation: Above node ES(i), EC(i), below node LS(i),LC(i) Zero project slack convention in force
0,2 A,2 4,6 0,0 start 0,0 0,4 C,4 0,4 0,6 B,6 3,9 4,9 E,5 4,9 2,5 D,3 6,9 G,2 9,11 Sample Computations LC(F) =Min{LS(i), i in S(F))}=11 LS(F)=LC(F)-tF=11-4=7 etc.
16 Copyright 2008, Dr. Steven A. Gabriel
2,6 F,4 7,11 9,11 end 11,11 11,11
CPM-Slacks and the Critical Path AON
Total Slack: Amount of time an activity may be delayed from its earliest starting time without delaying the latest completion time of the project TS(j)=LC(j)-EC(j) or TS(j)=LS(j)-ES(j) Those activities with the minimum total slack are called the critical activities. Examples of activities that might have slack Free Slack: Amount of time an activity may be delayed from its earliest starting time without delaying the starting time of any of its immediate successors. FS(j)= Min i in S(j) {ES(i)-EC(j)} Other notions of slack time, see Badiru-Pulat Lets consider the sample network relative to critical activities and slack times
17 Copyright 2008, Dr. Steven A. Gabriel
CPM Analysis for Sample Network AON
Activity A B C D E F G Duration (Days) 2 6 4 3 5 4 2 ES 0 0 0 2 4 2 9 EC 2 6 4 5 9 6 11 LS 4 3 0 6 4 7 9 LC 6 9 4 9 9 11 11 TS 6-2=4 9-6=3 4-4=0 9-5=4 9-9=0 11-6=5 11-11=0 FS Min{2,2}-2=0 Min{9}-6=3 Min{4}-4=0 Min{9}-5=4 Min{9}-9=0 Min{11}-6=5 Min{11}-11=0 Critical Activity? No No YES No YES No YES
0,2 A,2 4,6 0,0 start 0,0 0,4 C,4 0,4
Copyright 2008, Dr. Steven A. Gabriel
2,6 2,5 F,4 7,11 9,11 G,2 9,11
18
Total Project Slack TS(1)+TS(C)+TS(E)+TS(G)+TS(n)=0
0,6 B,6 3,9
D,3 6,9 4,9 E,5 4,9
11,11 end 11,11
Project Networks
When results of a CPM analysis are matched up with a calendar, then we obtain a project schedule Gantt chart is a popular way to present this schedule Using the ES times from the sample AON project network, we have the following Gantt chart (could also use latest completion times as well, extreme case when all slack times are fully used)
19 Copyright 2008, Dr. Steven A. Gabriel
Project Networks
G F E D C B A
1 2 3 4 5 6 7 8 9 10 11
Days
Note, Gantt chart shows for example: Starting time of F can be delayed until day 7 (TS=5) w/o delaying overall project Also, A, D, or both may be delayed by a combined total of four days (TS=4) w/o delaying the overall project B may be delayed up to 3 days without affecting the overall project completion time Can ignore precedence arrows (better20 for large networks)
Copyright 2008, Dr. Steven A. Gabriel
10
Activity on Arc (AOA) Representation of Project Networks
21 Copyright 2008, Dr. Steven A. Gabriel
Project Networks: Activity on Arc (AOA) Representation
Node i arc(i,j)=activity(i,j) Node j
Nodes represent the realizations of some milestones (events) of the project Arcs represent the activities Node i, the immediate predecessor node of arc(i,j) is the start node for the activity Node j, the immediate successor node of arc(i,j) is the end node for the activity Want to determine the critical path of activities, i.e., those with the least slack
22
Copyright 2008, Dr. Steven A. Gabriel
11
Activity on Arc (AOA) Representation
The early event time for node i, ET(i), is the earliest time at which the event corresponding to node i can occur The late event time for node i, LT(i), is the latest time at which the event corresponding to node i can occur w/o delaying the completion of the project Let tij be the duration of activity (i,j) The total float (slack) TF(i,j) of activity (i,j) is the amount by which the starting time of (i,j) could be delayed beyond its earliest possible starting time w/o delaying the completion of the project (assuming no other activities are delayed) TF(i,j)=LT(j)-ET(i)-tij The free float of (i,j), FF(i,j) is the amount by which the starting time of activity (i,j) can be delayed w/o delaying the start of any later activity beyond its earliest possible starting time FF(i,j) = ET(j)-ET(i)-tij
23 Copyright 2008, Dr. Steven A. Gabriel
AOA Network Structure
The network is acyclic (o/w an activity would precede itself)
1 2 3
Each node should have at least one arc directed into the node and one arc directed out of the node (with the exception of the start and end nodes), why? Start node has does not have any arc into it and the end node has no arc out of it All of the nodes and arcs of the network have to be visited (that is realized) in order to complete the project, why?
24
Copyright 2008, Dr. Steven A. Gabriel
12
AOA Network Structure
If a cycle exists (due perhaps to an error in the network construction), this will lead to cycling in the procedures More specifically, critical path calculations will not terminate Need a procedure to detect cycles in the project network (e.g., Depth-First Search method)
25 Copyright 2008, Dr. Steven A. Gabriel
Rules in AOA Networks
1. Node 1 represents the start of the project. An arc should lead from node 1 to represent each activity that has no predecessors. 2. A node (called the finish or end node) representing completion of the project should be included in the network. 3. Number the nodes in the network so that the node representing the completion of an activity always has a larger number than the node for the start of an activity (more than 1 way to do this). 4. An activity should not be represented by more than one arc in the network. 5. Two nodes can be connected by at most one arc.
26 Copyright 2008, Dr. Steven A. Gabriel
13
Small Sample Project
Activity Predecessor Duration A B C D E F G A C A B,D,E 2 6 4 3 5 4 2
27 Copyright 2008, Dr. Steven A. Gabriel
Small Sample Project AOA
28 Copyright 2008, Dr. Steven A. Gabriel
14
Using Linear Programming to Find a Critical Path
Let xj= the time that the event corresponding to node j occurs Let tij=the time to complete activity (i,j) For each activity (i,j), we know that before node j occurs, node i must occur and activity (i,j) must be completed
x j xi + tij , (i, j )
Let 1 be the index of the start node Let F be the index of the finish node (i.e., when the project is completed) LP objective function is to minimize xF-x1, i.e., the total project time
29 Copyright 2008, Dr. Steven A. Gabriel
Using Linear Programming to Find a Critical Path
Min x5 x1 s.t. A) x2 >= x1 + 2 B) x4 >= x1 + 6 C) x3 >= x1 + 4 D) x4 >= x2 + 3 E) x4 >= x3 + 5 F) x5 >= x2 + 4 G) x5 >= x4 + 2 Variables unrestricted in sign
30 Copyright 2008, Dr. Steven A. Gabriel
15
Using Linear Programming to Find a Critical Path
Min x5 - x1 s.t. A) x2 - x1 >= B) x4 - x1 >= C) x3 - x1 >= D) x4 - x2 >= E) x4 - x3 >= F) x5 - x2 >= G) x5 - x4 >= end free x1 free x2 free x3 free x4 free x5 2 6 4 3 5 4 2
OBJECTIVE FUNCTION VALUE VARIABLE X5 X1 X2 X4 X3
31
11.00000 REDUCED COST 0.000000 0.000000 0.000000 0.000000 0.000000
VALUE 11.000000 0.000000 6.000000 9.000000 4.000000
Copyright 2008, Dr. Steven A. Gabriel
Using Linear Programming to Find a Critical Path
Min x5 - x1 s.t. A) x2 - x1 >= B) x4 - x1 >= C) x3 - x1 >= D) x4 - x2 >= E) x4 - x3 >= F) x5 - x2 >= G) x5 - x4 >= end free x1 free x2 free x3 free x4 free x5 2 6 4 3 5 4 2
ROW
SLACK OR SURPLUS A) 4.000000 B) 3.000000 C) 0.000000 D) 0.000000 E) 0.000000 F) 1.000000 G) 0.000000
32
DUAL PRICES 0.000000 0.000000 -1.000000 0.000000 -1.000000 0.000000 -1.000000
Copyright 2008, Dr. Steven A. Gabriel
16
Using Linear Programming to Find a Critical Path
For each variable with zero value and zero reduced cost there is an alternative optimal solution. For each constraint with zero slack and zero dual variable there is an alternative optimal solution. For each constraint with a dual price of 1, increasing the duration of the activity corresponding to that constraint by one day will increase the duration of the project by one day. Those constraints identify the critical activities.
33 Copyright 2008, Dr. Steven A. Gabriel
AOA Project Network: After-Work-Hours Chores
start 1 a c 5 f
Activity a b c d e f g h i j k l m Description Dad, Mom, and son arrive home in the same car Dad and Mom change clothes Son watches TV Mom warns up the food* Dad sets the table Son does homework** Mom fixes salad The family eats dinner Dad loads the dishwasher Mom checks sons homework Son practices (insert musical instrument name here) All go to sons basketball game All wash up and go to bed a a b b c d e,f,g h h h i,j,k l
b 2
3 e
d 4 g 6 h k 9 7
i j
8 dummy arc 10 l
dummy arc
Immediate Predecessors
11
m 12
end
*For politically correct project networks, Mom and Dad are interchangeable. ** In a perfect world, activity f precedes activity c!
34 Copyright 2008, Dr. Steven A. Gabriel
17
Dummy Arcs in AOA Networks
Since activities: i (Dad loads dishwasher),j (Mom checks sons homework), and k (son practices musical instrument) all have the same predecessor activity h (family eats dinner) and the same immediate successor, activity l (go to basketball game), this would mean 3 parallel arcs between nodes 7 and 10 An activity network allows only one arc between any two nodes so nodes 8 and 9 are drawn and connected to node 10 via dummy arcs
35 Copyright 2008, Dr. Steven A. Gabriel
Finding the Critical Path in an AOA Project Network for Introducing a New Product
Activity a b c d e f Description Train workers Purchase raw materials Produce product 1 Produce product 2 Test product 2 Assemble products 1 and 2 into new product 3 Immediate Predecessors a,b a,b d c,e Duration (Days) 6 9 8 7 10 12
a 1 b 2
3 d
f 5 6
e dummy arc 4
36 Copyright 2008, Dr. Steven A. Gabriel
18
Finding the Critical Path in an AOA Project Network for Introducing a New Product min x6-x1
s.t. x3-x1>=6 ! arc (1,3) Why variables free (i.e., not x2-x1>=9 ! arc (1,2) necessarily nonnegative)? x5-x3>=8 ! arc (3,5) x4-x3>=7 ! arc (3,4) When ok, when not? x5-x4>=10 ! arc (4,5) x6-x5>=12 ! arc (5,6) Excel version of this x3-x2>=0 ! arc (2,3) end LP? ! could have variables free or not !free x1 x2 x3 x4 x5 x6
37 Copyright 2008, Dr. Steven A. Gabriel
Finding the Critical Path in an AOA Project Network for Introducing a New Product
LP OPTIMUM FOUND AT STEP 1 OBJECTIVE FUNCTION VALUE 1) 38.00000