OptimInstance {bbotk}R Documentation

Optimization Instance with budget and archive

Description

Abstract base class.

Technical details

The Optimizer writes the final result to the .result field by using the ⁠$assign_result()⁠ method. .result stores a data.table::data.table consisting of x values in the search space, (transformed) x values in the domain space and y values in the codomain space of the Objective. The user can access the results with active bindings (see below).

Public fields

objective

(Objective).

search_space

(paradox::ParamSet).

terminator

(Terminator).

archive

(Archive).

progressor

(progressor())
Stores progressor function.

objective_multiplicator

(integer()).

callbacks

(List of CallbackOptimizations).

Active bindings

result

(data.table::data.table)
Get result

result_x_search_space

(data.table::data.table)
x part of the result in the search space.

result_x_domain

(list())
(transformed) x part of the result in the domain space of the objective.

result_y

(numeric())
Optimal outcome.

is_terminated

(logical(1)).

Methods

Public methods


Method new()

Creates a new instance of this R6 class.

Usage
OptimInstance$new(
  objective,
  search_space = NULL,
  terminator,
  keep_evals = "all",
  check_values = TRUE,
  callbacks = list()
)
Arguments
objective

(Objective).

search_space

(paradox::ParamSet)
Specifies the search space for the Optimizer. The paradox::ParamSet describes either a subset of the domain of the Objective or it describes a set of parameters together with a trafo function that transforms values from the search space to values of the domain. Depending on the context, this value defaults to the domain of the objective.

terminator

(Terminator).

keep_evals

(character(1))
Keep all or only best evaluations in archive?

check_values

(logical(1))
Should x-values that are added to the archive be checked for validity? Search space that is logged into archive.

callbacks

(list of mlr3misc::Callback)
List of callbacks.


Method format()

Helper for print outputs.

Usage
OptimInstance$format(...)
Arguments
...

(ignored).


Method print()

Printer.

Usage
OptimInstance$print(...)
Arguments
...

(ignored).


Method eval_batch()

Evaluates all input values in xdt by calling the Objective. Applies possible transformations to the input values and writes the results to the Archive.

Before each batch-evaluation, the Terminator is checked, and if it is positive, an exception of class terminated_error is raised. This function should be internally called by the Optimizer.

Usage
OptimInstance$eval_batch(xdt)
Arguments
xdt

(data.table::data.table())
x values as data.table() with one point per row. Contains the value in the search space of the OptimInstance object. Can contain additional columns for extra information.


Method assign_result()

The Optimizer object writes the best found point and estimated performance value here. For internal use.

Usage
OptimInstance$assign_result(xdt, y)
Arguments
xdt

(data.table::data.table())
x values as data.table::data.table() with one row. Contains the value in the search space of the OptimInstance object. Can contain additional columns for extra information.

y

(numeric(1))
Optimal outcome.


Method objective_function()

Evaluates (untransformed) points of only numeric values. Returns a numeric scalar for single-crit or a numeric vector for multi-crit. The return value(s) are negated if the measure is maximized. Internally, ⁠$eval_batch()⁠ is called with a single row. This function serves as a objective function for optimizers of numeric spaces - which should always be minimized.

Usage
OptimInstance$objective_function(x)
Arguments
x

(numeric())
Untransformed points.

Returns

Objective value as numeric(1), negated for maximization problems.


Method clear()

Reset terminator and clear all evaluation results from archive and results.

Usage
OptimInstance$clear()

Method clone()

The objects of this class are cloneable with this method.

Usage
OptimInstance$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.


[Package bbotk version 0.8.0 Index]