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 jJ 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 jJ 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