Common input for all CGO solvers: Difference between revisions

From TomWiki
Jump to navigationJump to search
mNo edit summary
Line 161: Line 161:


|-valign="top"
|-valign="top"
|''epsDist''||If ''epsDist'' > 10<sup>-7</sup>, all points x in sphere <math>\|x - XMIN(:,i)\| <= epsDist</math> are excluded from the search.<br>Default ''epsDist'' = 0, then the solver does not try to detect local minima, and just continues until ''maxFunc'' reached
|''epsDist''||If ''epsDist'' > 10<sup>-7</sup>, all points x in the sphere <math>\|x - XMIN(:,i)\| <= epsDist</math> are excluded from the search.<br>Default is ''epsDist'' = 0, then the solver does not try to detect local minima, and just continues until ''maxFunc'' reached


|-valign="top"
|-valign="top"
|''globalSolver''||Global optimization  solver used for subproblem optimization.    Default ''glcCluster  ''(SMOOTH=1)    or  ''glcDirect  ''(SMOOTH=0).      If  the  global- Solver is ''glcCluster'', the fields ''Prob.GO.maxFunc1'', ''Prob.GO.maxFunc2'', ''Prob.GO.maxFunc3'', ''Prob.GO.localSolver'', ''Prob.GO.DIRECT ''and other fields set in ''Prob.GO ''are used. See the help for these parameters in ''glcCluster''.
|''SMOOTH''||= 1 The problem is smooth enough for local search using numerical gradient estimation methods
|-valign="top"
|''localSolver''||Local optimization solver used for subproblem optimization. If not defined, the TOMLAB  default constrained NLP solver is used.


'''- Special RBF  algorithm  parameters in Prob.CGO -'''
= 0 the problem is nonsmooth or noisy, and local search methods using numerical gradient estimation are likely to produce garbage search directions.
|-valign="top"
|''rbfType''||Type of radial basis function: 1 - thin plate spline; 2 - Cubic Spline (default); 3 - Multiquadric; 4 - Inverse multiquadric; 5 - Gaussian; 6 - Linear.
|-valign="top"
|''idea''||Type of search strategy on the response surface.


''idea ''= 1 - cycle of N+1 points in target value ''fnStar''.
if ''fStarRule ''=3, then N=1 default, otherwise N=4 default.
By default ''idea ''=1, ''fStarRule ''=1, i.e. ''N ''=4.  To change ''N'', see below.
''idea ''= 2 - cycle of 4 points (N+1, N=3 always) in ''alpha''. ''alpha ''is a bound on an algorithmic constraint that implicitly sets a target value ''fStar''.
|-valign="top"
|-valign="top"
|''N''||Cycle length in idea 1 (default N=1 for fStarRule 3, otherwise default N=4) or idea 2 (always N=3).
|''globalSolver''||Global optimization  solver used for subproblem optimization.    Default [[glcCluster|''glcCluster'']]  (SMOOTH=1)   or [[glcDirect|''glcDirect'']] (SMOOTH=0).      If  the  global- Solver is [glcCluster|''glcCluster'']], the fields ''Prob.GO.maxFunc1'', ''Prob.GO.maxFunc2'', ''Prob.GO.maxFunc3'', ''Prob.GO.localSolver'', ''Prob.GO.DIRECT ''and other fields set in ''Prob.GO ''are used. See the help for these parameters in [[glcCluster|''glcCluster'']].
|-valign="top"
|-valign="top"
|''infStep''||If =1, add search step with target value ''-8 ''first in cycle. Default 0. Always
|''localSolver''||Local optimization solver used for subproblem optimization. If not defined, the TOMLAB default constrained NLP solver is used.
 
=1 for the case ''idea ''=1, ''fStarRule ''=3.
|-valign="top"
|''fStarRule''||Global-Local search strategy in idea 1, where N is the cycle length.  Define ''minsn  ''as the global minimum on the RBF surface. The following strategies for setting the target value ''fStar ''is defined:  1: ''fStar ''= ''min<sub>sn</sub> - ''((''N - ''(''n - nInit''))''/N '')<sup>2</sup> ''* ''&Delta;''n ''(Default), 2: ''fStar ''= ''min<sub>sn</sub> - ''(''N - ''(''n - nInit''))''/N * ''&Delta;''n ''.  


