, is
one of the most central aspects of working with TOMLAB . It contains
numerous fields and substructures that influence the behaviour and
performance of the solvers.
There are default values for everything that is possible to set defaults for,
and all routines are written in a way that makes it possible for the user to
just set an input argument empty ([ ]) and get the default.
, for the optimization parameters controlling the
execution of the optimization solvers.
Many algorithms need sub-problems solved as part of the main algorithm.
For example, in SQP algorithms for general nonlinear programs,
QP problems are solved as sub-problems in each iteration.
As QP solver any solver, even a general NLP solver, may be used.
To send parameter information
to the QP subsolver, the fields
), i.e. as
fields
need not have all subfields, the missing
ones are filled with default values for the particular QP solver.
subfield is used for the other types of
subproblems recognized, i.e. Phase 1 feasibility problems, LP and dual
LP problems. Note that the fields
are
set to the name of the solver that should solve the subproblem. If
the field is left empty, a suitable default solver is used, dependent
on the license for TOMLAB .
Information stored in the problem structure Prob .
Fields defining sub-structures are defined in Table 15 |
|
Field |
Description |
|
|
Tomlab |
TOMLAB Version number. |
|
A |
Matrix with linear constraints, one constraint
per row (dense or sparse). |
|
ADObj |
Automatic differentiation flag. If 1, -1 MAD is used to obtain gradient and Hessian, respectively. |
ADCons |
Automatic differentiation flag. If 1, -1 MAD is used to obtain the constraint Jacobian and nonlinear constraint Hessian, respectively. |
|
b_L |
Lower bounds on the linear constraints. |
b_U |
Upper bounds on the linear constraints. |
c_L |
Lower bounds on the general constraints. |
c_U |
Upper bounds on the general constraints. |
|
CHECK |
If true, no more check is done by ProbCheck.
Set to true (=1) after first call to ProbCheck. |
|
CheckNaN |
If Prob.CheckNaN =0, nlp_d2c ,
nlp_H , nlp_d2r checks for NaN elements
and estimates the corresponding derivatives numerically.
If Prob.CheckNaN >0, the same applies for nlp_dc , nlp_g ,
nlp_J . Off-diagonal elements in symmetric Hessians should
both be set as NaN. fdng, fdng2, fdng3, only estimate NaN elements in
gradient, if gradient vector is input. |
|
cName |
Name of each general constraint. |
|
cols |
The columns in the user computed matrix that will be accessed, and needs to be set. |
|
ConIx |
A vector with the sequence of calls required to compute
the numerical constraint Jacobian efficiently. See findpatt
for more information. |
|
ConsDiff |
Numerical approximation of the constraint
derivatives.
If set to 1, the classical approach with forward or
backward differences together with automatic step
selection will be used.
If set to 2, 3 or 4 the spline routines csapi ,
csaps or spaps in the SPLINE Toolbox
will be used.
If set to 5, derivatives will
be estimated by use of complex variables.
For the SOL solvers, the value 6 gives the internal
derivative approximation. |
|
ConsIdx |
Internally used to speed up the SOL solver
computations. Used to send linear index from multiple subscripts
for nonzero pattern in constraint Jacobian. |
|
ConsPattern |
Matrix with non-zero pattern in the constraint
gradient matrix. |
|
d2LPattern |
Sparsity pattern of the Hessian of the Lagrangian function. |
|
f_Low |
Lower bound on optimal function value. |
f_opt |
Objective function value f(x*) corresponding to the
points given in x_opt . |
|
GradTolg |
Size of step length to estimate first order derivatives
in the gradient vector.
If this field is empty, optParam.DiffInt
is used instead. |
GradTolH |
Size of step length to estimate the Hessian matrix.
If this field is empty , optParam.DiffInt
is used instead. |
GradTolJ |
Size of step length to estimate the Jacobian matrix or
the constraint gradient matrix.
If this field is empty, optParam.DiffInt
is used instead. |
|
HessIx |
A vector with the sequence of calls required to
compute the numerical Jacobian efficiently.
See findpatt for more information. |
HessPattern |
Matrix with non-zero pattern in the Hessian matrix. |
|
JacIx |
A vector with the sequence of calls required to compute
the numerical Jacobian efficiently.
See findpatt for more information. |
JacPattern |
Matrix with non-zero pattern in the Jacobian matrix. |
|
LargeScale |
Flag if the problem is large scale. If this flag is set
no collection of search steps are made.
Also, for some solvers, LargeScale chooses between dense (=0) or
sparse (=1) versions of the solver. This flag also controls several other
features in TOMLAB such as estimation of patterns. |
|
MaxCPU |
Maximum execution time in seconds for the solver.
The feature is available for a limited number of solvers. |
|
MENU |
Flag used to tell if a menu, the GUI or a
driver is
calling, to avoid unnecessary checks of the fields in
Prob (0). |
|
Mode |
Indicates whether the user should return function values
and/or derivatives.
Is best used when the user computes both function values and derivatives at
the same time to save CPU time.
0= Assign function values.
1= Assign known derivatives, unknown derivative values
set as -11111 (=missing value).
2= Assign function and known derivatives, unknown derivatives set
as -11111. |
|
nState |
Indicates the first and last calls to the user routines
to compute function and derivatives. Used by the SOL solvers. |
|
|
1 |
First call. |
0 |
Other calls before the last call. |
2+Inform |
Last call, see the Inform parameter for the solver used. |
|
|
N |
Problem dimension (number of variables). |
|
mLin |
Number of linear constraints. |
|
mNonlin |
Number of nonlinear constraints. |
|
Name |
Problem name. |
|
NumDiff |
Numerical approximation of the derivatives of the
objective function.
If set to 1, the classical approach with forward or
backward differences together with automatic step
selection will be used.
If set to 2, 3 or 4 either the standard Matlab spline function or
the spline routines csapi ,
csaps or spaps in the SPLINE Toolbox
will be used.
If set to 5, derivatives will
be estimated by use of complex variables.
For the some solvers, the value 6 gives the internal
derivative approximation. |
P |
Problem number (1). |
plotLine |
Flag if to do a plot of the line search problem. |
|
PriLev |
Print level in the driver routines (0). |
PriLevOpt |
Print level in the TOM solver and the Matlab part of
the solver interface ( 0). |
|
PrintLM |
Flag: controls whether or not PrintResult should
calculate Lagrange multipliers and reduced (projected)
gradient after a solver has been run. |
* |
* |
Since PrintResult operates on a Result structure,
and not on Prob , this flag is accessed as
Result.Prob.PrintLM , but of course it is possible to
set it before solving the problem. |
|
probFile |
Name of m-file in which the problems are defined. |
probType |
TOMLAB problem type, see Table 2.2. |
|
rows |
The rows in the user computed vector/matrix that will be accessed, and needs to be set. |
|
simType |
A flag indicating when the TOMLAB simulation
format is used. The objective and constraints are calculated at the same function. The gradient and Jacobian
are also calculated in the same function. |
|
smallA |
If 1 then small elements in the linear constraints are removed. The elements have to be smaller than eps*max(max(abs(Prob.A))). |
|
SolverDLP |
Name of the solver that should solve dual LP
sub-problems. |
*
SolverLP |
Name of the Solver that should
solve LP sub-problems. |
*
SolverFP |
Name of the solver that should solve a phase one LP
sub-problem, i.e. finding a feasible point to a convex set. |
*
SolverQP |
Name of the solver that should solve QP sub problems. |
|
uP |
User supplied parameters for the problem (Init File Format). Use Prob.user for extra parameters. |
uPName |
Problem name (Prob.Name )
connected to the user supplied parameters in ( uP). |
|
user |
User supplied parameters for the problem. Should be stored in subfields, for example Prob.user.aParam . |
|
WarmStart |
For solver with support for warmstarts, WarmStart > 0
indicates that the solver should do a warm start. |
|
x_0 |
Starting point. |
|
x_L |
Lower bounds on the variables x. |
x_U |
Upper bounds on the variables x. |
|
x_min |
Lower bounds on plot region. |
x_max |
Upper bounds on plot region. |
|
x_opt |
Stationary points x*, one per row (if known). It is possible
to define an extra column, in which a zero (0) indicates a minimum
point, a one (1) a saddle point, and a two (2) a maximum.
As default, minimum points are assumed.
The corresponding function values for each row in x_opt
should be given in Prob.f_opt . |
|
xName |
Name of each decision variable in x. |
|
Warning |
If 1 (default), some warnings may be issued. |
|
|
Information stored in the structure Prob.optParam .
Default values in parenthesis. Items marked (SOL-n) are
corresponding to SOL parameters, and are given different initial
values dependent on which solver is used. The number n gives the
element number used in the optParam parameter vector in
Prob.SOL . |
|
Field |
Description |
|
|
|
PriLev |
Solver major print level in file output (SOL-1). |
PriFreq |
Print frequency (SOL-5) in optimization solver. |
SummFreq |
Summary frequency (SOL-6) in optimization solver. |
MinorPriLev |
Minor print level in file output (SOL-2)
in SOL sub-problem solver. |
IterPrint |
Flag for one-row-per-iteration printout during
optimization (0). If SOL-1 not explicitely set, setting this flag
will set SOL-1 to 1 for the SOL solvers. |
|
wait |
Flag, if true use pause statements after output
in each iteration (0). |
|
MaxFunc |
Maximal number of function evaluations. |
*
MaxIter |
Maximum number of iterations (SOL-30). |
*
MajorIter |
Maximum number of iterations in major problem (SOL-35). |
*
MinorIter |
Maximum number of iterations in minor problem (SOL-36). |
|
eps_f |
Relative convergence tolerance in f (10−8). |
eps_absf |
Absolute convergence tolerance for the function value
( −realmax). |
eps_x |
Relative convergence tolerance in parameter solution x
(SOL-10). |
eps_dirg |
Convergence tolerance for the directed derivative (10−8). |
eps_c |
Feasibility tolerance for nonlinear constraints (SOL-9). |
eps_g |
Gradient (or reduced gradient) convergence tolerance (10−7). |
eps_Rank |
Rank test tolerance (SOL-27). |
EpsGlob |
Global/local weight parameter in global optimization
(10−4). |
|
fTol |
Relative accuracy in the computation of the function value
(SOL-41). |
*
xTol |
If x [x_L,x_L+bTol] or [x_U−bTol,x_U
], fix x on bound
(100*є = 2.2204 10−13). |
bTol |
Feasibility tolerance for linear constraints (SOL-11). |
*
cTol |
Feasibility tolerance for nonlinear constraints (SOL-9). |
MinorTolX |
Relative convergence tolerance in parameters x
in sub-problem (SOL-12). |
|
size_x |
Size at optimum for the variables x, used in the convergence
tests ( 1). Only changed if scale very different, x >> 1. |
*
size_f |
Size at optimum for the function f, used in the convergence
tests ( 1).
Only changed if scale very different, f >> 1. |
*
size_c |
Size at optimum for the constraints c, used in the convergence
tests ( 1).
Only changed if scale very different, c >> 1. |
|
PreSolve |
Flag if presolve analysis is to be applied on linear
constraints ( 0). |
|
DerLevel |
Derivative Level, knowledge about nonlinear derivatives:
0= Some components of the objective gradient are unknown
and some components of the constraint gradient are unknown,
1= The objective gradient is known
but some or all components of the constraint gradient are unknown,
2= All constraint gradients are known
but some or all components of the objective gradient are unknown,
3= All objective and constraint gradients are known
(3,SOL-39). |
|
GradCheck |
0,1,2,3 gives increasing level of
user-supplied gradient checks (SOL-13). |
|
DiffInt |
Difference interval in derivative estimates
(SOL-42). |
*
CentralDiff |
Central difference interval in derivative estimates
(SOL-43). |
|
QN_InitMatrix |
Initial matrix for Quasi-Newton, may be set by the user.
When QN_InitMatrix is empty, the identity matrix
is used. |
splineSmooth |
Smoothness parameter sent to the SPLINE Toolbox routine
csaps.m when computing numerical approximations
of the derivatives (−1 default). 0 means least squares straight line fit.
1 means natural (variational) cubic spline interpolant. The transition range in [0,1]
is small, suggested tries are 0.2 or 0.4. <0 lets the routine csaps make the choice
(default) |
*
splineTol |
Tolerance parameter sent to the SPLINE Toolbox
routine
spaps.m when computing numerical approximations
of the derivatives (10−3). Should be set in the order of the noise level. |
|
BigStep |
Unbounded step size. Used to detect unbounded nonlinear
problems. (SOL-45). |
*
BigObj |
Unbounded objective value. Used to detect unbounded nonlinear
problems. (SOL-46). |
CHECK |
If true, no more check is done on the structure.
Set to true (=1) after first call to optParamSet . |