Skip to contents

Abstract acquisition function class.

Based on the predictions of a Surrogate, the acquisition function encodes the preference to evaluate a new point.

Super class

bbotk::Objective -> AcqFunction

Active bindings

direction

("same" | "minimize" | "maximize")
Optimization direction of the acquisition function relative to the direction of the objective function of the bbotk::OptimInstance. Must be "same", "minimize", or "maximize".

surrogate_max_to_min

(-1 | 1)
Multiplicative factor to correct for minimization or maximization of the acquisition function.

label

(character(1))
Label for this object.

man

(character(1))
String in the format [pkg]::[topic] pointing to a manual page for this object.

archive

(bbotk::Archive)
Points to the bbotk::Archive of the surrogate.

fun

(function)
Points to the private acquisition function to be implemented by subclasses.

surrogate

(Surrogate)
Surrogate.

requires_predict_type_se

(logical(1))
Whether the acquisition function requires the surrogate to have "se" as $predict_type.

packages

(character())
Set of required packages.

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Note that the surrogate can be initialized lazy and can later be set via the active binding $surrogate.

Usage

AcqFunction$new(
  id,
  constants = ParamSet$new(),
  surrogate,
  requires_predict_type_se,
  direction,
  packages = NULL,
  label = NA_character_,
  man = NA_character_
)

Arguments

id

(character(1)).

constants

(paradox::ParamSet). Changeable constants or parameters.

surrogate

(NULL | Surrogate). Surrogate whose predictions are used in the acquisition function.

requires_predict_type_se

(logical(1))
Whether the acquisition function requires the surrogate to have "se" as $predict_type.

direction

("same" | "minimize" | "maximize"). Optimization direction of the acquisition function relative to the direction of the objective function of the bbotk::OptimInstance. Must be "same", "minimize", or "maximize".

packages

(character())
Set of required packages. A warning is signaled prior to construction if at least one of the packages is not installed, but loaded (not attached) later on-demand via requireNamespace().

label

(character(1))
Label for this object.

man

(character(1))
String in the format [pkg]::[topic] pointing to a manual page for this object.


Method update()

Update the acquisition function.

Can be implemented by subclasses.

Usage

AcqFunction$update()


Method eval_many()

Evaluates multiple input values on the objective function.

Usage

AcqFunction$eval_many(xss)

Arguments

xss

(list())
A list of lists that contains multiple x values, e.g. list(list(x1 = 1, x2 = 2), list(x1 = 3, x2 = 4)).

Returns

data.table::data.table() that contains one y-column for single-objective functions and multiple y-columns for multi-objective functions, e.g. data.table(y = 1:2) or data.table(y1 = 1:2, y2 = 3:4).


Method eval_dt()

Evaluates multiple input values on the objective function

Usage

AcqFunction$eval_dt(xdt)

Arguments

xdt

(data.table::data.table())
One point per row, e.g. data.table(x1 = c(1, 3), x2 = c(2, 4)).

Returns

data.table::data.table() that contains one y-column for single-objective functions and multiple y-columns for multi-objective functions, e.g. data.table(y = 1:2) or data.table(y1 = 1:2, y2 = 3:4).


Method clone()

The objects of this class are cloneable with this method.

Usage

AcqFunction$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.