© J. Christopher Beck Lecture 5: Project Planning 2
© J. Christopher Beck Outline Time/Cost Tradeoffs Linear and non-linear Adding Workforce Constraints Slides borrowed from Twente & Iowa See Pinedo CD
© J. Christopher Beck Time/Cost Trade-Offs What if you could spend money to reduce the job duration More money shorter processing time Run machine at higher speed
© J. Christopher Beck Linear Costs Money Processing time Marginal cost
© J. Christopher Beck Problem Spend money to reduce processing times so as to minimize: “Overhead” cost Cost per activity
© J. Christopher Beck 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
© J. Christopher Beck Source (dummy) node Sink node Minimal cut set Cut set Sources, Sinks, & Cuts
© J. Christopher Beck Step 1: Set all processing times at their maximum Determine all critical paths Construct the graph G cp of critical paths Time/Cost Trade-off Heuristic
© J. Christopher Beck Step 2: Determine all minimum cut sets in G cp Consider those sets where all processing times are larger than their minimum If no such set STOP; otherwise continue to Step 3 Time/Cost Trade-off Heuristic
© J. Christopher Beck 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
© J. Christopher Beck Time/Cost Trade-Off Heuristic Step 4: Reduce all processing times in the minimum cut set by one time unit Determine the new set of critical paths Revise graph G cp and go back to Step 2
© J. Christopher Beck Example Overhead: c o = 6 (cost of project per time unit)
© J. Christopher Beck Step 1: Maximum Processing Times, Find G cp
© J. Christopher Beck Step 1: Maximum Processing Times, Find G cp Cost = overhead + job costs = c o * C max + Σc a j = 6 * = 686
© J. Christopher Beck c 1 =7 c 3 =4 c 6 =3c 9 =4 c 11 =2 c 12 =2 c 14 =8 Minimum cut set with lowest cost Cut sets: {1},{3},{6},{9}, {11},{12},{14}. Step 2 & 3: Min. Cut Sets in G cp & Lowest Cost
© J. Christopher Beck Step 4 & 1: Reduce Processing Time for Each Job by Cost = overhead + processing = c 0 * C max + Σjob costs = 6 * = 682
© J. Christopher Beck Step 2 & 3: Min. Cut Sets in G cp & Lowest Cost c 1 =7 c 3 =4 c 6 =3c 9 =4 c 11 =2 c 12 =2 c 14 =8 13 Cut sets: {1},{3},{6},{9}, {11},{12,13},{14}. c 13 =4 Minimum cut set with lowest cost
© J. Christopher Beck c 1 =7 c 3 =4 c 6 =3c 9 =4 c 11 =2 c 12 =2 c 14 =8 13 c 13 = 4 Next 3 iterations reduce processing time from 7 to 4 Cost = overhead + processing = c o * C max + Σjob costs = 6 * = 667 Next 3 Iterations
© J. Christopher Beck c 1 =7 c 3 =4 c 6 =3c 9 =4 c 11 =2 c 12 =2 c 14 =8 13 Reduce processing time next on job 6 c 13 = 4 Step 1,2, & 3 Q: why not 12?
© J. Christopher Beck After More Iterations … c 1 =7 c 3 =4 c 6 =3c 9 =4 c 11 =2 c 12 =2 c 14 =8 13 c 13 = c 2 =2 c 4 =3 c 7 =4 c 10 =5
© J. Christopher Beck Linear Programming Formulation The heuristic does not guarantee optimum See example Here total cost is linear so use LP Want to minimize
© J. Christopher Beck Minimize subject to earliest start time of job k processing time of job k Linear Program
© J. Christopher Beck Can Also Have Non-linear Costs Arbitrary function c j (p j ) → cost of setting job j to processing time p j LP doesn’t work! See Section 4.5 A question I like: Given processing times and c j (p j ), which algorithm would you use (heuristic or LP)?
© J. Christopher Beck What If Jobs Require Resources? Back to fixed durations Without resources → easy With resources → hard Resource Constraint Project Scheduling Problem (RCPSP)
© J. Christopher Beck RCPSP Example Resource requirements
© J. Christopher Beck What if R 1 = 4?
© J. Christopher Beck RCPSP n: jobs j=1,…,n N: resources i=1,…,N R k :availability of resource k p j :duration of job j R kj : requirement of job j for resource k P j :(immediate) predecessors of job j Minimize C max
© J. Christopher Beck RCPSP Example