Learn
Lesson · The Simplex Method · One pivot

Reduced Costs and the Optimality Test

A nonbasic variable's entry in the objective row is a rate: how much the objective changes per unit of that variable, with every basic variable adjusting to keep the equations true. When no rate improves the objective, the corner has no improving edge and is globally optimal. The improvement a column actually delivers is that rate times the step the ratio test allows, which is why the steepest column is routinely not the best one.

objective-row entry z_j = c_Bᵀ B⁻¹ A_j - c_j the rate is -z_j improving (maximise) z_j < 0: one more unit of x_j raises z by -z_j Dantzig enter the most negative z_j, lowest column index on a tie Bland enter the lowest-index column with z_j < 0 Δz = rate × step the step comes from the ratio test, not the rate stop no z_j < 0 ⟹ this corner is optimal over the whole region minimise negate the objective; every rule then reads the same way
The objective row as a row of rates, and the test it carries

Core ideas

What this lesson establishes

The hard idea here is a distinction, not a formula: a rate per unit and a total improvement are different quantities, and the rule most textbooks teach optimises the first one.

1

The objective row is a row of rates

For a nonbasic column j the objective-row entry z_j answers: if x_j rises by one unit and every basic variable adjusts to keep the equations true, how does z change? It changes by -z_j. So a negative entry is an improving direction for a maximisation, its size is the rate, and the whole row is a price list on the columns currently sitting at zero.

2

No improving rate means optimal, everywhere

If every z_j ≥ 0 then no edge leaving this corner raises the objective, and “Convexity, and Why a Local Optimum Is Global” upgrades that from a statement about the corner to a statement about the region. This is the licence to stop, and it is the reason the method can finish without ever seeing most of the corners.

3

Improvement is rate times step

A rate of 9 on a column the ratio test stops after 4 units moves the objective by 36. A rate of 3 on a column that can run to 20 moves it by 60. Both figures come from one tableau of one real programme, and they are why “take the most negative entry” is a heuristic about rates rather than a rule about improvement.

The material

What the objective row means, which column to take, and when to stop

The rate interpretation, the rule almost everyone uses and what it costs, the stopping test, and the one adjustment a minimisation needs.

Definition · Reduced cost

In a tableau at basis B, the reduced cost of column j is its objective-row entry z_j = c_Bᵀ B⁻¹ A_j - c_j. Every basic column has z_j = 0. For a maximisation, column j is improving when z_j < 0, and the rate at which z rises per unit of x_j is -z_j.

The formula is worth seeing even though you never need it to run the method, because it says where the number comes from: c_j is what one unit of x_j earns directly, and c_Bᵀ B⁻¹ A_j is what the basic variables have to give up to make room for it. The reduced cost is the difference, which is why it can be negative for a profitable column. “The Tableau as a Matrix Product” is where that expression is computed rather than quoted.

In the initial tableau of a ≤-only programme the basis is the slacks, c_B = 0, and the reduced costs are just -c_j. That is the familiar row of negated objective coefficients from The Simplex Tableau, and it is a special case rather than the definition.

Choosing the entering column

Any improving column may enter. The rules in common use are: Dantzig’s rule, take the most negative reduced cost, breaking ties by lowest column index; Bland’s rule, take the lowest-index improving column; and greatest improvement, compute the step for every improving column and take the largest rate times step. Each terminates at the same optimal value when it terminates at all; they differ in the path and in how many pivots it takes.

Example · The steepest column is the wrong one

Take maximise 5x₁ + 9x₂ + 3x₃ subject to 3x₁ + 2x₂ ≤ 20, x₁ + 3x₂ ≤ 12 and 4x₁ + 4x₂ + x₃ ≤ 20. At the origin the three rates are 5, 9 and 3, and the ratio test allows steps of 5, 4 and 20 respectively. So the products are 25, 36 and 60.

x₂ is the steepest column and moves z by 36. x₃ has a third of that rate and moves it by 60, which is the entire optimum of the programme. Dantzig’s rule takes x₂ and needs three pivots; greatest improvement takes x₃ and needs one.

