© J. Christopher Beck Lecture 4: Project Planning 1
© J. Christopher Beck Outline ROMAN Project scheduling system Project representation Job-on-node CPM – forward & backward PERT – CPM with estimates Some slides taken from Twente University (see Pinedo CD)
© J. Christopher Beck ROMAN How do you shut down a nuclear power plant for maintenance? Very carefully 10,000 to 40,000 jobs $1,000,000 per day
© J. Christopher Beck Problem Given a set of jobs, precedence constraints & resource requirements, assign resources to jobs for specific periods to: Minimize makespan Makes sure all jobs can be done safely Jobs: refueling, repairs, plant modifications, maintenance
© J. Christopher Beck Approach Decision tree for sophisticated safely analysis Constraint programming based project scheduling system Builds on basic algorithms we will study
© J. Christopher Beck Project Planning: Example 1 Rules for “job on node” networks: network contains no directed cycles event numbering network contains no redundant arcs
© J. Christopher Beck Example “job on node”-representation:
© J. Christopher Beck Example 2 Alternative “job on node”-representation: Makespan? Critical Path? 4 5
© J. Christopher Beck Critical Path Method Find Critical path and makespan Two steps: forward procedure – find min. makespan backward procedure – find CP
© J. Christopher Beck Forward Procedure STEP1: For each job that has no predecessors: STEP2: compute for each job j: STEP3: S’ 1 = 0 S’ 2 = 0 S’ 3 = 0 C’ 1 = 2 C’ 2 = 3 C’ 3 = 1 S’ 4 = 3 S’ 5 = 3 S’ 6 = 7 C’ 6 = 8 C’ 5 = 5 C’ 4 = 7 C’ max = 8
© J. Christopher Beck Backward Procedure STEP1: For each job that has no successors: STEP2: compute for each job j: STEP3: Verify that: S’’ 1 = 1 S’’ 2 = 0 C’’ 1 = 3 C’’ 2 = 3 S’’ 3 = 7S’’ 5 = 5 S’’ 6 = 7 C’’ 3 = 8 C’’ 6 = 8 C’’ 5 = 8 S’’ 4 = 3C’’ 4 = 7 C’ max = 8
© J. Christopher Beck Critical Path If S’ j = S’’ j then activity is in the critical path JobS’ j S’’ j JobS’ j S’’ j
© J. Christopher Beck Example Jobs pjpj ) Find makespan 2) Find CP
© J. Christopher Beck What if … Great, project scheduling is easy! In the real world, do we really know the duration of a job? What if p j = (μ j, δ j )? (Believe it or not, that is current research!)
© J. Christopher Beck Program Evaluation & Review Technique (PERT) Idea: estimate p j and use CPM to estimate: Ê(C max ) – expected makespan Ṽ(C max ) – variance of makespan
© J. Christopher Beck PERT Given p j = (μ j, δ j ), let p j = μ j Use CPM to find critical path Estimate the expected makespan Ê(C max ) = Σ μ j, j in critical path Ṽ(C max ) = Σ (δ j 2 ), j in critical path This is a very crude approximation! See Example Q: What if there are two CPs?
© J. Christopher Beck Estimating (μ j, δ j ) Assume you have 3 estimates of p j Optimistic: p a j Most likely: p m j Pessimistic: p b j Estimates: μ j = (p a j +4p m j +p b j ) / 6 δ j = (p b j -p a j ) / 6
© J. Christopher Beck Example Jobs pajpaj pmjpmj pbjpbj Find expected makespan and variance Hint: same graph as 4.2.3