Application of Goal Programming for Aggregate Production Planning and Machine Capacity Allocation
Abstract
Production planning in multi-product manufacturing systems must simultaneously satisfy demand, control cost, and respect machine-level capacity restrictions, yet these decisions are often modeled as separate problems in the literature. This study develops an integrated Goal Programming (GP) framework that jointly determines production quantities, inventory levels, and machine allocation for a multi-product, multi-period, multi-machine system with product-specific machine eligibility. Five conflicting goals are incorporated: production cost, holding cost, demand fulfillment, production stability, and machine utilization, while inventory balance, machine eligibility, and physical capacity are formulated as hard constraints. Two formulations, Weighted and Preemptive Goal Programming, are solved using Python with PuLP and the CBC solver, then evaluated on a case study with three products, six periods, and three parallel machines with heterogeneous eligibility. Results show both formulations achieve nearly identical production cost and complete demand fulfillment, since these occupy the highest-priority positions in each scheme, but diverge substantially on lower-priority goals, with the Preemptive model exhibiting markedly higher holding cost and stability deviation than the Weighted model. Machine-level analysis reveals that one machine remains severely underutilized despite the other two operating at full capacity, an imbalance concealed by the aggregate utilization figure. Sensitivity analysis confirms the Weighted formulation responds smoothly to changes in emphasis, whereas the Preemptive formulation produces sharper, less predictable trade-offs when priorities are reordered. These findings offer planners practical guidance for selecting a Goal Programming structure suited to their priorities and tolerance for trade-offs.