Consider the following linear programming problem:
Is the basic feasible solution
determined by the basis
an optimal solution to ?
Let us see if complementary slackness will help us answer this question.
The dual of is
Then is optimal if and only if there
exists feasible to satisfying
the complementary slackness conditions with .
As the first two components of are positive,
such a must satisfy
Solving gives the unique solution
.
However, this is not a feasible solution to . (It violates
the third constraint, for example.)
Hence, 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 is equivalent to finding a solution
to the following system with the minimum value, if it exists:
The first equation comes from setting to the objective function.
If we now focus on the equations and
perform elementary row operations to the system of equations to
turn , , into pivot variables, we obtain
the equivalent system
This system is called the simplex tableau (or simply tableau)
associated with the basis .
Note that we will refer to each equation in a tableau by its associated
pivot variable. For the tableau above, the -row refers to the
equation ,
the -row refers to the equation
and the -row refers to the equation
.
In general, for the LP problem
where has rank ,
,
,
and
is a tuple of variables,
the simplex tableau associated with a basis is obtained from
row reducing the system
using elementary row operations so that the pivot variables are
and the basic variables.
The tableau can be written in a compact form provided we use
the following notation:
For a subset of , let be obtained
from by removing the columns not indexed by elements of ,
let be obtained from
by removing the components not indexed by elements of ,
and let be obtained from
by removing the components not indexed by elements of .
Then, if , the tableau can
be represented by
where .
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 .
The equation containing the variable is called
the -row. For each , the equation in the tableau
containing the pivot variable is called the -row.
If 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 , the first equation
in the tableau shows that its objective function value is given by
.
Hence, any feasible solution with
will give for the value. But if we could find a feasible solution
with , and or ,
the value will be less than 4, thus giving a feasible
solution with lower objective function value.
Now, if we choose to keep , then must satisfy
or equivalently
To obtain a feasible solution, we need .
Therefore, to obtain the largest possible improvement in objective function
value subject to the above constraints, we want to be as large
as possible.
The largest value for so that is .
Setting gives us the solution
with objective function value . Note that this
solution is a basic feasible solution determined by the
basis .
To obtain the tableau
associated with , we need to make a pivot variable
and keep and as pivot variables. We can make use
of the second equation to eliminate from the -row and the last
row to obtain:
As before, if we can increase while holding , we
can obtain a feasible solution with lower objective function
value provided that:
But these inequalities are satisfied for all .
Thus,
is a feasible solution for all with objective function
value as
. Hence, the problem is unbounded.
Tableau method
Summarize the ideas illustrated above gives the tableau method
for solving
where has full row rank.
Input: The problem and a basis
determining a basic feasible solution. Steps:
Obtain the tableau associated with .
Let be such that
for each , equals ,
the right-hand side value of the -row,
and for each .
(That is, is the basic feasible solution determined by .)
Find an index such that
is a nonbasic variable with a positive coefficient
in the -row.
If no such exists, then stop; is an optimal solution.
For each , let denote the coefficient of
in the -row.
Let .
If , then stop; the problem is unbounded.
Let be such that
Replace with and go to step 1.
Remarks
Within an iteration, the variable
is called the entering variable and is called
the leaving variable.
As seen in the example above, going from step 6 to step 1 does
not require one to compute the tableau from scratch from
One simply multiplies the -row by
and the uses the resulting equation to eliminate in the other equations.
This operation is sometimes called pivoting.
Note that if the right-hand sides are positive, the new solution will have
a strictly better objective function value.
It is possible to have more than one choice for and more than one choice
for . 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:
We will take as the starting basis.
As we saw earlier, the tableau associated with is
The basic solution determined by is
(Note that is in fact a basic feasible solution. If it were
not feasible, we would not be able to continue with this method.)
Note that the coefficient of and that of are
positive in the -row. Therefore, we can set to or .
We use Bland's anti-cycling rule and choose the smaller index.
Hence, and so is the entering variable.
In this step, we need to obtain
where denote the coefficient of in the -row.
We can see from the tableau that
Since both coefficients are positive, we have .
Now, and .
(Recall that refers to the right-hand side value of
the -row for all .)
Hence,
which is attained by
Hence, .
The new is .
We can now proceed to perform another iteration starting with the
new basis .
Worked examples
Consider the following linear programming problem:
Give the simplex tableau associated with the basis and
show that the problem is unbounded.
We need to perform row reduction to the system
so that the pivot variables are , , and .
Subtracting the second equation from the third gives:
Adding the second equation to the first equation and multiplying the
third equation by gives:
Adding twice the third equation to the second equation gives:
This is the tableau associated with the basis .
Now, if we set , then
Note that for all but
as .
Hence, the problem is unbounded because
for all ,
is a feasible
solution with objective function value .
Use the tableau method to solve the following linear programming problem:
Begin with the basis .
Iteration 1
The tableau associated with is
Choose since the coefficient of in the -row
is positive.
since the -row is the only equation (other than
the -row) in which
the coefficient of is positive.
since contains only one element.
New basis is .
Iteration 2
The tableau associated with is
No coefficient of a nonbasic variable in the -row is positive.
Hence,
is
an optimal solution.