Title: Basic Project Scheduling
1 2Project Scheduling
- Jobs subject to precedence constraints
- Job on arc format (most common)
2
5
6
0
1
4
7
2
3
3Overview
Critical Path Method (CPM) Program
Evaluation and Review Technique (PERT)
No resource Constraints
Project Scheduling
Resource Constraints
Heuristic Resource Leveling Integer
Programming Formulations
4Planning a Concert
5Job on Arc Network
- Not allowed no two jobs can have the same
starting and ending node! - Need to introduce a dummy job.
B
A
D
C
B
A
D
C
6Changing a Tire
7Job on Arc Network
A
E
B
D
C
Is this correct?
8Job on Arc Network
A
B
E
C
D
9Job on Node Network
- No need for a dummy node
- Less used traditionally
- Recently more popular
10Critical Path Method (CPM)
- Think of unlimited machines in parallel
- and n jobs with precedence constraints
- Processing times pj as before
- Objective to minimize makespan
11Critical 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
12Forward Procedure
- Step 1
- Set at time t 0 for all jobs j with no
predecessors, - Sj0 and set Cj pj.
- Step 2
- Compute for each job j
- Cj Sj pj.
- Step 3
- The optimal makespan is
- STOP
13Backward 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.
- Step 3
- Verify that
- STOP
14Comments
- 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.
15Example
16Forward Procedure
5611
111223
231033
33942
5
43851
141226
261036
51556
5914
43750
36743
14721
26632
17Backwards Procedure
24-1212
34-1024
43-934
51-843
14-95
56-551
36-1026
43-736
56
26-1214
56-551
51-843
35-1026
43-736
18Critical Path
1
6
9
12
14
3
11
19- Variable Processing Times
20Time/Cost Trade-Offs
- Assumed the processing times were fixed
- More money ? shorter processing time
- Start with linear costs
- Processing time
- Marginal cost
21Linear Costs
Resources (money)
Processing time
22Solution 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
23Sources, Sinks, and Cuts
Cut set
Sink node
Source (dummy) node
Minimal cut set
24Time/Cost Trade-Off Heuristic
Step 1 Set all processing times at their
maximum Determine all critical paths with these
processing times Construct the graph Gcp of
critical paths Continue to Step 2
25Time/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 If no such
set STOP otherwise continue to Step 3
26Time/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
27Time/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
28Example
29Maximum Processing Times
30Maximum Processing Times
31Critical Path Subgraph (Gcp)
C17
C122
C63
C94
C148
C112
C34
Cut sets 1,3,6,9, 11,12,14.
Minimum cut set with lowest cost
32Critical Path Subgraph (Gcp)
C17
C122
C63
C94
C148
C112
C134
C34
Cut sets 1,3,6,9, 11,12,13,14.
Minimum cut set with lowest cost
33Critical Path Subgraph (Gcp)
C17
C122
C63
C94
C148
C112
C134
C34
Processing time at minimum
Reduce processing time next on job 6
34Critical Path Subgraph (Gcp)
C22 C43 C74
C105
C17
C122
C63
C94
C148
C112
C134
C34
This set cannot be decreased, Choose 2 and 6
instead
35Linear Programming Formulation
- Objective is weighted avg. of makespan and cost
- Here total cost is linear
- Want to minimize
36Linear Program
37 38Program Evaluation and Review Technique (PERT)
- Assumed processing times deterministic
- Processing time of j random with mean mj and
variance sj2. - 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
39Expected Makespan
- Estimate expected processing time
- Apply CPM with expected processing times
- Let Jcp be a critical path
- Estimate expected makespan
40Distribution of Makespan
- Estimate the variance of processing times
- and the variance of the makespan
- Assume it is normally distributed
41Discussion
- 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
42Discussion
- 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)
43- Adding Resource Constraints
44Resource Constraints
- Renewable resources
- Very hard problem
- No LP
- Can develop an IP
- Let job n1 be dummy job (sink) and
45Makespan
- Let H bound the makespan, e.g.
- Completion time of job j is
- and the makespan
46IP Formulation
If j prec k
Each resource used
For each job
47In 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
48Optimality of Heuristic
- Say n jobs need the same resource
- Could otherwise all be done simultaneously
- Add (artificial) precedence constraints
- Have n! possibilities
- Will we select the optimal sequence?
49Decision 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
50Example One Resource
2
Uses resource
6
9
6
3
6
11
Resource Profile
Capacity
Time
10 20 30