You are on page 1of 5

Note 11: Shop Scheduling

Shop scheduling is concerned with detailed scheduling of machines in the shop as well as shop loading on a daily or shift level. Characteristics of the problem are: All data are assumed to be deterministic; The material handling system is not considered a critical resource, and travel times from machine to machine are not considered; Each machine can process only one job/operation at any one time and each job/operation can be processed on only one machine at a time; Once an operation starts on a machine, the operation runs until completion. Preemption stopping an operation before completion and putting another operation on the machine, is not permitted. Assume that we are to schedule a set of N jobs (j = 1, ..., N ) on a set of M machines (i = 1, ..., M ). Each job has a routing, an ordered list of the machines that the job visits. An operation is performed when each job visits each machine. A job may visit a machine more than once (these are termed re-entrant shops); however, we will concentrate on cases in which each job visits each machine at most once. Let Pj be the set of operations in the routing for job j, tkj the processing time for operation k of job j. For each job, we dene dj as the due date of job j and rj as the release date for job j (date at which material for the start of processing of job j is rst available, and hence we can begin processing of job j on or after rj ). When all jobs have the same routing and visit each machine only one time, the system is termed a ow shop, and when jobs have dierent routings, the system is termed a job shop. Generalizations of the ow shop include the exible ow shop, in which each job takes the same route through the shop; however, there can be multiple machines of the same type and only one is used by a job, and the re-entrant ow shop, in which jobs may visit each machine multiple times. Dene Cj as the completion date for job j. Once the completion date is set, one can easily compute measures of performance for the job. Dene the jobs lateness as Lj = Cj dj . Because negative lateness (earliness) has a dierent cost than positive lateness, the jobs tardiness is dened by Tj = max{0, Cj dj }. For a given schedule for a particular time horizon, N T denotes the number of tardy jobs. The time a job spends in the system, the jobs ow time Fj , is the dierence between its completion date and its earliest start date or Fj = Cj rj . By Littles Law, ow time will relate directly to work-in-process inventory. Job lateness, tardiness, ow time, completion time, and N T are termed regular measure, because they cannot be improved by intentionally inserting idle time into the schedule. After computing job performance measures, system objectives are easily dened. One goal

is to minimize total system lateness, where


N

Total system lateness =


j=1

Lj .

We could simply use tardiness, ow time, or even simply completion time in the above relation and minimize total system tardiness, ow time, or completion time. Equivalent criteria would be to optimize average system lateness, tardiness, ow time, or completion time because the optimization solution does not change when the objective is scaled by a constant. The total lateness criterion has the problem that a small subset of jobs can be extremely late although the total lateness is as small as possible. Another goal is to balance performance across all jobs and nd a schedule that minimizes the maximum lateness (or tardiness, or ow time) over all jobs: Maximum lateness = max Lj .
j=1 N

Another goal of the system is to nd the schedule that minimizes the number of tardy jobs N T . The problem with this criterion is, once a job is tardy, there is no incentive to expedite the job, and it therefore yields schedules with a few jobs that are extremely late. The system goal can also be to minimize the total time, termed the makespan: Makespan = max Cj .
j=1 N

Jobs may dier in their importance levels, which can be measured by weights. The weighted lateness of job j is wj Lj if job j weighs wj . This weighing idea can be easily extended to weighted job tardiness, weighted job ow time, and weighted completion. Depicting a schedule is often done through the use of a Gantt chart. Each row in the chart represents a source in the system (machine, operator, or tooling for example). The rows consists of blocks representing job operation processing. The length of each block is proportional to the length of the processing time, and time is the dimension of the horizontal axis. Dispatching Rules. Suppose each machine i has Uit hours available during day t. Dene the set of jobs to be released in day t as Rt . The general dispatching rule is as follows: Step 1 (Initialization): Initialize each Rt to the empty set and compute Uit for each machine in each day (remember to consider jobs already released to the shop); Step 2 (Selection of jobs): If no job remains to be scheduled, then stop with the current Rt set. Otherwise, locate the job, j , with the highest priority index; Step 3 (Scheduling of jobs): Schedule j as early as possible so that no machine capacity constraints are violated. If j can be scheduled, add j to the appropriate Rt set and adjust 2

