Creates EGO optimizer.
opt=EGO(model,lob,upb,maxit,stopEI) opt=EGO(model,lob,upb,maxit,stopEI,EIoptimizer) opt=EGO(model,lob,upb,maxit,stopEI,EIoptimizer,EImaxpoints) opt=EGO(model,lob,upb,maxit,stopEI,EIoptimizer,EImaxpoints,EIOptparams) opt=EGO(model,lob,upb,maxit,stopEI,EIoptimizer,EImaxpoints,EIOptparams,perf)
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
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.
additional parameters for optimizer; If not given EImaxpoints for number of maximum objective evaluations and for other default parameters are used.
boolean (%t or %f) indicating whether detailed performance information is needed. Default value %f.
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 - additional parameters for optimizer; If not given EImaxpoints for number of maximum objective evaluations and for other default parameters are used.
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,'matern_5_2',1,0); [kmodel p]=findTheta(kmodel,0.001,2,'MLL','RS',500); // ego boundaries lob=[-1];upb=[1];maxit=8; opt=EGO(kmodel,lob,upb,maxit,0.00000001,'RS'); 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/