Learn
Lesson · Duality and Sensitivity Analysis · What the tableau knows

Objective Coefficient Ranging

Moving what a basic activity earns changes the total but not the corner, until the coefficient crosses a value at which some reduced cost hits zero. Moving what a nonbasic activity earns changes nothing at all until it has improved by exactly its reduced cost. Two different ratio tests, and which one applies depends only on whether the activity is in the basis — so the first question to ask about a coefficient is whether the plan currently makes any of that product.

basic j range from a ratio test of the z-row against row j of B⁻¹A inside it the plan does not move; z* moves by (Δcⱼ)(xⱼ) nonbasic j the range is cⱼ up to cⱼ + its reduced cost; nothing moves three activities at (2, 6, 0), z* = 46, y = (3, 2, 0): c1 = 8 over 5 ≤ c1 ≤ 10 c2 = 5 over 4 ≤ c2 ≤ 8 c3 = 3, reduced cost 4, range c3 ≤ 7 nothing until 7 c1 = 9 → still (2, 6, 0), z* = 48; c1 = 10 → (4, 2, 0) ties at 50
Two computations, and the one question that chooses between them

Core ideas

What this lesson establishes

One hard idea: the answer to a corner problem does not care about the objective until a sign changes. The rest is keeping the two cases apart.

1

A corner does not move until a reduced cost changes sign

The optimal plan is a vertex, and which vertex is best is decided by the signs of the objective-row entries rather than by their sizes. Move a coefficient a little and every one of those signs is unchanged, so the same vertex is still best and only the total moves. The answer changes at one value, not gradually.

2

A basic coefficient moves the whole objective row

If xⱼ is basic then cⱼ appears in c_B, so changing it changes every entry of c_BᵀB⁻¹A − c. Each nonbasic column gives one bound on the change, from its reduced cost divided by its entry in xⱼ's row of the tableau, and the binding ones are the two ends. Inside the interval the plan is unchanged and z* moves by Δcⱼ times how much of xⱼ the plan makes.

3

A nonbasic coefficient does nothing until it catches up

If xⱼ is not in the basis its reduced cost is yᵀaⱼ − cⱼ > 0, and only cⱼ's own entry changes when cⱼ moves. So the range is one-sided: anything downwards, and upwards exactly as far as the reduced cost, at which point the column is worth bringing in. Below that value nothing changes — not the plan, not the total, not any other range.

The material

The two ranging computations, and which one a coefficient gets

Why the basis is the deciding question, what each ratio test looks like, and what changes at the end of each kind of interval.

Definition · Reduced cost

The reduced cost of column j is yᵀaⱼ − cⱼ, the objective-row entry over that column at the optimum. For a maximisation it is zero on every basic column and non-negative on every other one.

Read as a sentence it is the amount by which what one unit of activity j would consume, valued at the current prices, exceeds what it earns. A nonbasic activity is not made because that number is positive.

Right-hand-side ranging asked how far the data could move while the basis stayed feasible. This lesson asks how far it can move while the basis stays optimal. Those are different questions about different halves of the tableau: b appears only in the right-hand column, and the objective coefficients appear only in the objective row. Which is why one is a ratio test down a column and the other is a ratio test along a row.

Theorem · The two ranges

Let the simplex method finish with basis B, plan x, prices y and reduced costs rⱼ = yᵀaⱼ − cⱼ.

If xⱼ is basic, occupying row p of the tableau, then the basis stays optimal for cⱼ + Δ exactly while rₖ + Δ·(row p of B⁻¹A)ₖ ≥ 0 for every nonbasic k — one bound per nonbasic column, Δ bounded above by the smallest rₖ / (−a_pk) over negative entries and below by the largest over positive ones. Inside, the plan is unchanged and z* becomes z* + Δxⱼ.

If xⱼ is nonbasic, the basis stays optimal exactly while Δ ≤ rⱼ, with no lower bound at all. Inside, neither the plan nor z* changes.

