Back

Simplex tableau

Consider the following linear programming problem: minx1+2x22x4x5(P)     s.t.x1x2+x3+2x5=1x1+x2+2x32x4+2x5=3x1,x2,x3,x4,x50.

Is the basic feasible solution x=[21000] determined by the basis B={1,2} an optimal solution to (P)?

Let us see if complementary slackness will help us answer this question. The dual of (P) is maxy1+3y2(D)     s.t.y1+y21y1+y22y1+2y202y222y1+2y21. Then x is optimal if and only if there exists y feasible to (D) satisfying the complementary slackness conditions with x. As the first two components of x are positive, such a y must satisfy y1+y2=1y1+y2=2 Solving gives the unique solution [y1y2]=[1232]. However, this is not a feasible solution to (D). (It violates the third constraint, for example.) Hence, x is not an optimal solution.

The question we now ask is, “How do we search for a solution with a better objective function value using existing information?”

Note that solving (P) is equivalent to finding a solution to the following system with the minimum z value, if it exists: zx12x2+2x4+x5=0x1x2+x3+2x5=1x1+x2+2x32x4+2x5=3x1,x2,x3,x4,x50. The first equation comes from setting z to the objective function. If we now focus on the equations and perform elementary row operations to the system of equations to turn z, x1, x2 into pivot variables, we obtain the equivalent system z+52x3x4+3x5=4x1+32x3x4+2x5=2x2+12x3x4=1 This system is called the simplex tableau (or simply tableau) associated with the basis B={1,2}.

Note that we will refer to each equation in a tableau by its associated pivot variable. For the tableau above, the z-row refers to the equation z+52x3x4+3x5=4, the x1-row refers to the equation x1+32x3x4+2x5=2 and the x2-row refers to the equation x2+12x3x4=1.

In general, for the LP problem mincTx(P)     s.t.Ax=bx0. where ARm×n has rank m, bRm, cRn, and x=[x1xn] is a tuple of variables, the simplex tableau associated with a basis B is obtained from row reducing the system zcTx=0Ax=b using elementary row operations so that the pivot variables are z and the basic variables. The tableau can be written in a compact form provided we use the following notation: For a subset C of {1,,n}, let AC be obtained from A by removing the columns not indexed by elements of C, let cC be obtained from c by removing the components not indexed by elements of C, and let xC be obtained from x by removing the components not indexed by elements of C. Then, if N={1,,n}B, the tableau can be represented by z(cNTyTAN)xN=yTbxB+AB1ANxN=AB1b where yT=cBTAB1. Note that from the simplex tableau, one can easily read off from the right-hand side the values of the basic variables in the basic solution determined by B.

The equation containing the variable z is called the z-row. For each iB, the equation in the tableau containing the pivot variable xi is called the xi-row.

If B happens to determine a basic feasible solution, then the tableau is said to be a feasible tableau.

Going back to the example, note that for any feasible solution x, the first equation in the tableau shows that its objective function value is given by 452x3+x43x5. Hence, any feasible solution with x3=x4=x5=0 will give 4 for the z value. But if we could find a feasible solution x with x4=0, and x3>0 or x5>0, the z value will be less than 4, thus giving a feasible solution with lower objective function value.

Now, if we choose to keep x4=x5=0, then x1,x2,x3 must satisfy x1+32x3=2x2+12x3=1, or equivalently x1=232x3x2=112x3. To obtain a feasible solution, we need x1,x20. Therefore, to obtain the largest possible improvement in objective function value subject to the above constraints, we want x3 to be as large as possible. The largest value for x3 so that x1,x20 is 43. Setting x3=43 gives us the solution [0134300] with objective function value 23. Note that this solution is a basic feasible solution determined by the basis B={2,3}.

