CGO ego: Difference between revisions
No edit summary |
|||
(19 intermediate revisions by the same user not shown) | |||
Line 45: | Line 45: | ||
Result = tomRun('ego', Prob); | Result = tomRun('ego', Prob); | ||
</pre> | </pre> | ||
==Usage== | |||
See [[CGO solver usage]] | |||
==Description of Inputs== | ==Description of Inputs== | ||
Problem | ===Problem structure=== | ||
The following fields are used in the problem description structure '''Prob''': | |||
{|class="wikitable" | {|class="wikitable" | ||
!Field||Description | !Field||Description | ||
|-valign="middle" | |||
|''Name''||rowspan="15"|See [[Common input for all CGO solvers]] | |||
|-valign="top" | |-valign="top" | ||
|''FUNCS.f'' | |||
|''FUNCS.f'' | |||
|-valign="top" | |-valign="top" | ||
| | |''FUNCS.c'' | ||
|-valign="top" | |-valign="top" | ||
| | |''x_L'' | ||
|-valign="top" | |-valign="top" | ||
| | |''x_U'' | ||
|-valign="top" | |-valign="top" | ||
| | |''b_L'' | ||
|-valign="top" | |-valign="top" | ||
| | |''b_U'' | ||
|-valign="top" | |-valign="top" | ||
| | |''A'' | ||
''' | |||
|-valign="top" | |-valign="top" | ||
| | |''c_L'' | ||
|-valign="top" | |-valign="top" | ||
| | |''c_U'' | ||
|-valign="top" | |-valign="top" | ||
| | |''WarmStart'' | ||
|-valign="top" | |-valign="top" | ||
| | |''user'' | ||
|-valign="top" | |-valign="top" | ||
| | |''MaxCPU'' | ||
|-valign="top" | |-valign="top" | ||
| | |''PriLevOpt'' | ||
|-valign="top" | |-valign="top" | ||
| | |''optParam'' | ||
|-valign="top" | |-valign="top" | ||
| | |''CGO''||See the table below but also [[common input for all CGO solvers#CGO structure|this table]] for input common to all CGO solvers | ||
'' | |||
|-valign="top" | |-valign="top" | ||
| | |''GO''||See [[common input for all CGO solvers#GO structure|common input for all CGO solvers]] | ||
|-valign="top" | |-valign="top" | ||
| | |''MIP''||See [[common input for all CGO solvers#MIP structure|common input for all CGO solvers]] | ||
|-valign="top" | |-valign="top" | ||
|''varargin''||Additional parameters to ego are sent to the costly f(x) | |||
|} | |} | ||
{|class="wikitable" | {|class="wikitable" | ||
! | !colspan="2"|'''- Special EGO algorithm parameters in Prob.CGO -''' | ||
|-valign="top" | |-valign="top" | ||
| | |''EGOAlg''||Main algorithm in the EGO solver | ||
=1 Run expected improvement steps (modN = 0,1,2,...). If no ''f ''(''x'') improvement, use DACE surface minimum (modN = -1) in 1 step | |||
=2 Run expected improvement steps (modN=0) until ExpI / <nowiki>|</nowiki>yMin<nowiki>|</nowiki> < ''TolExpI'' for 3 successive steps (modN = 1,2,3) without ''f ''(''x'') improvement (fRed ''<= ''0).<br>After 2 such steps (when modN = 2), 1 step using the DACE surface minimum (modN = -1) is tried. If then fRed > ''TolExpI'', reset to modN = 0 steps. | |||
=3 Compute trial points from both Expexted Improvement and DACE surface minimum in every step | |||
=4 Compute DACE surface minimum in every step | |||
Default ''EGOAlg'' = 1, but if any x is integer valued, ''EGOAlg'' = 3 is default | |||
|-valign="top" | |-valign="top" | ||
|'' | |''pEst''||Norm parameters, fixed or estimated, also see ''p0'', ''pLow'', ''pUpp'' (default ''pEst'' = 0). | ||
1 | 0 = Fixed constant p-value for all components (default, ''p0''=1.99). | ||
1 = Estimate one p-value valid for all components. | |||
2 = Estimate ''d<nowiki>|| ||</nowiki><sub>p</sub> parameters, one for each component. | |||
| | |||
| | |||
|-valign="top" | |-valign="top" | ||
|''p0''||Fixed p-value (pEst==0, default = 1.99) or initial p-value (pEst == 1, default 1.9) or d-vector of initial p-values (pEst ''> | |''p0''||Fixed p-value (''pEst''==0, default = 1.99) or<br>initial p-value (''pEst'' == 1, default 1.9) or<br>d-vector of initial p-values (''pEst'' > 1, default 1.9*ones(d,1)) | ||
|-valign="top" | |-valign="top" | ||
|''pLow''|| | |''pLow''||If pEst == 0, not used | ||
if pEst == 1, lower bound on p-value (default 1.98) | |||
if pEst == | if pEst == 2, lower bounds on p (default 1.99*ones(d,1)) | ||
|-valign="top" | |-valign="top" | ||
|''pUpp''|| | |''pUpp''||If pEst == 0, not used | ||
if pEst == 1, upper bound on p-value (default 1.99999) | |||
if pEst == | if pEst == 2, upper bounds on p (default 1.99999*ones(d,1)) | ||
|-valign="top" | |-valign="top" | ||
|'' | |''snPLim''||Avoid the time consuming global optimization in DACEFit for iterations > ''snPLim''.<br>Instead just do a local search from the previous DACE parameter model<br>This part is the most time consuming in ego<br>Default 15 if ''pEst'' = 0, Default 20 if ''pEst'' = 1, Default 25 if ''pEst'' > 1 | ||
0 | |||
1 | |||
|-valign="top" | |-valign="top" | ||
|'' | |''TolExpI''||Convergence tolerance for expected improvement (default 10<sup>-7</sup>). | ||
|-valign="top" | |-valign="top" | ||
|''SAMPLEF''||Sample criterion function: | |''SAMPLEF''||Sample criterion function: | ||
Line 348: | Line 149: | ||
0 = Expected improvment (default) | 0 = Expected improvment (default) | ||
1 = Kushner's criterion (related option: KEPS) | 1 = Kushner's criterion (related option: ''KEPS'') | ||
2 = Lower confidence bounding (related option: LCBB) | 2 = Lower confidence bounding (related option: ''LCBB'') | ||
3 = Generalized expected improvement (related option: GEIG) | 3 = Generalized expected improvement (related option: ''GEIG'') | ||
4 = Maximum variance | 4 = Maximum variance | ||
5 = Watson and Barnes 2 | 5 = Watson and Barnes 2 | ||
|-valign="top" | |-valign="top" | ||
|''KEPS''||The ''ε ''parameter in the Kushner's criterion | |''KEPS''||The ''ε ''parameter in the Kushner's criterion<br>If set to a positive value, the epsilon is taken as KEPS. If set to a negative value, then epsilon is taken as <nowiki>|</nowiki>KEPS<nowiki>|</nowiki>*''f_min'' | ||
Default: -0.01 | |||
If | |||
|-valign="top" | |-valign="top" | ||
|'' | |''GEIG''||The exponent ''g'' in the generalized expected improvement function<br>Default: 2 | ||
|-valign="top" | |-valign="top" | ||
|'' | |''LCBB''||Lower Confidence Bounding parameter b<br>Default 2 | ||
|-valign="top" | |-valign="top" | ||
|'' | |''AddSurfMin''||Add up to AddSurfMin global or local minima on DACE surface as search points, based on estimated Lipschitz constants, number of components on bounds, and distance to sampled set X.<br>''AddExpIMin''=0 implies no additional minimum added. | ||
|-valign="top" | |-valign="top" | ||
|'' | |''AddExpIMin''||Add up to ''AddExpIMin'' global or local minima on ''ExpI'' surface as search points, based on estimated Lipschitz constants, number of components on bounds, and distance to sampled set X.<br>AddExpIMin=0 implies no additional minimum added.<br>Only possible if ''globalSolver'' = 'multiMin' or 'glcCluster'.<br>Default ''AddExpIMin'' = 1 | ||
|} | |} | ||
==Description of Outputs== | ==Description of Outputs== | ||
===Result structure=== | |||
The output structure ''Result'' contains results from the optimization.<br>The following fields are set: | |||
{|class="wikitable" | {|class="wikitable" | ||
! | !Field||Description | ||
|-valign=" | |-valign="middle" | ||
|''x_k''|| | |''x_k''||rowspan="5"|See [[Common output for all CGO solvers|Common output for all CGO solvers]] for details. | ||
|-valign="top" | |-valign="top" | ||
|'' | |''f_k'' | ||
|-valign="top" | |-valign="top" | ||
|'' | |''Iter'' | ||
|-valign="top" | |-valign="top" | ||
|'' | |''FuncEv'' | ||
|-valign="top" | |-valign="top" | ||
|'' | |''ExitText'' | ||
|-valign="top" | |-valign="top" | ||
|'' | |''ExitFlag''||Always 0 | ||
|-valign="top" | |-valign="top" | ||
|''Inform''||Information parameter. | |''Inform''||Information parameter. | ||
0 | {|class="wikitable" | ||
!Value||Signification | |||
|- | |||
|0||Normal termination. | |||
|- | |||
|1||Function value f(x) is less than fGoal. | |||
|- | |||
|2||Error in function value ''f ''(''x'')'', <nowiki>|</nowiki>f - fGoal<nowiki>|</nowiki> <= fTol, fGoal ''= 0''.'' | |||
|- | |||
|3||Relative Error in function value ''f ''(''x'') is less than fTol, i.e. <nowiki>|</nowiki>f - fGoal<nowiki>|</nowiki>/<nowiki>|</nowiki>fGoal<nowiki>|</nowiki> <= fTol. | |||
<!-- Removed for now | |||
|- | |||
|4||No new point sampled for MaxCycle iteration steps. | |||
|- | |||
|5||All sample points same as the best point for MaxCycle last iterations. | |||
|- | |||
|8||No progress for ''MaxCycle * ''(''N ''+ 1) + 1 function evaluations (''> MaxCycle'' cycles, input CGO.MaxCycle). | |||
--> | |||
|- | |||
|6||All sample points same as previous point for the last 11 iterations. | |||
|- | |||
|7||All feasible integers tried. | |||
|- | |||
|9||Max CPU Time reached. | |||
|- | |||
|10||Expected improvement low for three iterations | |||
|} | |||
|-valign="top" | |||
|''CGO''||Subfield ''WarmStartInfo'' saves warm start information, the same information as in cgoSave.mat, see [[Common output for all CGO solvers#WSInfo]]. | |||
|} | |||
===Output printing=== | |||
{|class="wikitable" | |||
!colspan="2"|PRINTING in MATLAB window in Iteration 0 after Experimental Design | |||
|- style="text-align:center;" | |||
|colspan="2"|'''''if ''IterPrint'' >= 1 or ''PriLev'' > 1''''' | |||
|- | |||
|colspan="2"|'''Row 0''' | |||
|- | |||
| ||Initial row with values for some important parameters from Prob.CGO for the current run | |||
|- | |||
|colspan="2"|'''Row 1''' | |||
|- | |||
|''Iter'' ||Number of iterations | |||
|- | |||
|''n'' ||Number of trial x, n-Iter is number of points in initial design | |||
|- | |||
|''nFunc'' ||Number of costly f(x) computed, nFunc <= n, n-nFunc = rejected pnts | |||
|- | |||
|<nowiki>--->></nowiki> ||Time stamp (date and exact time of this printout) | |||
|- | |||
|''Cycle'' ||Cycle steps global to local. ''infStep'' is marked -1, 0 to ''N''-1 are global steps. Last step ''N'' in cycle is surface minimum | |||
|- | |||
|''R'' ||If the letter ''R'' is printed, the current step is a RESCUE step, i.e. the new point is already sampled in a previous step, instead the surface minimum is used as a rescue | |||
|- | |||
|''fnStar'' ||Target value fn_star (if set) | |||
|- | |||
|''fGoal'' ||Goal value (if set) | |||
|- | |||
|''fMin'' ||Best f(x) found so far. E.g. at 27/It 12 means n=27, Iter=12<br>fMinI means the best f(x) is infeasible<br>fMinF means the best f(x) is feasible (also integer feasible) | |||
|- | |||
|''dacePtr''||Number used internally in CGOLIB (if PriLev > 2) | |||
|- | |||
|colspan="2"|'''Row 2''' | |||
|- | |||
|''max(F)'' ||maximum of all f(x) in the initial set of points X | |||
|- | |||
|''med(F)'' ||median of all f(x) in the initial set of points X | |||
|- | |||
|''rng(F)'' ||maxF-fMin, the range of f(x) values in the initial set X | |||
|- | |||
|''pDist'' ||The size of the simply bounded region, <nowiki>||</nowiki>''x_U''-''x_L''<nowiki>||</nowiki><sub>2</sub> | |||
|- | |||
|''LipU'' ||Maximum Lipschitz constant for initial set X | |||
|- | |||
|''LipL'' ||Maximum Lipschitz constant for initial set X, using transformed F | |||
|- | |||
|''objType''||Function transformation used during run, one of 0 to 8. | |||
|- | |||
|''DACEfk'' ||Best DACE fitness value found | |||
|- | |||
|colspan="2"|'''Row 3''' | |||
|- | |||
| ||Information about estimation of ''p'' and ''θ'' in DACE model | |||
|- | |||
|colspan="2"|'''Row 4''' | |||
|- | |||
|''xMin''||Best point in initial set X | |||
|- | |||
|colspan="2"|'''Row 5''' | |||
|- | |||
|''xOptS''||User-given known global optimum Prob.x_opt | |||
|- style="text-align:center;" | |||
|colspan="2"|'''''if ''PriLev'' > 2 and global optimum ''xOptS'' known and given in ''Prob.x_opt'' ''''' | |||
|- | |||
|colspan="2"|'''Row 6''' | |||
|- | |||
|''SumXO'' ||Sum of distances from global optimum ''xOptS'' to all sampled points ''X'' in experimental design | |||
|- | |||
|''MeanX0''||Mean of distances from global optimum ''xOptS'' to all sampled points ''X'' in experimental design | |||
|- | |||
|''doO'' ||Distance from global optimum ''xOptS'' to ''x'' with best f(x) in Experimental Design, ''xMin'' | |||
|- style="text-align:center;" | |||
<!--- REMOVED for now | |||
|colspan="2"|'''''if ''PriLev'' > 3''''' | |||
|- | |||
|''dXO'' ||Minimal distance from global optimum to closest point of all sampled points ''X'' in experimental design | |||
|- | |||
|''snOptf''||Surface value at ''xOptS'', ''sn_f(xOptS)'' | |||
|- | |||
|''snOptg''||Surface gradient at ''xOptS'', ''sn_g(xOptS)'' | |||
|- | |||
|''snOptE''||Sum of negative eigenvalues of surface Hessian at ''xOptS'', sum((eig(sn_H(xOptS)) < 0)) | |||
---> | |||
|} | |||
{|class="wikitable" | |||
!colspan="2"|PRINTING in MATLAB window in Iteration 1,2, ... | |||
|- style="text-align:center;" | |||
|colspan="2"|'''''if ''IterPrint'' >= 1 or ''PriLev'' > 1''''' | |||
|- | |||
|colspan="2"|'''Row 1''' | |||
|- | |||
|''Iter''||Number of iterations | |||
|- | |||
|''n'' ||Number of trial x, ''n''-''Iter'' is number of points in initial design | |||
|- | |||
|''nFunc'' ||Number of costly f(x) computed, ''nFunc'' <= ''n'', ''n''-''nFunc'' = rejected pnts | |||
|- | |||
|<nowiki>--->></nowiki> ||Time stamp (date and exact time of this printout) | |||
|- | |||
|''fGoal'' ||Goal value (if set) | |||
|- | |||
|''fMin'' ||Best f(x) found so far. E.g. at 27/It 12 means n=27, Iter=12<br>''fMinI'' means the best f(x) is infeasible<br>''fMinF'' means the best f(x) is feasible (also integer feasible)<br>''IT'' implies reduction in last step, ''It'' no reduction last step | |||
|- | |||
|colspan="2"|'''Row 2 Header line''' | |||
|- | |||
|colspan="2"| | |||
{|class="wikitable" | |||
|#||f(x)||Task||onB||ExpI-Sc||doX||doM||doS||surfErr||f-Reduc||doO||ExpImpr | |||
|} | |||
|- | |||
|colspan="2"|'''Row 3 to m+2 with m new sample points ''xNew(1,1:m)'' obtained in last iteration | |||
|- | |||
|''#'' ||i''th'' new point x = ''xNew(:,i) | |||
|- | |||
|''f(x)'' ||Costly f(x) value at x | |||
|- | |||
|''Task'' ||Which method that gave the new point | |||
{|class="wikitable | |||
!Value||Method | |||
|- | |||
|0 ||Global minimum of Exponential Improvement | |||
|- | |||
|1 ||Global minimum of Kriging Variance | |||
|- | |||
|2 ||Global minimum of DACE surface | |||
|- | |||
|999||Rescue | |||
|- | |||
| -3 ||Additional local Exponential Improvement Minima | |||
|- | |||
| -7 ||Additional local surface minima | |||
|- | |||
| -8 ||Sample point inside the full box defined by [x_L,x_U] | |||
|- | |||
| -9 ||Sample point inside a trust region box | |||
|} | |||
|- | |||
|''onB'' ||Number of coordinates on bound for new point, ''onB(x)'' | |||
|- | |||
|''ExpI-Sc''||Expected improvement, scaled by <nowiki>|</nowiki>fMin<nowiki>|</nowiki> | |||
|- | |||
|- | |''doX'' ||Minimal distance from ''x'' to sample set ''X'', min<nowiki>||</nowiki>''x-X''<nowiki>||</nowiki> | ||
|'' | |- | ||
|- | |''doM'' ||Distance from ''x'' to (''xMin'',''fMin''), best point found, min<nowiki>||</nowiki>''x-xMin''<nowiki>||</nowiki> | ||
|'' | |- | ||
|- | |''doS'' ||Distance from ''x'' to minimum on surface, min<nowiki>||</nowiki>''x-min_sn_y''<nowiki>||</nowiki> | ||
|'' | |- | ||
|- | |''surfErr''||Error between predicted and actual value of f(x), i.e. Costly f(x) - Surface value at ''x'' | ||
|'' | |- | ||
|- | |''f-Reduc''||Function value reduction if ''fNew'' < ''fMin'' | ||
|'' | |- | ||
|- | |''doO'' ||Distance from ''x'' to global optimum ''xOptS'' <nowiki>||</nowiki>''x-xOptS''<nowiki>||</nowiki> (if ''Prob.x_opt'' specified) | ||
|'' | |- | ||
|- | |''ExpImpr''||Expected improvement | ||
|'' | |- | ||
|- | |''x:'' ||x values for i:''th'' point, scaled back i ''SCALE'' == 1 | ||
|'' | |- | ||
|- | |colspan="2"|'''Row m+3 with values for current global surface minimum (min_sn_y, min_sn) | ||
|'' | |- | ||
|- | |''Sn'' ||f(x) = min_sn, onB, doX, doM, doO values for min_sn_y, and x: are values for min_sn_y transformed back to original coordinates if ''SCALE'' == 1 | ||
|' | |- style="text-align:center;" | ||
|- | |colspan="2"|'''Additional rows if PriLev > 2 | ||
|'' | |- | ||
|- | |colspan="2"|One row with DACEFit information, result of ''p'', ''theta'' estimation dependent on pEst value | ||
|'' | |- | ||
|- | |''DACEfk''||Optimal DACEFit objective -log<sub>10</sub>(-ML), where ML = Maximum Likelihood DACE fitness objective value (Step >0) | ||
|'' | |- | ||
|''p''||Exponential parameters in DACE model | |||
|- | |||
|''theta''||Weights in DACE model | |||
|- | |||
|colspan="2"|One row with DACEupd information when updating with new sample points | |||
|- | |||
|''minDist''||Minimal distance between points in sample set X, if small value ill-conditioning might occur | |||
|- | |||
|colspan="2"|'''NOTE: All distances measured are in ''SCALED'' space [0,1]<sup>d</sup>, if ''SCALE' == 1''' | |||
|} | |} | ||
Latest revision as of 17:19, 21 June 2014
This page is part of the CGO Manual. See CGO Manual. |
Purpose
Solve general constrained mixed-integer global black-box optimization problems with costly objective functions.
The optimization problem is of the following form
where ; ;
the linear constraints are defined by , ;
and the nonlinear constraints are defined by .
The variables are restricted to be integers,
where is an index subset of possibly empty.
It is assumed that the function is continuous with respect to all
variables, even if there is a demand that some variables only take integer values.
Otherwise it would not make sense to do the surrogate modeling of used by all CGO solvers.
f (x) is assumed to be a costly function while c(x) is assumed to be cheaply computed. Any costly constraints can be treated by adding penalty terms to the objective function in the following way:
where weighting parameters wj have been added. The user then returns p(x) instead of f (x) to the CGO solver.
Calling Syntax
Result=ego(Prob,varargin) Result = tomRun('ego', Prob);
Usage
See CGO solver usage
Description of Inputs
Problem structure
The following fields are used in the problem description structure Prob:
Field | Description |
---|---|
Name | See Common input for all CGO solvers |
FUNCS.f | |
FUNCS.c | |
x_L | |
x_U | |
b_L | |
b_U | |
A | |
c_L | |
c_U | |
WarmStart | |
user | |
MaxCPU | |
PriLevOpt | |
optParam | |
CGO | See the table below but also this table for input common to all CGO solvers |
GO | See common input for all CGO solvers |
MIP | See common input for all CGO solvers |
varargin | Additional parameters to ego are sent to the costly f(x) |
- Special EGO algorithm parameters in Prob.CGO - | |
---|---|
EGOAlg | Main algorithm in the EGO solver
=1 Run expected improvement steps (modN = 0,1,2,...). If no f (x) improvement, use DACE surface minimum (modN = -1) in 1 step =2 Run expected improvement steps (modN=0) until ExpI / |yMin| < TolExpI for 3 successive steps (modN = 1,2,3) without f (x) improvement (fRed <= 0). =3 Compute trial points from both Expexted Improvement and DACE surface minimum in every step =4 Compute DACE surface minimum in every step Default EGOAlg = 1, but if any x is integer valued, EGOAlg = 3 is default |
pEst | Norm parameters, fixed or estimated, also see p0, pLow, pUpp (default pEst = 0).
0 = Fixed constant p-value for all components (default, p0=1.99). 1 = Estimate one p-value valid for all components. 2 = Estimate d|| ||p parameters, one for each component. |
p0 | Fixed p-value (pEst==0, default = 1.99) or initial p-value (pEst == 1, default 1.9) or d-vector of initial p-values (pEst > 1, default 1.9*ones(d,1)) |
pLow | If pEst == 0, not used
if pEst == 1, lower bound on p-value (default 1.98) if pEst == 2, lower bounds on p (default 1.99*ones(d,1)) |
pUpp | If pEst == 0, not used
if pEst == 1, upper bound on p-value (default 1.99999) if pEst == 2, upper bounds on p (default 1.99999*ones(d,1)) |
snPLim | Avoid the time consuming global optimization in DACEFit for iterations > snPLim. Instead just do a local search from the previous DACE parameter model This part is the most time consuming in ego Default 15 if pEst = 0, Default 20 if pEst = 1, Default 25 if pEst > 1 |
TolExpI | Convergence tolerance for expected improvement (default 10-7). |
SAMPLEF | Sample criterion function:
0 = Expected improvment (default) 1 = Kushner's criterion (related option: KEPS) 2 = Lower confidence bounding (related option: LCBB) 3 = Generalized expected improvement (related option: GEIG) 4 = Maximum variance 5 = Watson and Barnes 2 |
KEPS | The ε parameter in the Kushner's criterion If set to a positive value, the epsilon is taken as KEPS. If set to a negative value, then epsilon is taken as |KEPS|*f_min Default: -0.01 |
GEIG | The exponent g in the generalized expected improvement function Default: 2 |
LCBB | Lower Confidence Bounding parameter b Default 2 |
AddSurfMin | Add up to AddSurfMin global or local minima on DACE surface as search points, based on estimated Lipschitz constants, number of components on bounds, and distance to sampled set X. AddExpIMin=0 implies no additional minimum added. |
AddExpIMin | Add up to AddExpIMin global or local minima on ExpI surface as search points, based on estimated Lipschitz constants, number of components on bounds, and distance to sampled set X. AddExpIMin=0 implies no additional minimum added. Only possible if globalSolver = 'multiMin' or 'glcCluster'. Default AddExpIMin = 1 |
Description of Outputs
Result structure
The output structure Result contains results from the optimization.
The following fields are set:
Field | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x_k | See Common output for all CGO solvers for details. | ||||||||||||||||||
f_k | |||||||||||||||||||
Iter | |||||||||||||||||||
FuncEv | |||||||||||||||||||
ExitText | |||||||||||||||||||
ExitFlag | Always 0 | ||||||||||||||||||
Inform | Information parameter.
| ||||||||||||||||||
CGO | Subfield WarmStartInfo saves warm start information, the same information as in cgoSave.mat, see Common output for all CGO solvers#WSInfo. |
Output printing
PRINTING in MATLAB window in Iteration 0 after Experimental Design | |
---|---|
if IterPrint >= 1 or PriLev > 1 | |
Row 0 | |
Initial row with values for some important parameters from Prob.CGO for the current run | |
Row 1 | |
Iter | Number of iterations |
n | Number of trial x, n-Iter is number of points in initial design |
nFunc | Number of costly f(x) computed, nFunc <= n, n-nFunc = rejected pnts |
--->> | Time stamp (date and exact time of this printout) |
Cycle | Cycle steps global to local. infStep is marked -1, 0 to N-1 are global steps. Last step N in cycle is surface minimum |
R | If the letter R is printed, the current step is a RESCUE step, i.e. the new point is already sampled in a previous step, instead the surface minimum is used as a rescue |
fnStar | Target value fn_star (if set) |
fGoal | Goal value (if set) |
fMin | Best f(x) found so far. E.g. at 27/It 12 means n=27, Iter=12 fMinI means the best f(x) is infeasible fMinF means the best f(x) is feasible (also integer feasible) |
dacePtr | Number used internally in CGOLIB (if PriLev > 2) |
Row 2 | |
max(F) | maximum of all f(x) in the initial set of points X |
med(F) | median of all f(x) in the initial set of points X |
rng(F) | maxF-fMin, the range of f(x) values in the initial set X |
pDist | The size of the simply bounded region, ||x_U-x_L||2 |
LipU | Maximum Lipschitz constant for initial set X |
LipL | Maximum Lipschitz constant for initial set X, using transformed F |
objType | Function transformation used during run, one of 0 to 8. |
DACEfk | Best DACE fitness value found |
Row 3 | |
Information about estimation of p and θ in DACE model | |
Row 4 | |
xMin | Best point in initial set X |
Row 5 | |
xOptS | User-given known global optimum Prob.x_opt |
if PriLev > 2 and global optimum xOptS known and given in Prob.x_opt | |
Row 6 | |
SumXO | Sum of distances from global optimum xOptS to all sampled points X in experimental design |
MeanX0 | Mean of distances from global optimum xOptS to all sampled points X in experimental design |
doO | Distance from global optimum xOptS to x with best f(x) in Experimental Design, xMin |
PRINTING in MATLAB window in Iteration 1,2, ... | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
if IterPrint >= 1 or PriLev > 1 | |||||||||||||||||||
Row 1 | |||||||||||||||||||
Iter | Number of iterations | ||||||||||||||||||
n | Number of trial x, n-Iter is number of points in initial design | ||||||||||||||||||
nFunc | Number of costly f(x) computed, nFunc <= n, n-nFunc = rejected pnts | ||||||||||||||||||
--->> | Time stamp (date and exact time of this printout) | ||||||||||||||||||
fGoal | Goal value (if set) | ||||||||||||||||||
fMin | Best f(x) found so far. E.g. at 27/It 12 means n=27, Iter=12 fMinI means the best f(x) is infeasible fMinF means the best f(x) is feasible (also integer feasible) IT implies reduction in last step, It no reduction last step | ||||||||||||||||||
Row 2 Header line | |||||||||||||||||||
| |||||||||||||||||||
Row 3 to m+2 with m new sample points xNew(1,1:m) obtained in last iteration | |||||||||||||||||||
# | ith new point x = xNew(:,i) | ||||||||||||||||||
f(x) | Costly f(x) value at x | ||||||||||||||||||
Task | Which method that gave the new point
| ||||||||||||||||||
onB | Number of coordinates on bound for new point, onB(x) | ||||||||||||||||||
ExpI-Sc | Expected improvement, scaled by |fMin| | ||||||||||||||||||
doX | Minimal distance from x to sample set X, min||x-X|| | ||||||||||||||||||
doM | Distance from x to (xMin,fMin), best point found, min||x-xMin|| | ||||||||||||||||||
doS | Distance from x to minimum on surface, min||x-min_sn_y|| | ||||||||||||||||||
surfErr | Error between predicted and actual value of f(x), i.e. Costly f(x) - Surface value at x | ||||||||||||||||||
f-Reduc | Function value reduction if fNew < fMin | ||||||||||||||||||
doO | Distance from x to global optimum xOptS ||x-xOptS|| (if Prob.x_opt specified) | ||||||||||||||||||
ExpImpr | Expected improvement | ||||||||||||||||||
x: | x values for i:th point, scaled back i SCALE == 1 | ||||||||||||||||||
Row m+3 with values for current global surface minimum (min_sn_y, min_sn) | |||||||||||||||||||
Sn | f(x) = min_sn, onB, doX, doM, doO values for min_sn_y, and x: are values for min_sn_y transformed back to original coordinates if SCALE == 1 | ||||||||||||||||||
Additional rows if PriLev > 2 | |||||||||||||||||||
One row with DACEFit information, result of p, theta estimation dependent on pEst value | |||||||||||||||||||
DACEfk | Optimal DACEFit objective -log10(-ML), where ML = Maximum Likelihood DACE fitness objective value (Step >0) | ||||||||||||||||||
p | Exponential parameters in DACE model | ||||||||||||||||||
theta | Weights in DACE model | ||||||||||||||||||
One row with DACEupd information when updating with new sample points | |||||||||||||||||||
minDist | Minimal distance between points in sample set X, if small value ill-conditioning might occur | ||||||||||||||||||
NOTE: All distances measured are in SCALED space [0,1]d, if SCALE' == 1 |
Description
ego implements the algorithm EGO by D. R. Jones, Matthias Schonlau and William J. Welch presented in the paper "Efficient Global Optimization of Expensive Black-Box Functions".
Please note that Jones et al. has a slightly different problem formulation. The TOMLAB version of ego treats linear and nonlinear constraints separately.
ego samples points to which a response surface is fitted. The algorithm then balances between sampling new points and minimization on the surface.
ego and rbfSolve use the same format for saving warm start data. This means that it is possible to try one solver for a certain number of iterations/function evaluations and then do a warm start with the other. Example:
>> Prob = probInit('glc_prob',1); % Set up problem structure >> Result_ego = tomRun('ego',Prob); % Solve for a while with ego >> Prob.WarmStart = 1; % Indicate a warm start >> Result_rbf = tomRun('rbfSolve',Prob); % Warm start with rbfSolve
M-files Used
iniSolve.m, endSolve.m, conAssign.m, glcAssign.m
See Also
rbfSolve
Warnings
Observe that when cancelling with CTRL+C during a run, some memory allocated by ego will not be deallocated.
To deallocate, do:
>> clear egolib