7.3 Production Sequencing, Dispatching Rules & Johnson's Algorithm

Key Takeaways

  • Single-machine scheduling performance metrics—mean flow time, makespan, mean lateness, and mean tardiness—capture distinct operational objectives; while makespan is fixed for any non-preemptive sequence, flow time and tardiness depend heavily on job dispatch order.

  • Shortest Processing Time (SPT) mathematically minimizes mean flow time, mean completion time, mean waiting time, and average work-in-process (WIP) level via Little's Law.

  • Earliest Due Date (EDD) minimizes the maximum lateness (L_{max}) and maximum tardiness (T_{max}) according to Jackson's Theorem, making it the optimal rule when severe contractual penalties apply to late jobs.

  • Critical Ratio (CR=Due Date−Current TimeRemaining Processing Time\text{CR} = \frac{\text{Due Date} - \text{Current Time}}{\text{Remaining Processing Time}}) provides a dynamic dispatching index: CR<1\text{CR} < 1 signals a job behind schedule, CR=1\text{CR} = 1 is exactly on schedule, and CR>1\text{CR} > 1 represents positive slack.

  • Johnson's Rule guarantees the optimal minimum makespan for n jobs across a two-machine flow shop by sequencing jobs with shortest processing time on Machine 1 earliest and Machine 2 latest.

Last updated: October 2026

Production Sequencing, Dispatching Rules & Johnson's Algorithm

Operations scheduling transforms aggregate production plans and master production schedules into actionable, short-interval execution sequences on the factory floor. While aggregate planning operates across monthly buckets, production scheduling allocates specific jobs, tooling, and labor to discrete machines over shift, hourly, or minute-by-minute timeframes.

In manufacturing environments, sequencing determines the exact order in which waiting jobs are processed at a workstation. Because machine capacity is finite, queue dispatching decisions dictate manufacturing lead times, work-in-process (WIP) accumulation, machine utilization, and on-time customer delivery performance.


1. Single-Machine Scheduling Framework & Performance Measures

The fundamental building block of scheduling theory is the single-machine model (1∣∣γ1 || \gamma). In this formulation, nn distinct jobs are available at time t=0t = 0 awaiting processing on a single, continuously available processing unit. Preemption is prohibited (once processing begins on a job, it must run to completion without interruption).

Primary Job Attributes

For each job i∈{1,2,…,n}i \in \{1, 2, \dots, n\}:

  • Processing Time (pip_i): The required machine execution time (including setup, run time, and teardown).
  • Due Date (did_i): The committed contractual completion deadline.
  • Ready / Release Time (rir_i): The earliest time job ii is physically available for processing (ri=0r_i = 0 for static scheduling).

Mathematical Performance Metrics

Let CiC_i denote the completion time of job ii under a given schedule sequence. The primary operational evaluation metrics are formulated as follows:

  1. Flow Time (FiF_i): The total elapsed span spent by job ii in the shop environment: Fi=Ci−ri=Ci(when ri=0)F_i = C_i - r_i = C_i \quad (\text{when } r_i = 0)
  2. Makespan (CmaxC_{max}): The total completion time of the entire job batch: Cmax=max⁡1≤i≤nCi=∑i=1npiC_{max} = \max_{1 \le i \le n} C_i = \sum_{i=1}^n p_i Crucial Property: For any non-preemptive single-machine problem without inserted idle time, makespan is strictly constant, equal to the sum of all processing times regardless of the dispatch sequence.
  3. Mean Flow Time (Fˉ\bar{F}): The average system residence time across all nn jobs: Fˉ=1n∑i=1nFi=1n∑i=1nCi\bar{F} = \frac{1}{n} \sum_{i=1}^n F_i = \frac{1}{n} \sum_{i=1}^n C_i
  4. Average Work-in-Process (WIP‾\overline{WIP}): By Little's Law (L=λWL = \lambda W), the average number of jobs residing in the shop is: WIP‾=∑i=1nFiCmax=nFˉCmax\overline{WIP} = \frac{\sum_{i=1}^n F_i}{C_{max}} = \frac{n \bar{F}}{C_{max}} Minimizing mean flow time Fˉ\bar{F} directly minimizes factory WIP inventory.
  5. Lateness (LiL_i): The deviation of completion time from committed due date: Li=Ci−diL_i = C_i - d_i
    • Li>0L_i > 0: Job is late (completed after due date).
    • Li<0L_i < 0: Job is early (completed ahead of due date).
    • Mean Lateness (Lˉ\bar{L}): Lˉ=1n∑i=1nLi=Fˉ−dˉ\bar{L} = \frac{1}{n} \sum_{i=1}^n L_i = \bar{F} - \bar{d}.
  6. Tardiness (TiT_i): The non-negative measure of lateness (penalizes tardy jobs while treating early completion as zero penalty): Ti=max⁡(0,Ci−di)=max⁡(0,Li)T_i = \max(0, C_i - d_i) = \max(0, L_i)
    • Mean Tardiness (Tˉ\bar{T}): Tˉ=1n∑i=1nTi\bar{T} = \frac{1}{n} \sum_{i=1}^n T_i.
    • Maximum Tardiness (TmaxT_{max}): Tmax=max⁡1≤i≤nTiT_{max} = \max_{1 \le i \le n} T_i.
  7. Number of Tardy Jobs (NTN_T): The count of jobs missing their committed due dates: NT=∑i=1nUiwhere Ui={1if Ci>di0if Ci≤diN_T = \sum_{i=1}^n U_i \quad \text{where } U_i = \begin{cases} 1 & \text{if } C_i > d_i \\ 0 & \text{if } C_i \le d_i \end{cases}

2. Priority Dispatching Rules & Optimality Theorems

When multiple jobs queue before a machine, dispatching heuristics prioritize the sequence of execution.

Dispatching Rule Taxonomy:
├── Static Rules (Calculated once at t = 0)
│   ├── FCFS (First-Come, First-Served) -> Baseline fairness, poor inventory efficiency
│   ├── SPT (Shortest Processing Time)   -> Minimizes mean flow time, completion time & WIP
│   ├── WSPT (Weighted SPT / Smith)     -> Minimizes weighted flow time sum(w_i * F_i)
│   ├── EDD (Earliest Due Date)          -> Minimizes maximum lateness L_max & max tardiness T_max
│   └── Moore-Hodgson Algorithm          -> Minimizes total number of tardy jobs N_T
└── Dynamic Rules (Recalculated dynamically as current time t advances)
    ├── CR (Critical Ratio)              -> Sequence ascending CR = (d_i - t) / p_i
    └── STR (Slack Time Remaining)       -> Sequence ascending STR = (d_i - t) - p_i

Shortest Processing Time (SPT) Rule

Under SPT, jobs are ordered in ascending order of their processing durations:

p[1]≤p[2]≤⋯≤p[n]p_{[1]} \le p_{[2]} \le \dots \le p_{[n]}

Important

Smith's Theorem (1956): The Shortest Processing Time (SPT) sequencing rule mathematically guarantees the minimum mean flow time (Fˉ\bar{F}), minimum mean completion time, minimum mean waiting time, and minimum average work-in-process (WIP‾\overline{WIP}) for any single-machine scheduling problem.

Proof Intuition: Under sequence [1,2,…,n][1, 2, \dots, n], completion times accumulate as C1=p1C_1 = p_1, C2=p1+p2C_2 = p_1 + p_2, ..., Cn=∑piC_n = \sum p_i. Summing completion times yields: ∑i=1nCi=np[1]+(n−1)p[2]+(n−2)p[3]+⋯+1p[n]\sum_{i=1}^n C_i = n p_{[1]} + (n-1) p_{[2]} + (n-2) p_{[3]} + \dots + 1 p_{[n]} To minimize this dot product, the largest multiplier coefficients (n,n−1,…n, n-1, \dots) must pair with the smallest processing times pip_i, proving that sorting pip_i ascending minimizes total flow time.

Weighted Shortest Processing Time (WSPT): If jobs carry different holding or inventory carrying weights wiw_i, the WSPT rule (Smith's Rule) minimizes total weighted flow time ∑i=1nwiFi\sum_{i=1}^n w_i F_i by sequencing jobs in descending order of the ratio:

w[1]p[1]≥w[2]p[2]≥⋯≥w[n]p[n]\frac{w_{[1]}}{p_{[1]}} \ge \frac{w_{[2]}}{p_{[2]}} \ge \dots \ge \frac{w_{[n]}}{p_{[n]}}

Earliest Due Date (EDD) Rule

Under EDD, jobs are ordered in ascending order of their committed delivery due dates:

d[1]≤d[2]≤⋯≤d[n]d_{[1]} \le d_{[2]} \le \dots \le d_{[n]}

Important

Jackson's Theorem (1955): The Earliest Due Date (EDD) sequencing rule mathematically minimizes the maximum lateness (LmaxL_{max}) and the maximum tardiness (TmaxT_{max}) for any single-machine scheduling problem.

When an industrial facility faces steep contractual penalty clauses for any job delivered exceptionally late, EDD is the provably optimal dispatching policy.

Critical Ratio (CR) Rule

Critical Ratio (CRCR) is an operational dynamic dispatching heuristic that evaluates the ratio of available slack time to remaining work at the current scheduling decision epoch tt:

CRi=di−tpiCR_i = \frac{d_i - t}{p_i}

  • CRi<1.0CR_i < 1.0 (Behind Schedule): Available time until due date is less than remaining processing duration. The job will be late unless expedited. Priority increases as CRCR decreases.
  • CRi=1.0CR_i = 1.0 (On Schedule): Job has zero slack; if initiated immediately, it completes precisely on its due date.
  • CRi>1.0CR_i > 1.0 (Ahead of Schedule): Job has positive slack time available.
  • CRi≤0CR_i \le 0 (Already Past Due): Due date has already passed (t≥dit \ge d_i). These jobs require immediate emergency intervention.

Dispatch Logic: Sequence available jobs in ascending order of Critical Ratio (smallest CRCR first).

Slack Time Remaining (STR)

Slack Time Remaining computes the absolute surplus margin before a job must commence to meet its deadline:

STRi=(di−t)−piSTR_i = (d_i - t) - p_i

Dispatching prioritizes jobs with the lowest STRiSTR_i. A variant for multi-operation routings is Slack Time Remaining per Operation (STR/OPSTR/OP):

STR/OPi=(di−t)−∑pijNumber of Remaining OperationsSTR/OP_i = \frac{(d_i - t) - \sum p_{ij}}{\text{Number of Remaining Operations}}

Moore-Hodgson Algorithm (Minimizing NTN_T)

To minimize the total number of late jobs (NTN_T), Moore and Hodgson developed an exact O(nlog⁡n)O(n \log n) algorithm:

  1. Sequence all nn jobs according to the EDD rule (d1≤d2≤⋯≤dnd_1 \le d_2 \le \dots \le d_n).
  2. Evaluate job completions sequentially. Find the first tardy job in the sequence (Ck>dkC_k > d_k). If no jobs are tardy, the current schedule is optimal.
  3. Identify the job in the current set of scheduled jobs {1,2,…,k}\{1, 2, \dots, k\} that has the largest processing time (p∗=max⁡1≤j≤kpjp^* = \max_{1 \le j \le k} p_j).
  4. Remove that job from the active schedule and assign it to a rejected pool to be processed at the very end of the schedule (in any order).
  5. Recalculate completion times for remaining jobs and repeat steps 2–4 until no scheduled jobs are tardy. The resulting schedule minimizes NTN_T.

3. Two-Machine Flow Shop Sequencing: Johnson's Rule

When production expands beyond a single workstation to multiple processing centers in series, scheduling complexity escalates rapidly. The classical Two-Machine Flow Shop Problem (F2∣∣CmaxF_2 || C_{max}) models nn jobs processed sequentially across two machines, M1M_1 and M2M_2.

Two-Machine Flow Shop Architecture:
   [Job Queue] ===> [ Machine 1 (A_i) ] ===> [ Machine 2 (B_i) ] ===> [ Completed ]
   (All n jobs)      First Operation          Second Operation         Shipment

Problem Formulation

  • Every job i∈{1,…,n}i \in \{1, \dots, n\} must be processed first on Machine 1, and subsequently on Machine 2.
  • Operation time for job ii on Machine 1 is AiA_i.
  • Operation time for job ii on Machine 2 is BiB_i.
  • Machine 2 cannot begin working on job ii until Machine 1 completes job ii (C2,i≥C1,i+BiC_{2, i} \ge C_{1, i} + B_i).
  • Both machines process jobs in identical permutation sequence.

Johnson's Algorithm (1954)

S.M. Johnson proved that a simple sorting heuristic finds the globally optimal sequence that minimizes the total makespan (CmaxC_{max}) across both machines.

Step-by-Step Algorithmic Procedure:

  1. Compile Processing Matrix: Tabulate processing times AiA_i (Machine 1) and BiB_i (Machine 2) for all unscheduled jobs.
  2. Identify Global Minimum: Scan all remaining processing times across both machines to locate the smallest value: p∗=min⁡i{Ai,Bi}p^* = \min_{i} \{A_i, B_i\}
  3. Conditional Assignment:
    • If the minimum processing time occurs on Machine 1 (AiA_i): Schedule job ii in the earliest available unassigned position (toward the beginning of the sequence).
    • If the minimum processing time occurs on Machine 2 (BiB_i): Schedule job ii in the latest available unassigned position (toward the end of the sequence).
  4. Tie-Breaking Protocols:
    • If a tie occurs between Machine 1 and Machine 2 (Ai=BjA_i = B_j), place job ii at the beginning and job jj at the end.
    • If a tie occurs between two jobs on Machine 1 (Ai=AjA_i = A_j), arbitrarily place either job first.
    • If a tie occurs between two jobs on Machine 2 (Bi=BjB_i = B_j), arbitrarily place either job last.
  5. Iterate: Remove the assigned job from the candidate list and repeat steps 2–4 until all nn jobs have been sequenced.

Gantt Chart Construction & Makespan Calculation

Let [1],[2],…,[n][1], [2], \dots, [n] denote the sequence determined by Johnson's algorithm. Tracking completion times recursively:

  • Machine 1 Completion Times: Machine 1 runs continuously with zero idle time: C1,[1]=A[1]C_{1, [1]} = A_{[1]} C1,[k]=C1,[k−1]+A[k]∀k=2,…,nC_{1, [k]} = C_{1, [k-1]} + A_{[k]} \quad \forall k = 2, \dots, n
  • Machine 2 Completion Times: Machine 2 cannot start job [k][k] until Machine 2 finishes job [k−1][k-1] AND Machine 1 finishes job [k][k]: C2,[1]=A[1]+B[1]C_{2, [1]} = A_{[1]} + B_{[1]} C2,[k]=max⁡(C2,[k−1],C1,[k])+B[k]∀k=2,…,nC_{2, [k]} = \max(C_{2, [k-1]}, C_{1, [k]}) + B_{[k]} \quad \forall k = 2, \dots, n
  • Machine 2 Idle Time: Idle time occurs on Machine 2 whenever C1,[k]>C2,[k−1]C_{1, [k]} > C_{2, [k-1]} (Machine 2 is waiting for Machine 1 to finish): I2,[k]=max⁡(0,C1,[k]−C2,[k−1])I_{2, [k]} = \max(0, C_{1, [k]} - C_{2, [k-1]})
  • Total Makespan (CmaxC_{max}): The completion time of the final job on Machine 2: Cmax=C2,[n]C_{max} = C_{2, [n]}

4. Job Shop Scheduling Complexity and Advanced Heuristics

While flow shops enforce identical, unidirectional routings across all jobs, job shops (Jm∣∣γJ_m || \gamma) feature complex, multi-directional routings. Each job follows an individualized technological route sheet (e.g., Job 1 routes Lathe →\to Mill →\to Grind; Job 2 routes Mill →\to Lathe →\to Assembly).

Combinatorial Complexity

A general job shop with nn jobs and mm machines exhibits extreme combinatorial complexity. The theoretical schedule space contains (n!)m(n!)^m active schedules. For a modest shop with 10 jobs and 5 machines:

(10!)5=(3,628,800)5≈6.29×1032 candidate schedules(10!)^5 = (3{,}628{,}800)^5 \approx 6.29 \times 10^{32} \text{ candidate schedules}

General job shop scheduling is proven NPNP-hard. Finding guaranteed optimal schedules via exact mathematical programming (mixed-integer linear programming, branch-and-bound) is computationally intractable for industrial scales, forcing reliance on advanced heuristics.

The Shifting Bottleneck Heuristic (SBH)

Developed by Adams, Balas, and Zawack (1988), the Shifting Bottleneck Heuristic is one of the most powerful and widely cited algorithms for job shop scheduling:

  1. Decomposition: The overall job shop problem is decomposed into mm single-machine subproblems.
  2. Bottleneck Identification: For each unsequenced machine, release dates rir_i and due dates did_i are derived from preceding and succeeding operations. Each machine is analyzed as a single-machine problem with release dates minimizing maximum lateness (1∣ri∣Lmax1 | r_i | L_{max}, solved using Carlier's exact algorithm or Schrage's heuristic).
  3. Bottleneck Selection: The machine exhibiting the largest maximum lateness LmaxL_{max} is identified as the current critical bottleneck.
  4. Fix Sequence: The sequence of operations on this bottleneck machine is permanently locked into the global schedule.
  5. Shifting / Re-optimization Phase: Every time a new bottleneck machine is sequenced, previously scheduled machines are systematically re-optimized to capture newly created schedule constraints.
  6. Termination: Repeat until all mm machines have been sequenced.

5. Worked Engineering Examples

Example 1: Comparing Dispatching Rules on a Single Machine

Problem Statement: Five jobs are waiting to be processed on a CNC vertical machining center at time t=0t = 0. Job processing times and committed due dates are:

JobProcessing Time (pip_i, hours)Due Date (did_i, hours)
J159
J236
J3815
J427
J5612

Evaluate the schedule under Shortest Processing Time (SPT) and compute: makespan (CmaxC_{max}), mean flow time (Fˉ\bar{F}), average WIP (WIP‾\overline{WIP}), maximum lateness (LmaxL_{max}), and maximum tardiness (TmaxT_{max}).

Solution:

Step 1: Order jobs by SPT (pip_i ascending): Sequence: J4 (2) →\to J2 (3) →\to J1 (5) →\to J5 (6) →\to J3 (8)

Step 2: Compute schedule timeline:

SequenceJobpip_iCompletion Time (CiC_i)Due Date (did_i)Lateness (Li=Ci−diL_i = C_i - d_i)Tardiness (TiT_i)
1J42272−7=−52 - 7 = -50
2J232+3=52 + 3 = 565−6=−15 - 6 = -10
3J155+5=105 + 5 = 10910−9=+110 - 9 = +11
4J5610+6=1610 + 6 = 161216−12=+416 - 12 = +44
5J3816+8=2416 + 8 = 241524−15=+924 - 15 = +99
Total245714

Step 3: Compute Performance Metrics:

  • Makespan (CmaxC_{max}): 24 hours24\text{ hours}
  • Total Flow Time: ∑Ci=2+5+10+16+24=57 hours\sum C_i = 2 + 5 + 10 + 16 + 24 = 57\text{ hours}
  • Mean Flow Time (Fˉ\bar{F}): 575=11.40 hours\frac{57}{5} = 11.40\text{ hours}
  • Average WIP (WIP‾\overline{WIP}): ∑FiCmax=5724=2.375 jobs\frac{\sum F_i}{C_{max}} = \frac{57}{24} = 2.375\text{ jobs}
  • Maximum Lateness (LmaxL_{max}): max⁡(−5,−1,1,4,9)=+9 hours\max(-5, -1, 1, 4, 9) = +9\text{ hours}
  • Maximum Tardiness (TmaxT_{max}): max⁡(0,0,1,4,9)=9 hours\max(0, 0, 1, 4, 9) = 9\text{ hours}
  • Number of Tardy Jobs (NTN_T): 3 jobs (J1, J5, J3)

(Note: Under EDD [J2 →\to J4 →\to J1 →\to J5 →\to J3] the completion times are 3, 5, 10, 16, and 24 hours, so total flow time rises to 58 hours and Fˉ=11.6\bar{F} = 11.6 hours. LmaxL_{max} is still +9 hours with the same three tardy jobs. That is the best possible here: some job must finish at t=24t = 24, and the latest due date is 15, so no sequence can have LmaxL_{max} below 9.)


Example 2: Two-Machine Flow Shop Optimization via Johnson's Rule

Problem Statement: Five structural weldments must be processed sequentially across two dedicated workstations: Fit-up/Tack Welding (Machine 1) and Final Robotic Seam Welding (Machine 2). Processing times (in hours) are:

JobMachine 1 (AiA_i)Machine 2 (BiB_i)
J145
J283
J327
J468
J574

Determine the optimal sequence using Johnson's algorithm and calculate total makespan and idle time on Machine 2.

Solution:

Step 1: Execute Johnson's Algorithm Iterations:

  • Iteration 1: Smallest processing time overall is 2 hours (Job 3 on Machine 1). Because it is on Machine 1, place J3 in the first available slot. Current sequence: [ J3, __, __, __, __ ]
  • Iteration 2: Smallest remaining processing time is 3 hours (Job 2 on Machine 2). Because it is on Machine 2, place J2 in the last available slot. Current sequence: [ J3, __, __, __, J2 ]
  • Iteration 3: Smallest remaining processing times are 4 hours (Job 1 on Machine 1, and Job 5 on Machine 2):
    • Job 1 (A1=4A_1 = 4 on M1)   ⟹  \implies place J1 in earliest available slot.
    • Job 5 (B5=4B_5 = 4 on M2)   ⟹  \implies place J5 in latest available slot. Current sequence: [ J3, J1, __, J5, J2 ]
  • Iteration 4: Only Job 4 remains. Place J4 in the final remaining middle slot. Optimal sequence: [ J3 →\to J1 →\to J4 →\to J5 →\to J2 ]

Step 2: Construct Schedule Timeline:

SequenceJobM1M_1 StartM1M_1 Duration (AiA_i)M1M_1 End (C1,iC_{1,i})M2M_2 StartM2M_2 Duration (BiB_i)M2M_2 End (C2,iC_{2,i})M2M_2 Idle Time
1J30222792 (from 0 to 2)
2J124695140
3J46612148220
4J512719224260
5J219827273301 (from 26 to 27)

Step 3: Evaluate Results:

  • Makespan (CmaxC_{max}): 30 hours30\text{ hours}
  • Machine 1 Total Runtime: 2+4+6+7+8=27 hours2 + 4 + 6 + 7 + 8 = 27\text{ hours} (finishes at t=27t = 27)
  • Machine 2 Idle Time: 2 hours2\text{ hours} (waiting for J3 to finish on M1) +1 hour+ 1\text{ hour} (waiting from t=26t=26 to t=27t=27 for J2 to finish on M1) = 3 hours3\text{ hours} total idle time.
  • Machine 2 runtime is 7+5+8+4+3=277 + 5 + 8 + 4 + 3 = 27 hours. Total makespan = 27 runtime+3 idle=30 hours27\text{ runtime} + 3\text{ idle} = 30\text{ hours}.
Test Your Knowledge

A production shop has five independent jobs waiting for execution at a single workstation at time t = 0. The job processing times are: Job 1 = 5 hr, Job 2 = 3 hr, Job 3 = 8 hr, Job 4 = 2 hr, and Job 5 = 6 hr. If the shop supervisor sequences the jobs using the Shortest Processing Time (SPT) dispatching rule, what is the resulting mean flow time?

A

14.2 hours

B

11.4 hours

C

11.6 hours

D

17.4 hours

Test Your Knowledge

Five jobs must be processed sequentially through two machines in series (Machine 1 then Machine 2). Processing times are: J1 (M1=4, M2=5), J2 (M1=8, M2=3), J3 (M1=2, M2=7), J4 (M1=6, M2=8), J5 (M1=7, M2=4). Using Johnson's Rule, what is the optimal sequence and the total makespan?

A

Sequence: J3 - J4 - J1 - J5 - J2; Makespan = 34 hours

B

Sequence: J2 - J5 - J4 - J1 - J3; Makespan = 37 hours

C

Sequence: J1 - J3 - J4 - J2 - J5; Makespan = 32 hours

D

Sequence: J3 - J1 - J4 - J5 - J2; Makespan = 30 hours

Sections you finish are checked off in the contents.