© j. christopher beck 20051 lecture 4: project planning 1
Post on 20-Dec-2015
215 views
TRANSCRIPT
© J. Christopher Beck 2005 2
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 2005 3
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 2005 4
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 2005 5
Approach
Decision tree for sophisticated safely analysis
Constraint programming based project scheduling system Builds on basic algorithms we will
study
© J. Christopher Beck 2005 6
Project Planning: Example 1
Rules for “job on node” networks: network contains no directed cycles event numbering network contains no redundant arcs
1 2 4
3 5
6
7
Job Duration Predecessors1 2 -2 3 13 1 14 4 25 2 36 1 4,57 3 4,5
© J. Christopher Beck 2005 7
Example 2
1
2 4
3 5
6
“job on node”-representation:
Job p(j) Predecessors1 2 -2 3 -3 1 -4 4 1,25 2 2,36 1 4
© J. Christopher Beck 2005 8
Example 2 Alternative
“job on node”-representation:
Job p(j) Predecessors1 2 -2 3 -3 1 -4 4 1,25 2 2,36 1 4
1
2
3
6
Makespan?Critical Path?
4
5
© J. Christopher Beck 2005 9
Critical Path Method
Find Critical path and makespan Two steps:
forward procedure – find min. makespan
backward procedure – find CP
© J. Christopher Beck 2005 10
Forward Procedure
STEP1: For each job that has no predecessors: STEP2: compute for each job j:
STEP3: 'j
jmax CmaxC j
'j
'j
'k
jk
'j
pSC
CmaxS
j'j
'j
pC
0S
1
2
3
64
5
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 2005 11
Backward Procedure
STEP1: For each job that has no successors: STEP2: compute for each job j:
STEP3: Verify that: ''jj
Smin0 j''j
''j
''kk allj
''j
pCS
SminC
jmax''j
max''j
pCS
CC
1
2
3
64
5
S’’1 = 1
S’’2 = 0
C’’1 = 3
C’’2 = 3
S’’3 = 7 S’’5 = 5
S’’6 = 7
C’’3 = 8
C’’6 = 8
C’’5 = 8
S’’4 = 3 C’’4 = 7
C’max = 8
© J. Christopher Beck 2005 12
Critical Path
If S’j = S’’j then activity is in the critical pathJob S’j S’’j
1 0 1
2 0 0
3 0 7
4 3 3
5 3 5
6 7 7
Job S’j S’’j
1 0 1
2 0 0
3 0 7
4 3 3
5 3 5
6 7 7
© J. Christopher Beck 2005 13
Example 4.2.3
Jobs 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
1
2 4
3
5
7
8
10
1214
13
6 9
11
1) Find makespan2) Find CP
© J. Christopher Beck 2005 14
What if …
Great, project scheduling is easy! In the real world, do we really
know the duration of a job? What if pj = (μj, δj)? (Believe it or not, that is current
research!)
© J. Christopher Beck 2005 15
Program Evaluation & Review Technique (PERT)
Idea: estimate pj and use CPM to estimate: Ê(Cmax) – expected makespan Ṽ(Cmax) – variance of makespan
© J. Christopher Beck 2005 16
PERT
Given pj = (μj , δj), let pj = μj
Use CPM to find critical path Estimate the expected makespan
Ê(Cmax) = Σ μj, j in critical path Ṽ(Cmax) = Σ (δj
2), j in critical path
This is a very crude approximation! See Example 4.3.2
Q: What if there are two CPs?
© J. Christopher Beck 2005 17
Estimating (μj , δj)
Assume you have 3 estimates of pj
Optimistic: paj
Most likely: pmj
Pessimistic: pbj
Estimates: μj = (pa
j+4pmj+pb
j) / 6 δj = (pb
j-paj) / 6