is the final state vector. The elements of hs have the following meaning:
|
hs(j) |
State of variable j |
Usual value of xs(j) |
|
0 1 2 3 |
nonbasic nonbasic superbasic basic |
bl(j) bu(j) Between bl(j) and bu(j) ditto |
Basic and superbasic variables may be outside their bounds by as much as the Minor feasibility tolerance. Note that if scaling is specified, the feasibility tolerance applies to the variables of the scaled problem. In this case, the variables of the original problem may be as much as 0.1 outside their bounds, but this is unlikely unless the problem is very badly scaled. Check the ``Primal infeasibility" printed after the EXIT message.
Very occasionally some nonbasic variables may be outside their bounds by as much as the Minor feasibility tolerance , and there may be some nonbasics for which xs(j) lies strictly between its bounds.
If nInf > 0, some basic and superbasic variables may be outside their bounds by an arbitrary amount (bounded by sInf if scaling was not used).
is the final variables and slacks (x, s).
is the vector of dual variables p (a set of Lagrange multipliers for the general constraints).
is a vector of reduced costs, g - (A - I)Tp, where g is the gradient of the objective if xs is feasible (or the gradient of the Phase objective otherwise). The last m entries are p.
reports the result of the call to snopt. Here is a summary of possible values (for a detailed description, see Exit conditions):
|
0 |
Optimal solution found, i.e., the primal and dual infeasibilities are negligible. |
|
1 |
The problem is infeasible. |
|
2 |
The problem is unbounded (or badly scaled). |
|
3 |
Too many iterations. |
|
4 |
Feasible solution, but the requested accuracy in the dual infeasibilities could not be achieved. |
|
5 |
The Superbasics limit is too small. |
|
6 |
User requested termination by returning mode |
|
7 |
Subroutine funobj seems to be giving incorrect gradients. |
|
8 |
Subroutine funcon seems to be giving incorrect gradients. |
|
9 |
The current point cannot be improved. |
|
10 |
Numerical error in trying to satisfy the linear constraints (or the linearized nonlinear constraints). The basis is very ill-conditioned. |
|
11 |
Cannot find a superbasic to replace a basic variable. |
|
12 |
Basis factorization requested twice in a row. Should probably be treated as inform = 9. |
|
20 |
Not enough storage for the basis factorization. |
|
21 |
Error in basis package. |
|
22 |
The basis is singular after several attempts to factorize it (and add slacks where necessary). |
|
30 |
An OLDBASIS file had dimensions that did not match the current problem. |
|
32 |
System error. Wrong number of basic variables. |
|
42 |
Not enough 8-character workspace to solve the problem. |
|
43 |
Not enough integer workspace to solve the problem. |
|
44 |
Not enough real workspace to solve the problem. |
say how much character, integer and real storage is needed to solve the problem. If SNOPT terminates because of insufficient storage (inform = 42, 43 or 44), these values may be used to define better values of lencw, leniw or lenrw.
If inform
= 42, the work array cw(lencw) was too
small. snopt may be called again with lencw
suitably larger than mincw.
If inform = 43 or 44,
the work arrays iw(leniw) or rw(lenrw)
are too small. snopt may be called again with leniw
or lenrw suitably larger than miniw
or minrw. (The bigger the better, since it is not
certain how much storage the basis factors need.)
is the final number of superbasic variables.
give the number and the sum of the infeasibilities of constraints that lie outside their bounds by more than the Feasibility tolerance.
If the linear constraints are infeasible, xs minimizes the sum of the infeasibilities of the linear constraints subject to the upper and lower bounds being satisfied. In this case nInf gives the number of components of Gx lying outside their upper or lower bounds. The nonlinear constraints are not evaluated.
Otherwise, xs minimizes the sum of the infeasibilities of the nonlinear constraints subject to the linear constraints and upper and lower bounds being satisfied. In this case nInf gives the number of components of Fx lying outside their upper or lower bounds.
is the value of the objective function, including the constant ObjAdd. If nInf = 0, Obj includes both the linear and nonlinear objective if any. nInf > 0, Obj is just the linear objective if any.