SNOPT is a set of Fortran subroutines for minimizing a smooth function subject to constraints, which may include simple bounds on the variables, linear constraints and smooth nonlinear constraints. SNOPT is a general-purpose optimizer, designed to find locally optimal solutions for models involving smooth nonlinear functions. They are often more widely useful. (For example, local optima are often global solutions, and discontinuities in the function gradients can often be tolerated if they are not too close to an optimum.) Ideally, users should provide gradients. Unknown components are estimated by finite differences. SNOPT incorporates a sequential quadratic programming (SQP) method that obtains search directions from a sequence of quadratic programming subproblems. Each QP subproblem minimizes a quadratic model of a certain Lagrangian function subject to a linearization of the constraints. An augmented Lagrangian merit function is reduced along each search direction to ensure convergence from any starting point. SNOPT is most efficient if only some of the variables enter nonlinearly, or if the number of active constraints (including simple bounds) is nearly as large as the number of variables. SNOPT requires relatively few evaluations of the problem functions. Hence it is especially effective if the objective or constraint functions are expensive to evaluate. The source code for SNOPT is suitable for any machine with a reasonable amount of memory and a Fortran compiler. SNOPT may be called from a driver program (typically in Fortran, C or MATLAB).
[1]
A. Conn.
Constrained Optimization Using a Nondifferentiable Penalty Function
,
1973
.
[2]
Michael A. Saunders,et al.
Large-scale linearly constrained optimization
,
1978,
Math. Program..
[3]
Nesa L'abbe Wu,et al.
Linear programming and extensions
,
1981
.
[4]
Michael A. Saunders,et al.
A projected Lagrangian algorithm and its implementation for sparse nonlinear constraints
,
1982
.
[5]
Robert Fourer,et al.
Solving staircase linear programs by the simplex method, 1: Inversion
,
1982,
Math. Program..
[6]
Robert Fourer,et al.
Solving staircase linear programs by the simplex method, 2: Pricing
,
1983,
Math. Program..
[7]
Michael A. Saunders,et al.
User''s guide for NPSOL (Ver-sion 4.0): A FORTRAN package for nonlinear programming
,
1984
.
[8]
P. Gill,et al.
Some theoretical properties of an augmented lagrangian merit function
,
1986
.
[9]
P. Gill,et al.
Maintaining LU factors of a general sparse matrix
,
1987
.
[10]
Michael A. Saunders,et al.
A practical anti-cycling procedure for linearly constrained optimization
,
1989,
Math. Program..
[11]
S. K. Eldersveld.
Large-scale sequential quadratic programming algorithms
,
1992
.
[12]
Michael A. Saunders,et al.
SNOPT: An SQP Algorithm for Large-Scale Constrained Optimization
,
2002,
SIAM J. Optim..