Download User's Guide for SNOPT Version 7: Software for Large

Transcript
8.
Output
97
but even then, if t is as large as 10−5 or 10−6 (only 5 or 6 significant figures), the same
exit condition may occur. At present the only remedy is to increase the accuracy of
the function calculation.
For INFO 42, the first factorization attempt found the basis to be structurally or numerically singular. (Some diagonals of the triangular matrix U were deemed too small.)
The associated variables were replaced by slacks and the modified basis refactorized, but
singularity persisted.
For INFO 43, the basic variables xB have been recomputed, given the present values of
the superbasic and nonbasic variables. A step of “iterative refinement” has also been applied
to increase the accuracy of xB , but a row check has revealed that the resulting solution does
not satisfy the QP constraints Ax − s = b sufficiently well.
For INFO 44, during computation of the reduced Hessian Z THZ, some column(s) of Z
continued to contain very large values.
In all cases, the problem must be badly scaled (or the basis must be pathologically illconditioned without containing any large entries). Try Scale option 2 if it has not yet
been used.
EXIT -- 50 Error in the user-supplied functions
INFO -- 51 incorrect objective derivatives
INFO -- 52 incorrect constraint derivatives
There may be errors in the subroutines that define the problem objective and constraints.
If the objective derivatives appear to incorrect, a check has been made on some individual
elements of the objective gradient array at the first point that satisfies the linear constraints.
At least one component (G(k) or gObj(j) ) is being set to a value that disagrees markedly
with its associated forward-difference estimate ∂f0 /∂xj . (The relative difference between
the computed and estimated values is 1.0 or more.) This exit is a safeguard because SNOPT
will usually fail to make progress when the computed gradients are seriously inaccurate. In
the process it may expend considerable effort before terminating with INFO 41 above.
For INFO 51 Check the function and gradient computation very carefully in usrfun
or funobj. A simple omission (such as forgetting to divide f0 by 2) could explain the
discrepancy. If f0 or a component ∂f0 /∂xj is very large, then give serious thought to
scaling the function or the nonlinear variables.
If you feel certain that the computed gObj(j) is correct (and that the forward-difference
estimate is therefore wrong), you can specify Verify level 0 to prevent individual elements
from being checked. However, the optimization procedure may have difficulty.
For INFO 52, at least one of the computed constraint derivatives is significantly different
from an estimate obtained by forward-differencing the constraint vector f (x) of problem
NP. Follow the advice for INFO 51, trying to ensure that the arrays F and G are being set
correctly in usrfun or funcon.
EXIT -- 60 Undefined user-supplied functions
INFO -- 61 undefined function at the first feasible point
INFO -- 62 undefined function at the initial point
INFO -- 63 unable to proceed into undefined region
The parameter Status (snOptA) or mode (snOptB, snOptC, npOpt) was assigned the
value −1 in one of the user-defined routines usrfun, funobj or funcon. This value is
used to indicate that the functions are undefined at the current point. SNOPT attempts to
evaluate the problem functions closer to a point at which the functions have already been
computed.