To obtain the tableau associated with B={2,3}, we need to make x3 a pivot variable and keep z and x2 as pivot variables. We can make use of the second equation to eliminate x3 from the z-row and the last row to obtain: z53x1+23x413x5=2323x1+x323x4+43x5=4313x1+x223x423x5=13 As before, if we can increase x4 while holding x1=x5=0, we can obtain a feasible solution with lower objective function value provided that: x3=43+23x40x2=13+23x40. But these inequalities are satisfied for all x40. Thus, [x1x2x3x4x5]=[013+23t43+23tt0] is a feasible solution for all t0 with objective function value 2323t as t. Hence, the problem is unbounded.

Tableau method

Summarize the ideas illustrated above gives the tableau method for solving mincTx(P)     s.t.Ax=bx0. where A has full row rank.

Input: The problem (P) and a basis B determining a basic feasible solution.
Steps:

  1. Obtain the tableau associated with B.

  2. Let xRn be such that for each iB, xi equals b¯i, the right-hand side value of the xi-row, and xi=0 for each iB. (That is, x is the basic feasible solution determined by B.)

  3. Find an index k such that xk is a nonbasic variable with a positive coefficient in the z-row. If no such k exists, then stop; x is an optimal solution.

  4. For each iB, let a¯ik denote the coefficient of xk in the xi-row. Let R={iB:a¯ik>0}. If R=, then stop; the problem is unbounded.

  5. Let rR be such that b¯ra¯rk=min{b¯ia¯ik:iR}.

  6. Replace B with (B{k}){r} and go to step 1.

Remarks

  1. Within an iteration, the variable xk is called the entering variable and xr is called the leaving variable.

  2. As seen in the example above, going from step 6 to step 1 does not require one to compute the tableau from scratch from zcTx=0Ax=b. One simply multiplies the xr-row by 1a¯rk and the uses the resulting equation to eliminate xk in the other equations. This operation is sometimes called pivoting.

  3. Note that if the right-hand sides are positive, the new solution will have a strictly better objective function value.

  4. It is possible to have more than one choice for k and more than one choice for r. A rule due to Robert Bland, known as Bland's anti-cycling rule states that we always choose the smallest index that works. Doing so will prevent cycling, a topic that we will discuss later.

Example. We illustrate the steps of the tableau method on the example introduced at the beginning: minx1+2x22x4x5(P)     s.t.x1x2+x3+2x5=1x1+x2+2x32x4+2x5=3x1,x2,x3,x4,x50. We will take B={1,2} as the starting basis.

  1. As we saw earlier, the tableau associated with B is z+52x3x4+3x5=4x1+32x3x4+2x5=2x2+12x3x4=1

  2. The basic solution determined by B is x=[21000]. (Note that x is in fact a basic feasible solution. If it were not feasible, we would not be able to continue with this method.)

  3. Note that the coefficient of x3 and that of x5 are positive in the z-row. Therefore, we can set k to 3 or 5. We use Bland's anti-cycling rule and choose the smaller index. Hence, k=3 and so x3 is the entering variable.

  4. In this step, we need to obtain R={iB:a¯ik>0} where a¯ik denote the coefficient of xk in the xi-row. We can see from the tableau that a¯1,3=32, a¯2,3=12. Since both coefficients are positive, we have R={1,2}.

  5. Now, b¯1=2 and b¯2=1. (Recall that b¯i refers to the right-hand side value of the xi-row for all iB.) Hence, min{b¯ia¯ik:iR}=min{b¯1a¯1,3,b¯2a¯2,3}=min{232,112}=43 which is attained by b¯1a¯1,3. Hence, r=1.

  6. The new B is {1,2}{3}{1}={2,3}.

We can now proceed to perform another iteration starting with the new basis B={2,3}.

Worked examples

  1. Consider the following linear programming problem: minx12x2+x3(P)     s.t.x12x2+x3+x4=0x1+x2+2x32x4=3x1,x2,x3,x40. Give the simplex tableau associated with the basis B={1,2} and show that the problem is unbounded.

  2. Use the tableau method to solve the following linear programming problem: minx14x2+2x3(P)     s.t.x1x2+x3=2x2+x3=1x1,x2,x30. Begin with the basis B={1,3}.