Manufacturing sequencing is the deterministic process of determining the exact order in which jobs are processed across a set of machines or workstations. In high-precision environments like semiconductor fabrication or automotive assembly, optimal sequencing is the primary driver of throughput and asset utilization.
The Job Shop Scheduling Problem (JSSP) is one of the most computationally challenging problems in combinatorial optimization (NP-hard). It consists of n jobs that must be processed on m machines. Each job has a specific route (sequence of machines) and a deterministic processing time on each machine.
Minimize the Makespan (C_{max}), defined as:
Where f_{ij} is the finish time of job i on machine j.
Constraints include:
While small instances can be solved via Branch and Bound, real-world production environments require advanced heuristics and metaheuristics.
Developed by Adams, Balas, and Zawack (1988), this heuristic treats each machine as a 1-machine scheduling problem. It identifies the "bottleneck" machine (the one that contributes most to the current makespan) and optimizes it using the Carlier Algorithm, then "shifts" to the next bottleneck.
Modern Manufacturing Execution Systems (MES) utilize:
Semiconductor "fabs" represent the pinnacle of sequencing complexity, involving re-entrant flows where a single wafer passes through the same photolithography machine dozens of times.
The Challenge: Intel and TSMC manage hundreds of machines with thousands of wafers-in-process (WIP). A 1% improvement in makespan equates to tens of millions of dollars in increased annual capacity.
The Solution: Implementation of Hybrid Dispatching Rules. Instead of simple First-In-First-Out (FIFO), fabs use a weighted combination of:
In a Flow Shop, every job follows the same machine sequence. This structure allows for more efficient optimization using Johnson’s Rule (for 2 machines) or the NEH Heuristic (Nawaz-Enscore-Ham) for m machines, which remains the most robust constructive heuristic for flow shop sequencing.
See Also: