SOL OPTIMIZATION SOFTWARE
SYSTEMS OPTIMIZATION LABORATORY
DEPT OF EESOR, STANFORD UNIVERSITY
DEPT OF MATHEMATICS, UC SAN DIEGO
Last modified: 25 September 1999
This document describes some software packages for constrained optimization (linear and nonlinear programming). The software is maintained by research personnel at Stanford University and the University of California, San Diego. Here we give guidance on the choice of package, licensing, and technical support.
For licensing information, go to SBSI-SOL either now or further below.
Optimization Software and Problem Types
| MINOS | Large-scale linear and nonlinear programs. |
| SNOPT | Large-scale linear and nonlinear programs. (Includes SQOPT.) |
| SQOPT | Large-scale linear and quadratic programs (currently available only as part of SNOPT). |
| NPSOL | Dense linear and nonlinear programs. (Includes LSSOL.) |
| LSSOL | Dense linear and quadratic programs (convex), and constrained linear least-squares problems. |
| QPOPT | Dense linear and quadratic programs (non-convex). |
These packages are implemented in Fortran 77 and distributed as source code. They are intended for any machine with a reasonable amount of memory and a Fortran compiler. They may be called from a driver program (typically in Fortran, C or MATLAB). MINOS and SNOPT may also be used as stand-alone packages, reading data in the MPS format used by commercial mathematical programming systems.
MINOS and SNOPT are widely used as linear and nonlinear solvers for the GAMS and AMPL modeling systems (see below). NPSOL and LSSOL are part of the Optimization Chapter of the NAG Fortran library.
General Features
The nonlinear solvers make use of function and gradient values. The solution obtained will be a local optimum (which may or may not be a global optimum). If some of the gradients are unknown, they will be estimated by finite differences. If the functions or gradients are expensive to evaluate, SNOPT or NPSOL will usually be more efficient than MINOS.
For large problems, efficiency is improved if only some of the variables enter nonlinearly, or if the number of active constraints is nearly as large as the number of variables. MINOS can accommodate problems with many degrees of freedom (perhaps thousands), but a few hundred or less is preferable for both codes.
If the constraints have no feasible solution, the packages may terminate as soon as infeasibility is confirmed. Optionally, all except MINOS can continue to minimize the sum of infeasibilities, using implicit "elastic bounds". SQOPT allows the user to specify which constraints and bounds may be regarded as elastic. This allows SNOPT to deal methodically with infeasible nonlinear constraints.
Linear Programming
Given sufficient memory, MINOS, SNOPT and SQOPT can process large LP models similar to those solved by commercial packages such as OSL and CPLEX. They should be equally reliable, though slower for a variety of reasons. (For example, there is no Presolve to reduce the model size, and they do not employ steepest-edge pricing.) Warm starts are possible for solving a sequence of related problems (e.g., for a branch-and-bound algorithm).
LSSOL and QPOPT are suitable for LP and QP problems of arbitrary size if the constraint matrix is essentially dense, but the sparse solvers will usually be more efficient even for dense problems.
Quadratic Programming
MINOS, SNOPT and QPOPT are suitable for general QP problems (but may find just a local optimum). SQOPT and LSSOL require the quadratic to be positive definite or semidefinite (typically x'R'Rx + linear terms). A simple example is (x - x0)'(x - x0). With its "elastic bounds" feature, SQOPT can also solve "linear L1 problems" of two kinds:
minimize ||x - x0|| subject to Ax = b,
minimize ||Ax - b|| subject to linear constraints and bounds,
where ||...|| is the 1-norm. Such problems arise in data-fitting.
All solvers except LSSOL allow the quadratic objective to be specified as an operator.
Nonlinear Objective
MINOS and SNOPT are highly effective for problems with a nonlinear objective function and large numbers of sparse linear constraints (as well as bounds on the variables). The algorithms follow different paths. MINOS may be more efficient if the objective and its gradients are cheap to evaluate (though the difference is usually not great).
Nonlinear Constraints
MINOS performs best if the constraints are "nearly linear". It solves a sequence of subproblems in which the constraints are linearized and the objective is an augmented Lagrangian (involving all nonlinear functions). Convergence is rapid near a solution.
SNOPT and NPSOL may be more reliable on highly nonlinear problems. They use an SQP algorithm in which the subproblems have the same linearized constraints as in MINOS, but the objective is a quadratic approximation to the Lagrangian. (Hence, no function or gradient values are needed during the solution of each QP.) A merit function promotes convergence from arbitrary starting points.
MATLAB Interfaces
F-MEX files are distributed with NPSOL, LSSOL and QPOPT. These are Fortran 77 links to MATLAB. (Currently they are for Unix systems. Inevitably, PC versions will be "similar but different".)
C-MEX files are available for MINOS (again for Unix). The following files may be viewed and saved locally: readme, report.dvi, report.ps. For Unix systems, the source code is in files.tar.gz. NOTE: Use SHIFT-CLICK to download this as a binary file. Otherwise, Netscape regards it as a text file and displays it!
C-MEX files exist for NPSOL (Unix and Apple PowerPC). Please enquire with Philip Gill (below).
C Interfaces
In many cases, a C program can call the optimization packages as Fortran subroutines. An example routine (driver.c) is provided with MINOS.
C source code for NPSOL is available from Philip Gill (see below). In general, C versions may be obtained via the Bell Labs f2c translator.
Licensing Information
All packages are licensed by OTL, the
Office of Technology Licensing at Stanford University.
Tier 1 and Tier 2 licenses for in-house use (academic and
commercial respectively). are handled by SBSI:
|
Stanford Business Software, Inc.
P.O. Box 60398 Palo Alto, CA 94306-0398 Contact: Ms Radhika Thapa |
sales@SBSI-SOL-Optimize.com
(650) 856-1695 (650) 856-1696 Fax Manager, Software Distribution |
Specialized Tier 3 agreements are available for applications involving resale of SOL software as part of a larger package. These are negotiated by OTL:
| Hans Wiesendanger Office of Technology Licensing Stanford University 900 Welch Road, Suite 350 Palo Alto, CA 94304-1850 |
Hans@OTLmail.stanford.edu
(650) 723-0651 (650) 725-7295 Fax |
Technical Support
For further information about the algorithms, please contact one of the following personnel. (Initial enquiries specific to MINOS should be directed to Michael Saunders. Those specific to SNOPT and the other packages should be sent to Philip Gill.)
|
Professor Philip Gill
Dept of Mathematics University of California, San Diego La Jolla, CA 92093-0112 |
pgill@ucsd.edu
(619) 534-4879 (619) 534-5273 Fax |
|
Professor Walter Murray
Dept of EESOR Stanford University Stanford, CA 94305-4023 |
Walter@SOL-Walter.Stanford.edu
(650) 723-1307 (650) 723-4107 Fax |
|
Professor Michael Saunders
Dept of EESOR Stanford University Stanford, CA 94305-4023 |
Mike@SOL-Michael.Stanford.edu
(650) 723-1875 (650) 723-4107 Fax |
Technical support is available for a fee from the following sources:
|
Optimates SBSI Dr John Stone |
Partners: Gill, Murray and Saunders (above) President: Dr Mukund Thapa 4245 Ponce Dr, Palo Alto, CA 94306 (650) 856-3112 |
GAMS, AMPL and Other Interfaces
For many optimization applications, we recommend the use of high-level systems such as those listed below. They provide a convenient interface to MINOS, SNOPT, NPSOL and many other linear, integer and nonlinear solvers, and they extend the range of problem types that can be solved by traditional local optimizers.