three activities max 8x1 + 5x2 + 3x3 machine 2x1 + x2 + x3 ≤ 10 labour x1 + x2 + 2x3 ≤ 8 contract x1 ≤ 4 optimum x = (2, 6, 0) z* = 46 y = (3, 2, 0) reduced costs x1: 0 x2: 0 x3: y'a3 − c3 = 3 + 4 − 3 = 4 coefficient made? range at the ends c1 = 8 basic yes 5 ≤ c1 ≤ 10 40 and 50 c2 = 5 basic yes 4 ≤ c2 ≤ 8 40 and 64 c3 = 3 nonbasic no c3 ≤ 7 46 at 7 inside a basic range c1 = 9: plan still (2, 6, 0), z* = 48 at its end c1 = 10: (2, 6, 0) and (4, 2, 0) BOTH earn 50 inside a nonbasic range c3 = 6: plan still (2, 6, 0), z* = 46 past its end c3 = 8: plan becomes (4, 0, 2), z* = 48
Example · A coefficient that is being made

c1 = 8 is basic, and the plan makes 2 of it. Its range is 5 ≤ c1 ≤ 10. Raise it to 9 and the plan does not move at all: still (2, 6, 0), and the total goes from 46 to 46 + 1(2) = 48. That is the whole of the inside of a basic range — a different number and the same decision.

At c1 = 10 something exact happens: a reduced cost is precisely zero, and (4, 2, 0) earns 50 as well. Both corners are optimal and one pivot moves between them. Past 10 the answer really is (4, 2, 0) and the plan has changed once, at a value the lab prints.

The other computation, which is smaller and easier to get wrong

Example · A coefficient that is not being made

c3 = 3 is nonbasic with a reduced cost of 4, so its range is c3 ≤ 7. Raise it from 3 to 6 and nothing whatever happens: the plan is still (2, 6, 0) and the total is still 46. The third product got twice as profitable and it is still not worth making.

At c3 = 7 the reduced cost is exactly zero and (4, 0, 2) also earns 46. At c3 = 8 the answer moves: (4, 0, 2) with a total of 48. So the improvement needed before anything happens is exactly the reduced cost, and the range is one-sided because making the product even less profitable cannot make it worth starting.

Two things about that one-sidedness are worth saying out loud. An interval unbounded below is a complete answer, not a missing number — the lab prints it as such. And the value at which a nonbasic coefficient matters is cⱼ + rⱼ, which is yᵀaⱼ: the coefficient becomes interesting exactly when it reaches what the activity's ingredients are already worth. That is the next lesson's question asked about a column already in the model.

Which of the plan and the value changes

So the answer to any single stated change comes in two parts, and the commonest error is to give only one of them. Inside a basic range: the plan does not change and the value does, by Δcⱼ times the amount made. Inside a nonbasic range: neither changes. At the end of either: two plans tie, both optimal, one pivot apart. Past the end: the plan has changed, and the old range no longer describes anything.

Example · The same ranging on a minimisation

min 2x + 3y subject to x + y ≥ 4, x ≤ 3, y ≥ 1 costs 9 at (3, 1). The first ingredient may cost anything from 0 to 3: at c = 3/2 the total is 15/2 with nothing tied, and at either end of the interval two plans tie, costing 3 at the bottom and 12 at the top.

The second ingredient's range is 2 ≤ c with no upper end, and at c = 2 the total is 8. Both are ranges in exactly the sense above; what has changed is only that the solver negates a minimisation on the way in, so a coefficient handed to it has to be negated too. A kit that skipped that would print intervals that look like intervals and endpoints that are not endpoints.

Interactive

Two different computations, and which one depends on the plan

the range of one objective coefficient, and the single pivot at its end

How far one coefficient can movetwo different computations, and which applies depends only on whether it is made
the range where the plan does not movethe breakpoint, where two plans tiewhere the slider is

Method

Ranging one objective coefficient

Ask the basis question first. Everything after it depends on the answer, and the two computations look alike on the page.

1

Ask whether the plan makes any of that activity

If it is in the basis, you are ranging along its row of the tableau against every nonbasic column. If it is not, the answer is its reduced cost and you are nearly done. Getting this backwards produces an interval of the wrong shape, which is hard to notice.

2

For a nonbasic activity, read its reduced cost and stop

The range is everything downwards and rⱼ upwards. Inside it, nothing changes at all — say so explicitly, because the expected answer is that a better coefficient must do something.

3

For a basic activity, take the ratio test along its row

One bound per nonbasic column: that column's reduced cost divided by its entry in this activity's row. Negative entries bound the increase, positive entries bound the decrease, and a side with no entries at all is unbounded.

4

State both halves of the answer for the change you were asked about

Does the plan move, and does the value move? Inside a basic range only the value moves, by Δcⱼ times how much is made. Inside a nonbasic range neither moves. At an endpoint two plans tie and both are optimal.

Which computation, and what changes

Score 0 / 0

