Production control and JIT production Project scheduling: Program evaluation and review technique (PERT) / critical path method (CPM) Single and two-machine scheduling: Some single machine problems, and Johnson's and Jackson's algorithm for two-machine case Flow shop scheduling: Graph representation, enumeration, and branch and bound Job shop scheduling: Graphical approach for two-job case, disjunctive graph representation, and dispatching rules Supplemental topics
The processing route (i.e., the order in which the machines are visited) is the same for all the jobs. Job shops The jobs have their own processing routes, and they may be different among the jobs. M1 M2 M3 M4 M1 M2 M3 M4 M1 M2 M3 M4
(3, 1) (1, 2) (2, 2) (3, 2) (1, 3) (2, 3) (3, 3) End • Operations on a same machine should be ordered (by adding arcs). • This must be done with keeping the graph acyclic. 0 0 0 30 40 20 70 40 50 20 60 80
= 1 M1 20 M1 10 𝑘 = 2 M2 10 M3 20 𝑘 = 3 M1 20 M2 20 𝑘 = 4 M2 40 --- --- Illustrative Example: Two-Job Case Processing routes* and processing times (min.) * The following solution approach can deal with the case where processing routes include recirculation (as is the case of J1 in the table).
M1 Horizontal lines: Only job 1 is being processed. Vertical lines: Only job 2 is being processed. Tilted lines: Both jobs are being simultaneously processed. 100分 110分 M1 M2 M1 M2 (1) (2) (3) J1 J2
which job should be loaded to a machine next, when the machine becomes available, and two or more jobs are waiting to be processed on the machine. • This decision is not only made online for production control, but also offline for making a production schedule. Dispatching rules • Dispatching decision is often made according to a rule, which is called a dispatching rule. • There are various dispatching rules, such as those shown next. Dispatching and Dispatching Rules
FCFS (First-Come First-Served): Queue-type buffer • LCFS (Last-Come First-Served): Stack-type buffer • SPT (Shortest Processing Time): Serve the one with the smallest 𝑝!#. • LPT (Longest Processing Time): Serve the one with the largest 𝑝!#. • SQNO (Shortest Queue at the Next Operation): Serve the one with the largest queue size (in terms of the number or processing time) at the next machine 𝜇!#1&. • SST (Shortest Setup Time): Serve the one with the shortest setup time, in the case of sequence-dependent-setup-time. Typical Dispatching Rules #1
one with the largest ∑ 23# |(#| 𝑝!2. • LRM (Largest ReMaining processing time): Serve the one with the largest ∑ 23#1& |(#| 𝑝!2. • SPT/TWKR (Smallest Processing Time/Total WorK Remaining): Serve the one with the smallest 𝑝!# / ∑ 23# |(#| 𝑝!2. • EDD (Earliest Due Date): Serve the one with the smallest 𝑑!. • MS (Minimum Slack): Serve the one with the smallest slack 𝑑! − 𝑡 − ∑ 23# |(#| 𝑝!2. Typical Dispatching Rules #2
available, and put each job in the queue of the machine which carries out its first operation. Step 2: For each machine which is available and whose queue is not empty, choose a job in the queue according to the dispatching rule, load it to the machine, and set the machine as busy. Step 3: Advance the time until one or more machines complete the current operation, and set the machines as available. If each finished operation is not the job’s final operation, put the job in the queue of the machine which carries out its next operation. Step 4: If all the jobs are finished, stop the procedure. Otherwise, go back to Step 2. Dispatching Rule Based Scheduling