Describes a black-box objective function that maps an arbitrary domain to a numerical codomain.

## Technical details

Objective objects can have the following properties: "noisy", "deterministic", "single-crit" and "multi-crit".

## Public fields

id

(character(1))).

properties

(character()).

domain

Specifies domain of function, hence its input parameters, their types and ranges.

codomain

Specifies codomain of function, hence its feasible values.

check_values

(logical(1))

## Active bindings

xdim

(integer(1))
Dimension of domain.

ydim

(integer(1))
Dimension of codomain.

## Methods

### Method new()

Creates a new instance of this R6 class.

#### Returns

character().

### Method print()

Print method.

#### Arguments

xs

(list())
A list that contains a single x value, e.g. list(x1 = 1, x2 = 2).

#### Returns

list() that contains the result of the evaluation, e.g. list(y = 1). The list can also contain additional named entries that will be stored in the archive if called through the OptimInstance. These extra entries are referred to as extras.

### Method eval_many()

Evaluates multiple input values on the objective function. If check_values = TRUE, the validity of the points as well as the validity of the results are checked. bbotk does not take care of parallelization. If the function should make use of parallel computing, it has to be implemented by deriving from this class and overwriting this function.

#### Arguments

xdt

(data.table::data.table())
Set of untransformed points / points from the search space. One point per row, e.g. data.table(x1 = c(1, 3), x2 = c(2, 4)). Column names have to match ids of the search_space. However, xdt can contain additional columns.

#### Returns

data.table::data.table()] that contains one y-column for single-criteria functions and multiple y-columns for multi-criteria 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

Objective\$clone(deep = FALSE)

#### Arguments

deep

Whether to make a deep clone.