The NEOS Server offers SNOPT (Sparse Nonlinear Optimizer) for the solution of nonlinearly constrained optimization problems. Written by P. E. Gill, W. Murray and M. A. Saunders, SNOPT belongs to the family of sequential quadratic programming (SQP) methods and is intended for solving constrained nonlinear optimization problems of the form
The present implementation mantains a positive definite limited memory approximation of the Hessian of the Lagrangian and the QP subproblems are solved using a reduced-Hessian algorithm.
The method requires only first derivatives, but the NEOS Server uses the ADIFOR automatic differentiation tool for Fortran submissions, which generates them in sparse form. Thus the user needs only submit the objective and constraint functions. ADIFOR support is automatically incorporated into SNOPT using SNADIOPT by E. Michael Gertz.
For a more complete description of SNOPT, see the User's Guide. (Warning: This is the original SNOPT User's Guide and as such, it does NOT explain the interface used by the NEOS server, which is covered in these web pages.)
This NEOS solver executes on a Sun workstation. Sun, Sun Microsystems, the Sun Logo and the Powered by Sun Logo are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. You need to tell us the number of variables Number of Variables:
subroutine initpt(n,x) n - integer (input) number of variables x - double precision, length n (output) starting point
subroutine fcn(n,x,f) n - integer (input) number of variables x - double precision, length n (input) vector of variables f - double precision, objective function evaluated at x
subroutine cfcn(n,x,m,c) n - integer (input) number of variables x - double precision, length n (input) vector of variables m - integer (input) number of general constraints c - double precision, length m (output) general constraint functions at x
subroutine xbound(n,xl,xu) n - integer (input) number of variables xl - double precision, length n (output) lower bounds xu - double precision, length n (output) upper bounds If x(i) has no lower bound, then xl(i) should be set to a large negative number (e.g., -1.00d+10), similarly if x(i) has no upper bound, then xu(i) should be set to a large positive number (e.g., 1.00d+00).
subroutine cbound(m,cl,cu) n - integer (input) number of general constraints cl - double precision, length m (output) lower bounds cu - double precision, length m (output) upper bounds If c(i) has no lower bound, then cl(i) should be set to a large negative number (e.g., -1.00d+10), similarly if c(i) has no upper bound, then cu(i) should be set to a large positive number (e.g., 1.00d+00).
DOE disclaimer DOE Web privacy policy