Learn
Lesson · The Simplex Method · One pivot

The Simplex Tableau

A tableau is the standard-form system [A | b] with one extra row for the objective, z - cᵀx = 0. When the basic columns are identity columns the basic feasible solution can be read straight out of the right-hand column with no solving at all, and one step of the method is a single Gauss-Jordan pivot applied to every row of the tableau — the objective row included, because it is one more equation.

tableau [A | b] of standard form, with one more row underneath z-row z - cᵀx = 0, so the row starts out holding -c basic col an identity column; that row's rhs IS the variable's value nonbasic held at zero, which is what makes the reading free pivot (r,j) divide row r by a_rj, then clear column j in every other row - the z-row included, because it is one more equation
The parts of a tableau, and what one pivot does to them

Core ideas

What this lesson establishes

The arithmetic is “Gaussian Elimination” and nothing else. What is new is the extra row, and the habit of reading a solution instead of solving for one.

1

The tableau is a system, not a table of workings

Every row is an equation that stays true. The top m rows are the constraints in standard form, and the bottom row is the objective rearranged to z - c₁x₁ - … - cₙxₙ = 0, which is why it begins life holding the negated objective coefficients. Nothing in the tableau is a note to yourself; it is all the same system written in a different basis.

2

A basic feasible solution is read, not computed

When the basic columns are identity columns, row i says x_{B(i)} + (nonbasic terms) = b_i, and the nonbasic terms are all zero. So the basic variable in row i equals that row's right-hand entry, every other variable is zero, and the bottom-right entry is z. That free reading is the entire reason for keeping the tableau in this shape.

3

A pivot is one Gauss-Jordan step on every row

Choose an entry a_rj that is not zero. Divide row r by it so the entry becomes 1, then subtract multiples of that row from every other row until the rest of column j is zero. Column j is now an identity column and the column that used to carry row r's basic variable is not, so x_j has entered the basis and that variable has left.

The material

Building the tableau, reading it, and pivoting it once

Where every entry comes from, why the objective row is inside the row operations rather than beside them, and what an illegal pivot produces.

Definition · Simplex tableau

For a standard-form programme maximise cᵀx subject to Ax = b, x ≥ 0 with A of size m × n, the tableau at a basis B is the m constraint rows together with an objective row representing z - cᵀx = 0. It is held so that each basic column is an identity column and the objective row has a zero in every basic column.

“Standard Form, Slack and Surplus” already did the work of turning inequalities into equations. Take maximise 3x₁ + 5x₂ subject to x₁ ≤ 4, 2x₂ ≤ 12, 3x₁ + 2x₂ ≤ 18; add one slack per row and the three slacks are already an identity, so the first tableau needs no work beyond writing -3 and -5 in the objective row.

x1 x2 s1 s2 s3 | rhs s1 1 0 1 0 0 | 4 s2 0 2 0 1 0 | 12 s3 3 2 0 0 1 | 18 z -3 -5 0 0 0 | 0

Read it. The basic columns are s₁, s₂, s₃, so s₁ = 4, s₂ = 12, s₃ = 18, the nonbasic x₁ and x₂ are zero, and z = 0. That is the origin, and the three slacks at their full values say that no plant hours have been used. Nothing was solved: the right-hand column was copied out.

Definition · Pivot

A pivot on row r and column j with a_rj ≠ 0 is the pair of row operations: replace row r by row r ÷ a_rj, then for every other row — including the objective row — replace it by row - (its entry in column j) × (the new row r). The entering variable is x_j and the leaving variable is the one row r was carrying.

Take the pivot on row 2, column x₂, whose entry is 2. Halving row 2 makes it 1. Row 1 has a zero in column x₂ so it does not change at all. Row 3 has a 2 there, so it loses twice the new row 2. The objective row has -5, so it gains five times the new row 2.