One coefficient that is made and one that is not

The same programme, the same tableau, two coefficients, and two computations with nothing in common but the object they are read off.

programme max 8x1 + 5x2 + 3x3 machine 2x1 + x2 + x3 ≤ 10 labour x1 + x2 + 2x3 ≤ 8 contract x1 ≤ 4 optimum x = (2, 6, 0) z* = 46 y = (3, 2, 0) CASE 1 c1 = 8, and the plan makes 2 of x1, so x1 is basic range 5 ≤ c1 ≤ 10 from the ratio test along x1's row at c1 = 9 Δ = +1, inside the range plan unchanged, (2, 6, 0) value 46 + 1(2) = 48 because the plan makes 2 of it at c1 = 10 Δ = +2, the upper end a reduced cost is exactly 0, and TWO plans earn 50: (2, 6, 0): 10(2) + 5(6) = 50 (4, 2, 0): 10(4) + 5(2) = 50 one pivot moves between them; both are optimal at c1 = 5 Δ = −3, the lower end (2, 6, 0) and (0, 8, 0) both earn 40 CASE 2 c3 = 3, and the plan makes none of x3, so x3 is nonbasic the column a3 = (1, 2, 0) one machine hour, two labour, no contract reduced cost y'a3 − c3 = 3(1) + 2(2) + 0(0) − 3 = 7 − 3 = 4 the trap taking (1, 1, 0) off the wrong row gives 3(1) + 2(1) + 0(0) − 3 = 5 − 3 = 2, and a range ending at 5 that looks entirely reasonable range c3 ≤ 7 that is, c3 ≤ 3 + 4, and nothing below at c3 = 6 inside the range plan unchanged, (2, 6, 0) value unchanged, 46 nothing happens at all at c3 = 7 the end: (4, 0, 2) also earns 46, and ties at c3 = 8 the plan MOVES to (4, 0, 2), and z* = 48

The trap line in case 2 is the error worth seeing once. The third column of this programme is (1, 2, 0), and reading (1, 1, 0) off the wrong row gives a reduced cost of 2 and a range ending at 5 — an interval that looks perfectly reasonable and that predicts, at c3 = 6, a change which does not happen. Nothing about the wrong answer announces itself; only checking the column against the original model does.

Notice also that c3 + r3 = 7 = yᵀa3: the coefficient starts to matter exactly when it reaches what the activity's ingredients are already worth at the current prices. That is the same test the next lesson applies to a column that is not in the model at all.

For a faded rehearsal, range c2 on the same programme. The supplied move is that x2 is basic, so this is the ratio test along x2's row. Find the interval, then answer three questions before checking: what happens at c2 = 6, what happens at c2 = 8, and which second plan ties there.

Common mistakes

1
Expecting any change to the objective to change the answerMost changes move only the number. The optimal plan is a corner, and which corner is best is decided by the signs of the reduced costs rather than by their magnitudes — so the plan sits still through the whole interior of its range and then moves once, at a value you can compute in advance. A reader who expects gradual movement will keep looking for it, and the slider in the lab is there to show that it never arrives.
2
Running the basic computation on a nonbasic coefficient, or the reverseThey look alike on the page and they answer different questions. A nonbasic range is one-sided and its end is cⱼ plus a reduced cost; a basic range is two-sided and both ends come from a ratio test along a row of the tableau. Ask whether the plan makes any of that product before doing any arithmetic at all.
3
Reading the reduced cost off the wrong columnyᵀaⱼ needs the j-th column of the original matrix, and taking the numbers from the wrong row of the model produces a plausible reduced cost and a plausible range that predict changes at the wrong value. On the three-activity programme the true column is (1, 2, 0) and the reduced cost is 4; reading (1, 1, 0) gives 2 and an interval ending at 5, and nothing about that interval looks wrong.

Check your understanding

✓
Finish when you can say, for any stated change to a coefficient, whether the plan moves and whether the total does.

You should be able to decide which of the two computations applies from the basis alone, produce the interval either way — including a one-sided one — compute the new total inside a basic range, and describe what happens exactly at an endpoint: two plans, both optimal, one pivot apart.

Note: The value at which a nonbasic coefficient begins to matter is cⱼ plus its reduced cost, which is yᵀaⱼ — what the activity's ingredients are already worth at the current prices. That is the same test the next lesson runs on a column that is not in the model at all, and chaining this ranging over a weight is the whole of “Parametric Objectives and the Pareto Front”.

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.