R: Objective function with domain and co-domain

Objective {bbotk} | R Documentation

## Objective function with domain and co-domain

### Description

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`

  (paradox::ParamSet)
  Specifies domain of function, hence its input parameters, their types and ranges.

`codomain`

  (paradox::ParamSet)
  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

#### Public methods

- `Objective$new()`

- `Objective$format()`

- `Objective$print()`

- `Objective$eval()`

- `Objective$eval_many()`

- `Objective$eval_dt()`

- `Objective$clone()`

#### Method `new()`

Creates a new instance of this R6 class.

##### Usage

    Objective$new(
      id = "f",
      properties = character(),
      domain,
      codomain = ParamSet$new(list(ParamDbl$new("y", tags = "minimize"))),
      check_values = TRUE
    )

##### Arguments

`id`

  (`character(1)`).

`properties`

  (`character()`).

`domain`

  (paradox::ParamSet)
  Specifies domain of function. The paradox::ParamSet should describe all possible input parameters of the objective function. This includes their `id`, their types and the possible range.

`codomain`

  (paradox::ParamSet)
  Specifies codomain of function. Most importantly the tags of each output "Parameter" define whether it should be minimized or maximized. The default is to minimize each component.

`check_values`

  (`logical(1)`)
  Should points before the evaluation and the results be checked for validity?

#### Method `format()`

Helper for print outputs.

##### Usage

    Objective$format()

##### Returns

`character()`.

#### Method `print()`

Print method.

##### Usage

    Objective$print()

##### Returns

`character()`.

#### Method `eval()`

Evaluates a single input value on the objective function. If `check_values = TRUE`, the validity of the point as well as the validity of the result is checked.

##### Usage

    Objective$eval(xs)

##### 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.

##### Usage

    Objective$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-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)`. It may also contain additional columns that will be stored in the archive if called through the OptimInstance. These extra columns are referred to as extras.

#### Method `eval_dt()`

Evaluates multiple input values on the objective function

##### Usage

    Objective$eval_dt(xdt)

##### 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.

[Package bbotk version 0.2.2 Index]