Presentation is loading. Please wait.

Presentation is loading. Please wait.

Topic 15 Job Shop Scheduling.

Similar presentations


Presentation on theme: "Topic 15 Job Shop Scheduling."— Presentation transcript:

1 Topic 15 Job Shop Scheduling

2 Job Shop Scheduling Have m machines and n jobs
Each job visits some or all of the machines Customer order of small batches Wafer fabrication in semiconductor industry Hospital Very difficult to solve April 11, 2019

3 Job Shop Example Constraints Job follows a specific route
One job at a time on each machine Machine 1 (1,1) (1,2) (1,3) Machine 2 (2,3) (2,1) (2,2) Machine 3 (3,1) (3,3) Machine 4 (4,3) (4,2) April 11, 2019

4 Graph Representation Each job follows a specific route through the job shop ... (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) (Conjuctive arcs) April 11, 2019

5 Graph Representation Machine constraints must also be satisfied ...
(1,1) (2,1) (3,1) (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) Sink Source (Disjunctive arcs) April 11, 2019

6 Solving the Problem Select one of each pair of disjunctive arcs
The longest path in this graph G(D) determines the makespan (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) April 11, 2019

7 Feasibility of the Schedule
Are all selections feasible? (1,1) (2,1) (3,1) Sink Source (1,2) (2,2) (4,2) (2,3) (1,3) (4,3) (3,3) April 11, 2019

8 Disjunctive Programming
Minimize Subject to April 11, 2019

9 Solution Methods Exact solution Dispatching rules (16+)
Branch and Bound 20 machines and 20 jobs Dispatching rules (16+) Shifting Bottleneck Search heuristics Tabu, SA, GA, etc. April 11, 2019

10 Topic 16 Types of Schedules

11 Definitions A schedule is nondelay if no machine is idled when there is an operation available A schedule is called active if no operation can be completed earlier by altering the sequence on machines and not delaying other operations For “regular” objectives the optimal schedule is always active but not necessarily nondelay April 11, 2019

12 Schedule Space Semiactive Nondelay Active All Schedules Optimum
April 11, 2019

13 Nonactive Schedule Machine 1 (1,1) (2,1) Machine 2 (2,3) (2,2) (2,1)
(3,2) April 11, 2019

14 Active Schedule, not Nondelay
Machine 1 (1,1) Delay (Operation (2,1) does not fit) Machine 2 (2,3) (2,2) (2,1) Machine 3 (3,2) April 11, 2019

15 Nondelay schedule Machine 1 (1,1) Machine 2 (2,3) (2,1) (2,2)
(3,2) April 11, 2019

16 Branch & Bound for Job Shops
Topic 17 Branch & Bound for Job Shops

17 Branch and Bound Operation (i,j) with duration pij Minimize makespan
Branch by generating all active schedules Notation Let W denote operations whose predecessors have been scheduled Let rij be the earliest possible starting time of (i,j) in W. April 11, 2019

18 Generating Active Schedules
Step 1. (Initialize) Let W contain the first operation of each job Let rij = 0 for all (i,j)W. Step 2. (Machine selection) Compute the current partial schedule and let i* denote the machine where minimum achieved April 11, 2019

19 Generating Active Schedules
Step 3. (Branching) Let W’ denote all operations on machine i such that For each operation in W’ consider a partial schedule with that operation next on i* For each partial schedule, delete operation from W and include immediate follower in W. Go back to Step 2. April 11, 2019

20 Branching Tree Selection of (i*,j) Selection of (i*,l) April 11, 2019

