Presentation is loading. Please wait.

Presentation is loading. Please wait.

Spring 2002IE 5141 Topic 11 Basic Project Scheduling.

Similar presentations


Presentation on theme: "Spring 2002IE 5141 Topic 11 Basic Project Scheduling."— Presentation transcript:

1 Spring 2002IE 5141 Topic 11 Basic Project Scheduling

2 Spring 2002IE 5142 Project Scheduling zJobs subject to precedence constraints zJob on arc format (most common) 25 14 3 6 72 0

3 Spring 2002IE 5143 Overview Project Scheduling No resource Constraints Resource Constraints Critical Path Method (CPM) Program Evaluation and Review Technique (PERT) Heuristic Resource Leveling Integer Programming Formulations

4 Spring 2002IE 5144 Planning a Concert

5 Spring 2002IE 5145 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

6 Spring 2002IE 5146 Changing a Tire

7 Spring 2002IE 5147 Job on Arc Network A B C D E Is this correct?

8 Spring 2002IE 5148 Job on Arc Network AB CD E

9 Spring 2002IE 5149 Job on Node Network ABE DC zNo need for a dummy node zLess used traditionally zRecently more popular

10 Spring 2002IE 51410 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

11 Spring 2002IE 51411 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

12 Spring 2002IE 51412 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

13 Spring 2002IE 51413 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

14 Spring 2002IE 51414 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.

15 Spring 2002IE 51415 Example 1 2 3 69 58 47 1110121413

16 Spring 2002IE 51416 Forward Procedure 1 2 3 69 58 47 1110121413 5 5+6=1111+12=2323+10=33 5+9=14 14+12=26 14+7=21 26+10=36 26+6=32 36+7=43 43+7=50 33+9=42 43+8=51 51+5=56

17 Spring 2002IE 51417 Backwards Procedure 1 2 3 69 58 47 1110121413 14-9=5 24-12=1234-10=2443-9=34 26-12=14 36-10=26 35-10=26 43-7=36 51-8=43 56-5=51 51-8=43 56-5=51 56

18 Spring 2002IE 51418 1 69 1214 Critical Path 2 3 58 47 11 1013

19 Spring 2002IE 51419 Topic 12 Variable Processing Times

20 Spring 2002IE 51420 Time/Cost Trade-Offs zAssumed the processing times were fixed zMore money  shorter processing time zStart with linear costs zProcessing time zMarginal cost

21 Spring 2002IE 51421 Linear Costs Resources (money) Processing time

22 Spring 2002IE 51422 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

23 Spring 2002IE 51423 Sources, Sinks, and Cuts Source (dummy) node Sink node Minimal cut set Cut set

24 Spring 2002IE 51424 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

25 Spring 2002IE 51425 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 2

26 Spring 2002IE 51426 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

27 Spring 2002IE 51427 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

28 Spring 2002IE 51428 Example

29 Spring 2002IE 51429 Maximum Processing Times 1 2 3 69 58 47 1110121413

30 Spring 2002IE 51430 Maximum Processing Times 1 2 3 69 58 47 1110121413

31 Spring 2002IE 51431 Critical Path Subgraph (G cp ) 1 3 69 111214 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}.

32 Spring 2002IE 51432 Critical Path Subgraph (G cp ) 1 3 69 111214 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

33 Spring 2002IE 51433 Critical Path Subgraph (G cp ) 1 3 69 111214 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 =14 Reduce processing time until = 4

34 Spring 2002IE 51434 Critical Path Subgraph (G cp ) 1 3 69 111214 C 1 =7 C 3 =4 C 6 =3C 9 =4 C 11 =2 C 12 =2 C 14 =8 13 C 13 =4 247 10 C 2 =2 C 4 =3 C 7 =4 C 10 =5

35 Spring 2002IE 51435 Linear Programming Formulation zThe heuristic does not guaranteed optimum zHere total cost is linear zWant to minimize

36 Spring 2002IE 51436 Linear Program Minimize subject to

37 Spring 2002IE 51437 Topic 13 PERT

38 Spring 2002IE 51438 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

39 Spring 2002IE 51439 Expected Makespan zEstimate expected processing time zApply CPM with expected processing times zLet J cp be a critical path zEstimate expected makespan

40 Spring 2002IE 51440 Distribution of Makespan zEstimate the variance of processing times zand the variance of the makespan zAssume it is normally distributed

41 Spring 2002IE 51441 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

42 Spring 2002IE 51442 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)

43 Spring 2002IE 51443 Topic 14 Adding Resource Constraints

44 Spring 2002IE 51444 Resource Constraints zRenewable resources zVery hard problem zNo LP zCan develop an IP zLet job n+1 be dummy job (sink) and