R2' = R2 ÷ 2 [ 0 1 0 1/2 0 | 6 ] R1' = R1 - 0·R2' [ 1 0 1 0 0 | 4 ] R3' = R3 - 2·R2' [ 3 0 0 -1 1 | 6 ] z' = z + 5·R2' [-3 0 0 5/2 0 | 30 ] x1 x2 s1 s2 s3 | rhs s1 1 0 1 0 0 | 4 x2 0 1 0 1/2 0 | 6 s3 3 0 0 -1 1 | 6 z -3 0 0 5/2 0 | 30

The basis is now {s₁, x₂, s₃}. Reading again: x₂ = 6, s₁ = 4, s₃ = 6, x₁ = 0, z = 30. That is the corner (0, 6) and the objective value listed for it in “Adjacent Corners and the Simplex Idea”. One pivot, one edge, and the new reading is free for the same reason the old one was.

Why the objective row goes through the pivot

Because it is an equation. z - 3x₁ - 5x₂ = 0 is as true as the three constraint rows, and a row operation that keeps a system equivalent has to be applied to all of it. Carry the objective row along and the bottom-right entry is always the objective value at the current basis, with no separate arithmetic to get wrong.

Leave it out and the tableau still looks finished: the constraint rows are right, the reading of x is right, and only z and the objective row entries are stale. This is the same error as dropping the constant column part-way through an elimination, which “Gaussian Elimination” named on the Algebra path, and it fails the same way — silently, with a plausible answer at the end.

A pivot you are allowed to do and should not

Any non-zero entry is a legal row operation, and the arithmetic does not care whether the result is a corner. Pivot the same tableau on row 3 and column x₂ instead and you get x₂ = 9, s₂ = -6, a bottom-right entry of 45 — higher than the true optimum of 36 — and a point, (0, 9), that is outside the region because it uses 18 of plant B's 12 hours. The tableau is a correct system throughout; what it has stopped describing is a feasible point.

Choosing the row so that this cannot happen is “The Ratio Test”, and choosing the column so that the objective actually improves is “Reduced Costs and the Optimality Test”. Until then, pivot by hand and check the right-hand column for a negative entry every time.

Interactive

The tableau, and one pivot carried out on it

A Gauss-Jordan step on a chosen column, with the objective row carried through like any other

One pivot, every row operationa Gauss-Jordan step on the chosen column, applied to the objective row too
the starting tableauthe pivot entrythe row operationsa right-hand side below zero

Method

Building and pivoting a tableau by hand

Two minutes of setup saves the error that is hardest to find later: a tableau that is arithmetically perfect and describes the wrong system.

1

Put the programme in standard form first

One slack per ≤ row, and the objective rearranged to z - cᵀx = 0. Write the column names across the top and keep them; half the mistakes in a tableau are a column read in the wrong place.

2

Write the objective row as the negated coefficients

maximise 3x₁ + 5x₂ gives -3 and -5, not 3 and 5. The row is the equation z - 3x₁ - 5x₂ = 0 with the z column left implicit, and the sign is what makes an improving column show up as a negative entry.

3

Read the solution before doing anything to it

Name the basic variable of each row, copy the right-hand entry as its value, set the rest to zero, and read z from the bottom right. If any basic value is negative, stop: this tableau is not at a corner.

4

Pivot: divide the row, then clear the column everywhere

New row r is the old one over a_rj. Then every other row, objective row included, loses its column-j entry times the new row r. Column j should end as an identity column with a zero in the objective row.

5

Read the new solution and sanity-check the objective

Name the new basis, read the values and z, and check the change in z against the pivot: for a maximisation it should not have gone down. A negative right-hand entry means the leaving row was chosen badly, and choosing it well is the subject of “The Ratio Test”.

Reading and pivoting a tableau

Score 0 / 0

One pivot on the plants tableau, every row operation shown

The entering column is x₂ and the leaving row is row 2. Watch the objective row: it is the fourth row of the arithmetic, not a summary written afterwards.

