Basic Project Scheduling: IEOR 4405 1
Basic Project Scheduling: IEOR 4405 1
IEOR 4405 1
Project Scheduling
2 5
6
0
1 4 7 2
IEOR 4405 2
Overview
Critical Path
No resource Method (CPM)
IEOR 4405 3
Planning a Concert
Task Predecessors
A Plan concert -
B Advertise A
C Sell tickets A
D Hold concert B, C
IEOR 4405 4
Job on Arc Network
Not allowed: no two
jobs can have the B
A D
same starting and
C
ending node!
B
Need to introduce a A
dummy job. D
C
IEOR 4405 5
Changing a Tire
Task Predecessors
IEOR 4405 6
Job on Arc Network
A B E
C D
Is this correct?
IEOR 4405 7
Job on Arc Network
A B
E
C D
IEOR 4405 8
Job on Node Network
No need for a dummy
node
Less used traditionally A B E
Recently more
C D
popular
IEOR 4405 9
Critical Path Method (CPM)
IEOR 4405 10
Critical Path Method
Forward procedure:
Starting at time zero, calculate the earliest
each job can be started
The completion time of the last job is the
makespan
Backward procedure
Starting at time equal to the makespan,
calculate the latest each job can be started so
that this makespan is realized
IEOR 4405 11
Forward Procedure
Step 1:
Set at time t = 0 for all jobs j with no predecessors,
Sj’=0 and set Cj’ = pj.
Step 2:
Compute for each job j
STOP
IEOR 4405 13
Comments
The forward procedure gives the earliest
possible starting time for each job
The backwards procedures gives the latest
possible starting time for each job
If these are equal the job is a critical job.
If these are different the job is a slack job,
and the difference is the float.
A critical path is a chain of jobs starting at
time 0 and ending at Cmax.
IEOR 4405 14
Example
j 1 2 3 4 5 6 7 8 9 10 11 12 13 14
pj 5 6 9 12 7 12 10 6 10 9 7 8 7 5
2 4 7
10
1
6 9 12 14
3 11 13
5 8
IEOR 4405 15
Forward Procedure
Cmax 56
5+6=11 11+12=23 23+10=33
2 4 7
33+9=42
5 10
1 14+12=26 26+10=36 43+8=51 51+5=56
6 9 12 14
3 11 13
5+9=14 43+7=50
36+7=43
5 8
14+7=21 26+6=32
IEOR 4405 16
Backwards Procedure
3 11 13
26-12=14 56-5=51
51-8=43
5 8
35-10=26 43-7=36
IEOR 4405 17
Critical Path
2 4 7
10
1
6 9 12 14
3 11 13
5 8
IEOR 4405 18
Variable Processing Times
IEOR 4405 19
Time/Cost Trade-Offs
IEOR 4405 20
Linear Costs
Resources (money)
a
c j
c bj
Processing
time
p min
j p max
j
IEOR 4405 21
Solution Methods
IEOR 4405 22
Sources, Sinks, and Cuts
Cut set
Sink node
IEOR 4405 23
Time/Cost Trade-Off Heuristic
Step 1:
Set all processing times at their maximum
pj p max
j
IEOR 4405 24
Time/Cost Trade-Off Heuristic
Step 2:
Determine all minimum cut sets in Gcp
Consider those sets where all processing times are larger
than their minimum
p j p min
j , j Gcp
IEOR 4405 25
Time/Cost Trade-Off Heuristic
Step 3:
For each minimum cut set:
Compute the cost of reducing all processing times by one
time unit.
Take the minimum cut set with the lowest cost
If this is less than the overhead per time unit go on to Step
4; otherwise STOP
IEOR 4405 26
Time/Cost Trade-Off Heuristic
Step 4:
Reduce all processing times in the minimum cut set by
IEOR 4405 27
Example
j 11 2 3 4 5 6 7 8 9 10 11 12 13 14
Pj max 5 6 9 12 7 12 10 6 10 9 7 8 7 5
Pj min 3 5 7 9 5 9 8 3 7 5 6 5 5 2
cja 20 25 20 15 30 40 35 25 30 20 25 35 20 10
cj 7 2 4 3 4 3 4 4 4 5 2 2 4 8
IEOR 4405 28
Maximum Processing Times
2 4 7
10
1
6 9 12 14
3 11 13
5 8
IEOR 4405 29
Maximum Processing Times
Cmax 56
2 4 7
10
1
6 9 12 14
3 11 13
5 8
IEOR 4405 30
Critical Path Subgraph (Gcp)
C1=7
C6=3 C9=4 C12=2 C14=8
1
6 9 12 14
3 11
C3=4 C11=2
IEOR 4405 31
Critical Path Subgraph (Gcp)
C1=7
C6=3 C9=4 C12=2 C14=8
1
6 9 12 14
3 11 13
C3=4 C11=2 C13=4
IEOR 4405 32
Critical Path Subgraph (Gcp)
C1=7
C6=3 C9=4 C12=2 C14=8
1
6 9 12 14
3 11 13
C3=4 C11=2 C13=4
IEOR 4405 33
Critical Path Subgraph (Gcp)
3 11 13
C3=4 C11=2 C13=4
IEOR 4405 34
Linear Programming
Formulation
n
c0Cmax c bj c j p max
j pj
j 1
Want to minimize
n
c0Cmax c j p j .
j 1
IEOR 4405 35
Linear Program
Minimize n
c0Cmax c j p j .
j 1
subject to
xk p j x j 0, j k A
p j p max
j , j
pj p min
j , j
x j 0, j
Cmax x j p j 0, j
IEOR 4405 36
PERT
IEOR 4405 37
Program Evaluation and
Review Technique (PERT)
Assumed processing times deterministic
Processing time of j random with mean j and
variance j2.
Want to determine the expected makespan
Assume we have
pja = most optimistic processing time
pjm = most likely processing time (mode)
pjb = most pessimistic processing time
IEOR 4405 38
Expected Makespan
Eˆ (Cmax )
jJ cp
j
IEOR 4405 39
Distribution of Makespan
2j j j
6
and the variance of the makespan
Vˆ (Cmax ) j
2
jJ cp
IEOR 4405 40
Discussion
Potential problems with PERT:
Always underestimates project duration
other paths may delay the project
Non-critical paths ignored
critical path probability
critical activity probability
Activities are not always independent
same raw material, weather conditions, etc.
Estimates by be inaccurate
IEOR 4405 41
Discussion
No resource constraints:
Critical Path Method (CPM)
Simple deterministic
Time/cost trade-offs
Linear cost (heuristic or exact)
Non-linear cost (heuristic)
Accounting for randomness (PERT)
IEOR 4405 42
Adding Resource
Constraints
IEOR 4405 43
Resource Constraints
Renewable resources
Very hard problem
No LP
Can develop an IP
Let job n+1 be dummy job (sink) and
1 if job j is completed at time t
x jt
0 otherwise.
IEOR 4405 44
Makespan
t x
t 1
n 1,t
IEOR 4405 45
IP Formulation
H
Minimize t x n 1,t
Subject to H
t 1
H
t x
t 1
jt pk txkt 0
t 1
If j prec k
n t p j 1
Rij x ju R j
j 1
Each resource
u t used
H
x
t 1
jt 1 For each job
IEOR 4405 46
In Practice
The IP cannot be solved
(Almost) always resource constraints
Heuristic:
Resource constraint Precedence constraint
Example: pouring foundation and sidewalk
both require same cement mixer
delaying foundation delays building
precedence constraint: pour foundation first
not a logical constraint
IEOR 4405 47
Optimality of Heuristic
IEOR 4405 48
Decision Support
Resource leveling
Solve with no resource constraints
Plot the resource use as a function of time
If infeasible suggest precedence
constraints
Longest job
Minimum slack
User adds constraints
Start over
IEOR 4405 49
Example: One Resource
Uses resource 2
9 6
3 6
6 11
Resource Profile
Capacity
Time
10 20 30
IEOR 4405 50