45 Spring 2002IE 51445 Makespan zLet H bound the makespan, e.g. zCompletion time of job j is and the makespan

46 Spring 2002IE 51446 IP Formulation Minimize Subject to

47 Spring 2002IE 51447 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

48 Spring 2002IE 51448 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?

49 Spring 2002IE 51449 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

50 Spring 2002IE 51450 Example: One Resource Uses resource 3 611 6 6 2 9 Time 10 20 30 Resource Profile Capacity

51 Spring 2002IE 51451 Topic 15 Job Shop Scheduling

52 Spring 2002IE 51452 Job Shop Scheduling zHave m machines and n jobs zEach job visits some or all of the machines zCustomer order of small batches yWafer fabrication in semiconductor industry yHospital zVery difficult to solve

53 Spring 2002IE 51453 Job Shop Example zConstraints yJob follows a specific route yOne job at a time on each machine (1,1) (2,3) (3,1) (4,3) (1,2)(1,3) (2,1)(2,2) (4,2) (3,3) Machine 1 Machine 2 Machine 3 Machine 4

54 Spring 2002IE 51454 Graph Representation Each job follows a specific route through the job shop... (1,1)(2,1)(3,1) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) Sink Source (Conjuctive arcs)

55 Spring 2002IE 51455 Graph Representation Machine constraints must also be satisfied... (Disjunctive arcs) (1,1)(2,1)(3,1) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) Sink Source

56 Spring 2002IE 51456 Solving the Problem zSelect one of each pair of disjunctive arcs zThe longest path in this graph G(D) determines the makespan (1,1)(2,1)(3,1) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) Sink Source

57 Spring 2002IE 51457 Feasibility of the Schedule zAre all selections feasible? (1,1)(2,1)(3,1) (1,2)(2,2)(4,2) (2,3)(1,3)(4,3)(3,3) Sink Source

58 Spring 2002IE 51458 Disjunctive Programming Minimize Subject to

59 Spring 2002IE 51459 Solution Methods zExact solution yBranch and Bound y20 machines and 20 jobs zDispatching rules (16+) yShifting Bottleneck zSearch heuristics yTabu, SA, GA, etc.

60 Spring 2002IE 51460 Topic 16 Types of Schedules

61 Spring 2002IE 51461 Definitions zA schedule is nondelay if no machine is idled when there is an operation available zA schedule is called active if no operation can be completed earlier by altering the sequence on machines and not delaying other operations zFor “regular” objectives the optimal schedule is always active but not necessarily nondelay

62 Spring 2002IE 51462 Schedule Space Nondelay Active Semiactive All Schedules Optimum

63 Spring 2002IE 51463 Nonactive Schedule (3,2) Machine 2 Machine 1 Machine 3 (1,1) (2,3) (2,2)(2,1) 0 2 4 6 8 (2,1)

64 Spring 2002IE 51464 Active Schedule, not Nondelay (3,2) Machine 2 Machine 1 Machine 3 (1,1) (2,3) (2,2)(2,1) 0 2 4 6 8

65 Spring 2002IE 51465 Nondelay schedule (3,2) Machine 2 Machine 1 Machine 3 (1,1) (2,3)(2,2)(2,1) 0 2 4 6 8

66 Spring 2002IE 51466 Topic 17 Branch & Bound for Job Shops

67 Spring 2002IE 51467 Branch and Bound zOperation (i,j) with duration p ij zMinimize makespan zBranch by generating all active schedules zNotation  Let  denote operations whose predecessors have been scheduled  Let r ij be the earliest possible starting time of (i,j) in .

68 Spring 2002IE 51468 Generating Active Schedules Step 1. (Initialize) Let  contain the first operation of each job Let r ij = 0 for all (i,j) . Step 2. (Machine selection) Compute the current partial schedule and let i * denote the machine where minimum achieved

69 Spring 2002IE 51469 Generating Active Schedules Step 3. (Branching) Let  ’ denote all operations on machine i such that For each operation in  ’ consider a partial schedule with that operation next on i * For each partial schedule, delete operation from  and include immediate follower in . Go back to Step 2.

70 Spring 2002IE 51470 Branching Tree Selection of (i *,j) Selection of (i *,l)

