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.