The NLP Procedure

The NLP procedure offers a set of optimization techniques for minimizing or maximizing a continuous nonlinear function subject to linear and nonlinear, equality and inequality, and lower and upper bound constraints. Problems of this type are found in many settings, ranging from optimal control to maximum likelihood estimation.

Nonlinear programs can be input into the NLP procedure in various ways. The objective, constraint, and derivative functions are specified using the programming statements of PROC NLP. In addition, information in SAS data sets can be used to define the structure of objectives and constraints and to specify constants that are used in objectives, constraints, and derivatives.

PROC NLP uses the following data sets to input various pieces of information:

  • The DATA= data set enables you to specify data that is used to define one or more objective functions in a nonlinear programming problem.

  • The INQUAD= data set contains the arrays that appear in a quadratic programming problem.

  • The INEST= data set specifies initial values for the decision variables, the values of constants that are referred to in the program statements, and simple boundary and general linear constraints.

  • The MODEL= data set specifies a model (functions, constraints, derivatives) saved at a previous execution of the NLP procedure.

As an alternative to supplying data in SAS data sets, some or all data for the model can be specified using SAS programming statements. These statements are similar to the statements used in the SAS DATA step.

For more information about the NLP procedure, refer to Chapter 7: The NLP Procedure.