The NLPC Nonlinear Optimization Solver

NLPC Solver Options

This section describes the options recognized by the NLPC solver. These options can be specified after a forward slash (/) in the SOLVE statement, provided that the NLPC solver is explicitly specified using a WITH clause.

The following notation is used in this section and the section "Details":

m
a nonnegative floating-point number
n
a nonnegative integer
\delta
a small nonnegative floating-point number
m
number of general nonlinear constraints, including the linear constraints but not the bound constraints
n
dimension of x, i.e., the number of decision variables
x,x^k
iterate, i.e., the vector of n decision variables; x^k denotes the iterate at the kth iteration.
f(x)
objective function
\nabla\!f(x)
gradient of the objective function
\nabla^2\!f(x)
Hessian of the objective function
\lambda,\lambda^k
Lagrange multiplier vector, \lambda\in{\mathbb r}^m; \lambda^k denotes the estimate of the Lagrange multipliers at the kth iteration
l(x,\lambda)
Lagrangian function of constrained problems
\nabla\!_x l(x,\lambda)
gradient of the Lagrangian function with respect to x
\nabla_{\!x}^2 l(x,\lambda)
Hessian of the Lagrangian function with respect to x
\vert\cdot\vert _{\infty}
infinity norm of a vector; for example, \displaystyle\vert y\vert _{\infty}=\max_{i=1, ... ,n}\{| y_i|\} for y\in\mathbb{r}^n

ABSOPTTOL=\delta
specifies the tolerance for the absolute optimality error. For the solver to terminate,
\vert\nabla\!f(x^k)\vert _{\infty}\le\delta
must be satisfied for unconstrained problems, or
\vert\nabla\!_x l(x^k,\lambda^k)\vert _{\infty}\le\delta
must be satisfied for constrained problems. The default value is \delta=1.0E-3 for all four optimization techniques. The range of valid values for \delta is between and 1.

Note: For more information about this termination criterion, see the section "Optimality Control".

MAXFUNC=n
MAXFEVAL=n
specifies that the optimization process stop after a maximum of  n function calls. The value of  n can be no larger than the largest four-byte signed integer, which is 2^{31} - 1. The default values of  n are as follows:
  • for TECH=TRUREG or NEWTYP, n=3000
  • for TECH=QUANEW, n=5000
  • for TECH=CONGRA, n=6000
The optimization process can be terminated only after completing a full iteration. Therefore, the number of function calls that are actually performed can exceed the number that is specified by the MAXFUNC= option. The MAXFUNC= option limits the number of function calls performed during optimization; this number does not include function calls performed during preprocessing. The number of function evaluations displayed by the PRINTLEVEL=2 option in the OPTMODEL procedure includes the function calls performed in both preprocessing and postprocessing.

MAXITER=n
specifies that the optimization process stop after a maximum of n iterations. The value of  n can be no larger than the largest four-byte signed integer, which is 2^{31} - 1. The default values of  n are as follows:
  • for TECH=TRUREG or NEWTYP, n=500
  • for TECH=QUANEW, n=800
  • for TECH=CONGRA, n=1000

MAXTIME=m
specifies an upper limit of m seconds of real time for the optimization process. If you do not specify this option, the optimization process does not stop based on the amount of time elapsed. Note that the time specified by the MAXTIME= option is checked only at the end of each iteration. The optimization terminates when the actual running time is greater than or equal to m.

OBJLIMIT=m
specifies an upper limit on the magnitude of the objective value. For a minimization problem, the algorithm terminates when the objective value becomes less than -m; for a maximization problem, the algorithm stops when the objective value exceeds m. When this happens, it implies that either the problem is unbounded or the algorithm diverges. If optimization were allowed to continue, numerical difficulty might be encountered. The default value is m=1.0E+20. The range of valid values for m is m\ge 1.0E+8.

PRINTFREQ=j
specifies that the printing of the solution progress to the iteration log should occur after every j iterations. The print frequency, j, is an integer between zero and the largest four-byte signed integer, which is 2^{31} - 1. The value j = 0 disables the printing of the progress of the solution. Note that iteration and the last iteration are always displayed for j\gt.

By default, the NLPC solver does not display the iteration log.

RELOPTTOL=\delta
specifies the tolerance for the relative optimality error. For the solver to terminate,
\vert\nabla\!f(x^k)\vert _{\infty}\le\delta\max\{1,| f(x^k)|\}
must be satisfied for unconstrained problems, or
\vert\nabla\!_x l(x^k,\lambda^k)\vert _{\infty}\le\delta\max\{1,\vert\nabla\!f(x^k)\vert _{\infty}\}
must be satisfied for constrained problems. The default value is \delta=1.0E-6 for all four optimization techniques. The range of valid values for \delta is between and 1.

Note: For more information about this termination criterion, see the section "Optimality Control".

TECH=keyword
TECHNIQUE=keyword
SOLVER=keyword
specifies the optimization technique. Valid keywords are as follows:
  • CONGRA or CGR
    uses a conjugate gradient method.
  • NEWTYP or NTY
    uses a Newton-type method with line search.
  • TRUREG or TRE
    uses a trust region method.
  • QUANEW or QNE (experimental)
    uses a quasi-Newton method with the BFGS update. QUANEW is the optimization technique in the NLPC solver to solve problems with nonlinear constraints.

The default technique is CONGRA if there are more than 1000 variables in the problem (possibly presolved) and TRUREG otherwise. See the section "Presolver" for details about presolver.

Previous Page | Next Page | Top of Page