Lipsol
Lipsol
Lipsol
1 Introduction
After over a decade of extraordinarily active research triggered by the seminal work
of Karmarkar 5], the eld of interior-point methods has nally come to maturity
as far as linear programming is concerned. Not only do we have a solid theoretical
foundation for interior-point methods for linear programming, but also a rather
comprehensive understanding on their practical eciency. Among many general
algorithmic approaches, the most e ective one in practice has proven to be the
primal-dual infeasible-interior-point approach, including a number of variants and
enhancements such as Mehrotra's predictor-corrector technique 13].
Recent experiments indicate that as the problem size increases, so does the frequency of interior-point methods outperforming the classic simplex method 12].
This trend has been observed for a while but is becoming more pronounced recently.
In our opinion, this marks the beginning of a new era in which interior-point methods coexist with the simplex method but gradually assume the role of dominant
computational engine for general large-scale linear programming
y
YIN ZHANG
URL: http://www.mcs.anl.gov/home/otc/InteriorPoint/index.html.
(1)
where A 2 Rm n, which determines the sizes of other vectors involved, and I and
J are disjoint index sets such that I J = f1 2 ng and I \ J = .
Without loss of generality, let us assume that for some positive integer nu n
I
= f1 2
nug and
= fnu + 1 nu + 2
ng:
(2)
Given a vector x in Rn , we use the notation xu for the vector in Rnu whose elements
are the rst nu elements of x, i.e.,
xu]i = xi i = 1 2
nu :
Moreover, we dene the appending operator \app" from Rnu to Rn that appends
n ; nu zeros to vectors in Rnu , i.e., for w 2 Rnu
app(w)]i =
wi 1 i nu
0 nu < i n:
(3)
By adding the slack variables s 2 Rnu , we can rewrite the above linear program
into the standard form:
min
cT x
s.t.
Ax = b
(4)
xu + s = u
x0 s0
The dual of the above standard primal linear program is:
max
bT y ; uT w
T
s.t. A y + z ; app(w) = c
z0 w0
(5)
YIN ZHANG
T
where E = Iu 0 , Iu is the identity matrix of dimension nu , X = diag(x),
Z = diag(z), S = diag(s) and W = diag(w).
Unlike a primal (dual) method which concentrates on solving the primal (dual)
program, a primal-dual interior-point method for linear programming solves the
KKT system (6), which includes all the primal and dual variables and slacks.
is
It is clear from (6) that solving a linear program is equivalent to solving a system of
linear-quadratic equations with nonnegativity constraints on a subset of variables.
In order to simplify our coming discussion, we rewrite the KKT system (6) into
a constrained algebraic system of ` equations and ` variables with nonnegativity
constraints on `+ variables:
F(v) = 0 vi 0 1 i `+
(8)
where v = (x z s w y), ` = 2n + 2nu + m and `+ = 2n + 2nu.
Let us rst drop the nonnegativity constraints from (8) and consider Newton's
method for solving an unconstrained system of nonlinear equations
F (v) = 0
which can be written as
vk+1 = vk ; F 0(vk );1F (vk ):
(9)
It is well-known that Newton's method has excellent local convergence properties.
More specically, if the Jacobian matrix F 0(v) is nonsingular and Lipcshitz continuous at a solution v , and the initial point v0 is suciently close to v , then
the iterate sequence fvk g converges to v Q-quadratically. On the other hand,
Newton's method generally does not have very good global convergence properties.
A variant of Newton's method is called the damped Newton:
vk+1 = vk ; k F 0(vk );1 F(vk )
(10)
which introduces a damping factor, or step length, k , usually chosen from the
interval (0 1], to enhance global convergence.
Another variation of Newton's method is the so-called composite Newton method.
At each iteration, it calculates an intermediate point v^k and uses the same Jacobian
matrix twice:
v^k = vk ; F 0(vk );1 F(vk ) vk+1 = v^k ; F 0(vk );1 F(^vk ):
Let us now go back to the nonnegativity constrained system of equations (8) that
represents a linear programming in a simplied notation. We recall that for linear
programming, F (v) contains only linear and quadratic equations and the quadratic
ones are complementarity pairs.
Obviously, in the presence of the nonnegativity constraints for the rst `+ variables we cannot expect to obtain a nonnegative solution by just simply applying the
Newton's method. However, a crucial observation is that the damped Newton (10)
will generate a sequence of iterates fvk g that satises the nonnegativity constraints
if (i) we start from a initial point v0 whose rst `+ components are positive, i.e.,
vi0 > 0 1 i `+ , and (ii) we choose the step-length at each iteration so that
these rst `+ components remain positive in all the subsequent iterations.
It is important to note the necessity of keeping the nonnegative variables (the
rst `+ component) strictly positive at every iteration instead of just nonnegative.
Consider a complementarity condition si wi = 0. The Newton equation (i.e., the
linearized equation) for si wi = 0 at a given point (s w) is si wi +wi si = ;si wi : If
one variable, say wi, is zero, then the Newton equation becomes si wi = 0, leading
to a zero update wi = 0. Consequently, wi will remain zero all the time once it
becomes zero. This is fatal because an algorithm will never be able to recover once
it sets a variable to zero by mistake. Therefore, it is critical to keep the nonnegative
variables strictly positive at every iteration, not just nonnegative.
Even keeping nonnegative variables strictly positive, one would still expect some
diculty in recovering from a situation where a variable is adversely set to too
small a value. To decrease the chances of such mistakes at early stages, it would
be desirable that all the complementarity pairs converge to zero at the same pace,
say ski wik = k ! 0 as k ! 1 for every index i. Towards this goal (and for other
theoretic considerations as well), one can perturb each complementarity condition
YIN ZHANG
Algorithm IIP-1:
End
Mehrotra 13] introduced an enhanced version of the infeasible-interior-point algorithm that he called a predictor-corrector method. It was observed in 17] that
Mehrotra's algorithm can also be considered as a modication to the damped composite Newton's method (12), which is schematically very close to the following
algorithmic framework:
Algorithm IIP-2:
End
In this framework, two steps are computed at each iteration: the predictor step
p vk and the corrector step cvk , both using the same matrix factorization. Extensive computational experiments 10, 13] have indicated that Mohrotra's infeasibleinterior-point framework is by far the most ecient interior-point framework in
practice. It usually requires considerably less iterations than algorithms in the
framework of Algorithm IIP-1. Furthermore, since it requires only one matrix factorization per iteration, it is more ecient than algorithms based on the MizunoTodd-Ye 14] predictor-corrector approach which requires two matrix factorizations
per iteration.
For proper choices of parameters and starting points, the global convergence
and computational complexity of Algorithm IIP-1 were rst established in 7] and
19], respectively and the computational complexity of Algorithm IIP-2 was rst
established in 21].
There are a number of e ective enhancements to Algorithm IIP-2. Xu et al 18]
proposed and implemented a homogeneous and self-dual algorithm which applies
the basic framework of Algorithm IIP-2 to a homogeneous and self-dual reformulation of a linear program. At the cost of some extra work at each iteration,
this algorithm can more reliably detect infeasibility. Hence in the case of solving
untested models with unknown feasibility, the homogeneous and self-dual algorithm
should be preferable. Recently, Gondzio 4] proposed a technique called multiple
centrality corrections that can further reduce the number of iterations required for
convergence by adaptively adding one or more corrector steps to the framework of
Algorithm IIP-2.
3 The MATLAB Environment
Our implementation was done under the MATLAB environment. MATLAB, standing for matrix laboratory, is a high-level technical computing environment for numeric computation and visualization. It integrates numerical analysis, matrix computation and graphics in an easy-to-use environment where matrix-computational
formulas can be expressed in MATLAB scripts, called M-les, that are very close to
what they would be written mathematically - thus avoiding low-level programming
as is needed in Fortran or C programming. Because of this advantage, developmenttime in MATLAB is much shorter than in other languages such as Fortran and C.
However, for computation-intensive tasks overhead incurred in MATLAB generally makes it slower, which is a price one has to pay in exchange for programming
simplicity.
MATLAB provides external interface facilities to enable interaction with programs written in Fortran or C languages in the form of the MEX-les, where MEX
stands for MATLAB Executable. MEX-les are dynamically linked subprograms
compiled from C or Fortran source code that can be called and run from within
MATLAB in the same way as MATLAB M-les or built-in functions. The external
interface functions provide functionality to transfer data between MEX-les and
MATLAB.
YIN ZHANG
Our implementation includes both M-les and MEX-les. The routine tasks,
mostly matrix and vector operations, are done by M-les, while the computationally
intensive tasks are done by MEX-les generated from Fortran programs. This
combination enables us to take advantage of both worlds: programming simplicity
in MATLAB and computational speed in Fortran.
4 Implementation Details
Our implementation is based on the framework of Algorithm IIP-2. We still need
to specify the following: (1) the initial point and the stopping criteria (2) how
to compute the steps and (3) how to choose the parameters k and k . As in
most implementations, we use di erent step lengths in the primal and dual spaces
to achieve better eciency. In addition, there are a number of implementation
issues that usually do not appear in algorithms but are extremely important to the
quality of software. These include the exploitation of sparsity and the treatment of
numerical instability as well as dense-columns. We will discuss these issues in some
detail.
The software package resulted from our implementation, currently for UNIX systems only, is called LIPSOL (Linear-programming Interior Point SOLvers). LIPSOL runs under MATLAB version 4.0 and above.
4.1 Preprocessing, Starting and Stopping
The purpose of preprocessing is to transform a given linear program into the standard form (see (1)) and get rid of some redundancy from the formulation. Currently,
the de facto industrial standard input format for linear programs is the MPS format (see 15] for an introduction to the MPS format). LIPSOL includes an MPS
reader program mps2mat to read MPS les and translate the data into MATLAB
data les. In the MPS reader, a free variable is split into the di erence of two
nonnegative variables.
The preprocessing function preprocessing.m performs a number of tasks such
as checking obvious infeasibility, deleting xed variables and zero rows and columns
from the matrix A, solving equations with only one variables and shifting nonzero
lower bounds to zero, whenever any of these events occurs.
The scaling function scaling.m performs a row and a column scaling to the
matrix A. We believe that those scalings help the solution process in some way,
though we do not have hard evidence on how much benets these scalings actually
bring.
The M-le initpoint.m chooses starting point for iterations. The starting-point
selection in LIPSOL basically follows the one used in 10] with some minor modications.
The function stopping.m tests stopping criteria and, if any met, terminates the
10
YIN ZHANG
i.e., the combined predictor-corrector step. The primal and dual step-length parameters kp and kd at each iteration are chosen so that the new iterate
0 xk+1
B
z k+1
B
k
+1
B
v B sk+1
@ wk+1
yk+1
1 0 xk
CC BB zk
CC = BB sk
A @ wk
yk
1 0 xk
CC BB pd zk
CC + BB p sk
A @ d wk
d yk
1
CC
CC
A
i.e., the components of the vectors xz and sw are all the same and, of course, equal
to their average g(x z s w). Staying in N prevents the elements of (x z s w) from
becoming too close to zero at an early stage.
In our implementation, we use a back-tracking strategy to ensure that the new
iterate vk+1 is on the boundary or just inside of N . We start with
(p d ) = 0 (p d)
where (p d ) are computed by ratio tests and 0 is set to 0:9995 by default, and
repeatedly decrease (p d) by a certain factor, if needed at all, until the dening
inequality of the set N is satised. This process is implemented in the function
update.m.
4.3 Computing the Steps
The major computation at each iteration is to solve the a system with the coecient
matrix F 0(v) (see (7)) and two di erent right-hand sides, one for the predictor
direction and the other for the corrector one. Both right-hand sides can be written
in terms of vectors rb ru rc rxz and rsw . More specically, the right-hand sides
for the predictor and the corrector directions are, respectively, the negative of the
following two vectors:
0 r 1 0
1
Ax ; b
b
BB ru CC BB
C
x +s;u
BB rc CC = BB AT y + uz ; app(w) ; c CCC
@ rxz A @
A
xz
rsw
sw
and
0
BB
BB
@
1 0
11
0
rb
C
B
CC
0
ru C B
B
CC
rc C
0
C=B
rxz A @ (p xk )(p z k ) ; k en A
rsw
(p sk )(p wk ) ; k enu
where en and enu are vector of all ones of dimension n and nu, respectively. It
is worth noting that the rst vector is just F(vk ), and the second F (vk + p vk )
subtract the perturbation vector involving k .
Since F 0(v) is a highly structured sparse matrix, one can solve it by block Gaussian elimination which leads to the following procedure for both the predictor and
the corrector steps corresponding to di erent right-hand sides:
Procedure Steps:
(1) Form the matrix D = X ;1 Z + diag(app(S ;1 w))];1.
(2) Overwrite: rc ( rc ; X ;1 rxz + app(S ;1 (rsw ; W ru).
(3) Solve for y by Cholesky factorization from the linear
system: (ADAT )y = ;(rb + ADrc ).
(4) Compute x = DAT (y + rc),
z = ;X ;1 (Zx + rxz ),
s = ;(xu + ru ),
w = ;S ;1 (W s + rsw ).
This procedure is implemented in the M-le direction.m. Similar procedures
were used in earlier implementations, see 9], 10] and 13].
4.4 Sparse Cholesky Factorization
For our large-scale interior-point code, the major computation at each iteration
is in step (3) of Procedure Steps where the coecient matrix ADAT is formed
and factored. Since D is a positive diagonal matrix, if A has full rank ADAT is
positive denite with the same sparsity pattern as AAT . The eciency of a largescale interior-point code lies predominantly on the eciency of the sparse Cholesky
factorization code used.
Cholesky factorization of a sparse matrix, say P = LLT where L is lower triangular, generally involves three stages. First one need to reorder the rows and columns
of the matrix P in an attempt to minimize the llings { the new nonzero elements
created during factorization. Then one performs a symbolic factorization to gure
out the sparsity pattern of L. Finally, one carries out the actual factorization. In
the context of interior-point algorithms, since the sparsity pattern of P = ADAT ,
disregarding cancellation, remains the same for any positive diagonal matrix D,
one only need to perform an ordering and a symbolic factorization once at the very
beginning.
MATLAB does provide functions for ordering and factoring a sparse symmetric
positive denite matrices. However, for the sake of numerical stability, we must
12
YIN ZHANG
be able to modify the standard Cholesky factorization procedure (see Section 5).
This can not be done under MATLAB since source code access is unavailable for
MATLAB's build-in functions. Therefore, we decided to use MATLAB's external interface facilities and existing Fortran sparse Cholesky code in our LIPSOL
implementation. We constructed MEX-les from two Fortran packages: a sparse
Cholesky factorization package (version 0.3) developed by Esmond Ng and Barry
Peyton at the Oak Ridge National Laboratory (ORNL), and a multiple minimumdegree ordering package by Joseph Liu at University of Waterloo which is included
in the ORNL package. The ORNL package uses relatively new techniques such
as supernode block factorization to take advantage of modern computer architectures 8].
4.5 Dense Columns
m
X
i=1
dii aiaTi
that ADAT will be generally dense as long as there is one dense column in A.
Although for most large-scale applications the occurrence of dense columns is rare,
it does occur from time to time and must be dealt with.
Our strategy for dense columns, like in many other codes, is to split the relatively
dense columns, if any, from the sparse ones to form
ADAT = P + UU T
where P is the product of the sparse columns and U is the collection of dense
columns multiplied by corresponding diagonal elements of D1=2. Matrix U usually
has a very low rank. If P is nonsingular, then by the Sherman-Morrison formula
(P + UU T );1 = P ;1 ; P ;1U(I + U T P ;1U);1U T P ;1
the solution to the linear system (P + UU T )y = h is
y = ^h ; P ;1U(I + U T P ;1U);1U T h^
where h^ = P ;1h. Of course, we never compute any inverse matrices, but just solve
the relevant linear systems. Since U has very low rank, the matrix I + U T P ;1U is
very small and requires a small number of back-solves to form once P is factored.
This approach is not always stable because P , the sparse portion of ADAT ,
can be severely ill-conditioned or actually singular. To stabilize the process, we
utilize a preconditioned conjugate gradient method whenever we nd the residual
for the solution from the Sherman-Morrison formula is unsatisfactory. The preconditioner is constructed from the Cholesky factor of P = LLT (possibly modied,
see Section 5). Recall that the system we want to solve is
(LLT + UU T )y = h:
13
Our preconditioned conjugate gradient method mathematically amounts to applying the conjugate gradient method to the following preconditioned, equivalent system
I + (L;1 U)(L;1 U)T ]y = h
where y = LT y and h = L;1 h. The new coecient matrix generally has a better
eigenvalue distribution.
This combination of the Sherman-Morrison formula and preconditioned conjugate gradient method was proposed in Choi, Monma and Shanno 2]. Throughout
the computation, we only factor the sparse portion of the matrix ADAT . Computational results have shown that the above dense column strategy performs adequately
for the Netlib set of test problems (see Section 6 for a description of the Netlib set).
The implementations of the Sherman-Morrison formula and the preconditioned conjugate gradient method are, respectively, sherman.m and pcg.m.
5 Numerical Stability in Cholesky Factorization
It is well known that in a primal-dual interior-point method the Jacobian matrices
at any primal degenerate solution is necessarily singular. In Procedure Steps, this
singularity is reected in the matrix P = ADAT where D is a diagonal matrix
varying from iteration to iteration. It is known that for linear programming all
solutions in the relative interior of a non-singleton solution set satisfy the strict
complementarity
xz = 0 x + z > 0 sw = 0 s + w > 0:
(14)
This implies that the diagonal elements of D either approach zero or innity, as
can be seen from the construction of D. Whenever D has too many small diagonal
elements, near-singularity could occur and the standard Cholesky factorization may
become unstable in that very small diagonal pivots are encountered. For degenerate
problems, this near-singularity can cause ill-conditioning so severe that it often
prevents the standard Cholesky factorization method from getting an acceptable
approximate solution.
In this section, we discuss in detail a technique for overcoming the numerical
instability encountered in Cholesky factorization. Similar techniques have been
used in earlier implementations such as in OB1 9]. However, we have not seen
any discussion in the literature on the theoretical foundation and justication for
these techniques. In the sequel, we will motivate and construct a mathematically
well-founded procedure for treating numerical instability in Cholesky factorization
in the context of interior-point algorithms.
Let us dene for a strict complementary solution v = (x z s w y ) the
index sets
B
N
=
=
fi : xi
fi : xi
(15)
(16)
14
YIN ZHANG
It is well-known that these index sets are invariant with respect to the choices of
strict complementary solution v . Without loss of generality, let us assume that for
some positive integer p n
B = f1 2 pg N = fp + 1 p + 2 ng:
(17)
Now consider the linear system in step (3) of the Procedure Steps
ADAT y = ;(rb + ADrc )
(18)
where rb = Ax ; b. As the iterates approach the interior of the solution set, from
the denition of D we see that
Dii ! +01 ii 22 NB :
(19)
We introduce the following partitioning in terms of the index sets B and N
specied in (15), (16) and (17) for the matrices D, A and rc:
(r )
cB :
D = D0B D0
A = AB AN ] rc = (r
N
c )N
Using this partitioning, we rewrite the linear system (18) as
(AB DB ATB + AN DN ATN )y = ;(rb + AB DB (rc )B + AN DN (rc)N ):
(20)
As the iterates converge to the solution set, we know that DB ! 1, DN ! 0 and
rb ! 0. Moreover, the overwritten rc (see (2) in Procedure Steps) is bounded under
normal conditions. Hence we have the following asymptotic behavior for terms in
(20):
AB DB ATB ! 1
AN DN ATN ! 0
AB DB (rc )B ! 1
AN DN (rc )N ! 0:
As a result, in a small neighborhood of the solution set linear systems of the form
(20) are all small perturbations to the the following consistent linear system
(AB DB ATB )y = ;AB DB (rc )B :
(21)
If the rank of AB is less than m, such as in the case of degeneracy where p < m,
then AB DB ATB is singular. Consequently, as the iterates progresses towards the
solution set, we encounter increasingly ill-conditioned or even numerically singular
systems. In this case, the standard solution procedure based on Cholesky factorization will break down and fail to return an acceptable approximate solution. Unfortunately, in practical applications degeneracy occurs surprisingly often. Therefore,
in order to have a robust and accurate interior-point code one must be able to
15
solve to an acceptable accuracy the linear system (21) as well as arbitrarily small
perturbations to it.
Let us now consider solving (21). Without loss of generality, we assume that (i)
AB has full rank p but p < m, and (ii) the rst p rows of AB is linearly independent.
The second assumption implies that the rst p rows, and columns by symmetry, of
AB DB ATB are linearly independent.
However, we would like to avoid to be directly involved in the partitioning of
B and N and prefer to have a single algorithm that can stably solve (18) in all
situations, be it far away from or close to the solution set. So later when we
construct the algorithm, we will assume no knowledge on the specic structure of
the coecient matrix P except that it is symmetric positive semidenite but not
necessarily denite.
Now suppose that we are given the coecient matrix P and right-hand side h,
where
P = AB DB ATB h = ;AB DB (rc)B
and want to solve
Py = h:
(22)
This linear system has multiple solutions. Fortunately, it is known that the convergence theory for primal-dual interior-point algorithms only require a solution to
(18), so any solution will suce.
We make a further partitioning by grouping the rst p rows and the last (m ; p)
rows of A, y and h:
1
y
h
1
1
B
AB = A
y
=
h
=
A2B
y2
h2 :
By our assumption, A1B is a p
p nonsingular matrix. From the transpose of QR
decomposition, there exists a p
p orthogonal matrix Q such that
L
1=2
AB DB = M Q
where L is p
p, lower triangular and nonsingular. It is not dicult to see that
L
L 0 LT M T
T
T
T
P = AB DB AB = M
L M = M 0
(23)
0 0
and the right-hand side is nothing but the Cholesky factorization of P. Moreover,
all the solutions of (22) are given by the rst p linearly independent equations
(LLT )y 1 + (LM T )y2 = h1 :
In particular, we are interested in the so-called basic solution
L;T L;1h
1
(24)
y =
0
corresponding to y 2 = 0.
16
YIN ZHANG
For convenience of discussion, in the sequel we will use the extended arithmetic
namely, we will include 1 (only positive innity will suce for our purpose) as a
real number such that 1=1 = 0. Let us dene D1 as the (m ; p)
(m ; p) diagonal
;1 = 0.
matrix with innity on the diagonal and as a result D1
Replacing the zero diagonal blocks by D1 in the Cholesky factors of P in (23),
we obtain the following matrix product associated with P,
L 0 LT M T
P) M
(25)
D1
0 D1 :
We will call (25) the Cholesky-Innity factorization of the positive semidenite
matrix P.
We now show that the basic solution y given in (24) is the uniquely solution
to the extended system associated with the Cholesky-Innity factorization of P :
L 0 LT M T y
h
1
1
(26)
0 D1
y2 = h2 :
M D1
This system can be solved by the forward and backward substitution procedure
LT M T y
t
L 0 t
h
1
1
1
1
and
M D1
t2 = h2
0 D1
y2 = t2
which leads to
t1
= L;1 h1
;1 (h2 ; Mt1) = 0
t2
= D1
;1 t2 = 0
y 2
= D1
y 1 = L;T (t1 ; M T y 2) = L;T L;1 h1
namely, y = y . Therefore, solving (22) for the basic solution reduces to nding the Cholesky-Innity factorization of P . We provide a simple modication
to the Cholesky factorization procedure to obtain an algorithm that will return
the Cholesky factorization for a positive denite matrix, but the Cholesky-Innity
factorization for a positive semidenite, but not denite, matrix.
A (column version) Cholesky factorization procedure for P = LLT , where P =
pij ] is symmetric and L = `ij ] is lower triangular, can be written as follows.
Procedure Cholesky:
For j = 1 : n P
End
End
17
Procedure Cholesky-Innity:
For j = 1 : n P
End
End
18
YIN ZHANG
MIPS R4400/150MHz CPU's, 1 gigabytes of memory, and 16k data cache per processor (plus 16k instruction cache and 1 Mbyte secondary cache). Since we always
used only a single processor at a time, our numerical results can be reproduced on
a single processor workstation with the same CPU and ample memory (say, 128
Mbytes).
The test problems used in our experiments were the Netlib set of linear programs.
Netlib set is an electronically distributed collection of linear programs originated
and maintained by David Gay 3] at the Bell Laboratory. As of January of 1996,
the collection consists of 95 problems, including a number of fairly large problems
from real-world applications. The sizes of the problems range from a few dozen
variables to over fteen thousands. Over the years, the Netlib set has become the
standard set of test problems for testing and comparing algorithms and software
for linear programming.
6.1 Test Results for LIPSOL
We tested LIPSOL v0.3 on all the 95 linear programming problems in the Netlib
test set. We tabulate the test results in Tables 2-4 in the Appendix. In each table,
the seven columns give, respectively, the problem name, the number of constraints
in the unprocessed model, the number of variables in the unprocessed model, the
number of iterations required for convergence, the total relative residual as given
by (13), the primal objective value and the CPU seconds.
6.2 Fortran Package OB1
OB1 (Optimization with Barrier 1) was developed by Irv Lustig, Roy Marsten
and David Shanno. Their work 9], largely based on the OB1 package, won the
Orchard-Hays Prize from the Mathematical Programming Society in 1991 as the
best computational research of the year. Until its retirement in 1993, OB1 was
widely recognized as the best interior-point code for linear programming. The
version of OB1 available to us and used in our experiments was version 5.0 released
in 1991. We understand that the nal version of OB1 was version 6.0, which
contained enhancements and improvements to version 5.0.
Our purpose is to compare qualitatively the performance of LIPSOL v0.3 with an
ecient interior-point code written in Fortran or C. In addition to its availability
to us, OB1 version 5.0 is well suited for this purpose of comparison since, being
the best interior-point code during the 1991-1992 period, it is still an adequately
ecient code even by today's standard.
We compiled OB1 version 5.0 under SGI IRIX 5.3 F77 compiler using the ags
-O -mips2. These same ags were also used to compile the MEX-les in LIPSOL.
We used all the default options to run OB1 version 5.0 except specifying the cache
size as 16k.
19
We also solved all 95 Netlib problems using OB1 version 5.0 on the same SGI
computer. Since the purpose of the comparison was to qualitative rather than
quantitative to save space we will not list all the computational results obtained
for OB1. Instead, we will summarize the comparison by a graph in Figure 1.
Our general observation is that for most problems, in particular for the smaller
problems, LIPSOL v0.3 is slower than OB1 5.0, but for the a few largest problems
LIPSOL v0.3 performs as well as, or even slightly better than, OB1 5.0. To capture
the trend, we rearranged the problems in an ascending order according to the
average time per iteration required by LIPSOL and plotted the total solution times
required by both LIPSOL v0.3 and OB1 5.0 in Figure 1, where the left-most on the
horizontal axis is the least expensive problem and the right-most the most expensive
one. The plot is in logarithmic scales the the unit is in CPU second. To lter out
random uctuation on the small problems, we took average of ten (for the smallest
problems) or ve (for others) problems in groups. Since there are fewer very large
problems, no average was taken for the four most expensive problems.
le=g1.eps,width=4.5in,height=4.5in
FIGURE 1: Solution Time: LIPSOL v0.3 vs. OB1 5.0
From Figure 1, we can see that for less expensive problems, LIPSOL v0.3 was
clearly slower than OB1 5.0. However, as the problems become more and more
expensive, the di erence between the two shrinks gradually. For the a few most
expensive (not necessarily the largest) problems, the amount of solution time required by LIPSOL v0.3 is similar to or even less than that required by OB1 5.0, as
is shown in Table 1.
TABLE 1: LIPSOL v0.3 and OB1 5.0 on Large problems
As one can see, the largest problem in terms of sizes is Stocfor3. However, this
problem does not require a long time to solve because it is very sparse.
Our interpretation of the comparative results is as follows. The overhead induced
by MATLAB consumes a signicant portion of the total computation time when the
problem size is small, which is the reason why LIPSOL is generally slower on small
problems under the MATLAB environment. As the problem size increase, the time
spent on Cholesky factorization and back-solves, the most computation-intensive
20
YIN ZHANG
tasks at each iteration, grows quickly to become the dominant portion of the total
time, while the MATLAB overhead assuming a lesser role. Our results appear to
indicate that for larger problems the ORNL sparse Cholesky code used in LIPSOL
is faster than its counterpart in OB1 version 5.0, which was written earlier and did
not seem to include some of the newer techniques.
6.4 Asymptotic Convergence Rates
We have observed cubic-like convergence in many of the tested problems. In Figure 2, we give edited printout from LIPSOL on the last several iterations for three
Netlib problems: adlittle, beaconfd and stocfor3. We call the reader's attention to the column named Gap, representing the duality gap xT z + sT w. Since the
equations xz = 0 and sw = 0 are the only nonlinear portion of the KKT system
while the primal, dual and upper-bound feasibility conditions are all linear, the
convergence rate of the duality gap usually dictates the asymptotic convergence
rate of the whole residual vector. The last column is the total relative error and
has no apparent correlation to the convergence rate of the residual vector.
Residuals:
Iter 10:
Iter 11:
Iter 12:
Name:
Primal
9.22e-09
4.53e-11
2.11e-11
ADLITTLE
Dual
2.33e-11
9.31e-11
9.31e-11
U-bounds
0.00e+00
0.00e+00
0.00e+00
Gap
4.35e+00
5.91e-03
6.44e-10
TR-error
1.93e-05
2.61e-08
3.12e-14
Residuals:
Iter 11:
Iter 12:
Iter 13:
Name:
Primal
1.34e-06
4.45e-09
1.57e-10
BEACONFD
Dual
8.06e-08
4.80e-11
1.30e-11
U-bounds
0.00e+00
0.00e+00
0.00e+00
Gap
6.78e-01
1.34e-03
1.55e-10
TR-error
1.97e-05
3.84e-08
7.69e-14
Residuals:
Iter 32:
Iter 33:
Iter 34:
Name:
Primal
1.27e-05
2.32e-07
6.33e-08
STOCHFOR
Dual
3.23e-08
1.26e-10
2.97e-13
U-bounds
0.00e+00
0.00e+00
0.00e+00
Gap
4.09e-01
2.45e-03
2.09e-08
TR-error
1.02e-05
6.13e-08
9.59e-10
As can be seen from these examples, that cubic-like convergence not only happens
for smaller problems such as adlittle and beaconfd, but also to large problems
such as stocfor3, which is the largest in the 95 Netlib problems in terms of problem
sizes.
However, on other problems cubic convergence is not observed up to the time
when the algorithm terminates. In Figure 3, we present printout from LIPSOL for
three problems: stair, pilot87 and ship08s.
The convergence rate appears to be quadratic for stair and linear for pilot87,
which is a well-known, ill-conditioned and dicult problem. On the other hand,
for ship08s, the convergence rate appears, surprisingly but pleasantly, to be even
faster than cubic. It looks like that after a "big bang" iteration, the last iterate
Primal
1.34e-04
5.93e-05
1.64e-06
1.09e-05
1.59e-10
STAIR
Dual
5.24e-07
6.76e-08
1.78e-10
4.42e-15
2.98e-15
U-bounds
0.00e+00
0.00e+00
8.88e-16
1.26e-15
1.26e-15
Gap
4.29e-01
6.38e-02
7.64e-04
1.36e-08
1.36e-15
TR-error
1.69e-03
2.51e-04
3.02e-06
4.47e-08
6.55e-13
Residuals:
Iter 32:
Iter 32:
Iter 34:
Iter 35:
Iter 36:
Iter 37:
Iter 38:
Name:
Primal
1.86e-07
5.26e-08
1.94e-08
3.72e-09
9.29e-10
9.27e-10
2.21e-09
PILOT87
Dual
3.16e-11
9.49e-12
3.79e-12
3.07e-12
3.81e-12
4.82e-12
3.01e-12
U-bounds
5.07e-08
1.43e-08
5.28e-09
1.00e-09
2.03e-10
4.59e-11
1.65e-12
Gap
2.05e-02
5.86e-03
2.04e-03
4.29e-04
1.32e-04
2.07e-05
1.82e-06
TR-error
6.75e-05
1.93e-05
6.69e-06
1.41e-06
4.35e-07
6.79e-08
5.99e-09
Residuals:
Iter 12:
Iter 13:
Iter 14:
Name:
Primal
7.31e-05
2.12e-07
1.56e-11
SHIP08S
Dual
8.61e-11
9.17e-11
9.85e-11
U-bounds
0.00e+00
0.00e+00
0.00e+00
Gap
9.25e+01
3.05e-01
3.88e-07
TR-error
4.72e-05
1.56e-07
2.13e-13
21
just drops into the optimal facet so the algorithm terminates right away.
7 Concluding Remarks
In this paper, we provided intuitive motivations to some infeasible-primal-dual
interior-point methods as perturbed and damped Newton's method. We described
major steps in implementing an interior-point code for large-scale linear programming. We also discussed in detail a technique for stabilizing Cholesky factorization
in the context of interior-point algorithms with mathematical justication.
Our implementation was carried out under the MATLAB environment. Yet it is
still suciently fast for large-scale problems and comparable in performance with
a good Fortran code. The software package resulted from our implementation is
called LIPSOL. LIPSOL is free software and available from the internet sites:
http://www.caam.rice.edu/~zhang/lipsol/
ftp://ftp.caam.rice.edu/people/zhang/lipsol/
where the rst is the LIPSOL Web page and the second an anonymous FTP site.
In addition to providing an economic means for solving relatively large-scale linear
programs, LIPSOL can be a convenient tool for both research and teaching. For
more details on LISPOL, we refer readers to the User's Guide for LIPSOL 20]
available in the aforementioned sites for LIPSOL distribution.
22
YIN ZHANG
Acknowledgment
This paper has directly beneted from the works of a number of people to whom I
am very grateful. The sparse Cholesky package developed by Esmond Ng and Barry
Peyton. including the minimum-degree ordering subroutines by Joseph Liu, was
used to construct MEX-les that forms the computational engine of LIPSOL. We
received kind permission from Irv Lustig, Roy Marsten and David Shanno for using
their system OB1 version 5.0 in our numerical experiments. A Fortran subroutine
originally written by Alan Weiser was modied and used in LIPSOL to convert MPS
les into MAT les. During the development of LIPSOL, I received programming
assistance from Detong Zhang and valuable feedbacks from Stephen Wright.
REFERENCES
1. E. D. Andersen, J. Gondzio, C. Meszaros and X. Xu. Implementation of interior-point
methods for large-scale linear programming. Technical Report 1996.3, Logilab, HEC
Geneva,Section of Management Studies, University of Geneva, Switzerland, 1996.
2. I. C. Choi, C. L. Monma and D. F. Shanno. Further development of a primal-dual interiorpoint method. ORSA J. on Computing, 2(1990) 304-311.
3. D. M. Gay. Electronic mail distribution of linear programming test problems. Mathematical
Programming Society COAL Newsletter, No. 13 (Dec., 1985) 10-12.
4. J. Gondzio. Multiple centrality corrections in a primal-dual method for linear programming.
Computational Optimization and Applications. To appear.
5. N. Karmarkar. A New Polynomial{time Algorithm for Linear Programming. Combinatorica
4 (1984) 373{395.
6. M. Kojima, S. Mizuno, and A. Yoshise. A primal-dual interior point method for linear
programming. In Nimrod Megiddo, editor, Progress in mathematical programming, interiorpoint and related methods, pages 29{47. Springer-Verlag, New York, 1989.
7. M. Kojima, N. Megiddo, and S. Mizuno. A primal-dual infeasible-interior-point algorithm
for linear programming. Mathematical Programming 61 (1993) pp.263-280.
8. J. W. Liu, E. G. Ng and B. W. Peyton. On nding supernodes for sparse matrix computations.
SIAM J. Matrix Anal. & Appl. 1 (1993) 242-252.
9. I. J. Lustig, R.E. Marsten, and D.F. Shanno. Computational experience with a primal-dual
interior point method for linear programming. Linear Algebra and Its Applications, 152
(1991) 191{222.
10. I. J. Lustig, R.E. Marsten, and D.F. Shanno. On implementingMehrotra's predictor-corrector
interior point method for linear programming. SIAM J. Optimization 2 (1992) 435-449.
11. I. J. Lustig, R.E. Marsten, and D.F. Shanno. Interior point methods for linear programming:
Computational state of the art. ORSA J. on Computing, 6(1994) 1-14.
12. I. J. Lustig. Barrier algorithms for linear programming. Workshop on Computational Linear
and Integer Programming, Fifth INFORMS Computer Science Technical Section Conference,
Jan. 7 { 10, 1996, Dallas, Texas, USA.
13. S. Mehrotra. On the implementation of a primal-dual interior point method. SIAM J.
Optimization 2 (1992) 575-601.
14. S. Mizuno, M. J. Todd, and Y. Ye. On adaptive step primal{dual interior{point algorithms
for linear programming. Mathematics of Operations Research 18 (1993) 964-981.
15. L. L. Nazareth. Computer Solution of Linear Programs, Chapter 3. Oxford University Press,
New York, Oxford, 1987.
16. J. M. Ortega and W. C. Rheinboldt. Iterative Solution of Nonlinear Equations in Several
Variables. Academic Press, New York, 1970.
23
24
YIN ZHANG
25
26
YIN ZHANG
TABLE 4: Test Results for LIPSOL v0.3 (III)