Basic Project Scheduling
IEOR 4405
Project Scheduling
Jobs subject to precedence constraints
Job on arc format (most common)
2
1
5
4
6
7
IEOR 4405
Overview
No resource
Constraints
Project
Scheduling
Resource
Constraints
Critical Path
Method (CPM)
Program Evaluation
and Review Technique
(PERT)
Heuristic Resource
Leveling
Integer Programming
Formulations
IEOR 4405
Planning a Concert
Task
Predecessors
Plan concert
Advertise
Sell tickets
Hold concert
B, C
IEOR 4405
Job on Arc Network
Not allowed: no
two jobs can have
the same starting
and ending node!
C
B
Need to introduce
a dummy job.
D
C
IEOR 4405
Changing a Tire
Task
Predecessors
Remove flat tire from wheel
Repair puncture on flat tire
Remove spare from trunk
Put spare on wheel
A, C
Place repaired tire in trunk
B, C
IEOR 4405
Job on Arc Network
A
C
B
D
Is this correct?
IEOR 4405
Job on Arc Network
B
E
IEOR 4405
Job on Node Network
No need for a
dummy node
Less used
traditionally
Recently more
popular
IEOR 4405
Critical Path Method (CPM)
Think of unlimited machines in parallel
and n jobs with precedence
constraints
Processing times pj as before
Objective to minimize makespan
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
Cj = S j + p j .
S 'j max Ck' ,
all k j
Step 3:
The optimal makespan is
Cmax
STOP
IEOR 4405
maxC1' , C2' ,..., Cn'
12
Backward Procedure
Step 1:
Set at time t = Cmax for all jobs j with no successors,
Cj= Cmax and set Sj = Cmax - pj.
Step 2:
Compute for each job j
Sj = Cj - pj.
C 'j' min S k'' ,
k all j
Step 3:
Verify that
''
''
0
min{
S
,...,
S
STOP
1
n }.
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
pj
12 7
12 10 6
10 11 12 13 14
10 9
7
10
12
11
14
13
8
IEOR 4405
15
Forward Procedure
Cmax 56
5+6=11 11+12=23
2
4
5
1
23+10=33
7
33+9=42
14+12=26 26+10=36
6
9
5+9=14
10
43+8=51 51+5=56
12
11
5
14+7=21
36+7=43
8
26+6=32
IEOR 4405
13
14
43+7=50
16
Backwards Procedure
24-12=12 34-10=24
2
4
14-9=5
1
36-10=26
26-12=14
43-9=34
7
51-8=43
43-7=36
6
9
10
12
11
5
35-10=26
51-8=43
8
43-7=36
IEOR 4405
56-5=51
13
56
14
56-5=51
17
Critical Path
2
7
10
12
11
14
13
IEOR 4405
18
Variable Processing Times
IEOR 4405
19
Time/Cost Trade-Offs
Assumed the processing times were
fixed
More money shorter processing
time
max
p min
p
j
j
j
Start with linear costs
Processing time c a c b
j
j
Marginal costc j p max p min
j
j
IEOR 4405
20
Linear Costs
Resources (money)
a
j
c bj
p min
j
p max
j
IEOR 4405
Processing
time
21
Solution Methods
Objective: minimum cost of project
Time/Cost Trade-Off Heuristic
Good schedules
Works also for non-linear costs
Linear programming formulation
Optimal schedules
Non-linear version not easily solved
IEOR 4405
22
Sources, Sinks, and Cuts
Cut set
Sink node
Source (dummy) node
IEOR 4405
Minimal cut set
23
Time/Cost Trade-Off Heuristic
Step 1:
Set all processing times at their maximum
pj p
max
j
Determine all critical paths with these processing times
Construct the graph Gcp of critical paths
Continue to Step 2
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
If no such set STOP; otherwise continue to Step 3
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
one time units
Determine the new set of critical paths
Revise graph Gcp and go back to Step 2
IEOR 4405
27
Example
11
Pj max
12 7
12 10 6
10 9
Pj min
cja
20
25 20 15 30 40 35 25 30 20 25 35 20 10
cj
IEOR 4405
10 11 12 13 14
28
Maximum Processing Times
2
7
10
12
11
14
13
IEOR 4405
29
Maximum Processing Times
Cmax 56
2
7
10
12
11
14
13
IEOR 4405
30
Critical Path Subgraph (Gcp)
C1=7
C6=3
6
C12=2
C9=4
9
3
C3=4
12
C14=8
14
11
C11=2
Cut sets: {1},{3},{6},{9},
{11},{12},{14}.
IEOR 4405
Minimum cut
set with lowest cost
31
Critical Path Subgraph (Gcp)
C1=7
C6=3
6
C12=2
C9=4
9
3
C3=4
12
11
IEOR 4405
14
13
C11=2
Cut sets: {1},{3},{6},{9},
{11},{12,13},{14}.
C14=8
C13=4
Minimum cut
set with lowest cost
32
Critical Path Subgraph (Gcp)
C1=7
C6=3
6
C12=2
C9=4
9
3
C3=4
12
11
IEOR 4405
14
13
C11=2
Reduce processing time
next on job 6
C14=8
C13=4
Processing time at
minimum
33
Critical Path Subgraph (Gcp)
C2=2
2
C4=3
4
C7=4
7
C1=7
C6=3
6
C9=4
9
3
C3=4
C10=5
10
C12=2
12
11
C11=2
C14=8
14
13
C13=4
This set cannot be decreased,
Choose 2 and 6 instead
IEOR 4405
34
Linear Programming
Formulation
Objective is weighted avg. of makespan and
cost
n
Here total cost is linear
c0Cmax c bj c j p max
pj
j
j 1
n
Want to minimize
c0Cmax c j p j .
j 1
IEOR 4405
35
Linear Program
Minimize
subject to
c0Cmax c j p j .
j 1
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
Estimate expected processing time
p aj 4 p mj p bj
j
6
Apply CPM with expected processing
times
Let Jcp be a critical path
Estimate expected makespan
E (Cmax ) j
jJ cp
IEOR 4405
39
Distribution of Makespan
Estimate the variance of processing
b
a
p
p
times
j
2j j
6
and the variance of the makespan
V (Cmax ) 2j
jJ cp
Assume it is normally distributed
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
Let H bound the makespan, e.g.
n
H pj
j 1
Completion time of job
j is
t x jt
t 1
and the makespan
H
t x
t 1
n 1,t
IEOR 4405
45
IP Formulation
Minimize
Subject to H
t x
t 1
t x
t 1
n 1,t
jt
pk txkt 0
t 1
t p j 1
j 1
If j prec k
Rij
x
u t
ju
Rj
x
t 1
IEOR 4405
jt
Each resource
used
For each job
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
Say n jobs need the same resource
Could otherwise all be done
simultaneously
Add (artificial) precedence constraints
3
4
5
6
Have2n! possibilities
2
6
24
120
720
Will we select the optimal sequence?
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
2
Uses resource
6
6
11
Resource Profile
Capacity
Time
10
20
IEOR 4405
30
50