Return to Index
Operations Research Models and Methods
Models Section
Teach Linear Programming Excel Add-in
- The Interior Point Method

An interior point demonstration is included in the add-in collection as part of the Teach LP add-in. Access to the demonstration is via the menu item at the left. The dialog defining the model is the same as that used for the tableau and revised simplex options, except we allow only Demonstration and Run solution options. The Demonstration option shows each step of the process while the Run option completes all steps without interruption and presents a summary of the solutions.

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.


All forms of the simplex method reach the optimum by traversing a series of basic solutions.  Since each basic solution represents an extreme point of the feasible region, the path followed by the algorithm moves around the boundary of the feasible region.  In the worst case, it may be necessary to examine most if not all of the extreme points.  This can be inefficient since the number of extreme points can become very large.

In contrast to the simplex algorithm, interior point methods approach the optimum from the interior of the feasible solution space. Only in the limit does the solution approach an optimum solution at the boundary of the feasible region. The development of the interior point methods is a very important step in the theory and practice of optimization. Such methods are available in most optimization packages. We cannot describe the mathematics of the method in this discussion. Refer to Chapter 4 of the ORMM text for a complete discussion of the background of this add-in and several excellent references. This add-in implements a path finding algorithm known as the primal-dual path following algorithm which has become the method of choice in large scale implementations.

In developing the algorithm, we will work with the primal and dual problems as defined below.  The primal problem is assumed to consist of m nonredundant equations in n variables, and is given in equality form.  This means that the n dual variables, π, are unrestricted in sign.  The m-dimensional vector of nonnegative slack variables, z, transforms the dual inequalities to equations.


The algorithm starts at some solution and takes a series of steps toward the optimum. The process stops when a gap measuring the difference between the primal and dual objective values reaches a present limit. A brief survey of the path-finding algorithm is below.


We apply the method to a small example below. The primal and dual problems can be represented with two structural variables so it is possible to graph the paths taken in the search for the optimum. This are shown below. For the primal problem the feasible region is between the sloping lines and the axes of the graph. For the dual problem the feasible region is above the sloping lines. The figures clearly show how the paths traverse the interiors of the feasible regions.


Small Example


The small example is shown below. The step factor indicates that the


The add-in constructs a form that calculates all relevant quantities for the add-in. The initial form is below. The green regions, X, Z and Pi, are maintained by the program. The yellow regions all contain formulas to compute the necessary vectors. The solution moves in a direction described by the vectors starting in row 38. The step size is determined by finding the largest step that will move to a boundary. That step is multiplied by the Step Factor to assure that the method never actually goes to a boundary of the feasible region.


Clicking the Iterate button takes the step from the initial solution to the first solution.

The next step is below.


Notice each step computes both the primal and dual solutions and the gap becomes smaller. When the gap falls below 0.001, the process stops and the program presents a history of solutions.


Larger Example


Here we use the same example used earlier to compare the results with those obtained by the simplex method. The figure below shows the example problem. In the case of the interior point method, no artificial variables are added. We have chosen the initial solution as all 1's.

Clicking the button causes the algorithm to look for a feasible interior solution. In this case, it was not successful and generates the following dialog.

The model after the initial step is shown below. The interior point method works with the primal and dual solutions. There values are shown as ZP and ZD in the figure.


Data cells are provided for the Step factor and the Stopping Gap. The Step Factor determines how close a step will come to the boundary of the feasible region. A step of 1 goes exactly to the boundary. A number less than 1 should be entered. The Stopping Gap holds the minimum value of the primal dual gap. The program stops when the gap reaches this level. The student controls these values by entering numbers in the cells. They may be changed during a demonstration run.

The following discussion describes the several arrays that are placed on the Excel worksheet. Yellow areas contain formulas that implement the interior point method.



Initial Solution
A simple algorithm attempts to find interior solutions for the primal and dual problems. The algorithm will not work unless the last m columns of the primal constraints form a nonsingular matrix. If the algorithm is successful the initial values of x, z and pi are set to the interior values; otherwise they are all set to 1. The interior point algorithm is usually successful with a non-interior start, but it may fail. In the case of the example, the program did not find an interior primal solution and the primal variables are set to 1. With a non-interior initial solution the gap measure is changed as described below.


Current Solution
In the first iteration the initial solution is placed in the arrays holding the current solution. Note that these arrays are colored green indicating that they do not hold formulas, but are manipulated by the algorithm in the add-in. Also shown on the figure is the iteration number, the gap measure and the value of Mu. When the initial solution is interior we use the difference between the dual and primal objective values as a gap measure. This gap is always positive for interior solutions and decreases as the iterations progress.

If the solutions are not interior, the gap as defined above may become negative and is no longer a good measure of optimality. In this case, the program changes the gap to the product of the x and z vectors. Because the optimal solution will satisfy primal-dual complementary slackness, this measure should approach zero as the solution approaches the optimum. Note that it is important that both x and z be strictly positive.


Feasibility and Complementary Slackness
The primal and dual feasibility vectors tell whether the corresponding solution is feasible. The vectors are 0 for feasible solutions. For the first iteration, the vectors show that the primal solution is not feasible, while the dual solution is feasible. The vector labeled Comp. Slack. is a measure of complementary slackness. It should approach 0 as the iterations progress.


Direction and Ratio Vectors
The direction vectors show directions in which pi, z and x should change to move toward feasibility and optimality. The ratio vectors tell how far each component can change to remain interior to the region. The smallest ratio indicates the maximum change that will move to a boundary. We multiply that step by the step factor, less than 1, to determine how far to move.


Next Solution
The next solution is reached from the current solution by taking the indicated step.


Taking the next step
The iterative process continues by moving the next solution to the arrays for the current solution. The formulas on the sheet calculate the new next solution and the process continues. The procedure terminates when the gap reaches the specified smallest value.


The History
The program keeps a history of the primal (x) and dual (pi) solutions as the algorithm progresses. The history for the example is shown below.


Final Solution
The final solution is shown in row 6 of the model. All variables are strictly positive as required by an interior solution, but X1, X3, X4, X6 and X7 are very small. If you refer to the solutions obtained by the simplex method you will find that these are the nonbasic variables at optimality. For an extreme point these all all zero. The corresponding values of the basic variables are: X2 = 1.185, X5 = 2.765, and X8 = 8.824. The interior point method approaches the extreme point, but never reaches it. In some cases where an extreme point solution is required, additional processing of the solution is necessary. There are methods for finding extreme point solutions, but none are included in the add-in.

  This add-in was not meant to be a solution of a large linear programming model, but it succeeds very well at illustrating the concepts and providing small numerical examples.

Return to Top

tree roots

Operations Research Models and Methods
by Paul A. Jensen
Copyright 2004 - All rights reserved