The Interior Point Algorithm
The Simplex algorithm, developed shortly after World War II,
was for many years the
main method used to solve Linear Programming problems.
Over the last fifteen years, however,
the Interior Point algorithm has been developed.
This algorithm also solves Linear Programming problems.
From the start it showed great theoretical promise, and considerable
research in the area resulted in practical implementations that performed
competitively with the Simplex algorithm.
More recently, Interior Point algorithms have evolved to become
superior to the Simplex algorithm, in general,
especially when the problems are large.
There are many variations of Interior Point algorithms.
PROC INTPOINT uses the Primal-Dual with Predictor-Corrector algorithm.
More information on this particular algorithm and related theory
can be found in the texts by Roos, Terlaky, and Vial (1997),
Wright (1996), and Ye (1996).
After preprocessing, the Linear Program to be solved is
-
- min {cT x}
- subject to
- A x = b
-

This is the
primal problem.
The matrices of d, z, and Q of NPSC have been renamed
c, x, and A, respectively, as these symbols are by convention
used more, the problem to be solved is different from the original because of
preprocessing,
and there has been a change of primal variable to transform the
LP into one whose variables have zero lower bounds.
To simplify the algebra here, assume that variables have infinite
upper bounds,
and constraints are equalities.
(Interior Point algorithms do efficiently handle finite upper bounds,
and
it is easy to introduce primal slack variables to change inequalities into
equalities.) The problem has n variables. i is a variable number.
k is an iteration number, and if used as a subscript or superscript it
denotes "of iteration k".
There exists an equivalent problem, the dual problem, stated as
-
- max {bT y}
- subject to
- AT y + s = c
-

- where
- y are dual variables, and s are dual constraint slacks
What the Interior Point has to do is to solve the system of equations to
satisfy the Karush-Kuhn-Tucker (KKT) conditions for optimality:
-
- A x = b
-
- AT y + s = c
-
- X S e = 0
-

-

- where
- S = diag(s), (that is, Si,j = si if i=j,
Si,j = 0 otherwise)
-
- X = diag(x), and
-

These are the conditions for feasibility, with the
complementarity
condition X S e = 0 added. cT x = bT y must occur at the optimum.
Complementarity forces the optimal objectives of the primal and dual
to be equal, cT xopt = bT yopt, as
-
- 0 = xTopt sopt = sTopt xopt = (c - AT yopt)T xopt = cT xopt -
yTopt (A xopt) = cT xopt - bT yopt
- therefore
- 0 = cT xopt - bT yopt
Before the optimum is reached, a solution (x, y, s) may not satisfy the KKT conditions:
- Primal constraints can be broken,
.
- Dual constraints can be broken,
.
- Complementarity is unsatisfied,
.This is called the duality gap.
The Interior Point algorithm works by using Newton's method to find a
direction
to move
from the current solution (xk, yk, sk) toward a better solution:
-

is the step length and is assigned a value as large as possible and not so
large that a xk+1i or sk+1i
is "too close" to zero.
The direction in which to move is found using
-

-

-

To greatly improve performance, the third equation is changed to
-

- where
, the average complementarity, and
-

The effect now is to find a direction in which to move to reduce
infeasibilities and to reduce the complementarity toward zero,
but if any
xki ski is too close to zero, it is "nudged out" to
,and any
xki ski that is larger than
is "nudged into"
.A
close to or equal to 0.0 biases a direction toward the
optimum,
and a value for
close to or equal to 1.0 "centers" the
direction toward a point where all pairwise products
.Such points make up the Central Path in the interior.
Although centering directions make little, if any, progress in reducing
and moving the solution closer to the optimum,
substantial progress toward the optimum can usually be made in
the next iteration.
The Central Path is crucial to why the Interior Point algorithm is so
efficient. As
is decreased, this path "guides"
the algorithm to the optimum through the interior of feasible space.
Without centering, the algorithm would find a series of solutions near each other
close to the boundary of feasible space.
Step lengths along the direction
would be small and many
more iterations would probably be required to reach the optimum.
That in a nutshell is the Primal-Dual Interior Point algorithm.
Varieties of the algorithm differ in the way
and
are chosen
and the direction adjusted during each iteration.
A wealth of information can be found in the texts by Roos, Terlaky, and Vial (1997),
Wright (1996), and Ye (1996).
The calculation of the direction is the most time-consuming step
of the Interior Point algorithm.
Assume the kth iteration is being performed,
so the subscript and superscript k can be dropped from the algebra:
-

-

-

Rearranging the second equation
-

Rearranging the third equation
-

-

- where

Equating these two expressions for
and rearranging
-

-

-

-

- where

Substituting into the first direction equation
-

-

-

-