at the origin of max 5x1 + 9x2 + 3x3 column reduced cost rate step rate × step x1 -5 5 5 25 x2 -9 9 4 36 Dantzig takes this x3 -3 3 20 60 the whole optimum pivots to reach z* = 60: Dantzig 3 Bland 4 greatest improvement 1 largest index 1

Dantzig’s rule survives anyway, for a reason worth being honest about: computing the step for every improving column to find the greatest improvement costs a ratio test per column per pivot, and on a real problem that is more arithmetic than the extra pivots it saves. The rule is a cheap approximation to the thing you want, and this page exists so that you know which is which.

Stopping

Theorem · The optimality test

If every reduced cost in a feasible tableau satisfies z_j ≥ 0, the basic feasible solution it reads is an optimal solution of the programme. The test looks only at the current tableau, and its conclusion is about every feasible point.

The two halves of that sentence are worth separating. That no edge leaving this corner improves the objective is arithmetic on one row. That therefore no point of the region improves it is the convexity result from “Convexity, and Why a Local Optimum Is Global”. Quote the second half when you stop; a tableau alone only ever tells you about its own corner.

A minimisation, and the one adjustment it needs

minimise cᵀx is maximise -cᵀx with the answer negated at the end, and that is exactly what the lab does. Take minimise 2x₁ - 3x₂ subject to x₁ + x₂ ≤ 8 and 2x₁ + x₂ ≤ 10. The internal objective is -2x₁ + 3x₂, so the objective row starts at (2, -3) — the original coefficients — and the stopping rule is still “no negative entry”. One pivot brings x₂ in at 8, the tableau reads 24, and the answer to the question asked is -24.

So nothing about the test flips. What flips is the sign of the number you report, and the discipline is to write down which convention you are in before the first pivot rather than to reconstruct it from the answer. A minimisation whose optimum is negative is the case where guessing goes wrong.

One last reading of the row: a zero reduced cost on a column that is not basic satisfies the stopping test and still means something. It says a pivot on that column would move to a different corner at the same objective value, so the optimum is not unique. “Unbounded and Alternative Optima in the Tableau” is where that signature is read.

Interactive

Reduced costs, and the rule that reads them

A reduced cost is a rate per unit; the improvement is that rate times the step the ratio test allows

Rate times step is the improvementthe reduced cost is a rate, the ratio test is the step, and only their product moves z
every candidate columnthe column the rule takesthe largest actual improvement on offernot eligible

Method

Choosing a column, and deciding whether to

Read the whole objective row before choosing anything. The decision to stop is made from the same numbers as the decision where to go.

1

Read the objective row for nonbasic columns only

Basic columns always hold zero there and carry no information. What is left is one number per nonbasic column, and each is a rate per unit of that variable.

2

If no entry is negative, stop and say why

No improving edge leaves this corner, and a linear objective on a convex region has no local optimum that is not global. Report the point, the objective value, and that second sentence — the tableau on its own does not licence the claim.

3

Otherwise choose a column, and know which rule you used

Dantzig takes the most negative entry; Bland takes the lowest index; greatest improvement runs the ratio test on every candidate first. Name the rule, because the pivot count and the path depend on it and the optimum does not.

4

Run the ratio test on the column you chose

The rate told you the direction; only the step tells you how far. This is where a steep column with a short step gets found out.

5

Check rate × step against the change in the objective value

They are equal, exactly, at every pivot. It is a free check on both the ratio test and the pivot arithmetic, and it is the arithmetic that makes the rate-versus-improvement distinction concrete rather than a slogan.

Rates, improvements and the stopping test

Score 0 / 0

Three products, where the steepest column loses to a flatter one

One programme, one tableau, four entering rules. The rates and the steps are both read from the starting tableau, so the comparison needs no pivoting at all.

