Some Introductory Remarks on Operations Scheduling
The basic scheduling problem addressed in workflow management How to prioritize the (exclusive) allocation of a finite set of reusable resources to a set of contesting “jobs” so that certain performance criteria are optimized. In some more complex systems, the scheduling policy must also guarantee the correct operation of the underlying system from a more logical / behavioral standpoint (e.g., there might be a need to avoid potential deadlocks). The last concern is particularly prominent in flexibly automated operations.
The need for behavioral control R3R3 R2R2 R1R1 J 1 : R 1 R 2 R 3 J 2 : R 3 R 2 R 1
Some factors defining a scheduling problem and its complexity Structure of the contesting jobs: single tasks or multiple tasks per job, and in the case of multi-task jobs, the sequential logic that drives the execution of these tasks. Number of distinct resource types and the “capacity” of each type (i.e., the number of distinct units from this type). Processing-time distributions for the different tasks involved. Resource operational modes and availabilities Job arrival patterns: static vs. dynamic Allowance for preemption Possibility of insertion of deliberate idleness Other possible dependencies among the different jobs in the form of priorities, synchronizations, etc.
Scheduling objectives Maximize the throughput that can be delivered in a stable manner Control the experienced delays by the various jobs Control the accumulated WIP Meet due dates and control the corresponding implications of failing to do so Control set-up costs, preventive maintenance costs, etc. Etc.
The complexity of the scheduling problems Scheduling problems are combinatorial optimization problems that become intractable very fast, even for rather simple instantiations. From a theoretical standpoint, they have been studied by IE / OR, Operations Management, and (Stochastic Optimal) Control theory. The relevant literature is vast and the corresponding results very interesting and technically savvy. But in the context of operations / shop-floor scheduling, these problems are addressed by defining a rather simple sequencing policy for each workstation; these policies are collectively known as “dispatching rules” in the relevant literature. Popular dispatching rules have established their broad acceptance on their ability to do well in some simpler settings, in particular, some single-machine scheduling problems. Also, focusing on single-machine scheduling is further justified in many industrial settings by the presence of a well-defined bottleneck station. In such a case, the problem boils down to the efficient scheduling of the bottleneck station, while the scheduling of the other stations should align to the needs and the logic of the bottleneck schedule.
An example on bottleneck-based scheduling Mashing (1 mashing tun) Boiling (1 brew kettle) Fermentation (3 40-barrel ferm. tanks) Filtering (1 filter tank) Bottling (1 bottling station) Grain cracking (1 milling machine) Fermentation Times:
Single-Workstation Scheduling Please, refer to: your class notes from the in-class developments, and the corresponding material posted at the library electronic reserves