,
,
,
, and
are calculated
in that order.
The hardest term is the factorization of the
matrix
to determine
.
Fortunately, although the values of
are
different for each iteration,
the locations of the nonzeros in this matrix remain fixed; the
nonzero locations are the same as those in the matrix (A AT).
This is because
is a diagonal
matrix that has the effect of merely scaling the columns of (A AT).
The fact that the nonzeros in
have a constant pattern is exploited by all
Interior Point algorithms and is a major reason for their
excellent performance.
Before iterations begin, A AT is examined and its rows and
columns are symmetrically permutated so that during Cholesky
factorization, the number of
fillins created is smaller.
A list of arithmetic operations to perform the factorization is saved
in concise computer data structures (working with
memory locations rather than actual numerical values).
This is called symbolic factorization.
During iterations, when memory has been initialized with numerical values,
the operations list is performed sequentially.
Determining how the factorization should be performed again and again
is unnecessary.
The variant of the Interior Point algorithm implemented in
PROC INTPOINT is a Primal-Dual Predictor-Corrector Interior Point
algorithm.
At first, Newton's method is used to find a
direction
to move,
but calculated as if
is zero, that is, as a step with no centering,
known as an affine step:
-

-

-

-
-

is the step length as before.
Complementarity xT s is calculated at (xkaff, ykaff,
skaff)
and compared with the complementarity at the starting point
(xk, yk, sk), and the success of the affine step is gauged.
If the affine step was successful in reducing the complementarity
by a substantial amount, the need for centering is not great,
and
in the following linear system
is assigned a value close to zero.
If, however, the affine step was unsuccessful,
centering would be beneficial,
and
in the following linear system
is assigned a value closer to 1.0.
The value of
is therefore adaptively altered depending on the
progress made toward the optimum.
A second linear system is solved to determine a centering vector
from (xkaff, ykaff, skaff):
-

-

-

then
-

-

where, as before,
is the step length assigned a value
as large as possible but not so
large that a xk+1i or sk+1i
is "too close" to zero.
Although the Predictor-Corrector variant entails solving two linear
systems instead of one, fewer iterations are usually required to reach
the optimum.
The additional overhead of calculating the second linear system
is small, as the factorization of the
matrix has already been
performed to solve the first linear system.
If the LP had upper
bounds (
where u is the upper bound vector), then the primal and dual problems, the duality gap, and the KKT
conditions would have to be expanded.
The primal Linear Program to be solved is
-
- min {cT x}
- subject to
- A x = b
-

is split into
and
. Let z be
primal slack so that x + z = u, and associate dual variables w with these constraints.
The Interior Point solves the system of equations to
satisfy the Karush-Kuhn-Tucker (KKT) conditions for optimality:
-
- A x = b
-
- x + z = u
-
- AT y + s - w = c
-
- X S e = 0
-
- Z W e = 0
-

These are the conditions for feasibility, with the
complementarity
conditions X S e = 0 and Z W e = 0 added. cT x = bT y - uT w must occur at the optimum.
Complementarity forces the optimal objectives of the primal and dual
to be equal, cT xopt = bT yopt - uT wopt, as
-
- 0 = zTopt wopt = (u - xopt)T wopt = uT wopt - xTopt wopt
-
- 0 = xTopt sopt = sTopt xopt = (c - AT yopt + wopt)T xopt =
cT xopt - yTopt (A xopt) + wopt)T xopt= cT xopt - bT yopt + uT wopt
- therefore
- 0 = cT xopt - bT yopt + uT wopt
Before the optimum is reached, a solution (x, y, s, z, w) might not satisfy the KKT conditions:
- Primal bound constraints can be broken,
.
- Primal constraints can be broken,
. - Dual constraints can be broken,
. - Complementarity conditions are unsatisfied,
and
.
The calculations of the Interior point algorithm can easily be derived in a
fashion similar to calculations for when an LP has no upper bounds.
See the paper by Lustig, Marsten, and Shanno (1992).
In some iteration k, the affine step system that must be
solved is:
-

-

-

-

-

Therefore, the computations involved in solving the affine step are:
-

-

-

-

-

-

-

-
-
-

is the step length as before.
A second linear system is solved to determine a centering vector:
from (xaff, yaff, saff, zaff, waff):
-

-

-

-

-

-
- where
, complementarity at the
start of the iteration
-
, the affine
complementarity
-
, the average complementarity
-

Therefore, the computations involved in solving the centering step are:
-

-

-

-

-

-

Then
-

-
-
-

where, as before,
is the step length assigned a value
as large as possible but not so
large that a xk+1i, sk+1i, zk+1i, or wk+1i
is "too close" to zero.
The algebra in this section has been simplified by assuming that all
variables have finite upper bounds.
If the number of variables with finite upper bounds nu < n, you need to change the
algebra to reflect
that the "z" and "w" arrays has dimension nu x 1 or
nu x nu.
Other computations need slight modification.
For example, the average complementarity
-

An important point is that any upper bounds can be handled by specializing
the algorithm and not by generating the constraints
and adding these to the main primal constraints A x = b.
Copyright © 2000 by SAS Institute Inc., Cary, NC, USA. All rights reserved.