Scheduling Applications

advertisement
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
3
IEOR 4405
2
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
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
same starting and
ending node!
B
A
D
C
B
Need to introduce a
dummy job.
A
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
C
E
B
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
Recently more
popular
IEOR 4405
A
B
C
D
E
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
5
j
1
2
3
4
pj
5
6
9
12 7
2
4
6
7
8
12 10 6
9
10 11 12 13 14
10 9
7
8
7
5
7
10
1
6
9
3
12
11
5
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
10
43+8=51 51+5=56
14+12=26 26+10=36
6
9
5+9=14
3
12
11
5
14+7=21
8
26+6=32
IEOR 4405
36+7=43
13
14
43+7=50
16
Backwards Procedure
24-12=12 34-10=24
2
4
14-9=5
1
43-9=34
7
51-8=43
10
36-10=26
26-12=14
56-5=51
43-7=36
6
9
3
12
11
5
35-10=26
8
43-7=36
IEOR 4405
51-8=43
13
56
14
56-5=51
17
Critical Path
2
4
7
10
1
6
9
3
12
11
5
14
13
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
max
Processing time p min

p

p
j
j
j
Marginal cost
cj 
c aj  c bj
p
max
j
p
IEOR 4405
min
j
20
Linear Costs
Resources (money)
c aj
cbj
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
j
11
2
3
4
Pj max
5
6
9
12 7
12 10 6
10 9
7
8
7
5
Pj min
3
5
7
9
9
7
6
5
5
2
cja
20
25 20 15 30 40 35 25 30 20 25 35 20 10
cj
7
2
4
3
5
5
4
6
3
7
8
4
8
3
4
9
4
IEOR 4405
10 11 12 13 14
5
5
2
2
4
8
28
Maximum Processing Times
2
4
7
10
1
6
9
3
12
11
5
14
13
8
IEOR 4405
29
Maximum Processing Times
Cmax  56
2
4
7
10
1
6
9
3
12
11
5
14
13
8
IEOR 4405
30
Critical Path Subgraph (Gcp)
C1=7
C6=3
6
1
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
1
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
1
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
1
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
Here total cost is linear

n
c0Cmax   c bj  c j p max
 pj
j

j 1
Want to minimize
n
c0Cmax   c j p j .
j 1
IEOR 4405
35
Linear Program
Minimize
subject to
n
c0Cmax   c j p j .
j 1
xk  p j  x j  0, j  k  A
p j  p max
, j
j
p j  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
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
IEOR 4405
38
Expected Makespan
Estimate expected processing time
p aj  4 p mj  p bj
mj 
6
Apply CPM with expected processing times
Let Jcp be a critical path
Estimate expected makespan
Eˆ (Cmax ) 
IEOR 4405
m
jJ cp
j
39
Distribution of Makespan
Estimate the variance of processing times
b
a
p

p
j
s 2j  j
6
and the variance of the makespan
Vˆ (Cmax ) 
2
s
 j
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
Minimize
Subject to
H
t  x
t 1
H
t  x
t 1
n 1,t
H
jt
 pk   txkt  0
If j prec k
t 1
 t  p j 1 
 Rij  x ju   R j



j 1 
u t

n
H
x
t 1
IEOR 4405
jt
1
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
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
2
Uses resource
3
9
6
6
6
11
Resource Profile
Capacity
Time
10
20
IEOR 4405
30
50
Download