0% found this document useful (0 votes)
11 views50 pages

Basic Project Scheduling: IEOR 4405 1

The document discusses project scheduling and the critical path method (CPM). It provides examples of how to represent jobs with precedence constraints using a job on arc network. It then explains how the CPM algorithm works by calculating the earliest and latest possible start times for each job to determine the critical path and float. The document notes that processing times may vary with costs, and discusses heuristics and linear programming approaches for solving project scheduling problems with time-cost tradeoffs.

Uploaded by

Praneet
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views50 pages

Basic Project Scheduling: IEOR 4405 1

The document discusses project scheduling and the critical path method (CPM). It provides examples of how to represent jobs with precedence constraints using a job on arc network. It then explains how the CPM algorithm works by calculating the earliest and latest possible start times for each job to determine the critical path and float. The document notes that processing times may vary with costs, and discusses heuristics and linear programming approaches for solving project scheduling problems with time-cost tradeoffs.

Uploaded by

Praneet
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 50

Basic Project Scheduling

IEOR 4405 1
Project Scheduling

 Jobs subject to precedence constraints


 Job on arc format (most common)

2 5
6
0
1 4 7 2

IEOR 4405 2
Overview
Critical Path
No resource Method (CPM)

Constraints Program Evaluation


and Review Technique
Project (PERT)
Scheduling

Resource Heuristic Resource


Leveling
Constraints
Integer Programming
Formulations

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

A Remove flat tire from wheel -

B Repair puncture on flat tire A

C Remove spare from trunk -

D Put spare on wheel A, C

E Place repaired tire in trunk B, C

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)

 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

S 'j  max Ck' ,


all k  j
Cj’ = Sj’ + pj.
Step 3:
The optimal makespan is Cmax  maxC1' , C2' ,..., Cn' 
STOP
IEOR 4405 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

C 'j'  min S k'' ,


k all j

Sj’’ = Cj’’ - pj.


Step 3:
Verify that 0  min{S1
''
,..., S ''
n }.

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

24-12=12 34-10=24 43-9=34


2 4 7
51-8=43
14-9=5 10
1 36-10=26 43-7=36 56-5=51 56
6 9 12 14

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

 Assumed the processing times were fixed


 More money  shorter processing time
 Start with linear costs
 Processing time p min  p  p max
j j j
 Marginal cost
c aj  c bj
cj 
p max
j  p min
j

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

 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


Minimal cut set

IEOR 4405 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

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

Cut sets: {1},{3},{6},{9},


{11},{12},{14}. Minimum cut
set with lowest cost

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

Cut sets: {1},{3},{6},{9},


{11},{12,13},{14}. Minimum cut
set with lowest cost

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

Reduce processing time Processing time at


next on job 6 minimum

IEOR 4405 33
Critical Path Subgraph (Gcp)

C2=2 C4=3 C7=4


2 4 7
C1=7 C10=5
10
C6=3 C9=4 C12=2 C14=8
1
6 9 12 14

3 11 13
C3=4 C11=2 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


 Here total cost is linear

 
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

 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J cp
j

IEOR 4405 39
Distribution of Makespan

 Estimate the variance of processing times


p b
 p a

 2j  j j

6
 and the variance of the makespan

Vˆ (Cmax )   j
 2

jJ 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
H
 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
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

 Say n jobs need the same resource


 Could otherwise all be done simultaneously
 Add (artificial) precedence constraints
 Have n! possibilities
2 3 4 5 6
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
Uses resource 2
9 6
3 6

6 11
Resource Profile
Capacity

Time
10 20 30

IEOR 4405 50

You might also like