Production Scheduling for the McGuiness & Co. Microbrewery A Production Planning & Control Framework Tactical Planning Demand Forecasting Production Scheduling Capacity Planning Material Requirements Planning Execution Sales order Processing Purchasing Production Control Inventory records Shop-floor data Collection Recording The Production Scheduling Problem Capacity Company Product Economic Consts. Policies Charact. Considerations Placed Orders Forecasted Demand Current Inventory Positions Production Scheduling Already Initiated Production Planning Horizon Master Production Schedule: When & How Much to produce for each product Time unit Capacity Planning Problem Specialization for McGuinness Microbrewery Case Study • Capacity Constraints: Number and capacity of fermentors • Company Policies: – Product cannot be shelved for more than 2 months – Production in a fermentor can be started at any level of its capacity. • Product Characteristics: – Production lead times • Economic Considerations: (Unnecessary) Inventories should be minimized (consistent with the Just-In-Time philosophy) • Planning Horizon: 6-12 months (based on production lead times, product seasonalities, and product obsolescence) • Time unit: 1 week (based on the order of production lead times) Possible Approaches • Empirical Approach: Spreadsheet-based Simulation • Analytical Approach: Mathematical (Integer) Programming formulation The Driving Logic for the Empirical Approach Demand Availability: •Initial Inventory Position •Scheduled Receipts Compute Future Inventory Positions Net Requirements Future inventories Lot Sizing Scheduled Releases Resource (Fermentor) Occupancy Feasibility Testing Product i Schedule Infeasibilities Master Production Schedule Revise Prod. Reqs Example: Implementing the Empirical Approach in Excel # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 0 2 0 3 0 2 0% 0 2 0% 0 2 0% 0 Fermentation Time: 0 1 45 200 1 100 255 Fermentation Time: 0 1 35 150 2 2 115 3 Shelf Life: 20 4 0 5 0 6 0 7 0 8 0 9 0 10 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 4 5 6 7 8 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 45 5 -35 35 -40 40 -40 40 3 2 3 4 5 6 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 15 -25 25 -40 40 -40 40 -40 40 -50 50 -50 50 Computing Inventory Positions and Net Requirements Inventory Position: IPi = max{IPi-1,0}+ SRi+BNRi -Di (Material Balance Equation) (IPi-1)+ SRi+BNRi i Di IPi Net Requirement: NRi = abs(min{0, IPi}) Problem Decision Variables: Scheduled Releases # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 0 2 0 3 0 2 0% 0 2 0% 0 2 0% 0 Fermentation Time: 0 1 45 200 1 100 2 2 255 3 Shelf Life: 20 4 0 5 0 6 1 7 1 8 0 9 0 10 0 2 0% 0 2 0% 0 2 100% 0 2 100% 0 2 0% 0 2 0% 0 2 0% 0 6 7 8 4 5 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 45 5 165 125 85 200 200 1 1 Fermentation Time: 0 1 35 150 115 3 2 3 4 5 6 1 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 15 -25 25 -40 40 -40 40 -40 40 -50 50 -50 50 Testing the Schedule Feasibility # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 0 2 1 3 1 2 0% 0 2 100% 0 2 2 Fermentation Time: 0 1 45 200 1 100 255 Shelf Life: 20 4 1 5 0 6 1 2 100% 0 2 100% 0 2 0% 0 3 4 5 8 1 9 1 10 0 2 100% 0 7 2 NO 2 200% 0 2 100% 0 2 100% 0 2 0% 0 6 7 8 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 45 5 165 125 85 200 200 1 1 Fermentation Time: 0 1 35 150 115 3 2 3 4 5 6 1 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 15 175 135 95 55 5 155 200 200 1 1 1 1 200 200 1 1 1 1 Fixing the Original Schedule # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 0 2 1 3 1 2 0% 0 2 100% 0 2 2 Fermentation Time: 0 1 45 200 1 100 255 Shelf Life: 20 4 1 5 1 6 1 7 1 8 1 9 1 10 0 2 100% 0 2 100% 0 2 100% 0 2 100% 0 2 100% 0 2 100% 0 2 100% 0 2 0% 0 3 4 5 6 7 8 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 45 205 165 125 85 200 200 1 1 Fermentation Time: 0 1 35 150 115 3 2 3 4 5 1 6 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 15 175 135 95 55 5 155 200 200 1 1 1 1 200 200 1 1 1 1 Infeasible Production Requirements # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 1 2 1 3 1 2 100% 0 2 100% 0 2 2 Fermentation Time: 0 1 45 100 55 Shelf Life: 20 4 1 5 0 6 0 7 0 8 0 9 0 10 0 2 100% 0 2 100% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 2 0% 0 3 4 5 6 7 8 9 10 50 200 1 40 40 40 40 40 40 40 40 205 165 125 85 45 5 -35 35 -40 40 -40 40 1 Fermentation Time: 0 1 35 150 115 3 2 3 4 5 6 7 8 9 10 40 40 40 40 40 40 40 50 50 75 35 -5 5 160 120 80 40 -10 10 -50 50 200 200 1 1 1 1 Modeling the Inventory Spoilage # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 0 2 0 3 0 2 0% 0 2 0% 0 2 0% 0 Fermentation Time: 0 1 45 200 1 100 255 Fermentation Time: 0 1 35 150 2 2 115 3 Shelf Life: 6 4 0 5 0 6 0 7 0 8 0 9 0 10 0 2 0% 0 2 0% 0 2 0% 0 2 0% 45 2 0% 0 2 0% 0 2 0% 0 4 5 6 7 8 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 45 45 -40 40 -40 40 -40 40 -40 40 3 2 3 4 5 6 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 15 -25 25 -40 40 -40 40 -40 40 -50 50 -50 50 A feasible schedule with spoilage effects # Fermentors: 1 Microbrewery Performance Week # Fermentors Req'd Feasible Loading? Min # Fermentors Req'd Fermentor Utilization Total Spoilage Pale Ale Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied Stout Week Demand Scheduled Receipts Fermentors Released Inventory Spoilage Inventory Position Net Requirements Batched Net Receipts Scheduled Releases Fermentors Seized Total Fermentors Occupied 0 Unit Cap: 200 1 1 2 1 3 1 2 100% 0 2 100% 0 2 2 Fermentation Time: 0 1 45 200 1 100 255 Shelf Life: 6 4 1 5 1 6 0 7 1 8 1 9 1 10 0 2 100% 0 2 100% 0 2 100% 0 2 0% 0 2 100% 45 2 100% 0 2 100% 0 2 0% 5 3 4 5 6 7 8 9 10 50 40 40 40 40 40 40 40 40 205 165 125 85 245 45 160 120 80 40 200 200 1 1 Fermentation Time: 0 1 35 150 115 3 2 3 4 1 5 6 7 8 9 10 40 30 30 40 40 40 40 50 50 75 45 215 175 135 95 55 5 5 150 200 200 1 1 1 1 200 200 1 1 1 1 Computing Spoilage and Modified Inventory Position Spoilage: SPi = max{0, IPi-1-(SRi-1+SRi-2+…+SRi-sl+1) -(BNRi-1+BNRi-2+…+BNRi-sl+1)} Inventory Position: IPi = max{IPi-1,0}+ SRi+BNRi -Di-SPi (Material Balance Equation) (IPi-1)+ SRi+BNRi i Di SPi IPi Advantages and Disadvantages of the Empirical Approach • Advantages: – Easy to present and motivate – Provides clear visibility to the problems and their underlying causes – Supports effective and efficient “what-if” analysis – Provides modeling flexibility • Disadvantages – No guarantee for optimality or exhaustive search for a feasible solution – Hard to trace for more complex production environments