« Previous « Start » Next »
3 TOMLAB /MINOS Solver Reference
The MINOS solvers are a set of Fortran solvers that were developed
by the Stanford Systems Optimization Laboratory (SOL). Table
2 lists the solvers included in TOMLAB /MINOS. The
solvers are called using a set of MEX-file interfaces developed as
part of TOMLAB. All functionality of the SOL solvers are available
and changeable in the TOMLAB framework in Matlab.
Detailed descriptions of the TOMLAB /MINOS solvers are given in
the following sections. Also see the M-file help for each solver.
The solvers reference guide for TOMLAB /MINOS is available for
download from the TOMLAB home page
http://tomopt.com. There is
also detailed instruction for using the solvers in Section
4. Extensive TOMLAB m-file help is also available, for
example
help minosTL in Matlab will display the features of
the MINOS solver using the TOMLAB format.
TOMLAB /MINOS solves
nonlinear optimization problems
(
con) defined as
|
|
f(x) |
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
cL |
≤ |
c(x) |
≤ |
cU |
|
|
(1) |
where
x,
xL,
xU Rn,
f(
x)
R,
A
Rm1 × n,
bL,
bU Rm1
and
cL,
c(
x),
cU Rm2.
quadratic programming (
qp) problems defined as
|
|
|
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(2) |
where
c,
x,
xL,
xU Rn,
F Rn
× n,
A Rm1 × n, and
bL,
bU
Rm1.
and
linear programming (
lp) problems defined as
|
|
f(x) = cT x |
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(3) |
where
c,
x,
xL,
xU Rn,
A Rm1
× n, and
bL,
bU Rm1.
Table 2: The SOL optimization solvers in TOMLAB /MINOS.
|
Function |
Description |
Reference |
Page |
|
MINOS 5.5 |
Sparse linear and nonlinear programming with
linear and nonlinear constraints. |
[11] |
|
LP-MINOS |
A special version of the MINOS 5.5
MEX-file interface for sparse linear programming. |
[11] |
|
QP-MINOS |
A special version of the MINOS 5.5
MEX-file interface for sparse quadratic programming. |
[11] |
|
LPOPT 1.0-10 |
Dense linear programming. |
[7] |
|
QPOPT 1.0-10 |
Non-convex quadratic programming with dense
constraint matrix and sparse or dense quadratic matrix. |
[7] |
|
|
3.1.1 Direct Solver Call
A direct solver call is not recommended unless the user is 100 %
sure that no other solvers will be used for the problem. Please
refer to Section
3.1.2 for information on how to use MINOS
with TOMLAB.
Purpose
minos solves nonlinear optimization
problems defined as
where
x Rn,
f(
x)
R,
A
Rm1 × n,
bL,
bU Rn+m1+m2
and
c(
x)
Rm2.
or quadratic optimization problems defined as
where
c,
x Rn,
F Rn × n,
A Rm1 × n, and
bL,
bU
Rm1.
The full input matrix A has three parts A = [d/dx g(x); A; c'];
Calling Syntax
The file 'funfdf.m' must be defined and contain: function [mode,
f, g] = funfdf(x, Prob, mode, nstate) to compute the objective
function f and the gradient g at the point x.
The file 'funcdc.m' must be defined and contain: function [mode ,c
,dcS] = funcdc(x, Prob, mode, nstate) to compute the nonlinear
constraint value c and the constraint Jacobian dcS for the
nonlinear constraints at the point x.
NOTE: The matrix dcS MUST be a SPARSE MATLAB matrix. Do dcS =
sparse(dcS); after dcS has been computed.
[hs, xs, pi, rc, Inform, nS, nInf, sInf, Obj, iwCount, gObj, fCon,
gCon] = minos(H, A, bl, bu, nnCon, nnObj, nnJac, Prob, iObj,
optPar, Warm, hs, xs, pi, nS, SpecsFile, PrintFile, SummFile,
PriLev, ObjAdd, moremem, ProbName );
Description of Inputs
The following fields are used: |
|
H |
Matrix n x n in a quadratic programming (QP) problem.
DENSE or SPARSE. Leave empty if LP, or NLP problem. |
|
A |
Constraint matrix, m x n SPARSE (nonlinear, linear and
objective) m > 0 always!!! Define dummy constraint for
unconstrained problems. |
|
bl |
Lower bounds on (x,g(x),Ax,c'). |
|
bu |
Upper bounds on (x,g(x),Ax,c'). |
|
|
NOTE! The bl and bu values for the last nonlinear
constraint c must have reverse signs and be put in each other
places: If cL <= c(x) <= cU , then bl = −cU and bu =
−cL. This is because the bounds acts as the constraints on the
slack variables for the nonlinear constraints. |
|
nnCon |
Number of nonlinear constraints. |
|
nnObj |
Number of nonlinear objective variables. |
|
nnJac |
Number of nonlinear Jacobian variables. |
|
Prob |
Must be a structure. No check is made in the MEX
interface. If TOMLAB calls minos, then Prob is the standard TOMLAB
problem structure, otherwise the user should set: |
|
|
Prob.P = ProblemNumber, where ProblemNumber is some
integer. |
|
|
If the problem is a LP or QP problem (H defined), the
user does not have to specify anything else in the
structure. |
|
|
For a general nonlinear objective or nonlinear
constraints names of two user written routines must be given: |
|
|
funfdf, actual name stored in Prob.FUNCS.fg, with
syntax [mode, f, g] = funfdf(x, Prob, mode, nstate). |
|
|
funcdc, actual name stored in Prob.FUNCS.cdc, with
syntax [mode, c, dcS] = funcdc(x, Prob, mode, nstate). |
|
|
MINOS is calling the TOMLAB routines nlp_fg.m and
nlp_cdcS.m in the callback, and they call funfdf and funcdc,
respectively. |
|
|
If these fields in Prob are empty (Prob.FUNCS.fg,
Prob.FUNCS.cdc), the TOMLAB callback routines calls the usual
function routines. Then the Prob struct should be normally defined,
and the fields Prob.FUNCS.f, Prob.FUNCS.g, Prob.FUNCS.c,
Prob.FUNCS.dc be set in the normal way (e.g. by the routine
mFiles.m, or one of the Assign-routines like conAssign.m). |
|
|
If the mode parameter is 0, funfdf should return f,
otherwise both f and the gradient vector g. If the mode parameter
is 0, funcdc should return c, otherwise both c and dcS. Note that
each row in dcS corresponds to a constraint, and that dcS must be
a SPARSE matrix. |
|
|
The user could also write his own versions of the
routines nlp_fg.m and nlp_cdcS.m and put them before in the
path. |
|
iObj |
Says which row of A is a free row containing a
linear objective vector c. If there is no such vector, iObj = 0.
Otherwise, this row must come after any nonlinear rows, so that
nnCon <= iObj <= m. |
|
optPar |
Vector with optimization parameters overriding
defaults and the optionally specified SPECS file. If using only
default options, set optPar as an empty matrix. |
|
Warm |
Flag, if true: warm start. Default cold start (if
empty). If 'Warm Start' xs, nS and hs must be supplied with
correct values. |
|
hs |
Basis status of variables + constraints (n+m x 1
vector). State of variables: 0=nonbasic (on bl), 1=nonbasic (on
bu) 2=superbasic (between bounds), 3=basic (between bounds). |
|
xs |
Initial vector, optionally including m slacks at
the end. If warm start, full xs must be supplied. |
|
pi |
Lagrangian multipliers for the nnCon nonlinear
constraints. If empty, set as 0. |
|
nS |
# of superbasics. Only used if calling again
with a Warm Start. |
|
SpecsFile |
Name of the SPECS input parameter file, see TOMLAB
Guide. |
|
PrintFile |
Name of the Print file. Name includes the path,
maximal number of characters = 500. |
|
SummFile |
Name of the Summary file. Name includes the path,
maximal number of characters = 500. |
|
PriLev |
Printing level in the minos m-file and minos
MEX-interface. |
|
|
= 0 Silent |
|
= 1 Summary information |
|
= 2 More detailed information |
|
ObjAdd |
Constant added to the objective for printing
purposes, typically 0. |
|
moremem |
Add extra memory for the sparse LU, might speed
up the optimization. If empty, set as 0. |
|
ProbName |
Name of the problem. <=100 characters are used
in the MEX interface. In the MINOS solver the first 8 characters
are used in the printed solution and in some routines that output
BASIS files. Blank is OK. |
|
Description of Outputs
The following fields are used: |
|
hs |
Basis status of variables + constraints (n+m x 1
vector). State of variables: 0=nonbasic (on bl), 1=nonbasic (on
bu) 2=superbasic (between bounds), 3=basic (between bounds). |
|
Basic and superbasic variables may be outside
their bounds by as much as the 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 Feasibility tolerance,
and there may be some nonbasics for which
xn(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). |
|
xs |
Solution vector (n+m by 1) with n decision variable
values together with the m slack variables. |
|
pi |
Lagrangian multipliers (dual solution vector) (m x 1
vector) |
|
rc |
Vector of reduced costs, g − ( A I )Tπ, where g
is the gradient of the objective function if xn
is feasible, or the gradient of the Phase-1 objective otherwise.
If ninf = 0, the last m entries are −π.
Reduced costs vector is of n+m length. |
|
Inform |
Result of MINOS run. |
|
|
0 Optimal solution found. |
|
1 The problem is infeasible. |
|
2 The problem is unbounded (or badly scaled). |
|
3 Too many iterations. |
|
4 Apparent stall. The solution has not changed for a
large number of iterations (e.g. 1000). |
|
5 The Superbasics limit is too small. |
|
6 User requested termination (by returning bad value). |
|
7 Gradient seems to be giving incorrect derivatives. |
|
8 Jacobian seems to be giving incorrect derivatives. |
|
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. |
|
13 Near-optimal solution found.
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 OLD BASIS file had dimensions that did not match the
current problem. |
|
32 System error. Wrong number of basic variables. |
|
40 Fatal errors in the MPS file. |
|
41 Not enough storage to read the MPS file. |
|
42 Not enough storage to solve the problem. |
|
nS |
# of superbasics. |
|
nInf |
Number of infeasibilities. |
|
sInf |
Sum of infeasibilities. |
|
Obj |
Objective function value at optimum. |
|
iwCount |
Number of iterations (major and minor), function and constraint
calls. |
|
gObj |
Gradient of the nonlinear objective. |
|
fCon |
Nonlinear constraint vector. |
|
gCon |
Gradient vector (non-zeros) of the nonlinear constraint
vector. |
|
3.1.2 Using TOMLAB
Purpose
minosTL solves nonlinear optimization
problems defined as
|
|
f(x) |
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
cL |
≤ |
c(x) |
≤ |
cU |
|
|
(6) |
where
x,
xL,
xU Rn,
f(
x)
R,
A
Rm1 × n,
bL,
bU Rm1
and
cL,
c(
x),
cU Rm2.
Calling Syntax
Using the driver routine
tomRun:
Prob = ◇Assign( ... );
Result = tomRun('minos', Prob, 1);
Description of Inputs
Prob, The following fields are used: |
|
x_L, x_U |
Bounds on variables. |
|
b_L, b_U |
Bounds on linear constraints. |
|
c_L, c_U |
Bounds on nonlinear constraints. |
|
A |
Linear constraint matrix. |
|
QP.c |
Linear coefficients in objective function. |
|
PriLevOpt |
Print level. |
|
WarmStart |
If true, use warm start, otherwise cold
start. |
|
SOL.xs |
Solution and slacks from previous run. |
|
SOL.hs |
State for solution and slacks from previous
run. |
|
SOL.nS |
Number of superbasics from previous run. |
|
SOL.SpecsFile |
Name of user defined SPECS file, read BEFORE optPar() is
used. |
|
SOL.PrintFile |
Name of SOL Print file. Amount and type of printing determined by SPECS parameters or optPar parameters. |
|
SOL.SummFile |
Name of SOL Summary File. |
|
SOL.optPar |
Elements > -999 takes precedence over corresponding TOMLAB
params. |
|
Description of Outputs
Result, The following fields are used: |
|
|
Result |
The structure with results (see ResultDef.m). |
f_k |
Function value at optimum. |
x_k |
Solution vector. |
x_0 |
Initial solution vector. |
g_k |
Gradient of the function. |
c_k |
Nonlinear constraint residuals. |
|
cJac |
Nonlinear constraint gradients. |
|
xState |
State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; |
bState |
State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
cState |
State of nonlinear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
|
v_k |
Lagrangian multipliers (for bounds + dual solution
vector). |
|
ExitFlag |
Exit status from minos.m (similar to
TOMLAB). |
|
Inform |
Result of MINOS run. |
|
|
0 Optimal solution found. |
|
1 The problem is infeasible. |
|
2 The problem is unbounded (or badly scaled). |
|
3 Too many iterations. |
|
4 Apparent stall. The solution has not changed for a
large number of iterations (e.g. 1000). |
|
5 The Superbasics limit is too small. |
|
6 User requested termination (by returning bad value). |
|
7 Gradient seems to be giving incorrect derivatives. |
|
8 Jacobian seems to be giving incorrect derivatives. |
|
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. |
|
13 Near-optimal solution found.
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 OLD BASIS file had dimensions that did not match the
current problem. |
|
32 System error. Wrong number of basic variables. |
|
40 Fatal errors in the MPS file. |
|
41 Not enough storage to read the MPS file. |
|
42 Not enough storage to solve the problem. |
|
rc |
Vector of reduced costs, g − ( A I )Tπ, where g
is the gradient of the objective function if xn
is feasible, or the gradient of the Phase-1 objective otherwise.
If ninf = 0, the last m entries are −π.
Reduced costs vector is of n+m length. |
|
Iter |
Number of iterations. |
FuncEv |
Number of function evaluations. |
GradEv |
Number of gradient evaluations. |
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
MinorIter |
Number of minor iterations. |
|
Solver |
Name of the solver (minos). |
SolverAlgorithm |
Description of the solver. |
|
SOL.xs |
Solution and slack variables. |
|
SOL.hs |
Basis status of variables + constraints (n+m x 1
vector). State of variables: 0=nonbasic (on bl), 1=nonbasic (on
bu) 2=superbasic (between bounds), 3=basic (between bounds). |
|
Basic and superbasic variables may be outside
their bounds by as much as the 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 Feasibility tolerance,
and there may be some nonbasics for which
xn(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). |
|
SOL.nS |
# of superbasics. |
|
SOL.nInf |
# of infeasibilities. |
|
SOL.sInf |
Sum of infeasibilities. |
|
Description
Use missing value (-999 or less), when no change of parameter
setting is wanted. The default value will then be used by MINOS,
unless the value is altered in the SPECS file.
Definition: nnL = max(nnObj,nnJac))
Description of Inputs
The following fields are used: |
|
# |
SPECS keyword text |
Lower |
Default |
Upper |
Comment |
|
|
|
Printing |
1. |
PRINT LEVEL |
0 |
0 |
11111 |
JFLXB: Jac, fCon, lambda, x, B=LU
stats |
|
Frequencies I |
5. |
PRINT FREQUENCY |
0 |
100 |
|
6. |
SUMMARY FREQUENCY |
0 |
100 |
|
7. |
SOLUTION YES/NO |
0 |
1 |
1 |
1 = YES; 0 =
NO |
8. |
SUPPRESS PARAMETERS |
0 |
0 |
1 |
1 =
True |
|
Convergence Tolerances |
9. |
ROW TOLERANCE |
>0 |
1E-6 |
10. |
OPTIMALITY TOLERANCE |
>0 |
max(1E−6,(10epsR)0.5) =
1.73E-6 |
11. |
FEASIBILITY TOLERANCE |
>0 |
1E-6 |
|
Derivative checking |
13. |
VERIFY LEVEL |
-1 |
-1 |
3 |
-1,0,1,2,3 |
14. |
START OBJECTIVE CHECK AT COL |
0 |
1 |
nnObj |
15. |
STOP OBJECTIVE CHECK AT COL |
0 |
nnObj |
nnObj |
16. |
START CONSTRAINT CHECK AT COL |
0 |
1 |
nnJac |
17. |
STOP CONSTRAINT CHECK AT COL |
0 |
nnJac |
nnJac |
|
Scaling |
18. |
SCALE OPTION |
0 |
1 or 2 |
2 |
2 if LP,1 if
NLP |
|
See Section 6.2 for more information. |
19. |
SCALE TOLERANCE |
>0 |
0.9 |
<1 |
20. |
SCALE PRINT |
0 |
0 |
1 |
1 =
True |
21. |
CRASH TOLERANCE |
0 |
0.1 |
<1 |
|
Other Tolerances |
22. |
LINESEARCH TOLERANCE |
>0 |
0.1 |
<1 |
|
LU I |
23. |
LU FACTORIZATION TOLERANCE |
1 |
100 or 5 |
|
100 if LP |
24. |
LU UPDATE TOLERANCE |
1 |
10 or 5 |
|
10 if LP |
25. |
LU SWAP TOLERANCE |
>0 |
1.22E-4 |
|
eps1/4 |
26. |
LU SINGULARITY TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
|
LP or LC subproblems |
27. |
PIVOT TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
28. |
CRASH OPTION |
0 |
3 |
3 |
0,1,2,3 |
29. |
WEIGHT ON LINEAR OBJECTIVE |
0.0 |
0.0 |
|
during Phase
1 |
30. |
ITERATIONS LIMIT |
0 |
3(m+m3) + 10nnL |
|
m3=1 if length(Prob.QP.c) > 0, otherwise m3=0. |
|
TOMLAB default: max(10000,3(m+m3) + 10nnL). |
31. |
PARTIAL PRICE |
1 |
10 or 1 |
|
10 for LP |
|
SLC method |
32. |
MAXIMIZE |
0 |
0 |
1 |
1=maximize |
33. |
LAGRANGIAN |
0 |
1 |
1 |
1=YES, 0=NO |
34. |
PENALTY PARAMETER |
0.0 |
1.0 |
35. |
MAJOR ITERATIONS LIMIT |
>0 |
50 |
36. |
MINOR ITERATIONS LIMIT |
>0 |
40 |
37. |
MAJOR DAMPING PARAMETER |
>0 |
2.0 |
38. |
MINOR DAMPING PARAMETER |
>0 |
2.0 |
39. |
DERIVATIVE LEVEL |
0 |
3 |
3 |
0,1,2,3 |
|
Is always set by minosTL dependent on Prob.ConsDiff, Prob.NumDiff. |
40. |
RADIUS OF CONVERGENCE |
0.0 |
0.01 |
41. |
FUNCTION PRECISION |
>0 |
3.0E-13 |
|
eps0.8=epsR |
42. |
DIFFERENCE INTERVAL |
>0 |
5.48E-7 |
|
eps0.4 |
43. |
CENTRAL DIFFERENCE INTERVAL |
>0 |
6.69E-5 |
|
eps0.8/3 |
44. |
COMPLETION |
0 |
1 LC, 0 NC |
1 |
0=PARTIAL
1=FULL |
45. |
UNBOUNDED STEP SIZE |
>0 |
1E10 |
46. |
UNBOUNDED OBJECTIVE |
>0 |
1E20 |
|
Hessian approximation |
47. |
HESSIAN DIMENSION |
1 |
50 |
1+nnL |
48. |
SUPERBASICS LIMIT |
1 |
50 |
1+nnL |
|
TOMLAB default (to avoid termination with Superbasics Limit too small): |
|
If n <= 5000: max(50,n+1) |
|
If n > 5000: max(500,n+200−size(A,1)−length(cL)) |
|
Avoid setting REDUCED HESSIAN (number of columns in reduced Hessian). |
|
It will then be set to the same value as the SUPERBASICS LIMIT by MINOS. |
|
Frequencies II |
51. |
CHECK FREQUENCY |
>0 |
60 |
52. |
EXPAND FREQUENCY |
>0 |
10000 |
53. |
FACTORIZATION FREQUENCY |
>0 |
50 |
|
LU II |
63. |
LU PARTIAL PIVOTING |
0 |
0 |
3 |
0=partial |
|
or LU COMPLETE PIVOTING |
|
|
|
1=complete |
|
or LU ROOK PIVOTING |
|
|
|
2=rook |
|
Additional parameters |
67. |
AIJ TOLERANCE |
0 |
1E-10 |
|
Elements |a(i,j)| < AIJ TOLERANCE are set as 0 |
70. |
SUBSPACE |
>0 |
0.5 |
1 |
Subspace tolerance |
|
Convergence tolerance in current subspace before consider moving off |
|
another constraint. |
|
3.2 LP-MINOS
3.2.1 Using TOMLAB
Purpose
minosLPTL solves linear optimization
problems defined as
|
|
f(x) = cT x |
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(7) |
where
c,
x,
xL,
xU Rn,
A Rm1
× n, and
bL,
bU Rm1.
Calling Syntax
Using the driver routine
tomRun:
Prob = lpAssign( ... );
Result = tomRun('lp-minos', Prob ... );
or
Prob = ProbCheck( ... );
Result = minosLPTL(Prob);
Call Prob = lpAssign( ... ) or Prob = ProbDef to define the Prob
for the second option.
Description of Inputs
Prob, The following fields are used: |
|
x_L, x_U |
Bounds on variables. |
|
b_L, b_U |
Bounds on linear constraints. |
|
A |
Linear constraint matrix. |
|
QP.c |
Linear coefficients in objective function. |
|
PriLevOpt |
Print level. |
|
WarmStart |
If true, use warm start, otherwise cold
start. |
|
SOL.xs |
Solution and slacks from previous run. |
|
SOL.hs |
State for solution and slacks from previous
run. |
|
SOL.nS |
Number of superbasics from previous run (always 0 for LP). |
|
SOL.SpecsFile |
Name of user defined SPECS file, read BEFORE optPar() is
used. |
|
SOL.PrintFile |
Name of SOL Print file. Amount and type of printing determined by SPECS parameters or optPar parameters. |
|
SOL.SummFile |
Name of SOL Summary File. |
|
SOL.optPar |
Elements > -999 takes precedence over corresponding TOMLAB
params. |
|
Description of Outputs
Result, The following fields are used: |
|
|
Result |
The structure with results (see ResultDef.m). |
f_k |
Function value at optimum. |
x_k |
Solution vector. |
x_0 |
Initial solution vector. |
g_k |
Gradient c (linear objective). |
|
xState |
State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; |
bState |
State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
|
v_k |
Lagrangian multipliers (for bounds + dual solution
vector). |
|
ExitFlag |
Exit status from minos.m (similar to
TOMLAB). |
|
Inform |
Result of MINOS run. |
|
|
0 Optimal solution found. |
|
1 The problem is infeasible. |
|
2 The problem is unbounded (or badly scaled). |
|
3 Too many iterations. |
|
4 Apparent stall. The solution has not changed for a
large number of iterations (e.g. 1000). |
|
5 The Superbasics limit is too small. |
|
6 User requested termination (by returning bad value). |
|
7 Gradient seems to be giving incorrect derivatives. |
|
8 Jacobian seems to be giving incorrect derivatives. |
|
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. |
|
13 Near-optimal solution found.
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 OLD BASIS file had dimensions that did not match the
current problem. |
|
32 System error. Wrong number of basic variables. |
|
40 Fatal errors in the MPS file. |
|
41 Not enough storage to read the MPS file. |
|
42 Not enough storage to solve the problem. |
|
rc |
Vector of reduced costs, g − ( A I )Tπ, where g
is the gradient of the objective function if xn
is feasible, or the gradient of the Phase-1 objective otherwise.
If ninf = 0, the last m entries are −π.
Reduced costs vector is of n+m length. |
|
Iter |
Number of iterations. |
FuncEv |
Number of function evaluations. |
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
MinorIter |
Number of minor iterations. |
|
Solver |
Name of the solver (minos). |
SolverAlgorithm |
Description of the solver. |
|
SOL.xs |
Solution and slack variables. |
|
SOL.hs |
Basis status of variables + constraints (n+m x 1
vector). State of variables: 0=nonbasic (on bl), 1=nonbasic (on
bu) 2=superbasic (between bounds), 3=basic (between bounds). |
|
Basic and superbasic variables may be outside
their bounds by as much as the 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 Feasibility tolerance,
and there may be some nonbasics for which
xn(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). |
|
SOL.nS |
# of superbasics. |
|
SOL.nInf |
# of infeasibilities. |
|
SOL.sInf |
Sum of infeasibilities. |
|
Description
Use missing value (-999 or less), when no change of parameter
setting is wanted. The default value will then be used by MINOS,
unless the value is altered in the SPECS file.
Description of Inputs
The following fields are used: |
|
# |
SPECS keyword text |
Lower |
Default |
Upper |
Comment |
|
|
|
Printing |
1. |
PRINT LEVEL |
0 |
0 |
1 |
0=brief 1=LU stats |
|
Frequencies I |
5. |
PRINT FREQUENCY |
0 |
100 |
6. |
SUMMARY FREQUENCY |
0 |
100 |
7. |
SOLUTION YES/NO |
0 |
1 |
1 |
1 = YES; 0 = NO |
8. |
SUPPRESS PARAMETERS |
0 |
0 |
1 |
1 = True |
|
Convergence Tolerances |
10. |
OPTIMALITY TOLERANCE |
>0 |
1E-6 |
11. |
FEASIBILITY TOLERANCE |
>0 |
1E-6 |
|
Scaling |
18. |
SCALE OPTION |
0 |
2 |
2 |
0,1,2 |
|
See Section 6.2 for more information. |
19. |
SCALE TOLERANCE |
>0 |
0.9 |
<1 |
20. |
SCALE PRINT |
0 |
0 |
1 |
1 = True |
21. |
CRASH TOLERANCE |
0 |
0.1 |
<1 |
|
LU I |
23. |
LU FACTORIZATION TOLERANCE |
1 |
100 |
24. |
LU UPDATE TOLERANCE |
1 |
10 |
25. |
LU SWAP TOLERANCE |
>0 |
1.22e-4 |
|
eps1/4 |
|
26. |
LU SINGULARITY TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
|
LP parameters |
27. |
PIVOT TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
28. |
CRASH OPTION |
0 |
3 |
3 |
0,1,2,3 |
29. |
WEIGHT ON LINEAR OBJECTIVE |
0.0 |
0.0 |
|
during Phase 1 |
30. |
ITERATIONS LIMIT |
0 |
3m |
31. |
PARTIAL PRICE |
1 |
10 |
|
Solve with tight or loose tols (applies to LP but probably not useful) |
44. |
COMPLETION |
0 |
1 |
1 |
0=PARTIAL
1=FULL |
|
Frequencies II |
51. |
CHECK FREQUENCY |
>0 |
60 |
52. |
EXPAND FREQUENCY |
>0 |
10000 |
53. |
FACTORIZATION FREQUENCY |
>0 |
100 |
|
LU II |
63. |
LU PARTIAL PIVOTING |
0 |
0 |
3 |
0=partial |
|
or LU COMPLETE PIVOTING |
|
|
|
1=complete |
|
or LU ROOK PIVOTING |
|
|
|
2=rook |
|
Additional parameters |
67. |
AIJ TOLERANCE |
0 |
1E-10 |
|
Elements |a(i,j)| < AIJ TOLERANCE are set as 0 |
70. |
SUBSPACE |
>0 |
0.5 |
1 |
Subspace tolerance |
|
Convergence tolerance in current subspace before consider moving off |
|
another constraint. |
|
3.3 QP-MINOS
3.3.1 Using TOMLAB
Purpose
minosQPTL solves quadratic optimization
problems defined as
|
|
|
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(8) |
where
c,
x,
xL,
xU Rn,
F Rn
× n,
A Rm1 × n, and
bL,
bU
Rm1.
Calling Syntax
Using the driver routine
tomRun:
Prob = qpAssign( ... );
Result = tomRun('qp-minos', Prob ... );
or
Prob = ProbCheck( ... );
Result = minosQPTL(Prob);
Call Prob = qpAssign( ... ) or Prob=ProbDef to define the Prob for
the second option.
Description of Inputs
Prob, The following fields are used: |
|
x_L, x_U |
Bounds on variables. |
|
b_L, b_U |
Bounds on linear constraints. |
|
A |
Linear constraint matrix. |
|
QP.c |
Linear coefficients in objective function. |
|
QP.F |
Quadratic matrix of size nnObj x nnObj. nnObj < n is
OK. |
|
PriLevOpt |
Print level. |
|
WarmStart |
If true, use warm start, otherwise cold
start. |
|
SOL.xs |
Solution and slacks from previous run. |
|
SOL.hs |
State for solution and slacks from previous
run. |
|
SOL.nS |
Number of superbasics from previous run. |
|
SOL.SpecsFile |
Name of user defined SPECS file, read BEFORE optPar() is
used. |
|
SOL.PrintFile |
Name of SOL Print file. Amount and type of printing determined by SPECS parameters or optPar parameters. |
|
SOL.SummFile |
Name of SOL Summary File. |
|
SOL.optPar |
Elements > -999 takes precedence over corresponding TOMLAB
params. |
|
Description of Outputs
Result, The following fields are used: |
|
|
Result |
The structure with results (see ResultDef.m). |
f_k |
Function value at optimum. |
x_k |
Solution vector. |
x_0 |
Initial solution vector. |
g_k |
Gradient c (linear objective). |
|
xState |
State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; |
bState |
State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
|
v_k |
Lagrangian multipliers (for bounds + dual solution
vector). |
|
ExitFlag |
Exit status from minos.m (similar to
TOMLAB). |
|
Inform |
Result of MINOS run. |
|
|
0 Optimal solution found. |
|
1 The problem is infeasible. |
|
2 The problem is unbounded (or badly scaled). |
|
3 Too many iterations. |
|
4 Apparent stall. The solution has not changed for a
large number of iterations (e.g. 1000). |
|
5 The Superbasics limit is too small. |
|
6 User requested termination (by returning bad value). |
|
7 Gradient seems to be giving incorrect derivatives. |
|
8 Jacobian seems to be giving incorrect derivatives. |
|
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. |
|
13 Near-optimal solution found.
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 OLD BASIS file had dimensions that did not match the
current problem. |
|
32 System error. Wrong number of basic variables. |
|
40 Fatal errors in the MPS file. |
|
41 Not enough storage to read the MPS file. |
|
42 Not enough storage to solve the problem. |
|
rc |
Vector of reduced costs, g − ( A I )Tπ, where g
is the gradient of the objective function if xn
is feasible, or the gradient of the Phase-1 objective otherwise.
If ninf = 0, the last m entries are −π.
Reduced costs vector is of n+m length. |
|
Iter |
Number of iterations. |
FuncEv |
Number of function evaluations. Set to Iter. |
GradEv |
Number of gradient evaluations. Set to Iter. |
ConstrEv |
Number of constraint evaluations. Set to 0. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
MinorIter |
Number of minor iterations. NOT SET. |
|
Solver |
Name of the solver (minos). |
SolverAlgorithm |
Description of the solver. |
|
SOL.xs |
Solution and slack variables. |
|
SOL.hs |
Basis status of variables + constraints (n+m x 1
vector). State of variables: 0=nonbasic (on bl), 1=nonbasic (on
bu) 2=superbasic (between bounds), 3=basic (between bounds). |
|
Basic and superbasic variables may be outside
their bounds by as much as the 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 Feasibility tolerance,
and there may be some nonbasics for which
xn(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). |
|
SOL.nS |
# of superbasics. |
|
SOL.nInf |
# of infeasibilities. |
|
SOL.sInf |
Sum of infeasibilities. |
|
Description
Use missing value (-999 or less), when no change of parameter
setting is wanted. The default value will then be used by MINOS,
unless the value is altered in the SPECS file.
Description of Inputs
The following fields are used: |
|
# |
SPECS keyword text |
Lower |
Default |
Upper |
Comment |
|
|
|
Printing |
1. |
PRINT LEVEL |
0 |
0 |
1 |
0=brief 1=LU stats |
|
Frequencies I |
5. |
PRINT FREQUENCY |
0 |
100 |
6. |
SUMMARY FREQUENCY |
0 |
1 |
7. |
SOLUTION YES/NO |
0 |
1 |
1 |
1 = YES; 0 =
NO |
8. |
SUPPRESS PARAMETERS |
0 |
0 |
1 |
1 =
True |
|
Convergence Tolerances |
10. |
OPTIMALITY TOLERANCE |
>0 |
max(1E−6,(10epsR)0.5) =
1.73E-6 |
11. |
FEASIBILITY TOLERANCE |
>0 |
1E-6 |
|
Derivative checking |
13. |
VERIFY LEVEL |
-1 |
-1 |
3 |
-1,0,1,2,3 |
14. |
START OBJECTIVE CHECK AT COL |
0 |
1 |
nnObj |
15. |
STOP OBJECTIVE CHECK AT COL |
0 |
nnObj |
nnObj |
|
Scaling |
18. |
SCALE OPTION |
0 |
1 |
2 |
|
See Section 6.2 for more information. |
19. |
SCALE TOLERANCE |
>0 |
0.9 |
<1 |
20. |
SCALE PRINT |
0 |
0 |
1 |
1 = True |
21. |
CRASH TOLERANCE |
0 |
0.1 |
<1 |
|
Other Tolerances |
22. |
LINESEARCH TOLERANCE |
>0 |
0.1 |
<1 |
|
LU I |
23. |
LU FACTOR TOLERANCE |
1 |
5.0 |
24. |
LU UPDATE TOLERANCE |
1 |
5.0 |
25. |
LU SWAP TOLERANCE |
>0 |
1.22E-4 |
|
eps1/4 |
26. |
LU SINGULARITY TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
|
LP parameters |
27. |
PIVOT TOLERANCE |
>0 |
3.25E-11 |
|
eps0.67 |
28. |
CRASH OPTION |
0 |
3 |
3 |
0,1,2,3 |
29. |
WEIGHT ON LINEAR OBJECTIVE |
0.0 |
0.0 |
|
during Phase
1 |
30. |
ITERATIONS LIMIT |
0 |
3(m+m3) + 10nnL |
|
m3=1 if length(Prob.QP.c) > 0, otherwise m3=0. |
|
TOMLAB default: max(10000,3(m+m3) + 10nnL). |
31. |
PARTIAL PRICE |
1 |
1 |
32. |
MAXIMIZE |
0 |
0 |
1 |
1=maximize |
|
Reduced-gradient method |
39. |
DERIVATIVE LEVEL |
0 |
3 |
3 |
0,1,2,3 |
|
Is always set by minosqpTL to 3. |
41. |
FUNCTION PRECISION |
>0 |
3.0E-13 |
|
eps0.8=epsR |
42. |
DIFFERENCE INTERVAL |
>0 |
5.48E-8 |
|
eps0.4 |
43. |
CENTRAL DIFFERENCE INTERVAL |
>0 |
6.69E-5 |
|
eps0.8/3 |
44. |
COMPLETION |
0 |
1 LC, 0 NC |
1 |
0=PARTIAL
1=FULL |
45. |
UNBOUNDED STEP SIZE |
>0 |
1E10 |
46. |
UNBOUNDED OBJECTIVE |
>0 |
1E20 |
|
Hessian approximation |
47. |
HESSIAN DIMENSION |
1 |
50 |
1+nnL |
48. |
SUPERBASICS LIMIT |
1 |
50 |
1+nnL |
|
TOMLAB default (to avoid termination with Superbasics Limit too small): |
|
If n <= 5000: max(50,n+1) |
|
If n > 5000: max(500,n+200−size(A,1)−length(cL)) |
|
Avoid setting REDUCED HESSIAN (number of columns in reduced Hessian). |
|
It will then be set to the same value as the SUPERBASICS LIMIT by MINOS. |
|
Frequencies II |
51. |
CHECK FREQUENCY |
>0 |
60 |
52. |
EXPAND FREQUENCY |
>0 |
10000 |
53. |
FACTORIZATION FREQUENCY |
>0 |
50 |
|
LU II |
63. |
LU PARTIAL PIVOTING |
0 |
0 |
3 |
0=partial |
|
or LU COMPLETE PIVOTING |
|
|
|
1=complete |
|
or LU ROOK PIVOTING |
|
|
|
2=rook |
|
Additional parameters |
67. |
AIJ TOLERANCE |
0 |
1E-10 |
|
Elements |a(i,j)| < AIJ TOLERANCE are set as 0 |
70. |
SUBSPACE |
>0 |
0.5 |
1 |
Subspace tolerance |
|
Convergence tolerance in current subspace before consider moving off |
|
another constraint. |
|
3.4.1 Direct Solver Call
A direct solver call is not recommended unless the user is 100 %
sure that no other solvers will be used for the problem. Please
refer to Section
3.4.2 for information on how to use LPOPT
with TOMLAB.
Purpose
lpopt solves dense linear optimization
problems defined as
where
c,
x Rn,
A Rm1 ×
n, and
bL,
bU Rn+m1.
If isempty(c) (or all(c==0), then a feasible point problem is
solved (FP). Otherwise a standard linear programming problem is
solved (LP)
Calling Syntax
[Inform, Iter, iState, Ax, cLamda, Obj, x] = lpopt(A, bl, bu, c,
Warm, x, iState, SpecsFile, PrintFile, SummFile, PriLev, optPar );
Description of Inputs
The following fields are used: |
|
A |
Constraint matrix, m x n (DENSE). |
|
bl |
Lower bounds on (x,Ax), m+n x 1 vector (DENSE). |
|
bu |
Upper bounds on (x,Ax), m+n x 1 vector (DENSE). |
|
c |
Linear objective function cost coeffs, n x 1
(DENSE). If length(c) < n, setting c(1:n)=0; |
|
Warm |
If Warm > 0, then warm start, otherwise cold Start. Default 0.
If warm start, then x and iState must be set properly.
Normally the values from last call to lpopt are
used. |
|
x |
Initial estimate of solution vector x. (DENSE) If length(x) < n,
the rest of the elements in x are set to 0. |
|
iState |
Working set (if Warm start) (n+m) x 1 (DENSE)
If length(iState) < n+m, setting iState(1:n+m)=0; |
|
iState(i)=0: |
Corresponding constraint not in the initial QP working
set. |
iState(i)=1: |
Inequality constraint at its lower bound in QP working
set. |
iState(i)=2: |
Inequality constraint at its upper bound in QP working
set. |
iState(i)=3: |
Equality constraint in the initial QP working
set,bl(i)==bu(i). |
|
SpecsFile |
Name of the OPTIONS File, see TOMLAB Guide. |
|
PrintFile |
Name of the Print file. Name includes the path, maximal number of characters = 500. |
|
SummFile |
Name of the Summary file. Name includes the path, maximal number of characters = 500. |
|
PriLev |
Print level in the lpopt MEX-interface. |
|
= 0 Silent. |
|
= 1 Summary information. |
|
= 2 More detailed information. |
|
if isempty(PriLev), set as 0. |
|
optPar |
Vector with optimization parameters overriding defaults and the
optionally specified SPECS file.
If length(optPar) < 62, lpopt sets the rest of the values to
missing value (-999). |
|
Description of Outputs
The following fields are used: |
|
|
Inform |
Result of LPOPT run. |
|
0 = Optimal solution with unique minimizer found. |
|
1 = A dead point was reached. |
|
2 = The solution appears to be unbounded (or badly
scaled). |
|
3 = The constraints could not be satisfied. The problem has no feasible
solution. |
|
4 = Too many iterations, in either phase. |
|
5 = The Maximum degrees of freedom is too small. The reduced Hessian must expand if further progress
is too be made. |
|
6 = An input parameter was invalid. |
|
7 = The problem type was not recognized. |
|
Other = UNKNOWN LPOPT Inform value. |
|
Iter |
Number of iterations. |
|
iState |
Status of working set, se input description of
iState. |
|
Ax |
A*x. |
|
cLamda |
Lagrangian multipliers (dual solution vector) (m x 1
vector). |
|
Obj |
Objective function value at optimum. |
|
x |
Solution vector with decision variable values (n x 1
vector). |
|
3.4.2 Using TOMLAB
Purpose
lpoptTL solves dense linear optimization
problems defined as
|
|
f(x) = cT x |
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(10) |
where
c,
x,
xL,
xU Rn,
A Rm1
× n, and
bL,
bU Rm1.
Calling Syntax
Using the driver routine
tomRun:
Prob = lpAssign( ... );
Result = tomRun('lpopt', Prob ... );
or
Prob = ProbCheck( ... );
Result = lpoptTL(Prob);
Call Prob = lpAssign( ... ) or Prob=ProbDef to define the Prob for
the second option.
Description of Inputs
Prob, The following fields are used: |
|
x_L, x_U |
Bounds on variables. |
|
b_L, b_U |
Bounds on linear constraints. |
|
A |
Linear constraint matrix. |
|
QP.c |
Linear coefficients in objective function. |
|
PriLevOpt |
Print level. |
|
WarmStart |
If true, use warm start, otherwise cold
start. |
|
SOL.xs |
Solution and slacks from previous run. |
|
SOL.iState |
Working set (if Warm start) (n+m) x 1 (DENSE)
If length(iState) < n+m, setting iState(1:n+m)=0; |
|
iState(i)=0: |
Corresponding constraint not in the initial QP working
set. |
iState(i)=1: |
Inequality constraint at its lower bound in QP working
set. |
iState(i)=2: |
Inequality constraint at its upper bound in QP working
set. |
iState(i)=3: |
Equality constraint in the initial QP working
set, bl(i)==bu(i). |
|
SOL.SpecsFile |
Name of user defined SPECS file, read BEFORE optPar() is
used. |
|
SOL.PrintFile |
Name of SOL Print file. Amount and type of printing determined by SPECS parameters or optPar parameters. |
|
SOL.SummFile |
Name of SOL Summary File. |
|
SOL.optPar |
Elements > -999 takes precedence over corresponding TOMLAB
params. |
|
Description of Outputs
Result, The following fields are used: |
|
|
Result |
The structure with results (see ResultDef.m). |
f_k |
Function value at optimum. |
x_k |
Solution vector. |
x_0 |
Initial solution vector. |
g_k |
Gradient c (linear objective). |
|
xState |
State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; |
bState |
State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
|
v_k |
Lagrangian multipliers (for bounds + dual solution
vector). |
|
ExitFlag |
Exit status from lpopt.m (similar to
TOMLAB). |
Inform |
LPOPT information parameter. |
|
0 = Optimal solution with unique minimizer found. |
|
1 = A dead point was reached. |
|
2 = The solution appears to be unbounded (or badly
scaled). |
|
3 = The constraints could not be satisfied. The problem has no feasible
solution. |
|
4 = Too many iterations, in either phase. |
|
5 = The Maximum degrees of freedom is too small. The reduced Hessian must expand if further progress
is too be made. |
|
6 = An input parameter was invalid. |
|
7 = The problem type was not recognized. |
|
Other = UNKNOWN LPOPT Inform value. |
|
|
rc |
Reduced costs. If ninf=0, last m == -v_k. |
|
Iter |
Number of iterations. |
FuncEv |
Number of function evaluations. |
ConstrEv |
Number of constraint evaluations. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
MinorIter |
Number of minor iterations. Not Set. |
|
Solver |
Name of the solver (lpopt). |
SolverAlgorithm |
Description of the solver. |
|
SOL.xs |
Solution and slack variables. |
|
SOL.iState |
State for variables and constraints in iState. |
|
Description
Use missing value (-999 or less), when no change of parameter
setting is wanted. No call is then done to internal routines
lpprmi, lpprmr and lpprm. The default value will then be used by
LPOPT, unless the value is altered in the SPECS file.
Description of Inputs
The following fields are used: |
|
# |
SPECS keyword text |
Lower |
Default |
Upper |
Comment |
|
|
|
Printing |
1. |
PRINT LEVEL |
0 |
10 |
|
0,1,5,10,20,30 |
|
Convergence Tolerances |
10. |
OPTIMALITY TOLERANCE |
>0 |
1.1E-8 |
|
sqrt(eps) |
11. |
FEASIBILITY TOLERANCE |
>0 |
1.1E-8 |
|
sqrt(eps) |
|
Other Tolerances |
21. |
CRASH TOLERANCE |
>0 |
0.01 |
<1 |
27. |
RANK TOLERANCE |
>0 |
1.1E-14 |
|
100*eps |
30. |
ITERATION LIMIT |
>0 |
max(50,5(n+m)) |
33. |
MIN SUM YES (or NO) |
0 |
0 |
1 |
1=min
infeas. |
|
IF 1 (MIN SUM YES), minimize the infeasibilities before
return. |
36. |
FEASIBILITY PHASE ITERATIONS |
>0 |
max(50,5(n+m)) |
45. |
INFINITE STEP SIZE |
>0 |
1E20 |
|
Frequencies |
51. |
CHECK FREQUENCY |
>0 |
50 |
52. |
EXPAND FREQUENCY |
>0 |
5 |
|
3.5.1 Direct Solver Call
A direct solver call is not recommended unless the user is 100 %
sure that no other solvers will be used for the problem. Please
refer to Section
3.5.2 for information on how to use QPOPT
with TOMLAB.
Purpose
qpopt solves dense quadratic optimization
problems defined as
|
|
f(x) = |
|
xT F x + cT x + dT x |
|
|
|
s/t |
|
|
(11) |
where
c,
x Rn,
F Rn × n,
A Rm1 × n, and
bL,
bU
Rn+m1.
If isempty(H) and isempty(c), then a feasible point problem is
solved (FP).
If isempty(H), then a linear programming problem is solved (LP).
If isempty(c), then a quadratic programming problem is solved
(QP1).
Otherwise a standard quadratic programming problem is solved
(QP2).
Calling Syntax
[Inform, Iter, iState, Ax, cLamda, Obj, x] = qpopt (H, A, bl, bu,
c, Warm, x, iState, SpecsFile, PrintFile, SummFile, PriLev,
optPar);
Description of Inputs
The following fields are used: |
|
H |
Matrix H in quadratic part of objective function (SPARSE or DENSE). |
|
A |
Constraint matrix, m x n. (DENSE). |
|
bl |
Lower bounds on (x, Ax), m+n x 1 vector (DENSE). |
|
bu |
Upper bounds on (x, Ax), m+n x 1 vector (DENSE). |
|
c |
Linear objective function cost coeffs, n x 1. (DENSE)
If length(c) < n, setting c(1:n)=0;. |
|
Warm |
If Warm > 0, then warm start, otherwise cold
Start. Default 0. If warm start, then x and iState must be set
properly. Normally the values from last call to qpopt are used. |
|
x |
Initial estimate of solution vector x. (DENSE) If length(x) < n,
the rest of the elements in x are set to 0. |
|
iState |
Working set (if Warm start) (n+m) x 1 (DENSE)
If length(iState) < n+m, setting iState(1:n+m)=0; |
|
iState(i)=0: |
Corresponding constraint not in the initial QP working
set. |
iState(i)=1: |
Inequality constraint at its lower bound in QP working
set. |
iState(i)=2: |
Inequality constraint at its upper bound in QP working
set. |
iState(i)=3: |
Equality constraint in the initial QP working
set, bl(i)==bu(i). |
|
SpecsFile |
Name of the OPTIONS File, see TOMLAB Guide. |
|
PrintFile |
Name of the Print file. Name includes the path, maximal number of characters =
500. |
|
SummFile |
Name of the Summary file.
Name includes the path, maximal number of characters =
500. |
|
PriLev |
Print level in the qpopt MEX-interface. |
|
= 0 Silent. |
|
= 1 Summary information. |
|
= 2 More detailed information. |
|
if isempty(PriLev), set as 0. |
|
optPar |
Vector with optimization parameters overriding defaults and the
optionally specified SPECS file.
If length(optPar) < 62, qpopt sets the rest of the values to
missing value (-999). |
|
Description of Outputs
The following fields are used: |
|
|
Inform |
Result of QPOPT run.
0 = Optimal solution found. |
|
|
0: x is a unique local minimizer. This means that x is
feasible (it satisfies the constraints to the accuracy
requested by the Feasibility tolerance), the reduced gradient is
negligible, the Lagrange multipliers are optimal, and the reduced
Hessian is positive definite.
If H is positive definite or positive semidefinite, x
is a global minimizer. (All other feasible points
give a higher objective value.)
Otherwise, the solution is a local minimizer,
which may or may not be global.
(All other points in the immediate neighborhood give a higher
objective.) |
|
1: A dead-point was reached.
This might occur if H is not sufficiently positive definite.
If H is positive semidefinite, the solution is a weak minimizer.
(The objective value is a global optimum, but there may be infinitely
many neighboring points with the same objective value.)
If H is indefinite, a feasible direction of decrease
may or may not exist (so the point may not be a local or weak
minimizer). |
|
|
At a dead-point, the necessary conditions for optimality are
satisfied (x is feasible, the reduced gradient is negligible,
the Lagrange multipliers are optimal, and the reduced Hessian is
positive semidefinite.) However, the reduced Hessian is nearly
singular, and/or there are some very small multipliers. If H is
indefinite, x is not necessarily a local solution of the
problem. Verification of optimality requires further information,
and is in general an NP-hard problem [20]. |
|
|
2: The solution appears to be unbounded.
The objective is not bounded below in the feasible region, if the
elements of x are allowed to be arbitrarily large. This occurs
if a step larger than Infinite Step would have to be taken in
order to continue the algorithm, or the next step would result in a
component of x having magnitude larger than Infinite Bound.
It should not occur if H is sufficiently positive definite. |
|
|
3: The constraints could not be satisfied. The
problem has no feasible solution. |
|
|
4: One of the iteration limits
was reached before normal termination occurred. See Feasibility
Phase Iterations and Optimality Phase Iterations. |
|
|
5: The Maximum degrees of freedom is too small.
The reduced Hessian must expand if further progress is to be made. |
|
|
6: An input parameter was invalid. |
|
|
7: The Problem type was not recognized. |
|
Iter |
Number of iterations. |
|
iState |
Status of working set, se input description of
iState. |
|
Ax |
A*x. |
|
cLamda |
Lagrangian multipliers (dual solution vector) (m x 1
vector). |
|
Obj |
Objective function value at optimum. |
|
x |
Solution vector with decision variable values (n x 1
vector). |
|
3.5.2 Using TOMLAB
Purpose
qpoptTL solves quadratic optimization
problems defined as
|
|
|
|
|
s/t |
xL |
≤ |
x |
≤ |
xU, |
bL |
≤ |
A x |
≤ |
bU |
|
|
(12) |
where
c,
x,
xL,
xU Rn,
F Rn
× n,
A Rm1 × n, and
bL,
bU
Rm1.
Calling Syntax
Using the driver routine
tomRun:
Prob = qpAssign( ... );
Result = tomRun('qpopt', Prob ... );
or
Prob = ProbCheck( ... );
Result = qpoptTL(Prob);
Call Prob = qpAssign( ... ) or Prob=ProbDef to define the Prob for
the second option.
Description of Inputs
Prob, The following fields are used: |
|
x_L, x_U |
Bounds on variables. |
|
b_L, b_U |
Bounds on linear constraints. |
|
A |
Linear constraint matrix. |
|
QP.c |
Linear coefficients in objective function. |
|
QP.F |
Quadratic matrix of size nnObj x nnObj. nnObj < n is
OK. |
|
PriLevOpt |
Print level. |
|
WarmStart |
If true, use warm start, otherwise cold
start. |
|
SOL.xs |
Solution and slacks from previous run. |
|
SOL.iState |
Working set (if Warm start) (n+m) x 1 (DENSE)
If length(iState) < n+m, setting iState(1:n+m)=0; |
|
iState(i)=0: |
Corresponding constraint not in the initial QP working
set. |
iState(i)=1: |
Inequality constraint at its lower bound in QP working
set. |
iState(i)=2: |
Inequality constraint at its upper bound in QP working
set. |
iState(i)=3: |
Equality constraint in the initial QP working
set, bl(i)==bu(i). |
|
SOL.cLamda |
Lagrangian multipliers from previous run (Warm start). |
|
SOL.SpecsFile |
Name of user defined SPECS file, read BEFORE optPar() is
used. |
|
SOL.PrintFile |
Name of SOL Print file. Amount and type of printing determined by SPECS parameters or optPar parameters. |
|
SOL.SummFile |
Name of SOL Summary File. |
|
SOL.optPar |
Elements > -999 takes precedence over corresponding TOMLAB
params. |
|
Description of Outputs
Result, The following fields are used: |
|
|
Result |
The structure with results (see ResultDef.m). |
|
f_k |
Function value at optimum. |
|
x_k |
Solution vector. |
|
x_0 |
Initial solution vector. |
|
g_k |
Exact gradient computed at optimum. |
|
xState |
State of variables. Free == 0; On lower == 1; On upper == 2; Fixed == 3; |
|
bState |
State of linear constraints. Free == 0; Lower == 1; Upper == 2; Equality == 3; |
|
v_k |
Lagrangian multipliers (for bounds + dual solution
vector). |
|
ExitFlag |
Exit status from qpopt.m (similar to
TOMLAB). |
|
Inform |
Result of QPOPT run.
0 = Optimal solution found. |
|
|
0: x is a unique local minimizer. This means that x is
feasible (it satisfies the constraints to the accuracy
requested by the Feasibility tolerance), the reduced gradient is
negligible, the Lagrange multipliers are optimal, and the reduced
Hessian is positive definite.
If H is positive definite or positive semidefinite, x
is a global minimizer. (All other feasible points
give a higher objective value.)
Otherwise, the solution is a local minimizer,
which may or may not be global.
(All other points in the immediate neighborhood give a higher
objective.) |
|
1: A dead-point was reached.
This might occur if H is not sufficiently positive definite.
If H is positive semidefinite, the solution is a weak minimizer.
(The objective value is a global optimum, but there may be infinitely
many neighboring points with the same objective value.)
If H is indefinite, a feasible direction of decrease
may or may not exist (so the point may not be a local or weak
minimizer). |
|
|
At a dead-point, the necessary conditions for optimality are
satisfied (x is feasible, the reduced gradient is negligible,
the Lagrange multipliers are optimal, and the reduced Hessian is
positive semidefinite.) However, the reduced Hessian is nearly
singular, and/or there are some very small multipliers. If H is
indefinite, x is not necessarily a local solution of the
problem. Verification of optimality requires further information,
and is in general an NP-hard problem [20]. |
|
|
2: The solution appears to be unbounded.
The objective is not bounded below in the feasible region, if the
elements of x are allowed to be arbitrarily large. This occurs
if a step larger than Infinite Step would have to be taken in
order to continue the algorithm, or the next step would result in a
component of x having magnitude larger than Infinite Bound.
It should not occur if H is sufficiently positive definite. |
|
|
3: The constraints could not be satisfied. The
problem has no feasible solution. |
|
|
4: One of the iteration limits
was reached before normal termination occurred. See Feasibility
Phase Iterations and Optimality Phase Iterations. |
|
|
5: The Maximum degrees of freedom is too small.
The reduced Hessian must expand if further progress is to be made. |
|
|
6: An input parameter was invalid. |
|
|
7: The Problem type was not recognized. |
|
rc |
Reduced costs. If ninf=0, last m == -v_k. |
|
Iter |
Number of iterations. |
FuncEv |
Number of function evaluations. Set to Iter. |
GradEv |
Number of gradient evaluations. Set to Iter. |
ConstrEv |
Number of constraint evaluations. Set to 0. |
|
QP.B |
Basis vector in TOMLAB QP standard. |
|
MinorIter |
Number of minor iterations. Not Set. |
|
Solver |
Name of the solver (QPOPT). |
SolverAlgorithm |
Description of the solver. |
|
SOL.xs |
Solution and slack variables. |
|
SOL.cLamda |
Lagrangian multipliers. |
|
SOL.iState |
State for variables and constraints in iState. |
|
Description
Use missing value (-999 or less), when no change of parameter
setting is wanted. The default value will then be used by QPOPT,
unless the value is altered in the SPECS file.
Description of Inputs
The following fields are used: |
|
# |
SPECS keyword text |
Lower |
Default |
Upper |
Comment |
|
|
|
Printing |
1. |
PRINT LEVEL |
0 |
10 |
|
0,1,5,10,20,30 |
|
Convergence Tolerances |
10. |
OPTIMALITY TOLERANCE |
>0 |
1.1E-8 |
|
sqrt(eps) |
11. |
FEASIBILITY TOLERANCE |
>0 |
1.1E-8 |
|
sqrt(eps) |
|
Other Tolerances |
21. |
CRASH TOLERANCE |
0 |
0.01 |
<1 |
27. |
RANK TOLERANCE |
>0 |
1.1E-14 |
|
100*eps |
30. |
ITERATION LIMIT |
>0 |
max(50,5(n+m)) |
33. |
MIN SUM YES (or NO) |
0 |
0 |
1 |
1=min
infeas. |
|
IF 1 (MIN SUM YES), minimize the infeasibilities before
return. |
|
36. |
FEASIBILITY PHASE ITERATIONS |
>0 |
max(50,5(n+m)) |
45. |
INFINITE STEP SIZE |
>0 |
1E20 |
47. |
HESSIAN ROWS |
0 |
n |
n |
0 if FP or
LP |
|
Implicitly given by the dimensions of H in the call
from Matlab |
|
48. |
MAX DEGREES OF FREEDOM |
0 |
n |
n |
|
ONLY USED IF HESSIAN ROWS == N |
|
Frequencies |
51. |
CHECK FREQUENCY |
>0 |
50 |
52. |
EXPAND FREQUENCY |
>0 |
5 |
|
« Previous « Start » Next »