maximise 5x1 + 9x2 + 3x3 3x1 + 2x2 <= 20 assembly x1 + 3x2 <= 12 finishing 4x1 + 4x2 + x3 <= 20 packing x1 x2 x3 s1 s2 s3 | rhs s1 3 2 0 1 0 0 | 20 s2 1 3 0 0 1 0 | 12 s3 4 4 1 0 0 1 | 20 z -5 -9 -3 0 0 0 | 0 column z_j rate ratios eligible step rate × step x1 -5 5 20/3, 12/1, 20/4 5 25 x2 -9 9 20/2, 12/3, 20/4 4 36 x3 -3 3 row 3 only: 20/1 20 60 Dantzig takes x2: Δz = 9 × 4 = 36, then two more pivots to 60 greatest improvement takes x3: Δz = 3 × 20 = 60, and it is done pivot counts on this one programme Dantzig 6 -> 3 pivots z* = 60 Bland 4 pivots z* = 60 greatest improvement 1 pivot z* = 60 largest index 1 pivot z* = 60

Every rule reached 60. That is not luck and it is not a property of this programme: the optimum is a property of the feasible region and the objective, and an entering rule chooses a route to it. What the rule buys or costs is pivots, and here the spread is one against four.

The reason x₃ wins is visible in the ratio column. It appears in only one constraint, so only one row limits it, and that row lets it run to 20. x₂ earns nearly three times as much per unit and is cut off after 4 by the finishing row. A rate with no room to move is worth nothing, which is the sentence the whole lesson is built on.

For a faded rehearsal, take minimise 4x₁ - 8x₂ - 6x₃ subject to 3x₁ + 2x₂ + x₃ ≤ 13, 4x₁ + 2x₃ ≤ 17 and 2x₁ + 4x₂ ≤ 21. The supplied first move is that the objective row starts as (4, -8, -6) — the original coefficients, because the solver negated the objective on the way in — so x₁ is not a candidate at all. Work out the rate, the step and the product for x₂ and x₃, say which column Dantzig takes and which greatest improvement takes, and then check the pivot counts and the optimum of -69 in the lab.

Common mistakes

1
Believing the most negative reduced cost gives the biggest improvementIt gives the biggest rate. The improvement is rate times the step the ratio test allows, and a steep column pinned by a tight row routinely moves the objective less than a flat column with room to run: 9 × 4 against 3 × 20 on one tableau of one small programme. Dantzig’s rule is worth using because it is cheap, not because it is best.
2
Expecting the stopping test to flip on a minimisationThe objective is negated on the way in, so the objective row of minimise 2x₁ - 3x₂ starts as (2, -3) and the test is still “no negative entry”. What changes is the sign of the number you report: the internal 24 is an optimum of -24. Reconstructing the convention from the answer is where this goes wrong, and it goes wrong hardest when the true optimum is negative.
3
Reporting optimality as a property of the tableauA tableau with no negative reduced cost says that no edge leaving this corner improves the objective — a fact about one corner. The claim that no point of the region improves it needs the convexity result, and saying so is not pedantry: it is the difference between a proof and a search that happened to stop.

Check your understanding

✓
Finish when a reduced cost reads as a rate per unit and never as an amount of improvement.

You should be able to identify the improving columns in a tableau, apply any of the three entering rules and say which you used, verify rate × step against the change in z, state the stopping test with the theorem that licences it, and report a minimisation with the right sign.

Note: Everything so far has begun at the origin, where the slacks are already an identity and the first basis is free. A programme with a ≥ row or an = row has no such gift: there is no obvious basis to start from and the origin is usually not even feasible. “Artificial Variables and Two-Phase Simplex” manufactures a start, and the same machinery turns out to prove infeasibility when no start exists.

Kept in this browser only, for you. Nothing is sent anywhere and nothing checks it. Carry it to another device.

Feedback and recommendations

Something to change about this lesson? Write it down, tick it off when it is handled, and export the list when you want to act on it. Kept in this browser only: nothing is sent anywhere, and nobody is notified.

No recommendations yet for this lesson.