1 / 39

Job Shop Scheduling

Job Shop Scheduling. Job shop environment : m machines, n jobs objective function Each job follows a predetermined route Routes are not necessarily the same for each job Machine can be visited once or more than once (recirculation). Job Shop Problem Network Formulation.

martinezn
Télécharger la présentation

Job Shop Scheduling

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Job Shop Scheduling

  2. Job shop environment: • m machines, n jobs • objective function • Each job follows a predetermined route • Routes are not necessarily the same for each job • Machine can be visited once or more than once (recirculation)

  3. Job Shop ProblemNetwork Formulation • Let us consider the example with 4 m/c & 3 jobs • The route of the jobs as well as their processing times are given below Jobm/c sequenceProcessing time 1 1- 2 -3 P11=10 P21=8 P31=4 2 2-1-4-3 P22=8 P12=3 P42=5 P32=6 3 1-2-4 P13=4 P23=7 P43=3 where Pij job J processed on m/c i

  4. Construction of the Network 1,1 2,1 3,1 0 0 0 S 2,2 1,2 4,2 3,2 T 1,3 2,3 4,3

  5. Problem :Jm | | Cmax Node (i, j) represents the operation of jth job on ith machine • Pij processing time of job j on machine i • G = (N, AB) • A: Solid (Conjunctive) arcs represent the precedence relationships between operation of a single job. • Operation (i, j) precedes (k, j)

  6. B: Broken (Disjunctive) arcs represent the precedence relationships between operation of a single machine. • Disjunctive arcs B represent conflicts on machines. • Two operations (i, j) and (i, l) are connected by two arcs going in opposite direction. • Two dummy nodes S and T representing source and sink. • Arcs from S to all first operations of jobs. • Arcs from all last operations of jobs to T • A feasible schedule corresponds to a selection of at most one (disjunctive) broken arcs from each such pair such that the resulting directed graph is acyclic

  7. How to construct a feasible schedule? Select D - a subset of disjunctive arcs (one from each pair) suchthat the resulting directed graph G(D) has no cycles. Graph G(D) contains conjunctive arcs + D. D represents a feasible schedule. A cycle in the graph corresponds to a schedule that is infeasible.

  8. 10 8 1,1 2,1 3,1 4 0 0 8 3 5 6 S 2,2 1,2 4,2 3,2 T 3 0 4 7 1,3 2,3 4,3 • The makespan of a feasible schedule is determined by the longest path in G(D) from S to T. • Minimise makespan: find a selection of disjunctive arcs that minimises the length of the longest path (the critical path).

  9. Selection • A subset is called a selection if it contains from each pair of disjunctive arcs exactly one. • A selection D is feasible if the resulting directed graph G (D) = (N, A D) i.e. graph with conjunctive and selected disjunctive arcs is acyclic.

  10. Remarks • A feasible selection leads to a sequence in which operations have to be processed on machines. • Each feasible selection leads to a feasible schedule.

  11. Ex. Machines – M1, M2, M3 Jobs J1 where (3, 1)  (2, 1)  (1, 1) J2 where (1, 2)  (3, 2) J3 where (2, 3)  (1, 3)  (3, 3) Duration P31 = 4 P21 = 2 P11 = 1 P12 = 3 P32 = 3 P23 = 2 P13 = 4 P33 = 1

  12. 3,1 2,1 1,1 u 1,2 3,2 v 2,3 1,3 3,3 Feasible Selection Represents conjunctive arcs Selection

  13. M1 J3 J1 J2 Corresponding  Schedule M2 J1 J3 M3 J1 J2 J3 5 10 15 20 Make Span Cmax = 20

  14. 3,1 2,1 1,1 u 1,2 3,2 v 2,3 1,3 3,3 Selection for given schedule Selection

  15. M1 J2 J1 J3 M2 J3 J1 M3 J1 J2 J3 5 10 12 Make Span Cmax =12

  16. Disjunctive Programming Formulation Minimizing Cmax Subject to where yij denotes starting time of operation (i, j) } for all Cmax for all for all (i, l) & (i, j) i = 1, 2, …..,m for all

  17. Some ordering must exists among operation of different job that are processed on same machine. • Solution procedures for Jm / Cmaxare based either on enumerative or heuristic. • No standard solution procedure available that will work satisfactory. • Two popular heuristic algorithms: (i) schedule generation algorithm. (ii) shifting bottleneck heuristic algorithm;

  18. Algorithm for Non Delay Schedule Generation - A partial schedule containing t scheduled operations - The set of schedulable operations at stage t corresponding to a given - The earliest time at which operation could be started - The earliest time at which operation could be completed

  19. is determine by the completion time of the direct predecessor of operation J and latest completion time on the machine required by operation J • The larger of these quantities is • The potential finish time where is processing time of operation J Here (i, j, k) represents job i operation J on machine k

  20. Algorithm Step 1 – Let t = 0 and includes all operations with no predecessor. Step 2 – Determine and the machine on which could be realized Step 3 – For each operation that requires machine and for which create a new partial schedule in which operation J is added to and started at time

  21. Step 4 – For each new partial schedule created in step 3, update the data set as follows (a) Remove operation J from (b) Form by adding the direct successor of operation J to (c) Increment t by 1 Step 5 – Return to step 2 for each created in step 3 and continue in this fashion until all non delay schedules have been generated. • The quality of the solution obtained by the heuristic mainly depends on the effectiveness of priority rules which are used in them.

  22. A Sample Set of Priority Rules • SPT – Select the job with min. processing time • FCFS – Select the operation that entered earliest • MWKR – (Most work remaining) – Select the operation associated with the job having the most work remaining to be processed • MOPNR – (Most operation remaining) – Select the operation that has the largest number of successor operation • Random – Select the operation at random

  23. Ex. Find the schedule using non delay schedule generation heuristic with following primary rules First level priority rule – MWKR (Most work remaining) Second level priority rule – SPT Third level priority rule – Random order

  24. Operation Operation 1 2 3 1 2 3 Job Job 1 2 3 4 1 2 3 4 • 3 4 • 4 4 1 • 2 3 • 3 3 1 • 1 2 3 • 3 2 1 • 2 3 1 • 1 3 2 Processing timeRouting

  25. Job Operation At t = 0 for all M/c Earliest time at which operation could be started *Therefore, priority rule must be involved to select among all four operation [MWKR]

  26. R1= 9R2= 9R3= 7R4= 7 • MWKR = 9 is not unique. • This is occurring for job 1 and job 2 • Now, a tie breaking rules is needed • SPT is used as tie breaking rule • Now t111 < t213

  27. M/c1 (1, 1, 1) M/c2 M/c3 2 4 6 • This means PS1 consists of operation {(1, 1, 1)} started at time 0 PS1 = {(1, 1, 1)} f1 = 2, f2 = 0, f3 = 0

  28. At this stage for two operations in S1. Thus priority rule must be involved to choose between (2, 1, 3) and (3, 1, 2)

  29. M/c1 (1, 1, 1) M/c2 M/c3 (2, 1, 3) 2 4 6 By applying MWKR, we get R2 = 9 R3 = 7 since R2 > R3 (2, 1, 3) is added to PS1 to form PS2 = {(1, 1, 1), (2, 1, 3)} f1 = 2, f2 = 0, f3 = 4

  30. Now Operation 1 of job 2 is to be completed in M/c 3

  31. M/c1 (1, 1, 1) M/c2 (3, 1, 2) M/c3 (2, 1, 3) 2 4 6 *The minimum is for & it is unique. Add this to partial schedule PS3 PS3 = {(1, 1, 1), (2, 1, 3), (3, 1, 2)} f1 = 2, f2 = 2, f3 = 4

  32. At this stage for two operation • Thus priority rule must e involved to choose between (1, 2, 2) and (4, 1, 1) R1 = 7 R4 = 7 • MWKR is not unique. • Now SPT is used as tie breaker & t122 = t411 • After it is resolved randomly in favor of (4, 1, 1) PS4 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1)} f1 = 5, f2 = 2, f3 = 4

  33. S4 = {(1, 2, 2), (2, 2, 2), (3, 2, 3), (4, 2, 3)} Operation 1 of job 4 in M/c 1 takes 5 minutes

  34. Now (1, 2, 2) is added to PSt • Thus PS5 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2)} f1 = 5, f2 = 5, f3 = 4 Now S5 = {(1, 3, 3), (2, 2, 2), (3, 2, 3), (4, 2, 3)}

  35. This minimum corresponds to (3, 2, 3) only partial schedule PS6 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2), (3, 2, 3)} • In this way we have to proceed to stage to complete the entire schedule The final schedule is given as P12 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2), (3, 2, 3) (2, 2, 2), (2, 3, 1), (4, 2, 3), (3, 3, 1), (1, 3, 3), (4, 3, 2)}

  36. M/c1 (1, 1, 1) (4, 1, 1) (2, 3, 1) (3, 3, 1) 2 5 9 10 13 M/c2 (3, 1, 2) (1, 2, 2) (2, 2, 2) (4, 3, 2) 2 M/c3 (2, 1, 3) (3, 2, 3) (4, 2, 3) (1, 3, 3)

  37. Further Reading 1. Scheduling, Theory, Algorithms, and Systems, Michael Pinedo, Prentice Hall, 1995, or new: Second Addition, 2002 Chapter 6 or 2. Operations Scheduling with Applications in Manufacturing and Services, Michael Pinedo and Xiuli Chao, McGraw Hill, 2000Chapter 5

  38. THANKS

More Related