NLP Solver Options

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

Multistart Options

(Experimental)
MSBNDRANGE=

defines the range from which each variable can take values during the sampling process. This option affects only the sampling process that determines starting points for the local solver. It does not affect the bounds of the original nonlinear optimization problem. More specifically, if the th variable, , has lower and upper bounds and respectively (that is, ) and the initial value provided by the user is , then all initial values generated by the sampling process lie in the following range:

     

For example, if is an unbounded variable and the user specifies an initial value , then all the starting points generated by the sampling process lie in the interval . On the other hand, if both and are finite, (that is, is a bounded variable) and the difference is less than , then the new starting points are sampled from the original interval . In all cases you can control the range of the sampling range by also changing the initial value . The default value is . This option is effective only when the MULTISTART option is specified.

MSDISTTOL=

defines the tolerance by which two optimal points are considered distinct. Optimal points are considered distinct if they have different objective values or if the Euclidean distance between them is at least . This option is effective only when the MULTISTART option is specified. The default value is =1.0E6.

MSMAXTIME=

defines the maximum allowable real time (in seconds) for the NLP solver to locate the best local optimum in multistart mode. The time specified by the MSMAXTIME= option is checked only once after the completion of the local solver. Since the local solver might be called many times, the maximum time specified for multistart is recommended to be greater than the maximum time specified for the local solver (that is, MSMAXTIME MAXTIME). This option is effective only when the MULTISTART option is specified. If you do not specify this option, the procedure does not stop based on the amount of time elapsed.

MSNUMSTARTS=

defines the number of starting points to be used in multistart mode. You can specify to be any integer between 0 and the largest positive integer that can be represented in your operating environment. When or this option is not specified, the number of starting points is determined dynamically by the solver and does not exceed 200. This option is effective only when the MULTISTART option is specified.

MSSTOP=

defines the way to terminate multistart. If , then multistart terminates after it generates MSNUMSTARTS starting points. If , then multistart terminates after the first local optimum is found. This option is effective only when the MULTISTART option is specified. The default value is .

Optimization Options

MULTISTART
MS

enables multistart mode. In this mode, the local solver solves the problem from multiple starting points, possibly finding a better local minimum as a result. This option is disabled by default. For more information about multistart, see the section Multistart.

TECHNIQUE=keyword
TECH=keyword
SOLVER=keyword

specifies the optimization technique to be used to solve the problem. The following keywords are valid:

  • INTERIORPOINT
    uses a primal-dual interior point method. This technique is recommended for both small- and large-scale nonlinear optimization problems. This is the preferred solver if the problem includes a large number of inactive constraints.

  • ACTIVESET (experimental)
    uses a primal-dual active set method. This technique is recommended for both small- and large-scale nonlinear optimization problems. This is the preferred solver if the problem includes only bound constraints or if the optimal active set can be quickly determined by the solver.

The default value of the TECHNIQUE= option is INTERIORPOINT.

Output Options

MSPRINTLEVEL=option num

defines the amount of information displayed in the SAS log by the MULTISTART option. Table 7.2 describes the valid values of this option.

Table 7.2 Values for MSPRINTLEVEL= Option

Number

Option

Description

0

NONE

Turns off all solver-related messages to SAS log

1

BASIC

Displays a solver summary after stopping

2

MODERATE

Displays information about the current and the best local optimum found so far

3

AGGRESSIVE

Displays the progress of the local solver at each starting point using the interval dictated by the PRINTFREQ= option

This option is effective only when the MULTISTART option is specified. The default value of this option is MODERATE.

PRINTFREQ=

specifies how often the iterations are displayed in the SAS log. should be an integer between zero and the largest four-byte, signed integer, which is . If , the solver prints only those iterations that are a multiple of . If , no iteration is displayed in the log. The default value of this option is 1.

SOLTYPE=0 1

specifies whether the NLP solver should return only a solution that is locally optimal. If SOLTYPE=0, the solver returns a locally optimal solution, provided it locates one. If SOLTYPE=1, the solver returns the best feasible solution found, provided its objective value is better than that of the locally optimal solution found. The default value of this option is 1.

Solver Options

FEASTOL=

defines the feasible tolerance. The solver will exit if the constraint violation is less than FEASTOL and the scaled optimality conditions are less than OPTTOL. The default value is =1E6.

HESSTYPE=FULL PRODUCT

specifies the type of Hessian to be used by the solver. The valid keywords for this option are FULL and PRODUCT. If HESSTYPE=FULL, the solver uses a full Hessian. If HESSTYPE=PRODUCT, the solver uses only Hessian-vector products, not the full Hessian. When the solver uses only Hessian-vector products to find a search direction, it usually uses much less memory, especially when the problem is large and the Hessian is not sparse. On the other hand, when the full Hessian is used, the algorithm can create a better preconditioner to solve the problem in less CPU time. The default value of this option is FULL.

MAXITER=

specifies that the solver take at most major iterations to determine an optimum of the NLP problem. The value of is an integer between zero and the largest four-byte, signed integer, which is . A major iteration in NLP consists of finding a descent direction and a step size along which the next approximation of the optimum resides. The default value of is 5,000 iterations.

MAXTIME=

specifies an upper limit of seconds of real time for the solver to find a local optimum. Note that the time specified by the MAXTIME= option is checked only once at the end of each major iteration. If you do not specify this option, the procedure does not stop based on the amount of time elapsed.

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 ; for a maximization problem, the algorithm stops when the objective value exceeds . The algorithm stopping 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 =1E20. The minimum acceptable value of is 1E8. If the specified value of is less than 1E8, the value is reset to the default value 1E20.

OPTTOL=
RELOPTTOL=

defines the measure by which you can decide whether the current iterate is an acceptable approximation of a local minimum. The value of this option is a positive real number. The NLP solver determines that the current iterate is a local minimum when the norm of the scaled vector of the optimality conditions is less than and the true constraint violation is less than FEASTOL. The default value is =1E6.