multiREMBO: Random Embedding Bayesian Optimization

View source: R/multiREMBO.R

multiREMBOR Documentation

Random Embedding Bayesian Optimization

Description

REMBO for multi-objective unconstrained problems

Usage

multiREMBO(
  par,
  fn,
  lower,
  upper,
  budget,
  ...,
  critcontrol = list(distance = "euclidean", threshold = 1e-04),
  kmcontrol = list(covtype = "matern5_2", covreestim = TRUE, iso = TRUE, formula = ~1),
  control = list(Atype = "isotropic", reverse = TRUE, bxsize = NULL, testU = TRUE,
    standard = FALSE, maxitOptA = 100, lightreturn = FALSE, warping = "Psi", designtype =
    "unif", roll = F, inneroptim = "pso", popsize = 80, gen = 40),
  init = NULL
)

Arguments

par

vector whose length is used to define the initial DoE or just the low dimension

fn

function to be minimized over

lower, upper

bounds for optimization

budget

total number of calls to the objective function

...

additional parameters of fn

critcontrol

optional controls for hypervolume computations, see crit_EHI

kmcontrol

an optional list of control parameters to be passed to the km model: iso, covtype, formula. In addition, boolean codereestim is passed to update.km

control

an optional list of control parameters. See "Details"

init

optional list with elements Amat to provide a random matrix, low_dim_design for an initial design in the low-dimensional space and fvalues for the corresponding response. When passing initial response values, care should be taken that the mapping with Amat of the design actually correspond to high-dimensional designs giving fvalues.

Details

Options available from control are:

  • Atype see selectA;

  • reverse if TRUE, use the new mapping from the zonotope, otherwise the original mapping with convex projection;

  • Amat matrix defining the random embedding;

  • bxsize scalar controling the box size in the low-dimensional space;

  • testU with the regular mapping, set to TRUE to check that points are in U (to avoid non-injectivity);

  • standard for using settings of the original REMBO method;

  • maxitOptA if Atype is optimized, number of optimization iterations;

  • lightreturn only returns par and value;

  • warping either "standard" for kY, "kX" or "Psi";

  • designtype one of "LHS", "maximin" and 'unif', see designZ or designU;

  • tcheckP minimal distance to an existing solution, see checkPredict

  • roll to alternate between optimization methods;

  • initdesigns initial design matrix

  • inneroptim optimization method for EI

  • popsize, gen population size and number of optimization generations of EI

Examples

## Not run: 
set.seed(42)
library(GPareto)
library(eaf)

lowd <- 2
highD <- 25

maxEval <- 100

n.grid <- 101
test.grid <- expand.grid(seq(0, 1, length.out = n.grid), seq(0, 1, length.out = n.grid))
response.grid <- t(apply(test.grid, 1, P1))
PFref <- response.grid[is_nondominated(response.grid),]

ii <- c(1,2)
P1_mod <- function(X){
  if(is.null(nrow(X))) X <- matrix(X, nrow = 1)
  return(P1(X[,c(ii[1], ii[2]), drop = FALSE]))
}

plot(response.grid, pch = '.', xlab = "f1", ylab = "f2")                   
plotParetoEmp(PFref, col = "red")

sol <- multiREMBO(par = rep(NA, lowd), P1_mod, lower = rep(0, highD),
                   upper = rep(1, highD), budget = maxEval)
points(sol$values, col = "blue", pch = 20)


## End(Not run)

mbinois/RRembo documentation built on Sept. 16, 2023, 10:15 p.m.