<< CorrVectorData krisp toolbox EGO_ask >>

krisp toolbox >> krisp toolbox > EGO

EGO

Creates EGO optimizer.

Calling Sequence

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)

Parameters

model:

kriging model - mlist of type kmodel.

lob:

row vector (1*n). Lower boundaries for optimization.

upb:

row vector (1*n). Upper boundaries for optimization.

maxit:

maximum number of iterations.

stopEI:

optimization stops if Expected improvement is <stopEI

EIoptimizer:

specifies what optimizer to use for maximizing EI. Values: 'CMA' - for CMA-ES, 'RS' - for random search. Default value 'CMA'.

EImaxpoints:

specifies maximum number of points to use in each step of EGO for optimization of EI. Default value 1000.

EIOptparams:

additional parameters for optimizer; If not given EImaxpoints for number of maximum objective evaluations and for other default parameters are used.

perf:

boolean (%t or %f) indicating whether detailed performance information is needed. Default value %f.

opt:

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.

Description

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.

Examples

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.

See also

Authors

Bibliography

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/

<< CorrVectorData krisp toolbox EGO_ask >>