Oh, yeh! The Objective Function!

We still have to consider a major issue, namely: optimization. In other words, the simplex method is supposed to optimize a linear function subject to linear constraints. We have shown how we can easily generate basic feasible solutions from a given basic feasible solution, but we have said nothing about optimization. The question is then: how do we incorporate an objective function into the above framework?

The Simplex Method conducts a sequence of pivot operations of the type we described above with a view to optimize a prescribed linear function of the decision variables. This is done by ensuring that in each step there is an improvemnt in the value of the objective function, namely if we maximize then the objective function will increase and if we minimize the objective function will decrease. Since there are finitely many basic feasible solutions, sooner or later this process must terminate. The theory of linear programming guarantees that if we cannot improve the objective function by a single pivot operation (moving from a basic feasible solution to an adjacent (neighbouring) basic feasible solution) then the current basic feasible solution is (globally) optimal. We can thus stop!

To show how this is done, let us first explain how the linear objective function we try to optimize is incorporated into the Gaussian procedure as a constraint.

So let c denote the vector of coefficients of the objective function under consideration, namely assume that our objective is to optimize the function

f(x):= c1x1 + ... + cnxn

subject to a system of linear equations and the beloved non-negativity constraint.

Then this is equivalent to optimizing the scalar z subject to

z - c1x1 - ... - cnxn = 0

and the other "conventional" constraints, observing that in this framework z is also a decision variable.

To see how this idea works, let us consider the linear objective function associated with the coefficient vector =(4,3,0,0,0). If we add the corresponding contraint to the original system, the resulting model is as follows:

2x1 +x2+ x3 = 40
x1+x2 + x4 = 30
x1 + x5= 15
z-4x1 -3 x2 = 0

The associated tableau is then:

BVzx1x2x3x4x5RHS
x302110040
x401101030
x501000115
z1-4-30000

In summary, a new row is appended to the table (at the bottom) comprising the negative values of the coefficients of the objective function and zero in the last position resulting from the definition of the additional variable z. As we shall see, this last position will store the value of the objective function pertaining to the current basic feasible solution. In our case this value is equal to zero because all the cost coefficients of the original basic variables are equal to zero.

Needless to say, if the cost coeffcients of the original basic variables are non-zero, pivot operations will have to be performed to create an identity matrix out of the columns of the basic variables, which always include the z-column. For example, if the cost vector is c=(4,3,0,0,1) then would initially have

BVzx1x2x3x4x5RHS
x302110040
x401101030
x501000115
z1-4-300-10

This tableau is not in a canonical form, and to fix this detail we have to pivot on the -1 entry in the x 5 column. This yields the following tableau:

BVzx1x2x3x4x5RHS
x302110040
x401101030
x501000115
z1-3-300015

The corresponding basic solution is x=(0,0,40,30,15) with z=15.

As far as terminology goes, we shall refer to the elements of the z-row corresponding to the columns of x as reduced costs. This title is not very good, actually it is quite bad! but it has become a sort of standard in this business and we shall thus have to stick with it here.

You may wonder at this point why we keep schlepping the z-column in the tableau: since we have do not plan to pivot on elements of the z-row it is clear that the z-column will never change! So why keep it there?

This is a good suggestion and we shall adopt it immediately: from now own we shall not include the z-column in the simplex tableau. Thus, the last tableau will be displayed as follows:

BVx1x2x3x4x5RHS
x32110040
x41101030
x51000115
z-3-300015

So we conclude that the introduction of an objective function into the analysis can be easily dealt with by the Gaussain procedure: the same operation, ie pivoting, that is used to generate new basic feasible solutions to the problem is used to update the value of the objective function. Life is indeed beautiful!!!!! Try it!

BV x1 x2 x3 x4 x5 RHS
RT
x
x
x
Z


Bug Corner

Due to a JavaScript super-bug, on some platforms the last radio bottom - beg your pardon - button, on a form cannot be turned off on the screen. So the fact that you see it on does not mean that it is on computationally. To check whether or not your platform is infected

This should turn off all the radio buttons.

If you are infected, do the following:

  1. Clear the radio buttons by clicking the CL buttons, and ignore the button that remains on (JavaScript bug!).
  2. Click any one of the buttons.
  3. Write a letter to Netscape or whoever sold you your browser.


Back to the front page.


Previous Episode     Next Episode