The Simplex Tableau Layout

Introduces the simplex tableau as a compact bookkeeping device for the simplex method: how to set up the initial tableau from a standard-form LP, how to read off the current basic feasible solution, and how to extract the entering and leaving variables directly from the tableau's z-row and ratio test.

Step 1 of 157%

Tutorial

Standard Form and the Initial Tableau

A linear program in standard form is

maximize z=c1x1+c2x2++cnxn\text{maximize } z = c_1 x_1 + c_2 x_2 + \cdots + c_n x_n

subject to

ai1x1+ai2x2++ainxnbi,i=1,,m,a_{i1} x_1 + a_{i2} x_2 + \cdots + a_{in} x_n \leq b_i, \quad i = 1, \ldots, m,

with xj0x_j \geq 0 and bi0b_i \geq 0. To work with the constraints algebraically, we introduce slack variables si0s_i \geq 0 that turn each inequality into an equality:

ai1x1++ainxn+si=bi.a_{i1} x_1 + \cdots + a_{in} x_n + s_i = b_i.

The simplex tableau packages every coefficient into one table:

Basisx1xns1smRHSs1a11a1n10b1smam1amn01bmzc1cn000\begin{array}{c|cccccc|c} \text{Basis} & x_1 & \cdots & x_n & s_1 & \cdots & s_m & \text{RHS} \\ \hline s_1 & a_{11} & \cdots & a_{1n} & 1 & \cdots & 0 & b_1 \\ \vdots & \vdots & & \vdots & \vdots & & \vdots & \vdots \\ s_m & a_{m1} & \cdots & a_{mn} & 0 & \cdots & 1 & b_m \\ \hline z & -c_1 & \cdots & -c_n & 0 & \cdots & 0 & 0 \end{array}

The pieces of the tableau:

  • The leftmost Basis column lists the variables currently in the basis (one per constraint row).
  • The middle columns hold the coefficients of every variable -- decision and slack alike.
  • The rightmost RHS column holds the constraint constants bib_i in the upper block and the current objective value in the bottom-right cell.
  • The bottom row -- the z-row -- stores the negated objective coefficients cj-c_j under the decision variables, with 00 under each basic (slack) variable.

At the start of the method, the slacks form the initial basis, so the slack columns form an identity block and the z-row is exactly [c1,,cn,0,,00][-c_1, \ldots, -c_n, 0, \ldots, 0 \,|\, 0].

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle