SNOPT Options

The performance of SNOPT is controlled by a number of options. Each option has a keyword and default value that should be appropriate for most problems, but can be initialized directly by the user. The user can specify options in two ways:

  • by calling subroutine snSpec or snSpecF to read an options file, or

  • by calling option-setting routines snSet, snSetI, snSetR.

Current values of an option may be examined by calling one of the option-getting routines snGetC, snGetI, snGetR.

See Setting and Getting Options.

Printing

  • Major print level

    Controls the amount of output for the PRINT and SUMMARY files at each major iteration (default: 1).

  • Minor print level

    Controls the amount of output for the PRINT and SUMMARY files at each minor iteration (default: 1).

  • Print file

    Specify the PRINT file unit number. A value of 0 suppresses output to the PRINT file.

  • Summary file

    Specify the SUMMARY file unit number. A value of 0 suppresses output to the SUMMARY file.

  • Print frequency

    A line of the QP iteration log is output every specified iteration to the PRINT file. Suppressed if Minor Print Level = 0 (default: 100).

  • Summary frequency

    A line of the QP iteration log is output every specified minor iteration to the SUMMARY file. Suppressed if Minor Print Level = 0 (default: 100).

  • Solution

    Print the solution to the PRINT file (default: yes).

  • Suppress options listings

    Options are normally listed in the PRINT file. This option will suppress that output.

  • System information

    A ‘Yes’ setting will provide additional information on the progress of the iteration (default: no).

Problem Specifications

  • Minimize (Maximize)

    Specify that the problem is a minimization (or maximization) problem (default: minimize).

  • Feasible point

    The objective function is ignored and the solver attempts to find a feasible point for the linear and nonlinear constraints.

  • Objective Row

    For SNOPTA only. Can be used to specify which row of the input argument (F) is to act as the objective function. This takes precedence over the ObjRow argument (default: 1).

  • Infinite Bound

    Define the value for an “infinite” bound (default: 1.0d+20).

Convergence Tolerances

  • Major feasibility tolerance

    Tolerance for feasibility of the nonlinear constraints (default: 1.0e-6).

  • Major optimality tolerance

    Tolerance for the dual variables (default: 1.0e-6).

  • Minor feasibility tolerance

    Tolerance for the variables and their bounds. General linear constraints should satisfy their bounds within this tolerance (default: 1.0e-6).

Derivative Checking

  • Verify level

    Specify the level of the finite-difference checks on the derivatives computed by the user-defined routines. “-1” turns off checking. “0” performs a “cheap” check. “1” checks objective gradient. “2” checks the columns of the Jacobian. “3” checks everything. (default: 0)

  • Start objective check at col

    Specify the starting point for the derivative checks on the objective gradient (default: 1).

  • Stop objective check at col

    Specify the end point for the derivative checks on the objective gradient (default: n).

  • Start constraint check at col

    Specify the starting point for the derivative checks on the Jacobian columns (default: 1).

  • Stop constraint check at col

    Specify the end point for the derivative checks on the Jacobian columns (default: n).

Scaling

  • Scale option

    Specify the scaling algorithm. “0” means no scaling. “1” scales the linear constraints and variables. “2” scales all constraints and variables. Scaling is done by an iterative procedure controlled by the Scale Tolerance (default: 0).

  • Scale tolerance

    The scale tolerance controls the iterative procedure (default: 0.9).

  • Scale print

    If this option is specified, then the row and column scales are printed to the PRINT file.

Other Tolerances

  • Backoff factor

    This controls the reduction in the steplength when a function cannot be computed or is undefined at the current point during the linesearch. The step is reduced by a factor τb and functions are requested at the new point. By default, the value is 0.1.

  • Crash option

    The CRASH procedure selects an initial basis from the constraint matrix. This option determines which rows and columns of the matrix are eligible initially. “0” means the initial basis contains only slack variables. “1” means CRASH is called once and looks for a triangular basis in all rows and columns of (A). “2” means CRASH is called twice if there are nonlinear constraints. Each call looks for a triangular basis in the linear rows and then the nonlinear rows. “3” calls CRASH three times - the first two calls treat linear equalities and linear inequalities separately. The last call treats the nonlinear rows. (default: 3)

  • Crash Tolerance

    This tolerance controls whether “small” columns of the constraint matrix are ignored (default: 0.1)

  • Linesearch Tolerance

    This tolerance controls the accuracy of the linesearch procedure. The value must be between 0 and 1. (default: 0.9)

  • Pivot Tolerance

    Used during the solution of QP subproblems. This tolerance prevents columns from entering the basis if they would cause singularity in the basis. (default: 3.7e-11)

