Learn R Programming

DiceOptim (version 2.0)

max_AEI: Maximizer of the Augmented Expected Improvement criterion function

Description

Maximization, based on the package rgenoud of the Augmented Expected Improvement (AEI) criterion.

Usage

max_AEI(model, new.noise.var = 0, y.min = NULL, type = "UK", lower, upper, parinit = NULL, control = NULL)

Arguments

model
a Kriging model of "km" class
new.noise.var
the (scalar) noise variance of the new observation.
y.min
The kriging mean prediction at the current best point (point with smallest kriging quantile). If not provided, this quantity is evaluated inside the AEI function (may increase computational time).
type
Kriging type: "SK" or "UK"
lower
vector containing the lower bounds of the variables to be optimized over
upper
optional vector containing the upper bounds of the variables to be optimized over
parinit
optional vector containing the initial values for the variables to be optimized over
control
optional list of control parameters for optimization. One can control "pop.size" (default : [N=3*2^dim for dim<6 and="" n="32*dim" otherwise]),="" "max.generations" (12), "wait.generations" (2) and "BFGSburnin" (2) of function "genoud" (see genoud). Numbers into brackets are the default values

Value

A list with components: A list with components:

Examples

Run this code
library(DiceDesign)
set.seed(100)

# Set test problem parameters
doe.size <- 10
dim <- 2
test.function <- get("branin2")
lower <- rep(0,1,dim)
upper <- rep(1,1,dim)
noise.var <- 0.2

# Generate DOE and response
doe <- as.data.frame(lhsDesign(doe.size, dim)$design)
y.tilde <- rep(0, 1, doe.size)
for (i in 1:doe.size)  {y.tilde[i] <- test.function(doe[i,])
+ sqrt(noise.var)*rnorm(n=1)}
y.tilde <- as.numeric(y.tilde)

# Create kriging model
model <- km(y~1, design=doe, response=data.frame(y=y.tilde),
     covtype="gauss", noise.var=rep(noise.var,1,doe.size),
     lower=rep(.1,dim), upper=rep(1,dim), control=list(trace=FALSE))

# Optimisation using max_AEI
res <- max_AEI(model, new.noise.var=noise.var, type = "UK",
lower=c(0,0), upper=c(1,1))
X.genoud <- res$par

# Compute actual function and criterion on a grid
n.grid <- 12 # Change to 21 for a nicer picture
x.grid <- y.grid <- seq(0,1,length=n.grid)
design.grid <- expand.grid(x.grid, y.grid)
names(design.grid) <- c("V1","V2")
nt <- nrow(design.grid)
crit.grid <- apply(design.grid, 1, AEI, model=model, new.noise.var=noise.var)

## Not run: 
# # # 2D plots
# z.grid <- matrix(crit.grid, n.grid, n.grid)
# tit <- "Green: best point found by optimizer"
# filled.contour(x.grid,y.grid, z.grid, nlevels=50, color = rainbow,
# plot.axes = {title(tit);points(model@X[,1],model@X[,2],pch=17,col="blue");
# points(X.genoud[1],X.genoud[2],pch=17,col="green");
# axis(1); axis(2)})
# ## End(Not run)

Run the code above in your browser using DataLab