Strategy 1 and 2 depends on &Delta; ''<sub>n</sub> ''estimate  (see DeltaRule). If ''infStep ''=1, add <math>-\infty</math>-step first in cycle. 3: fStar = <math>-\infty</math>-step, ''min<sub>sn</sub>-k *''0''.''1''*<nowiki>|</nowiki>min<sub>sn</sub><nowiki>|</nowiki>k ''= ''N, ..., ''0.
These strategies had the following names in Gutmanns thesis: III, II, I.
|-valign="top"
|''DeltaRule''||1 = Skip large f(x) when computing f(x) interval ?.  0 = Use all points. Default 1.
|-valign="top"
|''AddSurfMin''||Add up to AddSurfMin interior local minima on RBF surface as search points, based on estimated Lipschitz constants. AddSurfMin=0  implies no additional minimum  added (Default).    This  option  is only possible if  ''globalSolver  ''= ''multiMin''.    Test for additional  minimum  is done in  the local step (modN == N)  If  these additional local minima are used, in the printout modN = ''-''2'', -''3'', -''4'', ... ''are the iteration steps with these search points.
|-valign="top"
|''TargetMin''||Which minimum, if several minima found, to select in the target value problem:
=0 Use global minimum.
=1 Use best interior local minima, if none use global minimum.
=2 Use best interior local minima, if none use RBF interior minimum.
=3 Use best minimum with lowest number of coefficients on bounds.
Default is ''TargetMin ''= 3.
|-valign="top"
|''eps_sn''||Relative tolerance used to test if the minimum of the RBF surface, ''min<sub>sn</sub> '', is sufficiently lower than the best point (''fM in '') found (default is 10<sup>-7</sup> ).
|-valign="top"
|''MaxCycle''||Max number of cycles without progress before stopping, default 10.
|-valign="top"
|''GO''||Structure ''Prob.GO ''(Default values are set for all fields).
The following fields are used:
|-valign="top"
|''MaxFunc''||Maximal number of function evaluations in each global search.
|-valign="top"
|''MaxIter''||Maximal number of iterations in each global search.
|-valign="top"
|''DIRECT''||DIRECT  solver used in glcCluster, either glcSolve or glcDirect(default).
|-valign="top"
|''maxFunc1''||glcCluster parameter, maximum number of function evaluations in the first call. Only used if globalSolver is glcCluster, see help globalSolver.
|-valign="top"
|''maxFunc2''||glcCluster parameter, maximum number of function evaluations in the second call. Only used if globalSolver is glcCluster, see help globalSolver.
|-valign="top"
|''maxFunc3''||glcCluster parameter, maximum sum of function evaluations in repeated first calls to DIRECT routine when trying to get feasible. Only used if globalSolver is glcCluster, see help ''globalSolver''.
|-valign="top"
|''localSolver''||The local solver used by glcCluster. If not defined, then ''Prob.CGO.localSolver'' is used
|-valign="top"
|''MIP''||Structure in Prob, Prob.MIP.
Defines integer optimization parameters. Fields used:
|-valign="top"
|''IntVars''||If empty, all variables are assumed non-integer.
If islogical(IntVars)  (=all  elements  are 0/1),  then 1 = integer variable, 0 = continuous variable.  If  any element  ''> ''1, IntVars  is the indices for integer variables.
|-valign="top"
|''varargin''||Other parameters directly sent to low level routines.
|}
|}

Revision as of 14:29, 19 June 2014

Input parameters

Prob structure

The following fields are used in the problem description structure Prob
Field Description
Name Name of the problem. Used for security when doing warm starts.
FUNCS.f The routine to compute the function, given as a string, e.g. CGOF.
FUNCS.c The routine to compute the nonlinear constraint, e.g. CGOC.
x_L Lower bounds for each element in x. Must be finite.
x_U Upper bounds for each element in x. Must be finite.
b_L Lower bounds for the linear constraints.
b_U Upper bounds for the linear constraints.
A Linear constraint matrix.
c_L Lower bounds for the nonlinear constraints.
c_U Upper bounds for the nonlinear constraints.
WarmStart If true, >0, the solver reads the output from the last run from the mat-file cgoSave.mat, and continues from the last run.

If Prob.CGO.WarmStartInfo has been defined through a call to WarmDefGLOBAL, this field is used instead of the cgoSave.mat file.

In the last case, exactly the same points are used.

In the first case, a new test is made which points to use.