QP Subproblems

  • QPSolver

    Specifies the method used to solve for the search directions in the QP subproblem. “Cholesky” means a full Cholesky factor of the reduced-Hessian is maintained. “QN” solves the QP using a quasi-Newton method similar to MINOS. “CG” is similar to “QN” but uses the conjugate-gradient method to solve the systems involving the reduced-Hessian matrix. (default: Cholesky)

  • Elastic weight

    Determines the initial weight associated with the “elastic” problem solved by SNOPT. Please refer to the user’s guide for more info. (default: 1.0e+4)

  • Iterations limit

    Maximum number of minor iterations (iterations in the LP/QP algorithm) allowed (summed over all major iterations). (default: 10000 or 20m)

  • Partial price

    Recommended for large problems. Reduces the work required for each “pricing” operation. (default: 1 (10 for large LPs))

SQP Method

  • Cold Start/Warm Start

    Takes precedence over Start argument. A Cold Start means no basis information is provided by the user and the CRASH procedure is used to find the initial basis. A Warm start means basis information is provided to SNOPT. (default: Cold)

  • Time limit

    Specify a time limit in seconds. “0” means no time limit. The time is checked every 20 minor iterations so this limit may not be strictly met. (default: 0)

  • Major iterations limit

    Limit on the number of major iterations in the SQP method. (default: 1000 (or m if larger))

  • Minor iterations limit

    Specify the limit on minor iterations in the QP subproblems. Iterations limit specifies an independent <i>absolute</i> limit on the total number of minor iterations. (default: 500 (or 3m if larger))

  • Major step limit

    Limits the change in (x) during a linesearch (default: 2.0)

  • Superbasics limit

    Limit the storage allocated for superbasic variables (default: n+1).

  • Derivative level

    For SNOPTB and SNOPTC only. Specifies which nonlinear function gradients are known and supplied to SNOPT by the user. “0” means some components of the objective gradient and constraint gradients are unknown. “1” means the objective gradient is known, but some or all constraint gradients are unknown. “2” means the constraint gradient is known, but some or all objective gradients are unknown. “3” means all gradients are known. Unknown components are estimated via finite differences (default: 3).

  • Derivative option

    For SNOPTA only. “0” means some derivatives are known. “1” means all derivatives are known. Unknown components are estimated via finite differences. (default: 1)

  • Derivative/Nonderivative linesearch

    Derivative linesearch uses function and gradient values to compute the step value. Nonderivative linesearch will use quadratic interpolation, which does not require gradient evaluations. (default: Derivative)

  • Function precision

    Intended to be a measure of the relative accuracy of the nonlinear functions. (default: 3.0e-13)

  • Difference interval

    Specifies the interval used to estimate gradients by forward differences. (default: 5.5e-7)

  • Central difference interval

    Specifies the interval used to estimate gradients by central differences. (default: 6.7e-5)

  • New superbasics limit

    Limits the number of superbasics added during the solution of the QP subproblem (an early termination criteria for the QP subproblem). (default: 99)

  • Proximal point method

    Specifies minimization of the one-norm (1) or two-norm (2) of (x - x_0). (default: 1)

  • Reduced Hessian dimension

    Specifies the maximum size of the reduced-Hessian matrix. (default: 2000)

  • Violation limit

    Defines an absolute limit on the magnitude of the maximum constraint violation after the linesearch. (default: 10.0)

  • Unbounded objective

    Defines unboundedness in the objective function. (default: 1.0e+15)

  • Unbounded step size

    Used to detect unboundedness in the step size computed by a linesearch. (default: 1.0e+18)

Hessian Approximation

  • Hessian full/limited memory

    Specify whether a full- or limited-memory BFGS method is used to approximate the Hessian of the Lagrangian. (default: full if ( n le 75))

  • Hessian frequency

    If “Hessian full” is specified, then this specifies the number of BFGS updates done before the Hessian approximation is reset. (default: 999999)

  • Hessian updates

    If “Hessian limited” is specified, then the this specifies the number of BFGS updates done before all but the diagonal elements of the Hessian approximation are discarded. (default: 10)

Frequencies

  • Check frequency

    Row residuals (Ax - s) are checked every specified iteration. (default: 60)

  • Expand frequency

    Part of the EXPAND anti-cycling procedure designed to make progress even on highly degenerate problems. (default: 10000)

  • Factorization frequency

    Specifies the limit on basis changes that will occur between factorizations of the basis matrix. (default: 50 (100 for LPs))

LUSOL Options

  • LU factor tolerance

    Affects the stability and sparsity of LUSOL’s basis factors. Refer to the user’s guide for a description. (default: 3.99 (100.0 for LP))

  • LU update tolerance

    Affects the stability and sparsity of LUSOL’s basis factors. Refer to the user’s guide for a description. (default: 3.99 (10.0 for LP))

  • LU singularity tolerance

    Guards against ill-conditioned basis matrices. (default: 3.2e-11)

  • LU partial/rook/complete pivoting

    Pivoting strategy used by LUSOL. (default: partial)

Miscellaneous

  • Sticky parameters

    User-defined parameters may be modified so that they lie in a sensible range. If this option is set to “Yes”, then these values are returned at the end of a run. A value of “No” means the original user-defined values are saved and returned. (default: No)

  • Timing level

    Controls printing of times. A value of “0” suppresses the output. (default: 3).