DNOPT Options¶
The performance of DNOPT 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
dnSpecordnSpecFto read an options file, orby calling option-setting routines
dnSet,dnSetI,dnSetR.
Current values of an option may be examined by calling one of the
option-getting routines dnGetChar, dnGetInt, dnGetReal.
See Setting and Getting Options.
Printing¶
Major print levelControls the amount of output for the PRINT and SUMMARY files at each major iteration (default: 1).
Minor print levelControls the amount of output for the PRINT and SUMMARY files at each minor iteration (default: 1).
Print fileSpecify the PRINT file unit number. A value of 0 suppresses output to the PRINT file.
Summary fileSpecify the SUMMARY file unit number. A value of 0 suppresses output to the SUMMARY file.
Print frequencyA line of the QP iteration log is output every specified iteration to the PRINT file. Suppressed if Minor Print Level = 0 (default: 100).
Summary frequencyA line of the QP iteration log is output every specified minor iteration to the SUMMARY file. Suppressed if Minor Print Level = 0 (default: 100).
SolutionPrint the solution to the PRINT file (default: yes).
Suppress options listingsOptions are normally listed in the PRINT file. This option will suppress that output.
System informationA ‘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 pointThe objective function is ignored and the solver attempts to find a feasible point for the linear and nonlinear constraints.
Infinite BoundDefine the value for an “infinite” bound (default: 1.0d+20).
Convergence Tolerances¶
Major feasibility toleranceTolerance for feasibility of the nonlinear constraints (default: 1.0e-6).
Major optimality toleranceTolerance for the dual variables (default: 1.0e-6).
Minor feasibility toleranceTolerance for the variables and their bounds. General linear constraints should satisfy their bounds within this tolerance (default: 1.0e-6).
Derivative Checking¶
Verify levelSpecify 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 colSpecify the starting point for the derivative checks on the objective gradient (default: 1).
Stop objective check at colSpecify the end point for the derivative checks on the objective gradient (default: n).
Start constraint check at colSpecify the starting point for the derivative checks on the Jacobian columns (default: 1).
Stop constraint check at colSpecify the end point for the derivative checks on the Jacobian columns (default: n).
Scaling¶
Scale optionSpecify 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 toleranceThe scale tolerance controls the iterative procedure (default: 0.9).
Scale printIf this option is specified, then the row and column scales are printed to the PRINT file.
Other Tolerances¶
Crash optionThe 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 ToleranceThis tolerance controls whether “small” columns of the constraint matrix are ignored (default: 0.1)
QP Subproblems¶
Elastic weightDetermines the initial weight associated with the “elastic” problem solved by DNOPT. Please refer to the user’s guide for more info. (default: 1.0e+4)
Iterations limitMaximum number of minor iterations (iterations in the LP/QP algorithm) allowed (summed over all major iterations). (default: 10000 or 20m)
SQP Method¶
Cold Start/Warm StartTakes 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 DNOPT. (default: Cold)
Time limitSpecify 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 limitLimit on the number of major iterations in the SQP method. (default: 1000 (or m if larger))
Minor iterations limitSpecify 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))
Derivative levelSpecifies which nonlinear function gradients are known and supplied to DNOPT 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/Nonderivative linesearchDerivative 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 precisionIntended to be a measure of the relative accuracy of the nonlinear functions. (default: 3.0e-13)
Difference intervalSpecifies the interval used to estimate gradients by forward differences. (default: 5.5e-7)
Central difference intervalSpecifies the interval used to estimate gradients by central differences. (default: 6.7e-5)
Unbounded objectiveDefines unboundedness in the objective function. (default: 1.0e+15)
Unbounded step sizeUsed to detect unboundedness in the step size computed by a linesearch. (default: 1.0e+18)
Hessian Approximation¶
Hessian quasi/exact memorySpecify whether a quasi-Newton BFGS method will be used to approximate the Hessian of the Lagrangian or the exact Hessian will be used.
Hessian frequencyIf “Hessian quasi” is specified, then this specifies the number of BFGS updates done before the Hessian approximation is reset. (default: 999999)
Hessian updatesIf “Hessian quasi” is specified, then this specifies the number of BFGS updates done before all but the diagonal elements of the Hessian approximation are discarded. (default: 10)
Frequencies¶
Check frequencyRow residuals (Ax - s) are checked every specified iteration. (default: 60)
Expand frequencyPart of the EXPAND anti-cycling procedure designed to make progress even on highly degenerate problems. (default: 10000)
Factorization frequencySpecifies the limit on basis changes that will occur between factorizations of the basis matrix. (default: 50 (100 for LPs))
Miscellaneous¶
Sticky parametersUser-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 levelControls printing of times. A value of “0” suppresses the output. (default: 3).