IEOR Basic Project Scheduling
IEOR Project Scheduling zJobs subject to precedence constraints zJob on arc format (most common)
IEOR Overview Project Scheduling No resource Constraints Resource Constraints Critical Path Method (CPM) Program Evaluation and Review Technique (PERT) Heuristic Resource Leveling Integer Programming Formulations
IEOR Planning a Concert
IEOR Job on Arc Network zNot allowed: no two jobs can have the same starting and ending node! zNeed to introduce a dummy job. A B D C A B D C
IEOR Changing a Tire
IEOR Job on Arc Network A B C D E Is this correct?
IEOR Job on Arc Network AB CD E
IEOR Job on Node Network ABE DC zNo need for a dummy node zLess used traditionally zRecently more popular
IEOR Critical Path Method (CPM) zThink of unlimited machines in parallel z… and n jobs with precedence constraints zProcessing times p j as before zObjective to minimize makespan
IEOR Critical Path Method zForward procedure: yStarting at time zero, calculate the earliest each job can be started yThe completion time of the last job is the makespan zBackward procedure yStarting at time equal to the makespan, calculate the latest each job can be started so that this makespan is realized
IEOR Forward Procedure Step 1: Set at time t = 0 for all jobs j with no predecessors, S j ’ =0 and set C j ’ = p j. Step 2: Compute for each job j C j ’ = S j ’ + p j. Step 3: The optimal makespan is STOP
IEOR Backward Procedure Step 1: Set at time t = C max for all jobs j with no successors, C j ’’ = C max and set S j ’’ = C max - p j. Step 2: Compute for each job j S j ’’ = C j ’’ - p j. Step 3: Verify that STOP
IEOR Comments zThe forward procedure gives the earliest possible starting time for each job zThe backwards procedures gives the latest possible starting time for each job zIf these are equal the job is a critical job. zIf these are different the job is a slack job, and the difference is the float. zA critical path is a chain of jobs starting at time 0 and ending at C max.
IEOR Example
IEOR Forward Procedure = = =33 5+9= = = = = = = = = =56
IEOR Backwards Procedure = = =2443-9= = = = = = = = =51 56
IEOR Critical Path
IEOR Variable Processing Times
IEOR Time/Cost Trade-Offs zAssumed the processing times were fixed zMore money shorter processing time zStart with linear costs zProcessing time zMarginal cost
IEOR Linear Costs Resources (money) Processing time
IEOR Solution Methods zObjective: minimum cost of project zTime/Cost Trade-Off Heuristic yGood schedules yWorks also for non-linear costs zLinear programming formulation yOptimal schedules yNon-linear version not easily solved
IEOR Sources, Sinks, and Cuts Source (dummy) node Sink node Minimal cut set Cut set
IEOR Time/Cost Trade-Off Heuristic Step 1: Set all processing times at their maximum Determine all critical paths with these processing times Construct the graph G cp of critical paths Continue to Step 2
IEOR Time/Cost Trade-Off Heuristic 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
IEOR 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 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 G cp and go back to Step 2
IEOR Example
IEOR Maximum Processing Times
IEOR Maximum Processing Times
IEOR Critical Path Subgraph (G cp ) 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}.
IEOR Critical Path Subgraph (G cp ) 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
IEOR Critical Path Subgraph (G cp ) 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 Processing time at minimum
IEOR Critical Path Subgraph (G cp ) 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 This set cannot be decreased, Choose 2 and 6 instead
IEOR Linear Programming Formulation Objective is weighted avg. of makespan and cost zHere total cost is linear zWant to minimize
IEOR Linear Program Minimize subject to
IEOR PERT
IEOR Program Evaluation and Review Technique (PERT) zAssumed processing times deterministic Processing time of j random with mean j and variance j 2. zWant to determine the expected makespan zAssume we have p j a = most optimistic processing time p j m = most likely processing time (mode) p j b = most pessimistic processing time
IEOR Expected Makespan zEstimate expected processing time zApply CPM with expected processing times zLet J cp be a critical path zEstimate expected makespan
IEOR Distribution of Makespan zEstimate the variance of processing times zand the variance of the makespan zAssume it is normally distributed
IEOR Discussion zPotential problems with PERT: yAlways underestimates project duration xother paths may delay the project yNon-critical paths ignored xcritical path probability xcritical activity probability yActivities are not always independent xsame raw material, weather conditions, etc. yEstimates by be inaccurate
IEOR Discussion zNo resource constraints: yCritical Path Method (CPM) ySimple deterministic yTime/cost trade-offs xLinear cost (heuristic or exact) xNon-linear cost (heuristic) yAccounting for randomness (PERT)
IEOR Adding Resource Constraints
IEOR Resource Constraints zRenewable resources zVery hard problem zNo LP zCan develop an IP zLet job n+1 be dummy job (sink) and
IEOR Makespan zLet H bound the makespan, e.g. zCompletion time of job j is and the makespan
IEOR IP Formulation Minimize Subject to If j prec k For each job Each resource used
IEOR In Practice zThe IP cannot be solved z(Almost) always resource constraints z Heuristic: Resource constraint Precedence constraint zExample: pouring foundation and sidewalk yboth require same cement mixer ydelaying foundation delays building yprecedence constraint: pour foundation first ynot a logical constraint
IEOR Optimality of Heuristic zSay n jobs need the same resource zCould otherwise all be done simultaneously zAdd (artificial) precedence constraints zHave n! possibilities zWill we select the optimal sequence?
IEOR Decision Support zResource leveling ySolve with no resource constraints yPlot the resource use as a function of time yIf infeasible suggest precedence constraints xLongest job xMinimum slack yUser adds constraints yStart over
IEOR Example: One Resource Uses resource Time Resource Profile Capacity