A pottery fires pieces plain or glazed: F pieces fired and left plain and G pieces fired and glazed, both counted in pieces a day. A delivery contract wants at least 4 pieces, the kiln takes at most 10 firing units where a plain piece costs 2 and a glazed piece 1, and a licence allows at most 4 plain pieces. Plain costs 3 to make and glazed 5, and the pottery minimises cost.
minimise 3F + 5G
subject to F + G ≥ 4 the delivery contract
2F + G ≤ 10 the kiln
F ≤ 4 the licence
F, G ≥ 0
Definition · Equality standard formA linear programme is in standard form when it reads maximise c·x subject to Ax = b and x ≥ 0. Every programme reaches it: add a slack to each ≤ row, subtract a surplus from each ≥ row, split each free variable into a difference of two non-negative ones, and replace a minimisation of f by a maximisation of −f.
The transformation is exact, not an approximation: the feasible points correspond one to one, and so do the objective values — up to the sign, which has to be put back.
The pottery in standard form carries three added columns with meanings: e₁, the pieces delivered beyond the four promised; s₂, the firing units the kiln has left; and s₃, the plain pieces the licence still allows. It carries a fourth column, a₁, which measures nothing about the pottery: an artificial variable, there to give the search a basis to start from, zero at every feasible point. The lab leaves it out of the table of corners for that reason and says how many it left out.
Every added variable, at every corner
The region has four corners. Evaluating the three meaningful columns at each of them turns the phrase “tight if and only if the added variable is zero” into something to read rather than accept.
corner e₁ s₂ s₃ cost
(0, 4) 0 6 4 20
(0, 10) 6 0 4 50
(4, 0) 0 2 0 12 cheapest
(4, 2) 2 0 0 22
At (4, 0) the contract is met exactly and the licence is used right up, so two of the three rows are tight and the kiln has 2 firing units to spare. At (0, 10) the kiln is full and the contract is exceeded by 6 pieces. Reading down a column tells you which corners a row is tight at; reading across a row describes a corner completely.
The sign that is not a convention
Suppose the contract row had been written F + G + e₁ = 4. At (0, 10) that needs e₁ = −6, and at (4, 0) it needs e₁ = 0, so the only feasible points left are the ones where the contract is met exactly. The programme has silently acquired a new requirement, and every method that follows in this subject assumes x ≥ 0 and would carry the error forward without a murmur.
Minimise by maximising, and then negate back
The engine maximises. So the pottery's cost is handed over as maximise −3F − 5G, the answer comes back as −12, and the page negates it to 12. That last step is the one that gets forgotten, and a cost reported as a negative number is a symptom worth recognising rather than a mystery. The lab prints both numbers with their signs for exactly that reason.
Flip the kiln row from a limit to a requirement — at least 10 firing units, perhaps because the kiln is uneconomic below that — and the form changes shape. That row now takes a surplus rather than a slack, the model needs a second artificial column, the number of added columns rises from four to five, and the cheapest plan moves from 12 at (4, 0) to 22 at (4, 2). One character in one relation, and both the columns and the answer move.