Modeling Fixed Charges and Setup Costs
Introduces the fixed-charge structure in integer programming: how to model a one-time setup cost that is incurred only when an activity is performed at a positive level. Students learn to link a continuous activity variable to a binary indicator using big-M constraints, formulate single- and multi-activity total cost objectives, and choose the tightest valid big-M.
Tutorial
The Fixed-Charge Structure
In many real-world problems, a cost is incurred only when an activity is actually performed. If we produce zero units, we pay nothing. If we produce any positive amount, we pay a one-time fixed cost (or setup cost) in addition to a per-unit variable cost.
For a single activity with level , the fixed-charge cost function is
where is the fixed cost and is the variable cost per unit. This function is discontinuous at , so a plain linear program cannot represent it.
We linearize the fixed charge by introducing a binary indicator with the interpretation
The total cost is then written as the linear expression
and we add the linking constraint
where is a known upper bound on .
This linking constraint enforces the fixed-charge logic. If , then , so and no cost is paid. If , then , allowing production up to capacity, and the fixed charge is automatically added to the objective.