The NLP Procedure

Displayed Output

Procedure Initialization

After the procedure has processed the problem, it displays summary information about the problem and the options that you have selected. It may also display a list of linearly dependent constraints and other information about the constraints and parameters.

Optimization Start

At the start of optimization the procedure displays

  • the number of constraints that are active at the starting point, or more precisely, the number of constraints that are currently members of the working set. If this number is followed by a plus sign, there are more active constraints, of which at least one is temporarily released from the working set due to negative Lagrange multipliers.

  • the value of the objective function at the starting point

  • if the (projected) gradient is available, the value of the largest absolute (projected) gradient element

  • for the TRUREG and LEVMAR subroutines, the initial radius of the trust region around the starting point

Iteration History

In general, the iteration history consists of one line of output containing the most important information for each iteration. The iteration-extensive Nelder-Mead simplex method, however, displays only one line for several internal iterations. This technique skips the output for some iterations because

  • some of the termination tests (size and standard deviation) are rather time-consuming compared to the simplex operations and are done once every five simplex operations

  • the resulting history output is smaller

The _LIST_ variable (refer to the section Program Statements) also enables you to display the parameter estimates $ x^{(k)}$ and the gradient $ g^{(k)}$ in all or some selected iterations $ k$.

The iteration history always includes the following (the words in parentheses indicate the column header output):

  • the iteration number (iter)

  • the number of iteration restarts (nrest)

  • the number of function calls (nfun)

  • the number of active constraints (act)

  • the value of the optimization criterion (optcrit)

  • the difference between adjacent function values (difcrit)

  • the maximum of the absolute (projected) gradient components (maxgrad)

An apostrophe trailing the number of active constraints indicates that at least one of the active constraints was released from the active set due to a significant Lagrange multiplier.

The optimization history is displayed by default because it is important to check for possible convergence problems.

Optimization Termination

The output of the optimization history ends with a short output of information concerning the optimization result:

  • the number of constraints that are active at the final point, or more precisely, the number of constraints that are currently members of the working set. When this number is followed by a plus sign, it indicates that there are more active constraints of which at least one is temporarily released from the working set due to negative Lagrange multipliers.

  • the value of the objective function at the final point

  • if the (projected) gradient is available, the value of the largest absolute (projected) gradient element

  • other information that is specific for the optimization technique

The NOPRINT option suppresses all output to the list file and only errors, warnings, and notes are displayed to the log file. The PALL option sets a large group of some of the commonly used specific displaying options, the PSHORT option suppresses some, and the PSUMMARY option suppresses almost all of the default output. The following table summarizes the correspondence between the general and the specific print options.

Table 7.5: Optimization Termination

Output Options

PALL

default

PSHORT

PSUMMARY

Output

 

y

y

y

y

Summary of optimization

 

y

y

y

n

Parameter estimates

 

y

y

y

n

Gradient of objective func

PHISTORY

y

y

y

n

Iteration history

PINIT

y

y

n

n

Setting of initial values

 

y

y

n

n

Listing of constraints

PGRID

y

n

n

n

Results of grid search

PNLCJAC

y

n

n

n

Jacobian nonlin. constr.

PFUNCTION

y

n

n

n

Values of functions

PEIGVAL

y

n

n

n

Eigenvalue distribution

PCRPJAC

y

n

n

n

Crossproduct Jacobian

PHESSIAN

y

n

n

n

Hessian matrix

PSTDERR

y

n

n

n

Approx. standard errors

PCOV

y

n

n

n

Covariance matrices

PJACOBI

n

n

n

n

Jacobian

LIST

n

n

n

n

Model program, variables

LISTCODE

n

n

n

n

Compiled model program


Convergence Status

Upon termination, the NLP procedure creates an ODS table called ConvergenceStatus. You can use this name to reference the table when using the Output Delivery System (ODS) to select tables and create output data sets. Within the ConvergenceStatus table there are two variables, Status and Reason, which contain the status of the optimization run. For the Status variable, a value of zero indicates that one of the convergence criteria is satisfied; a nonzero value indicates otherwise. In all cases, an explicit interpretation of the status code is displayed as a string stored in the Reason variable. For more information about ODS, see SAS Output Delivery System: User’s Guide.