The NLP Procedure

Overview: NLP Procedure

The NLP procedure (NonLinear Programming) offers a set of optimization techniques for minimizing or maximizing a continuous nonlinear function  f(x) of  n decision variables,  x = (x_1, ... ,x_n)^t with lower and upper bound, linear and nonlinear, equality and inequality constraints. This can be expressed as solving

\min_{x \in {\cal r}^n} & f(x) & \    {\rm subjectto} & c_i(x) = 0, & i = 1, ... ...   ... c_i(x) \ge 0, & i = m_e+1, ... ,m \    & l_i \le x_i \le u_i, & i = 1, ... ,n
where  f is the objective function, the  c_i's are the nonlinear functions, and the  l_i's and  u_i's are the lower and upper bounds. Problems of this type are found in many settings ranging from optimal control to maximum likelihood estimation.

The NLP procedure provides a number of algorithms for solving this problem that take advantage of special structure on the objective function and constraints. One example is the quadratic programming problem:

\min(\max) & f(x) = \frac{1}2 x^t g x + g^t x + b \   {\rm subjectto} & c_i(x) = 0,  i = 1, ... ,m_e
where  g is an  n x n symmetric matrix,  g = (g_1, ... ,g_n)^t is a vector,  b is a scalar, and the  c_i(x)'s are linear functions.

Another example is the least-squares problem:

\min & f(x) = \frac{1}2 \{f^2_1(x) +  ...  + f^2_l(x)\} \   {\rm subjectto} & c_i(x) = 0,  i = 1, ... ,m_e
where the  c_i(x)'s are linear functions, and  {f_1(x),...,f_l(x)} are nonlinear functions of  x.

The following problems are handled by PROC NLP:

The following optimization techniques are supported in PROC NLP:

These optimization techniques require a continuous objective function  f, and all but one (NMSIMP) require continuous first-order derivatives of the objective function  f. Some of the techniques also require continuous second-order derivatives. There are three ways to compute derivatives in PROC NLP:

Nonlinear programs can be input into the 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 as well as specify constants used in objectives, constraints and derivatives.

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

PROC NLP uses data sets to output various results:

Previous Page | Next Page | Top of Page