71 Spring 2002IE 51471 Example (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0

72 Spring 2002IE 51472 Partitioning Tree zLevel 1

73 Spring 2002IE 51473 Level 1: select (1,1) (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0 Disjunctive Arcs 10

74 Spring 2002IE 51474 Level 1: select (1,3) (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0 Disjunctive Arcs 4 4

75 Spring 2002IE 51475 Branching Tree (1,1) scheduled first on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26 No disjunctive arcs

76 Spring 2002IE 51476 Branching Tree zLevel 2:

77 Spring 2002IE 51477 Level 2: Select (2,2) (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0 Disjunctive Arcs 10

78 Spring 2002IE 51478 Branching Tree (1,1) scheduled first on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26 No disjunctive arcs (1,1) first on M1 and (2,2) first on M2

79 Spring 2002IE 51479 Lower Bounds zLower bounds yThe length of the critical path in G(D’) xQuick but not very tight yLinear programming relaxation yA maximum lateness problem (see book)

80 Spring 2002IE 51480 Topic 18 The Shifting Bottleneck Heuristic

81 Spring 2002IE 51481 Shifting Bottleneck zMinimize makespan in a job shop zLet M denote the set of machines zLet M 0  M be machines for which disjunctive arcs have been selected zBasic idea: ySelect a machine in M - M 0 to be included in M 0 ySequence the operations on this machine

82 Spring 2002IE 51482 Example

83 Spring 2002IE 51483 Iteration 1 (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0

84 Spring 2002IE 51484 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 1: Optimum sequence is 1,2,3 with L max (1)=5

85 Spring 2002IE 51485 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,3,1 with L max (2)=5

86 Spring 2002IE 51486 Selecting a Machine zSimilarly,  Either Machine 1 or Machine 2 is the bottleneck

87 Spring 2002IE 51487 Iteration 2 (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0 3

88 Spring 2002IE 51488 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,1,3 with L max (2)=1

89 Spring 2002IE 51489 Selecting a Machine Similarly,  Either Machine 2 or Machine 3 is the bottleneck

90 Spring 2002IE 51490 Iteration 3 (1,1)(2,1)(3,1) (2,2)(1,2)(3,2) (1,3)(2,3)(4,3) SinkSource (4,2) 0 108 4 8356 4 7 3 0 0 3 88

91 Spring 2002IE 51491 Discussion zProcedure continues until all the disjunctive arcs have been added zExtremely effective yFast yGood solutions z‘Just a heuristic’ yNo guarantee of optimum

92 Spring 2002IE 51492 Solving the Maximum Lateness Problem (,,) (1,,)(2,,)(3,,) (1,2,3)(1,3,2)(3,1,2)(3,2,1)

93 Spring 2002IE 51493 Discussion zThe solution is actually a little bit more complicated than before zPrecedence constraints because of other (already scheduled) machines zDelay precedence constraints (see example in book)

94 Spring 2002IE 51494 Discussion zShifting bottleneck can be applied generally zBasic idea ySolve problem “one variable at a time” yDetermine the “most important” variable yFind the best value of that variable yMove on to the “second most important” …. yHere we treat each machine as a variable

95 Spring 2002IE 51495 Topic 19 Shifted Bottleneck for Total Weighted Tardiness Objective

96 Spring 2002IE 51496 Total Weighted Tardiness zWe now apply a shifted bottleneck procedure to a job shop with total weighted tardiness objective yNeed n sinks in disjunctive graph yMachines scheduled one at a time yGiven current graph calculate completion time of each job ySome n due dates for each operation yPiecewise linear penalty function

97 Spring 2002IE 51497 Cost Function for Operation (i,j)

98 Spring 2002IE 51498 Machine Selection zMachine criticality ySolve a single machine problem yPiecewise linear cost function yMay have delayed precedence constraints yGeneralizes single-machine with n jobs, precedence constraints, and total weighted tardiness objective yATC rule

99 Spring 2002IE 51499 Generalized ATC Rule Earliest time machine can be used Scaling constant Ranks jobs  good schedule

100 Spring 2002IE 514100 Criticality of Machines zCriticality = subproblem objective function ySimple zMore effective ways, e.g. yAdd disjunctive arcs for each machine yCalculate new completion times and

101 Spring 2002IE 514101 Example (1,1)(2,1)(3,1) (3,2)(1,2) (3,3)(2,3)(1,3) Sink Source (2,2) 5 5104 456 5 37 0 0 Sink

102 Spring 2002IE 514102 Subproblem: Machine 1

103 Spring 2002IE 514103 Subproblem: Machine 2

104 Spring 2002IE 514104 Subproblem: Machine 3

105 Spring 2002IE 514105 Subproblem Solutions zSolve using dispatching rule yUse K=0.1 yHave t = 4, zFor machine 1 this results in Schedule first

106 Spring 2002IE 514106 Solution to Subproblems Schedule first

107 Spring 2002IE 514107 First Iteration (1,1)(2,1)(3,1) (3,2)(1,2) (3,3)(2,3)(1,3) Sink Source (2,2) 5 5104 456 5 37 0 0 Sink 5 5

108 Spring 2002IE 514108 Subproblem: Machine 2

109 Spring 2002IE 514109 Subproblem: Machine 3

110 Spring 2002IE 514110 Solution to Subproblems Schedule first

111 Spring 2002IE 514111 Second Iteration (1,1)(2,1)(3,1) (3,2)(1,2) (3,3)(2,3)(1,3) Sink Source (2,2) 5 5104 456 5 37 0 0 Sink 5 5 3 10

112 Spring 2002IE 514112 Subproblem: Machine 3

113 Spring 2002IE 514113 Third Iteration (1,1)(2,1)(3,1) (3,2)(1,2) (3,3)(2,3)(1,3) Sink Source (2,2) 5 5104 456 5 37 0 0 Sink 5 5 3 10 5 4

114 Spring 2002IE 514114 Final Schedule 0 5 10 15 20 25 30 3,33,2 2,3 1,11,2 2,12,2 3,1 1,3 Machine 1 Machine 2 Machine 3

115 Spring 2002IE 514115 Performance zObjective function zTry finding a better schedule using LEKIN (optimal value = 18)

116 Spring 2002IE 514116 Topic 20 Random Search for Job Shop Scheduling

117 Spring 2002IE 514117 Random Search Methods zPopular to use genetic algorithms, simulated annealing, tabu search, etc. zDo not work very well yProblems defining the neighborhood yDo not exploit special structure

118 Spring 2002IE 514118 Defining the Neighborhood zApproximately nm neighbors! zSimply too inefficient (1,1)(2,1)(3,1) (3,2)(1,2) (3,3)(2,3)(1,3) Sink Source (2,2) 5 5104 456 5 37 0 0 Sink 5 5 3 10 5 4

119 Spring 2002IE 514119 Job Shop with Makespan zRandom search methods can be applied yUse ‘critical path’ neighborhood yCan eliminate many neighbors immediately zSpecialized methods usually better yRandom search = ‘giving up’ ! yTraveling Salesman Problem (TSP) xVery well studied xLin-Kernighan type heuristics (1970) xOrder of 1000 times faster than random search

120 Spring 2002IE 514120 Comparison of Methods Percentage over known optimum: Winner

121 Spring 2002IE 514121 The Nested Partitions Method zPartitioning yby scheduling the bottleneck machine first zRandom sampling yusing randomized dispatching rules zCalculating the promising index yincorporating local improvement heuristic zCan incorporate any special structure!

122 Spring 2002IE 514122 Topic 21 Special Case: Flow Shops

123 Spring 2002IE 514123 A Flexible Flow Shop with Setups Stage 1 Stage 2 Stage 3 Stage 4

124 Spring 2002IE 514124 Applications zVery common in applications: yPaper mills ySteel lines yBottling lines yFood processing lines

125 Spring 2002IE 514125 Classical Literature zExact solutions ySimple flow shop with makespan criterion yTwo machine case (Johnson’s rule) zRealistic problems require heuristic approaches

126 Spring 2002IE 514126 Objectives zMultiple objectives usual yMeet due dates yMaximize throughput yMinimize work-in-process (WIP) Setting for job j on Machine i

127 Spring 2002IE 514127 Generating Schedules zIdentify bottlenecks zCompute time windows at bottleneck stage zCompute machine capacity at bottleneck zSchedule bottleneck stage zSchedule non-bottlenecks

128 Spring 2002IE 514128 Identifying Bottlenecks zIn practice usually known zSchedule downstream bottleneck first zDetermining the bottleneck yloading ynumber of shifts ydowntime due to setups zBottleneck assumed fixed

129 Spring 2002IE 514129 Identifying Time Window zDue date yShipping day yMultiply remaining processing times with a safety factor zRelease date  Status  j of job j  Release date if  j = l Decreasing function - determined empirically

130 Spring 2002IE 514130 Computing Capacity zCapacity of each machine at bottleneck ySpeed yNumber of shifts ySetups zTwo cases: yIdentical machines yNon-identical machines

131 Spring 2002IE 514131 Scheduling Bottleneck zJobs selected one at a time ySetup time yDue date yCapacity zFor example ATCS rule

132 Spring 2002IE 514132 Schedule Remaining Jobs zDetermined by sequence at bottleneck stage zMinor adjustments yAdjacent pairwise interchanges to reduce setup

133 Spring 2002IE 514133 Summary: Job Shops zRepresentation: graph w/disjoint arcs zSolution methods yBranch-and-bound yShifted bottleneck heuristic yBeam search xCan incorporate bottleneck idea & dispatching rules yRandom search methods zSpecial case: flow shops


Download ppt "Spring 2002IE 5141 Topic 11 Basic Project Scheduling."

Similar presentations


Ads by Google