How to use it
- 1. Goals, not constraintsThree targets that cannot all be met. Goal programming does not fail - it misses, minimally.
- 2. Weighted modePenalise each unit of shortfall. Change a weight and watch the answer slide across the trade-off.
- 3. Preemptive modeRank the goals. Priority 1 is satisfied as far as possible before priority 2 gets a single vote.
- 4. Read the deviationsd− is undershoot, d+ is overshoot. Only the ones you penalise actually matter.
Two products, three goals
Goals
Mode
Deviations at the answer
Decision space. Each line is a goal boundary; the shaded area is the feasible production region. The red dot is the goal-programming answer - note it usually sits on a goal line, not in a comfortable interior.
How far each goal is missed, as a percentage of its target. Weighted mode spreads the pain; preemptive mode dumps it all on the lowest priority.
Try these experiments
- Set profit weight to 10 and the others to 0: you hit the profit goal exactly and blow through labour and CO₂. Weights are the policy.
- Switch to preemptive with CO₂ as P1: emissions are honoured absolutely, and profit takes whatever is left. This is how a hard ESG mandate really behaves.
- Loosen the targets until every goal is met, then tighten them again: once no plan can satisfy everything, the LP would say “infeasible” and quit. Goal programming still hands you the least-bad plan.
About this tool
The concept
Real managers have several targets that conflict. Goal programming turns each into a soft goal with deviation variables and minimises weighted (or ranked) shortfall instead of declaring infeasibility.
How it works
Each goal i gets di− and di+ with fi(x) + d− − d+ = target. Weighted GP minimises Σw·d; preemptive solves lexicographically, freezing each achieved level before the next.
Winning strategy
Ask “what do we do when we can’t have it all?” before optimising. Weights and priorities encode that answer - make them explicit rather than hiding them in a single blended objective.