the Uit values to account for j being in the schedule starting on day t. Eliminate job j from the list of jobs to schedule. Return to Step 2. Many simple rules are readily available: Earliest due date: The job with the closest due date has the highest priority index. Shortest processing time: The job with the smallest total processing time, M tij , has i=1 the highest priority index. Shortest weighted processing time: The job with the smallest ratio of total processing time to job importance, M tij /wj , has the highest priority index. i=1 VIP: The job with the largest importance factor wj has the highest priority index. Minimum slack time: The job with the smallest slack time, dj M tij current time, i=1 has the highest priority index (if slack is negative, then the job must be late). Minimum percentage slack time: The job with the smallest percentage slack time, (dj M M i=1 tij current time)/ i=1 tij , has the highest priority index. Critical ratio: The job with the largest critical ratio value has the highest priority. Critical ratio is ( M tij )/(dj current time). If the job is late, then it has the highest critical ratio i=1 by caveat. Single Machine Scheudling. Minimize total ow time N Fj = N (Cj rj ). This is equivalent to minimize total j=1 j=1 n completion time j=1 Cj . This sum is equal to N (N j + 1)t[j] where [j] is the jth job j=1 in the sequence. So the optimal solution comes from the SPT rule: order the jobs so that t[1] t[2] t[N ] . When the criterion is to minimize the total weighted ow time WSPT rule: order the jobs so that t[1] /w[1] t[2] /w[2] t[N ] /w[N ] . Example: Consider a single-machine system with ve jobs and processing times and weights as in Table 1. How should the jobs be sequenced to minimize total weighted ow time, and what is the optimal objective value?
N j=1

wj Fj , we should use the

Table 1: The Job 1 2 tj 10 12 wj 2 1

WSPT Rule 3 4 5 8 15 12 1 2 3

Since

Lj =
j=1 j=1

(Cj dj ) =
j=1

Cj
j=1

dj ,

minimizing the system lateness is equivalent to minimizing the sum of completion times. To minimize maxN Lj or maxN Tj , we use the EDD rule: order jobs so that j=1 j=1 d[1] d[2] d[N ] . Example: Consider a single-machine system with ve jobs and processing times and due dates as in Table 2. How should the jobs be sequenced to minimize maximum tardiness, and what is the optimal objective value?

Table 2: Job 1 tj 10 dj 15

The 2 20 45

EDD Rule 3 4 5 8 12 18 10 70 45

We can use the adjacent pairwise exchange technique to prove that EDD is optimal. When jobs have dierent weights, we use WEDD rule: order jobs so that d[1] /w[1] d[2] /w[2] d[N ] /w[N ] . A method by Moore solves the problem of minimizing the total number of tardy jobs (N T ). Dene two sets of jobs, E, the set of early jobs, and T , the set of tardy jobs. The formal algorithm can be described as follows: Step 0 (Initialization): Set E to the set of all jobs and T to the empty set. Step 1 (Check for termination): Order the jobs in E in EDD order. If no job in E is tardy, then stopthe optimal schedule is to process the jobs in E in EDD order and then the jobs in T in any order. The optimal value of N T is the cardinality of T . Otherwise, go to Step 2. Step 2 (Finding a tardy job): Starting with the rst job in the sequence of E, compute the completion times of each job and nd the rst job in the sequence that is tardy. Assume that the rst tardy job in the sequence is [k]. Go to Step 3. Step 3 (Selecting the tardy job): Find the longest job in the subsequence [1] through [k]. Assume that this is job [j]. Delete [j] from E and add it to T . Return to Step 1. Example: You have six homework assignments to complete. Each assignment has a due date and an expected time to completion to thoroughly learn the material and earn an A grade. If an assignment is late, you receive no credit; however, you must still hand in the 4

assignment. How should you sequence the assignments to maximize the credit that you receive?

Table Job 1 tj 10 dj 15

3: The N T Rule 2 3 4 5 6 20 8 12 18 15 45 10 70 45 55

Scheduling Two MachinesJohnsons Rule When the system has only two machines, each job is to go through machine 1 rst and machine 2 next, and the criterion is to minimize the makespan, then we can use Johnsons rule. In this case, it can be shown that one needs only to consider permutation schedules in which each machine processes all jobs in the same order. In essence, the algorithm makes sure that the shorter a jobs machine 1 processing time and the longer its machine 2 processing time, the earlier in the sequence it appears. Let t1j be the processing time of job j on machine 1 and t2j be the processing time of job j on machine 2. Johnsons rule is as follows: Step 0 (Initialization): Find the minimum of t1j and t2j for each job j. Denote this value as tj , and note for each job the machine in which the minimum occurs. Sort the tj values from low to high. Initialize the sequence S to ; the pointers into the sequence, L, to 1, and H, to N ; and the index in the list of tj values, k, to 1. Go to Step 1. Step 1 (Insert in sequence): Consider the kth value in the sorted list of tj values. If this minimum occurs on the rst machine, then put job j in the Lth position in S and increase L by 1. If this minimum occurs on the second machine, then put job j in the Hth position in S and decrease H by 1. Increase k by 1, and go to Step 2. Step 2 (Completion): If k > N , then stop, otherwise return to Step 1. Example: Consider a laundry operation with one washing machine and one dryer. Six loads of clothing must go through both operations in the sequence washingdrying. Table 4 lists the processing time for each load on each machine. How should one sequence the loads so that the laundry is completed as soon as possible?

Table 4: Johnsons Rule Load 1 2 3 4 5 6 t1j 15 40 5 20 25 20 t2j 20 20 15 15 30 25

You might also like