EGO — Creates EGO optimizer.
opt=EGO(model,lob,upb,maxit,stopEI,perf) opt=EGO(model,lob,upb,maxit,stopEI,perf) opt=EGO(model,lob,upb,maxit,stopEI,perf,EIoptimizer) opt=EGO(model,lob,upb,maxit,stopEI,perf,EIoptimizer,EImaxpoints) opt=EGO(model,lob,upb,maxit,stopEI,perf,EIoptimizer,EImaxpoints,KrigingOptimizer) opt=EGO(model,lob,upb,maxit,stopEI,perf,EIoptimizer,EImaxpoints,KrigingOptimizer,KrigingCriterion,KrigingMaxpoints)
kriging model - mlist of type kmodel.
row vector (1*n). Lower boundaries for optimization.
row vector (1*n). Upper boundaries for optimization.
maximum number of iterations.
optimization stops if Expected improvement is <stopEI
boolean (%t or %f) indicating whether detailed performance information is needed. Default value %f.
specifies what optimizer to use for maximizing EI. Values: 'CMA' - for CMA-ES, 'RS' - for random search. Default value 'CMA'.
specifies maximum number of points to use in each step of EGO for optimization of EI. Default value 1000.
what optimizer to use for optimization of Kriging parameters.
what criterion to use for optimization of Kriging parameters, default Maximum Likelihood.
maximum number of points for optimization of Kriging parameters at each step.
mlist of type EGO.
kmodel - kriging model (mlist of type kmodel).
fmin - current minimum.
xmin - point of current minimum.
stopCrit - optimization stops if Ei <stopCrit
maxit - maximum number of iterations
stop - has optimizer reached any stopping criterion.
lob - row vector (1*n). Lower boundaries for optimization.
upb - row vector (1*n). Upper boundaries for optimization.
it - current number of iterations.
EIoptimizer - what optimizer to use for maximizing EI.
EImaxpoints - maximum number of points for optimization of EI at each step.
EIOptparams - optional parameters for EI maximizer. If needed must be set directly.
KrigingOptimizer - what optimizer to use for optimization of Kriging parameters.
KrigingCriterion - what criterion to use for optimization of Kriging parameters.
KrigingMaxpoints - maximum number of points for optimization of Kriging parameters at each step.
KrigingOptparams - optional parameters for kriging optimizer. If needed must be set directly.
perf - boolean indicating whether detailed performance information is needed.
perfData - mlist of type perfData, containing performance data, if perf == %t. Otherwise performance data is not stored.
maxEis - vector containing values of maximum EI at each EGO iteration.
maxEix - matrix of points of maximum EI, for each EGO iteration.
maxEiy - vector containing response values (from corresponding tell) for each point of maximum EI.
Eis - list of vectors of EI for every point tried (xEis). There is list entry for each iteration of EGO.
xEis - list of matrices of points at which EI xas evaluated (Eis). There is list entry for each iteration of EGO.
fmin - vector containing known minimum at each EGO iteration.
kmodels - list containing Kriging models for each EGO iteration. The global variables used by Kriging model are not saved.
Creates ask & tell EGO optimizer, based on previously created kriging model. At each iteration kriging model is updated. Note: Function uses global variables of kriging model S_kriging and Y_kriging.
function [y]=gpeak(x) y=sin(x*3)-exp(-(x+0.1)^2/0.01) endfunction; ftest=gpeak; x_bound=[-1; 1]; noise=0; X=(linspace(x_bound(1),x_bound(2),6))';// six initial points YExp=ftest(X); // response Xtest=(linspace(x_bound(1),x_bound(2),100))'; // test points // creaate initial kriging model [kmodel] =km(X,YExp,0,'gaussian',1,0); [kmodel p]=findTheta(kmodel,0,5,'MLL','RS',500); // ego boundaries lob=[-1];upb=[1];maxit=16; opt=EGO(kmodel,lob,upb,maxit,0.00000001,%t,'NM'); yx=[];vy=[]; while ~EGO_stop(opt) // runs optimizer [x,opt]=EGO_ask(opt); opt=EGO_tell(opt,x,ftest(x)); end; [yb,xb]=EGO_best(opt); //ploting scf(); plot(X,YExp,'k+'); plot(Xtest,ftest(Xtest),'k'); plot(Xtest,predict(opt.kmodel,Xtest),'b+'); plot(xb,yb,'r.'); legend('Data points','objective','kriging predicted mean','optimum'); See demos for more examples.
Jones D.R., Schonlau M. and Welch W.J. (1998), Efficient Global Optimization of Expensive Black-Box Functions, Journal of Global optimization, 13:, 455-492.
Roustant O.,Ginsbourger D., Deville Y. (2010), Two R packages for the analysis of computer experiments by kriging-based metamodeling and optimization. http://hal.archives-ouvertes.fr/hal-00495766_v2/