SNOPT is a collection of Fortran 77 subroutines for solving the nonlinear programming problem, which is assumed to be stated in the form
where l and u are constant lower and upper bounds, f is a smooth scalar objective function, G is a sparse matrix, and F(x) is a vector of smooth nonlinear constraint functions {Fi(x)}. (The optional parameter maximize may be used to specify a problem in which f is maximized instead of minimized.)
Ideally, the first derivatives (gradients) of f and Fi should be known and coded by the user. If only some gradients are known, SNOPT will estimate the missing ones with finite differences.
Note that upper and lower bounds are specified for all variables and constraints. This form allows full generality in specifying various types of constraint. Special values are used to indicate absent bounds
(lj
= –
; or uj = +
; for appropriate j).
Free variables and free constraints ("free rows") are ones that have both bounds infinite. Fixed variables and equality constraints have lj = uj.