21 Example (1,1) 10 (2,1) 8 (3,1) 4 (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 3
Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 (1,3) 4 (2,3) 7 (4,3) April 11, 2019

22 Partitioning Tree Level 1 April 11, 2019

23 Level 1: select (1,1) (1,1) 10 (2,1) 8 (3,1) 4 10 10 (2,2) 8 (1,2) 3
10 Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 (1,3) 4 (2,3) 7 (4,3) Disjunctive Arcs April 11, 2019

24 Level 1: Select (1,3) (1,1) 10 (2,1) 8 (3,1) 4 4 (2,2) 8 (1,2) 3 (4,2)
4 Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 4 3 (1,3) 4 (2,3) 7 (4,3) Disjunctive Arcs April 11, 2019

25 Branching Tree No disjunctive arcs (1,1) scheduled first
on machine 1 LB = 24 (1,3) scheduled first on machine 1 LB = 26 April 11, 2019

26 Branching Tree Level 2: April 11, 2019

27 Level 2: Select (2,2) (1,1) 10 (2,1) 8 (3,1) 4 10 10 (2,2) 8 (1,2) 3
10 Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 (1,3) 4 (2,3) 7 (4,3) Disjunctive Arcs April 11, 2019

28 Branching Tree No disjunctive arcs (1,1) scheduled first on machine 1
LB = 24 (1,3) scheduled first on machine 1 LB = 26 (1,1) first on M1 and (2,2) first on M2 April 11, 2019

29 Lower Bounds Lower bounds The length of the critical path in G(D’)
Quick but not very tight Linear programming relaxation A maximum lateness problem (see book) April 11, 2019

30 The Shifting Bottleneck Heuristic
Topic 18 The Shifting Bottleneck Heuristic

31 Shifting Bottleneck Minimize makespan in a job shop
Let M denote the set of machines Let M0  M be machines for which disjunctive arcs have been selected Basic idea: Select a machine in M - M0 to be included in M0 Sequence the operations on this machine April 11, 2019

32 Example April 11, 2019

33 Iteration 1 (1,1) 10 (2,1) 8 (3,1) 4 (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 3
Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 (1,3) 4 (2,3) 7 (4,3) April 11, 2019

34 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 1: Optimum sequence is 1,2,3 with Lmax(1)=5 April 11, 2019

35 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,3,1 with Lmax(2)=5 April 11, 2019

36 Selecting a Machine Similarly,
 Either Machine 1 or Machine 2 is the bottleneck April 11, 2019

37 Iteration 2 (1,1) 10 (2,1) 8 (3,1) 4 10 (2,2) 8 (1,2) 3 (4,2) 5 (3,2)
10 Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 3 (1,3) 4 (2,3) 7 (4,3) April 11, 2019

38 Selecting a Machine Set up a nonpreemptive single machine maximum lateness problem for Machine 2: Optimum sequence is 2,1,3 with Lmax(2)=1 April 11, 2019

39 Selecting a Machine Similarly,
 Either Machine 2 or Machine 3 is the bottleneck April 11, 2019

40 Iteration 3 (1,1) 10 (2,1) 8 (3,1) 4 10 8 8 (2,2) 8 (1,2) 3 (4,2) 5
8 8 Source (2,2) 8 (1,2) 3 (4,2) 5 (3,2) 6 Sink 3 3 (1,3) 4 (2,3) 7 (4,3) April 11, 2019

41 Discussion Procedure continues until all the disjunctive arcs have been added Extremely effective Fast Good solutions ‘Just a heuristic’ No guarantee of optimum April 11, 2019

42 Solving the Maximum Lateness Problem
(•,•,•) (1,•,•) (2,•,•) (3,•,•) (1,2,3) (1,3,2) (3,1,2) (3,2,1) April 11, 2019

43 Discussion The solution is actually a little bit more complicated than before Precedence constraints because of other (already scheduled) machines Delay precedence constraints (see example in book) April 11, 2019

44 Discussion Shifting bottleneck can be applied generally Basic idea
Solve problem “one variable at a time” Determine the “most important” variable Find the best value of that variable Move on to the “second most important” …. Here we treat each machine as a variable April 11, 2019

45 Shifted Bottleneck for Total Weighted Tardiness Objective
Topic 19 Shifted Bottleneck for Total Weighted Tardiness Objective

46 Total Weighted Tardiness
We now apply a shifted bottleneck procedure to a job shop with total weighted tardiness objective Need n sinks in disjunctive graph Machines scheduled one at a time Given current graph calculate completion time of each job Some n due dates for each operation Piecewise linear penalty function April 11, 2019

47 Cost Function for Operation (i,j)
April 11, 2019

48 Machine Selection Machine criticality Solve a single machine problem
Piecewise linear cost function May have delayed precedence constraints Generalizes single-machine with n jobs, precedence constraints, and total weighted tardiness objective ATC rule April 11, 2019

49 Generalized ATC Rule Earliest time machine can be used Ranks jobs
 good schedule Scaling constant April 11, 2019

50 Criticality of Machines
Criticality = subproblem objective function Simple More effective ways, e.g. Add disjunctive arcs for each machine Calculate new completion times and April 11, 2019

51 Example (1,1) 5 (2,1) 10 (3,1) 4 5 (3,2) 4 (1,2) 5 (2,2) 6 (3,3) 5
Sink 5 Source (3,2) 4 (1,2) 5 (2,2) 6 Sink (3,3) 5 (2,3) 3 (1,3) 7 Sink April 11, 2019

52 Subproblem: Machine 1 April 11, 2019

53 Subproblem: Machine 2 April 11, 2019

54 Subproblem: Machine 3 April 11, 2019

55 Subproblem Solutions Solve using dispatching rule
Use K=0.1 Have t = 4, For machine 1 this results in Schedule first April 11, 2019

56 Solution to Subproblems
Schedule first April 11, 2019

57 First Iteration (1,1) 5 (2,1) 10 (3,1) 4 5 5 (3,2) 4 (1,2) 5 (2,2) 6 5
Sink 5 5 Source (3,2) 4 (1,2) 5 (2,2) 6 Sink 5 (3,3) 5 (2,3) 3 (1,3) 7 Sink April 11, 2019

58 Subproblem: Machine 2 April 11, 2019

59 Subproblem: Machine 3 April 11, 2019

60 Solution to Subproblems
Schedule first April 11, 2019

61 Second Iteration (1,1) 5 (2,1) 10 (3,1) 4 5 5 10 (3,2) 4 (1,2) 5 (2,2)
Sink 5 5 10 Source (3,2) 4 (1,2) 5 (2,2) 6 Sink 5 3 (3,3) 5 (2,3) 3 (1,3) 7 Sink April 11, 2019

62 Subproblem: Machine 3 April 11, 2019

63 Third Iteration (1,1) 5 (2,1) 10 (3,1) 4 5 5 10 4 (3,2) 4 (1,2) 5
Sink 5 5 10 4 Source (3,2) 4 (1,2) 5 (2,2) 6 Sink 5 5 3 (3,3) 5 (2,3) 3 (1,3) 7 Sink April 11, 2019

64 Final Schedule Machine 1 1,1 1,2 1,3 Machine 2 2,3 2,1 2,2 Machine 3
3,3 3,2 3,1 April 11, 2019

65 Performance Objective function
Try finding a better schedule using LEKIN (optimal value = 18) April 11, 2019

66 Random Search for Job Shop Scheduling
Topic 20 Random Search for Job Shop Scheduling

67 Random Search Methods Popular to use genetic algorithms, simulated annealing, tabu search, etc. Do not work too well Problems defining the neighborhood Do not exploit special structure April 11, 2019

68 Defining the Neighborhood
(1,1) 5 (2,1) 10 (3,1) 4 Sink 5 5 10 4 Source (3,2) 4 (1,2) 5 (2,2) 6 Sink 5 5 3 (3,3) 5 (2,3) 3 (1,3) 7 Sink Approximately nm neighbors! Simply too inefficient April 11, 2019

69 Job Shop with Makespan Random search methods can be applied
Use ‘critical path’ neighborhood Can eliminate many neighbors immediately Specialized methods usually better Random search = ‘giving up’ ! Traveling Salesman Problem (TSP) Very well studied Lin-Kernighan type heuristics (1970) Order of 1000 times faster than random search April 11, 2019

70 Comparison of Methods Percentage over known optimum: Winner
April 11, 2019

71 The Nested Partitions Method
Partitioning by scheduling the bottleneck machine first Random sampling using randomized dispatching rules Calculating the promising index incorporating local improvement heuristic Can incorporate any special structure! April 11, 2019

72 Special Case: Flow Shops
Topic 21 Special Case: Flow Shops

73 A Flexible Flow Shop with Setups
Stage 1 Stage Stage Stage 4 April 11, 2019

74 Applications Very common in applications: Paper mills Steel lines
Bottling lines Food processing lines April 11, 2019

75 Classical Literature Exact solutions
Simple flow shop with makespan criterion Two machine case (Johnson’s rule) Realistic problems require heuristic approaches April 11, 2019

76 Objectives Multiple objectives usual Meet due dates
Maximize throughput Minimize work-in-process (WIP) Setting for job j on Machine i April 11, 2019

77 Generating Schedules Identify bottlenecks
Compute time windows at bottleneck stage Compute machine capacity at bottleneck Schedule bottleneck stage Schedule non-bottlenecks April 11, 2019

78 Identifying Bottlenecks
In practice usually known Schedule downstream bottleneck first Determining the bottleneck loading number of shifts downtime due to setups Bottleneck assumed fixed April 11, 2019

79 Identifying Time Window
Due date Shipping day Multiply remaining processing times with a safety factor Release date Status sj of job j Release date if sj = l Decreasing function - determined empirically April 11, 2019

80 Computing Capacity Capacity of each machine at bottleneck Two cases:
Speed Number of shifts Setups Two cases: Identical machines Non-identical machines April 11, 2019

81 Scheduling Bottleneck
Jobs selected one at a time Setup time Due date Capacity For example ATCS rule April 11, 2019

82 Schedule Remaining Jobs
Determined by sequence at bottleneck stage Minor adjustments Adjacent pairwise interchanges to reduce setup April 11, 2019

83 Summary: Job Shops Representation: graph w/disjoint arcs
Solution methods Branch-and-bound Shifted bottleneck heuristic Beam search Can incorporate bottleneck idea & dispatching rules Random search methods Special case: flow shops April 11, 2019


Download ppt "Topic 15 Job Shop Scheduling."

Similar presentations


Ads by Google