Operations Research Models and Methods / Methods / Linear Programming
The Tableau Primal Simplex Method

The goal of this unit is to provide instructions for the primal simplex method for linear programming implemented using the tableau. Traditionally, this method has been used for the first introduction to the primal simplex method. We use an Excel add-in called Teach LP (teachlp.xla) for instruction. This unit is the introduction to that add-in.

We assume that the student has the Teach LP add-in installed. The program adds new menu items to the OR_MS menu. To run an exercise the student selects Tableau from the menu.

The examples for this section are in the Teach LP demo (teachlpdem.xls). To solve or change the model you must have the Teach LP add-in loaded. Use the Relink buttons command to establish links to the worksheet buttons.

 

The dialog below asks for the size of the LP model to be used in the exercise and the instructional mode.

As noted on the dialog, the problem is to be entered in the equality form, so the number of variables should include the slack or surplus variables necessary to convert inequalities into equalities. All variables are assumed to be nonnegative. The maximum dimensions for this program is 20 variables and 10 constraints.

When the checkbox labeled Make Random Problem is checked, random numbers are used to generate data for the model. Otherwise, the model coefficients are entered as 0.

Three solution options are available. The Demonstration option goes through each iteration of the primal simplex with simple instructions on how the simplex is to be performed. The student only clicks progress buttons to move the demonstration along. The Instruction option allows the student to choose the variables that are to enter and leave the basis. Hints are provided at various points to aid the student in the process. The Do it yourself option leaves the decisions entirely up to the student. The program performs pivot operations initiated by the student.

The randomly generated model used as an illustration in this section is shown below.

Model

The random model has all nonnegative integer coefficients. The constraints are less than or equal to constraints, and the last three variables are slack variables.

The coefficients in the model can be changed in any way. For the example, we have modified the coefficients in column 6, Since an initial basis is not readily apparent for the revised problem, the modification requires the use of an artificial variable.

The Initial Basis

When the model is ready, press the Start button. Before beginning the algorithm, the computer adds an artificial variable, art1, to provide the initial basis. A two phase method is used. In Phase 1, the vector C1 provides the objective coefficients. Only the artificial variables have nonzero cost coefficients (-1). Since the algorithm is maximizing, the artificial variables will be made as small as possible during Phase 1. If they go to zero, the solution obtained is feasible for the original LP model. If Phase 1 does not drive the artificial variables to zero, no feasible solution exists and the algorithm terminates. To begin the iterative portion of Phase 1, press on the Phase 1 button on the worksheet.

The Tableau

The tableau is constructed by the program with the initial basis provided by either slack or artificial variables.

The tableau is located below the LP model on the worksheet as in the figure above. As the algorithm progresses the view of the worksheet is focused on the tableau. Cells indicate the Phase and Iteration number. The cells near the center of the display show the variables that enter and leave the basis. In this initial state, the values shown have no meaning. The portions of the worksheet colored yellow are controlled by the program and generally should not be changed by the student. One exception is the column of red numbers labeled Basic Index. Although generally, the computer will control these numbers, for some exercises the student may wish to manipulate the numbers directly.

The Iteration

Pressing the Iterate button begins the solution process. For the primal simplex algorithm, the first decision is to select some variable to enter the basis. In the Instructional Mode the dialog box asks for the index of the variable to enter the basis. Initially the index field is blank, but pressing the Hint button, causes the negative reduced costs in the tableau to be colored as shown. The index with the most negative reduced cost is inserted in the dialog box. The Hint button is not available in the Do it yourself mode.

Accepting the selection of the entering variable, the next dialog asks for the index of the variable to leave the basis. Again the Hint button colors the appropriate ratios and suggests the correct leaving variable. Note that the variable is specified by its index, not by the row it represents in the tableau.

After accepting the selection of the leaving variable, the pivot row and column are colored blue, and the pivot button is placed on the worksheet.

Pressing the Pivot button causes the program to adjust the tableau for the new basic variables as shown below.

Phase 2

For this example, the iteration has resulted in a zero value for the artificial variable. The solution is optimal for Phase 1. Pressing the Phase 2 button causes the original objective coefficients to be used for the computation of the reduced costs, row 0 of the tableau. The basic variables are the same for the tableau, but the new reduced costs are computed with the Phase 2 objective coefficients.

Pressing the Iterate button initiates the sequence of activities that leads to the next tableau.

The Optimum Solution

One more itereation is necessary to find the optimal solution.

At the last iteration, the Iterate and Pivot buttons are both placed on the screen so the user can experiment with basis changes. The final solution appears in the x-vector of the original LP model.

 



Updated 12/1/99
Operations Research Models and Methods

by Paul A. Jensen and Jon Bard, University of Texas, Copyright by the Authors