MaxCPU Maximal CPU Time (in seconds) to be used.
user User field used to send information to low-level functions.
PriLevOpt Print Level.
value output
0 Silent
1 Summary
2 Printing each iteration
3 Info about local / global solution
4 Progress in x.
PriLevSub Print Level in subproblem solvers, see help in snSolve and gnSolve.
f_Low Lower bound on the optimal function value. If defined, used to restrict the target values into interval ['f_Low,min(surface)].
optParam Structure with optimization parameters. See the table below describing the fields used in the optParam structure.
CGO Structure with parameters specific to costly global optimization. See the table below describing the fields used in the CGO structure.
MIP Structure with parameters specific mixed integer optimization. See the table below describing the fields used in the MIP structure.

optParam structure

The most important field is MaxFunc, normally use default values for other fields.

fields used in Prob.optParam:
Field Description
MaxFunc Maximal number of costly function evaluations, default 300 for rbfSolve and arbfMIP, and default 200 for ego. MaxFunc must be <= 5000. If WarmStart = 1 and MaxFunc <= nFunc (Number of f(x) used) then set MaxFunc := MaxFunc + nFunc.
IterPrint Print one information line each iteration, and the new x tried. Default IterPrint = 1. fMinI means the best f(x) is infeasible. fMinF means the best f(x) is feasible (also integer feasible).
fGoal Goal for function value, not used if inf or empty.
eps_f Relative accuracy for function value, fTol == eps_f. Stop if |f - f Goal| <= |fGoal| * fTol, if fGoal ≠ 0. Stop if |f - fGoal| <= fTol, if fGoal = 0. See the output field maxTri.
bTol Linear constraint tolerance.
cTol Nonlinear constraint tolerance.
MaxIter Maximal number of iterations used in the local optimization on the re- sponse surface in each step. Default 1000, except for pure IP problems, then max(GO.MaxFunc, MaxIter);.

CGO structure

The CGO solvers need an initial set of at least n+1 points, where n = dim(x).
Either an initial Experimental Design is needed or the user may input its own choice of points, or a combination of both.
A warm start with points from previous run(s) using any CGO solver is also possible.

The input parameters for the Experimental Design are given as fields in Prob.CGO.
See help expDesign for details on how to set the following fields in Prob.CGO defining the Experimental Design:
Percent, nSample, X, F, Cc, RandState, AddMP, nTrial, CLHMethod
Note that the setting of RandState might influence parts of the CGO solvers as well.

fields used in Prob.CGO:
Field Description
Percent See expDesign for detailed information on how to set the experimental design parameters.
nSample
X
F
CX
RandState
AddMP
nTrial
CLHMethod
SCALE
objType Tranformation of function F, all transformations are computed and saved. Selected objType is used in CGO interpolations.
Value Transformation
0 No transformation (default).
1 Ft(1) = log10(F + Fadd), Fadd=10k, where k=1,2,...lowest k to assure F + Fadd > 0
2 Ft(2) = log(1+F) if F >= 0, -log(1-F) if F < 0
3 Ft(3) = log(F), if all(F) > 0, otherwise NaN
4 Ft(4) = -log(-F) transformation, if all(F) < 0, otherwise NaN
5 Ft(5) = -1/y transformation, if either all(F) < 0 or all(F) > 0, otherwise NaN
6 Ft(6) = F(F >= median(F)) = median(F)
7 Ft(7) = F(F > median(F)) = median(F) + log10(1+F+median(F))
8 Ft(8) = F(F > 10REPLACE) = 104 + log10(1+F-10REPLACE)
REPLACE In objType == 8, large function values Z are replaced by new values

Replacement: Z:= FMAX + log10(Z-FMAX+1), where FMAX = 10REPLACE,
Default REPLACE = 4.

XMIN Matrix d x nLocal with nLocal minima previously found. Best point(s) found might be global minima
Sampling of points will be avoided around these points, see epsDist below
FMIN Column vector with nLocal costly function values f(x) computed at the nLocal points in XMIN
epsDist If epsDist > 10-7, all points x in the sphere are excluded from the search.
Default is epsDist = 0, then the solver does not try to detect local minima, and just continues until maxFunc reached
SMOOTH = 1 The problem is smooth enough for local search using numerical gradient estimation methods

= 0 the problem is nonsmooth or noisy, and local search methods using numerical gradient estimation are likely to produce garbage search directions.

globalSolver Global optimization solver used for subproblem optimization. Default glcCluster (SMOOTH=1) or glcDirect (SMOOTH=0). If the global- Solver is [glcCluster|glcCluster]], the fields Prob.GO.maxFunc1, Prob.GO.maxFunc2, Prob.GO.maxFunc3, Prob.GO.localSolver, Prob.GO.DIRECT and other fields set in Prob.GO are used. See the help for these parameters in glcCluster.
localSolver Local optimization solver used for subproblem optimization. If not defined, the TOMLAB default constrained NLP solver is used.