maximise 3x1 + 5x2 x1 <= 4, 2x2 <= 12, 3x1 + 2x2 <= 18 standard form x1 + s1 = 4 2x2 + s2 = 12 3x1 + 2x2 + s3 = 18 objective row z - 3x1 - 5x2 = 0 x1 x2 s1 s2 s3 | rhs basis {s1, s2, s3} s1 1 0 1 0 0 | 4 s1 = 4 s2 0 2 0 1 0 | 12 s2 = 12 s3 3 2 0 0 1 | 18 s3 = 18 z -3 -5 0 0 0 | 0 x = (0, 0), z = 0 pivot on row 2, column x2. pivot entry a_22 = 2 R2' = R2 ÷ 2 [ 0 1 0 1/2 0 | 6 ] R1' = R1 - 0·R2' [ 1 0 1 0 0 | 4 ] unchanged R3' = R3 - 2·R2' [ 3 0 0 -1 1 | 6 ] z' = z + 5·R2' [-3 0 0 5/2 0 | 30 ] x1 x2 s1 s2 s3 | rhs basis {s1, x2, s3} s1 1 0 1 0 0 | 4 s1 = 4 x2 0 1 0 1/2 0 | 6 x2 = 6 s3 3 0 0 -1 1 | 6 s3 = 6 z -3 0 0 5/2 0 | 30 x = (0, 6), z = 30

Three things to notice. Row 1 did not change, because its entry in the pivot column was already zero — a row with a zero there is untouched by the pivot, which is worth knowing before “The Ratio Test” explains that such a row also imposes no limit. Column x₂ is now an identity column with a zero in the objective row, which is the signature of a basic column. And s₂ has left the basis: its column is (0, 1/2, -1, 5/2), no longer an identity column.

The objective row also carries a fact about s₂. Its entry is 5/2, meaning that pushing s₂ back up from zero — leaving plant B hours unused again — would cost 5/2 per hour. That number is a reduced cost, and “Reduced Costs and the Optimality Test” is about reading the whole row that way.

For a faded rehearsal, pivot the same starting tableau on row 1, column x₁ instead. The supplied first move is that the pivot entry is 1, so no division is needed and the fractions never appear. Carry out the other three row operations, read the new basis, point and z, and then say which column of the new tableau shows that the method is not finished. Check all four rows against the lab before opening the quiz.

Common mistakes

1
Keeping the objective row out of the row operationsIt is an equation, not a running total. Skipping it leaves the constraint rows correct and the objective row stale, which is the hardest kind of error to notice: the tableau reads consistently, the point is right, and the entering-column decision and the stopping test are both being made from numbers that belong to an earlier basis.
2
Reading a nonbasic variable's value off the right-hand columnThe right-hand entry of row i is the value of the variable that row is carrying, and of nothing else. A nonbasic variable is zero because it was set to zero; its column holds the rate at which the basic variables would have to move if it were raised, which is a different fact.
3
Pivoting on whatever entry looks convenientThe row operations are legal on any non-zero entry, so nothing stops you, and the tableau stays a correct system. What can stop being true is feasibility: pivoting the plants tableau on row 3 in column x₂ gives s₂ = -6 and a bottom-right entry of 45, which is larger than the real optimum. Check the right-hand column for a negative entry after every pivot until the ratio test makes it unnecessary.

Check your understanding

✓
Finish when you can build the first tableau, read its solution, and pivot once without looking anything up.

You should be able to write the objective row from a maximisation, name the basic variable of every row, read the point and z off the right-hand column, carry out a named pivot with the objective row inside it, and say what a negative right-hand entry afterwards means.

Note: One choice has been made for you throughout: which row leaves. Pivot on the wrong row and the tableau is still a correct system describing a point outside the region, as the s₂ = -6 above did. “The Ratio Test” is the rule that makes the choice, and it is a rule about staying inside the region rather than about the objective at all.

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.