a clean environment. Outputs : Outputs are the products produced in factories either for other factories or for the end buyer. The extent to which any one product is produced within any one factory is governed by transaction cost. Output within the factory : The output of any one work area within the factory is an input to the next work area in that factory according to the manufacturing process. For example, the output of cutting is an input to the bending room. Output for the next factory : By way of example, the output of a paper mill is an input to a print factory. The output of a petrochemicals plant is an input to an asphalt plant, a cosmetics factory and a plastics factory. Output for the end buyer : Factory output goes to the consumer via a service business such as a retailer or an asphalt paving company. Resource allocation : Resource allocation is assigning inputs to produce output. The aim is to maximize output with given inputs or to minimize quantity of inputs to produce required output. Scheduling algorithms Production scheduling can take a significant amount of computing power if there are a large number of tasks. Therefore, a range of short-cut algorithms (heuristics) (a.k.a. dispatching rules) are used: Stochastic Algorithms : Economic Lot Scheduling Problem and Economic production quantity Heuristic Algorithms : Modified due date scheduling heuristic and Shifting bottleneck heuristic Batch production scheduling Background Batch production scheduling is the practice of planning and scheduling of batch manufacturing processes. See Batch production. Although scheduling may apply to traditionally continuous processes such as refining, it is especially important for batch processes such as those for pharmaceutical active ingredients, biotechnology processes and many specialty chemical processes. Batch production scheduling shares some concepts and techniques with finite capacity scheduling which has been applied to many manufacturing problems. The specific issues of scheduling batch manufacturing processes have generated considerable industrial and academic interest. Scheduling in the batch processing environment A batch process can be described in terms of a recipe which comprises a bill of materials and operating instructions which describe how to make the product. The ISA S88 batch process control standard provides a framework for describing a batch process recipe. The standard provides a procedural hierarchy for a recipe. A recipe may be organized into a series of unit-procedures or major steps. Unit-procedures are organized into operations,